Example usage for org.eclipse.jface.viewers ComboViewer getCombo

List of usage examples for org.eclipse.jface.viewers ComboViewer getCombo

Introduction

In this page you can find the example usage for org.eclipse.jface.viewers ComboViewer getCombo.

Prototype

public Combo getCombo() 

Source Link

Document

Returns this list viewer's list control.

Usage

From source file:org.goko.common.bindings.AbstractController.java

License:Open Source License

/**
 * Enables/disable the source when the property is respectively false/true
 * @param source the UI object//from  w w  w.ja v a  2s.co  m
 * @param property the name of the property
 * @throws GkException GkException
 */
public void addEnableReverseBinding(ComboViewer source, String property) throws GkException {
    addEnableReverseBinding(source.getCombo(), property);
}

From source file:org.gumtree.gumnix.sics.batch.ui.views.DrivableCommandView.java

License:Open Source License

@Override
public void createPartControl(Composite parent, DrivableCommand command) {
    bindingContext = new DataBindingContext();
    errorDec = FieldDecorationRegistry.getDefault().getFieldDecoration(FieldDecorationRegistry.DEC_ERROR);
    GridLayoutFactory.fillDefaults().margins(0, 0).spacing(10, SWT.DEFAULT).numColumns(2).applyTo(parent);

    final ComboViewer methodComboViewer = new ComboViewer(parent, SWT.READ_ONLY);
    methodComboViewer.setContentProvider(new ArrayContentProvider());
    methodComboViewer.setLabelProvider(new LabelProvider());
    methodComboViewer.setSorter(new ViewerSorter());
    methodComboViewer.setInput(command.getAvailableMethods());
    GridDataFactory.swtDefaults().align(SWT.BEGINNING, SWT.TOP).indent(0, 2).hint(WIDTH_COMBO, SWT.DEFAULT)
            .applyTo(methodComboViewer.getCombo());

    Composite parametersArea = getToolkit().createComposite(parent);
    GridLayoutFactory.fillDefaults().margins(0, 0).applyTo(parametersArea);
    GridDataFactory.fillDefaults().grab(true, false).applyTo(parametersArea);

    // Fill default
    for (DrivableParameter parameter : getCommand().getParameters()) {
        createParameterArea(parametersArea, parameter);
    }/*  w  ww.  j  ava 2 s .  co m*/
    // Set default if no default is available from the model
    if (getCommand().getParameters().length == 0) {
        createNewParameter(parametersArea);
    }

    /*********************************************************************
     * Data binding
     *********************************************************************/
    Realm.runWithDefault(SWTObservables.getRealm(Display.getDefault()), new Runnable() {
        public void run() {
            bindingContext.bindValue(ViewersObservables.observeSingleSelection(methodComboViewer),
                    BeansObservables.observeValue(getCommand(), "method"), new UpdateValueStrategy(),
                    new UpdateValueStrategy());
        }
    });
}

From source file:org.gumtree.gumnix.sics.batch.ui.views.DrivableCommandView.java

License:Open Source License

private void createParameterArea(final Composite parent, final DrivableParameter parameter) {
    /*********************************************************************
     * Initialise//from www. j  a v  a  2 s  .  c om
     *********************************************************************/
    parent.setMenu(new Menu(parent));
    final Composite parameterArea = getToolkit().createComposite(parent);
    GridLayoutFactory.swtDefaults().margins(0, 0).spacing(10, SWT.DEFAULT).numColumns(4).applyTo(parameterArea);
    GridDataFactory.fillDefaults().grab(true, false).applyTo(parameterArea);

    final ComboViewer drivableComboViewer = new ComboViewer(parameterArea, SWT.READ_ONLY);
    drivableComboViewer.setContentProvider(new ArrayContentProvider());
    drivableComboViewer.setLabelProvider(new LabelProvider());
    drivableComboViewer.setSorter(new ViewerSorter());
    drivableComboViewer.setInput(SicsBatchUIUtils.getSicsDrivableIds());
    GridDataFactory.swtDefaults().hint(WIDTH_COMBO, SWT.DEFAULT).applyTo(drivableComboViewer.getCombo());

    final Text targetText = getToolkit().createText(parameterArea, "", SWT.BORDER);
    targetText.setToolTipText("Enter target value");
    GridDataFactory.swtDefaults().hint(WIDTH_PARAMETER, SWT.DEFAULT).applyTo(targetText);

    if (DrivableCommand.isDrivingMultipleAllowed()) {
        Button addButton = getToolkit().createButton(parameterArea, "", SWT.PUSH);
        addButton.setImage(InternalImage.ADD.getImage());
        addButton.addSelectionListener(new SelectionAdapter() {
            public void widgetSelected(SelectionEvent e) {
                createNewParameter(parent);
                fireRefresh();
            }
        });

        Button removeButton = getToolkit().createButton(parameterArea, "", SWT.PUSH);
        removeButton.setImage(InternalImage.REMOVE.getImage());
        removeButton.addSelectionListener(new SelectionAdapter() {
            public void widgetSelected(SelectionEvent e) {
                // Do not delete if there is not too much left
                if (getCommand().getParameters().length <= 1) {
                    return;
                }
                parameterArea.dispose();
                getCommand().removeDrivableParameter(parameter);
                fireRefresh();
            }
        });
    }
    /*********************************************************************
     * Validation
     *********************************************************************/
    final ControlDecoration controlDec = new ControlDecoration(targetText, SWT.LEFT | SWT.BOTTOM);
    // Validate on target value change
    targetText.addModifyListener(new ModifyListener() {
        public void modifyText(ModifyEvent e) {
            validate(targetText, controlDec, drivableComboViewer);
        }
    });
    // Validate on device change
    drivableComboViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            validate(targetText, controlDec, drivableComboViewer);
        }
    });

    /*********************************************************************
     * Data binding
     *********************************************************************/
    Realm.runWithDefault(SWTObservables.getRealm(Display.getDefault()), new Runnable() {
        public void run() {
            bindingContext.bindValue(ViewersObservables.observeSingleSelection(drivableComboViewer),
                    BeansObservables.observeValue(parameter, "deviceId"), new UpdateValueStrategy(),
                    new UpdateValueStrategy());
            bindingContext.bindValue(SWTObservables.observeText(targetText, SWT.Modify),
                    BeansObservables.observeValue(parameter, "target"), new UpdateValueStrategy(),
                    new UpdateValueStrategy());

            /*********************************************************************
             * Default selection
             *********************************************************************/
            if (parameter.getDeviceId() == null) {
                if (drivableComboViewer.getCombo().getItemCount() > 0) {
                    drivableComboViewer.setSelection(new StructuredSelection(drivableComboViewer
                            .getElementAt(drivableComboViewer.getCombo().getItemCount() - 1)));
                }
            }
        }
    });
}

From source file:org.gumtree.gumnix.sics.ui.widgets.CommandControlWidget.java

License:Open Source License

protected void createUI() {
    /*********************************************************************
     * Initialise/*  w  w w  . j a va 2 s.  c om*/
     *********************************************************************/
    GridLayoutFactory.swtDefaults().numColumns(3).spacing(5, 2).applyTo(this);

    /*********************************************************************
     * Construct header
     *********************************************************************/
    final ICommandController commandController = getDataAccessManager().get(commandURI,
            ICommandController.class);

    Composite headerComposite = getToolkit().createComposite(this);
    GridDataFactory.fillDefaults().span(3, 1).applyTo(headerComposite);
    GridLayoutFactory.swtDefaults().numColumns(3).margins(0, 0).applyTo(headerComposite);

    Label label = getToolkit().createLabel(headerComposite, commandController.getId().toUpperCase());
    label.setFont(UIResources.getDefaultFont(SWT.BOLD));

    Label statusLabel = getToolkit().createLabel(headerComposite, "", SWT.CENTER);
    statusLabel.setFont(UIResources.getDefaultFont(SWT.BOLD));
    GridDataFactory.swtDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false).applyTo(statusLabel);
    uriMap.put(SicsDataAccessUtils.createControllerStatusURI(commandController), statusLabel);

    Button runButton = getToolkit().createButton(headerComposite, "Run", SWT.PUSH);
    runButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            try {
                commandController.asyncExecute();
            } catch (SicsIOException e1) {
                logger.error("Failed to run command" + commandController.getDeviceId(), e1);
            }
        }
    });
    GridDataFactory.swtDefaults().hint(60, 20).applyTo(runButton);

    /*********************************************************************
     * Construct arguments
     *********************************************************************/
    for (IComponentController childController : commandController.getChildControllers()) {
        if (childController instanceof IDynamicController) {
            final IDynamicController controller = (IDynamicController) childController;

            Label argLabel = getToolkit().createLabel(this, "");
            argLabel.setFont(UIResources.getDefaultFont(SWT.BOLD));
            uriMap.put(SicsDataAccessUtils.createControllerIdURI(controller), argLabel);
            GridDataFactory.swtDefaults().align(SWT.FILL, SWT.CENTER).applyTo(argLabel);

            URI controllerURI = SicsDataAccessUtils.createControllerURI(controller);
            Label currentLabel = getToolkit().createLabel(this, "", SWT.RIGHT);
            uriMap.put(controllerURI, currentLabel);
            GridDataFactory.swtDefaults().align(SWT.FILL, SWT.CENTER).hint(80, SWT.DEFAULT)
                    .applyTo(currentLabel);

            final URI controllerTargetURI = SicsDataAccessUtils.createControllerTargetURI(controller);
            String valuesString = null;
            try {
                valuesString = getDataAccessManager()
                        .get(SicsDataAccessUtils.createControllerValuesURI(controller), String.class);
            } catch (Exception e) {
            }
            if (valuesString != null) {
                final ComboViewer comboViewer = new ComboViewer(this, SWT.NONE);
                comboViewer.setContentProvider(new ArrayContentProvider());
                comboViewer.setLabelProvider(new LabelProvider());
                List<String> values = new ArrayList<String>();
                for (String value : valuesString.split(",")) {
                    values.add(value.trim());
                }
                comboViewer.setInput(values.toArray(new String[values.size()]));
                // Read from selection
                comboViewer.getCombo().addFocusListener(new FocusAdapter() {
                    public void focusLost(FocusEvent e) {
                        String selection = (String) ((IStructuredSelection) comboViewer.getSelection())
                                .getFirstElement();
                        if (selection != null) {
                            String currentValue = getDataAccessManager().get(controllerTargetURI, String.class);
                            // Drive only on change in target
                            if (!selection.equals(currentValue)) {
                                driveDevice(controller, selection);
                            }
                        }
                    }
                });
                // Read from custom text
                comboViewer.getCombo().addKeyListener(new KeyAdapter() {
                    public void keyReleased(KeyEvent e) {
                        if (e.keyCode == SWT.KEYPAD_CR || e.keyCode == SWT.CR) {
                            driveDevice(controller, comboViewer.getCombo().getText());
                        }
                    }
                });
                uriMap.put(controllerTargetURI, comboViewer);
                GridDataFactory.fillDefaults().hint(80, SWT.DEFAULT).applyTo(comboViewer.getControl());
            } else {
                final Text targetText = getToolkit().createText(this, "");
                uriMap.put(SicsDataAccessUtils.createControllerTargetURI(controller), targetText);
                GridDataFactory.fillDefaults().hint(80, SWT.DEFAULT).applyTo(targetText);
                targetText.addKeyListener(new KeyAdapter() {
                    public void keyReleased(KeyEvent e) {
                        if (e.keyCode == SWT.KEYPAD_CR || e.keyCode == SWT.CR) {
                            driveDevice(controller, targetText.getText());
                        }
                    }
                });
            }
        }
    }

    /*********************************************************************
     * Fetch initial values
     *********************************************************************/
    for (Entry<URI, Object> entry : uriMap.entrySet()) {
        URI uri = entry.getKey();
        Object widget = entry.getValue();
        Class<?> representation = String.class;
        if ("status".equals(uri.getQuery())) {
            representation = ControllerStatus.class;
        }
        updateWidgetData(uri, widget, getDataAccessManager().get(uri, representation));
    }

    /*********************************************************************
     * Finalise
     *********************************************************************/
    getParent().layout(true, true);
}

From source file:org.gumtree.workflow.ui.viewer.TaskToolbar.java

License:Open Source License

public void createControl(Composite parent) {
    /*********************************************************************
     * Initialise//from w  w w .  ja v  a2s . co  m
     *********************************************************************/
    resourceManager = new UIResourceManager(Activator.PLUGIN_ID, parent);
    handCursor = UIResources.getSystemCursor(SWT.CURSOR_HAND);
    searchPattern = new SearchPattern();

    SashForm sashForm = new SashForm(parent, SWT.VERTICAL);
    getToolkit().adapt(sashForm);
    Composite composite = getToolkit().createComposite(sashForm);
    GridLayoutFactory.swtDefaults().numColumns(2).applyTo(composite);

    /*********************************************************************
     * Row 1 - filter text
     *********************************************************************/
    filterText = getToolkit().createText(composite, DEFAULT_FILTER_TEXT, SWT.NONE);
    GridDataFactory.fillDefaults().grab(true, false).applyTo(filterText);

    Label clearButton = getToolkit().createLabel(composite, "");
    clearButton.setImage(InternalImage.CLEAR_EDIT.getImage());
    clearButton.setCursor(handCursor);

    /*********************************************************************
     * Row 2 - tag filter
     *********************************************************************/
    final ComboViewer comboViewer = new ComboViewer(composite, SWT.READ_ONLY);
    comboViewer.getCombo().setVisibleItemCount(25);
    comboViewer.setContentProvider(new ArrayContentProvider());
    comboViewer.setLabelProvider(new LabelProvider() {
        public String getText(Object element) {
            // Replace first letter to upper case
            return element.toString().substring(0, 1).toUpperCase() + element.toString().substring(1);
        }
    });
    List<String> tags = new ArrayList<String>(Arrays.asList(getTaskRegistry().getAvailableTags()));
    tags.add(0, "All");
    comboViewer.setInput(tags);
    GridDataFactory.fillDefaults().grab(true, false).span(2, 1).applyTo(comboViewer.getControl());

    /*********************************************************************
     * Row 3 - task viewer
     *********************************************************************/
    taskViewer = new TableViewer(composite, SWT.V_SCROLL | SWT.BORDER);
    //      taskViewer.getTable().setFont(resourceManager.createFont(SWT.BOLD));
    taskViewer.setContentProvider(new ArrayContentProvider());
    taskViewer.setLabelProvider(new LabelProvider() {
        public Image getImage(Object element) {
            return ((ITaskDescriptor) element).getIcon();
        }

        public String getText(Object element) {
            return " " + ((ITaskDescriptor) element).getLabel();
        }
    });
    taskViewer.setSorter(new ViewerSorter() {
        public int compare(Viewer viewer, Object e1, Object e2) {
            return ((ITaskDescriptor) e1).getLabel().compareTo(((ITaskDescriptor) e2).getLabel());
        }
    });
    taskViewer.addDragSupport(DND.DROP_MOVE, new Transfer[] { LocalSelectionTransfer.getTransfer() },
            new DragSourceAdapter() {
                public void dragFinished(DragSourceEvent event) {
                    LocalSelectionTransfer.getTransfer().setSelection(null);
                }

                public void dragSetData(DragSourceEvent event) {
                    if (LocalSelectionTransfer.getTransfer().isSupportedType(event.dataType)) {
                        LocalSelectionTransfer.getTransfer().setSelection(taskViewer.getSelection());
                    }
                }

            });
    GridDataFactory.fillDefaults().grab(true, true).span(2, 1).applyTo(taskViewer.getControl());

    /*********************************************************************
     * Row 4 - task description
     *********************************************************************/
    descForm = getToolkit().createScrolledForm(sashForm);
    GridLayoutFactory.swtDefaults().margins(0, 0).spacing(0, 0).applyTo(descForm.getBody());

    taskLabel = new CLabel(descForm.getBody(), SWT.WRAP);
    getToolkit().adapt(taskLabel);
    taskLabel.setFont(resourceManager.createDefaultFont(10, SWT.BOLD));
    GridDataFactory.fillDefaults().grab(true, false).hint(SWT.DEFAULT, 32).applyTo(taskLabel);

    descText = getToolkit().createFormText(descForm.getBody(), false);
    GridDataFactory.fillDefaults().grab(true, true).applyTo(descText);
    sashForm.setWeights(new int[] { 3, 1 });

    /*********************************************************************
     * Widget logic
     *********************************************************************/
    // Ensure default filter text is highlighted
    filterText.addMouseListener(new MouseAdapter() {
        public void mouseDown(MouseEvent e) {
            if (filterText.getText() != null && filterText.getText().equals(DEFAULT_FILTER_TEXT)) {
                filterText.selectAll();
            }
        }
    });

    // Clear filter text
    clearButton.addMouseListener(new MouseAdapter() {
        public void mouseDown(MouseEvent e) {
            filterText.setText("");
        }
    });

    // Append new task based on double click
    taskViewer.addDoubleClickListener(new IDoubleClickListener() {
        public void doubleClick(DoubleClickEvent event) {
            ITaskDescriptor desc = (ITaskDescriptor) ((IStructuredSelection) taskViewer.getSelection())
                    .getFirstElement();
            addNewTask(desc);
        }
    });

    // Update description based on selection
    taskViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            ITaskDescriptor desc = (ITaskDescriptor) ((IStructuredSelection) event.getSelection())
                    .getFirstElement();
            updateTaskDescription(desc, taskLabel, descText);
            // To ensure the form text wraps
            GridDataFactory.fillDefaults().grab(true, true).hint(descForm.getSize().x, SWT.DEFAULT)
                    .applyTo(descText);
            descForm.layout(true, true);
            descForm.reflow(true);
        }
    });

    filterText.addModifyListener(new ModifyListener() {
        public void modifyText(ModifyEvent e) {
            String tag = (String) ((IStructuredSelection) comboViewer.getSelection()).getFirstElement();
            setTasks(tag, filterText.getText());
        }
    });

    // Apply filter on tag
    comboViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            String tag = (String) ((IStructuredSelection) event.getSelection()).getFirstElement();
            setTasks(tag, filterText.getText());
        }
    });

    /*********************************************************************
     * Initialise widget value
     *********************************************************************/
    comboViewer.getCombo().select(0);
    taskViewer.setInput(taskRegistry.getAllTaskDescriptors());
}

From source file:org.gw4e.eclipse.wizard.template.TemplateComposite.java

License:Open Source License

private void addDefaultTargetFolderSection() {

    Label lblChooseATemplate = new Label(this, SWT.NONE);
    lblChooseATemplate.setText("Choose a target folder :");

    String[] temp = PreferenceManager.getDefaultAuthorizedFolderForGraphDefinition();
    Folder[] folders = new Folder[temp.length];
    int i = 0;//from ww w  .  j  a  v a 2  s.com
    for (String f : temp) {
        folders[i] = new Folder(f);
        i++;
    }

    ComboViewer viewerTarget = new ComboViewer(this, SWT.READ_ONLY);
    Combo combo = viewerTarget.getCombo();
    combo.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));

    viewerTarget.setContentProvider(ArrayContentProvider.getInstance());
    viewerTarget.setLabelProvider(new LabelProvider() {
        public String getText(Object element) {
            Folder folder = (Folder) element;
            return folder.getName();
        }
    });
    viewerTarget.setInput(folders);

    viewerTarget.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            IStructuredSelection selection = (IStructuredSelection) event.getSelection();
            if (selection.size() > 0) {
                setSelection(event.getSelection());
            }
        }
    });
    ISelection selection = new StructuredSelection(folders[0]);
    viewerTarget.setSelection(selection);
    setSelection(selection);
}

From source file:org.hawk.ui.emfresource.exeed.EClassSelectionDialog.java

License:Open Source License

@Override
protected Control createDialogArea(Composite parent) {
    final Composite container = new Composite(parent, SWT.NONE);
    final GridLayout layout = new GridLayout();
    layout.numColumns = 2;/*from   w w  w  .ja  v  a2s .co m*/
    container.setLayout(layout);

    final Label lblPackage = new Label(container, SWT.NONE);
    lblPackage.setText("Package:");

    final ComboViewer lPackages = new ComboViewer(container, SWT.BORDER);
    lPackages.setLabelProvider(new LabelProvider());
    lPackages.setContentProvider(new ArrayContentProvider());
    Object[] packages;
    try {
        packages = resource.getRegisteredMetamodels().toArray();
    } catch (Exception e) {
        Activator.logError("Could not retrieve registered metamodels", e);
        packages = new Object[0];
    }
    Arrays.sort(packages);
    lPackages.setInput(packages);
    lPackages.getCombo().setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));

    final Label lblClass = new Label(container, SWT.NONE);
    lblClass.setText("EClass:");

    final ComboViewer lClasses = new ComboViewer(container, SWT.DROP_DOWN);
    lClasses.setLabelProvider(new LabelProvider());
    lClasses.setContentProvider(new ArrayContentProvider());
    lClasses.setInput(new Object[0]);
    lClasses.getCombo().setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));

    lPackages.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            eClass = null;
            if (event.getSelection() instanceof IStructuredSelection) {
                final IStructuredSelection ssel = (IStructuredSelection) event.getSelection();
                if (ssel.getFirstElement() != null) {
                    final String packageURI = (String) ssel.getFirstElement();
                    ePackage = resource.getResourceSet().getPackageRegistry().getEPackage(packageURI);

                    final List<String> eClassNames = new ArrayList<>();
                    if (ePackage != null) {
                        for (EClassifier classifier : ePackage.getEClassifiers()) {
                            if (classifier instanceof EClass) {
                                eClassNames.add(classifier.getName());
                            }
                        }
                    }
                    final Object[] arrClassNames = eClassNames.toArray();
                    Arrays.sort(arrClassNames);
                    lClasses.setInput(arrClassNames);
                }
            }
            checkOKEnabled();
        }
    });

    lClasses.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            if (event.getSelection() instanceof IStructuredSelection) {
                final IStructuredSelection ssel = (IStructuredSelection) event.getSelection();
                if (ssel.getFirstElement() != null) {
                    final String className = (String) ssel.getFirstElement();
                    eClass = (EClass) ePackage.getEClassifier(className);
                }
            }

            checkOKEnabled();
        }
    });

    return container;
}

From source file:org.hibernate.eclipse.launch.AddPropertyDialog.java

License:Open Source License

private void initDefaultNames(ExporterFactory ef2, ComboViewer viewer) {
    viewer.setContentProvider(new IStructuredContentProvider() {

        ExporterFactory localEf;//w ww  .jav  a2  s .c om

        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
            localEf = (ExporterFactory) newInput;
        }

        public void dispose() {
            localEf = null;
        }

        public Object[] getElements(Object inputElement) {
            Iterator<Map.Entry<String, ExporterProperty>> set = localEf.getDefaultExporterProperties()
                    .entrySet().iterator();
            List<ExporterProperty> values = new ArrayList<ExporterProperty>(4);
            while (set.hasNext()) {
                Map.Entry<String, ExporterProperty> element = set.next();
                //if(!localEf.hasLocalValueFor((String) element.getKey())) {
                ExporterProperty exporterProperty = localEf.getExporterProperty(element.getKey());
                if (exporterProperty != null) {
                    values.add(exporterProperty);
                }
                //}
            }
            return values.toArray(new ExporterProperty[values.size()]);
        }
    });

    viewer.setLabelProvider(new ILabelProvider() {

        public void removeListener(ILabelProviderListener listener) {

        }

        public boolean isLabelProperty(Object element, String property) {
            return false;
        }

        public void dispose() {

        }

        public void addListener(ILabelProviderListener listener) {

        }

        public String getText(Object element) {
            ExporterProperty exporterProperty = ((ExporterProperty) element);
            return exporterProperty.getDescriptionForLabel();
        }

        public Image getImage(Object element) {
            return null;
        }

    });

    viewer.addSelectionChangedListener(new ISelectionChangedListener() {

        private SelectionListener getSelectionListener(ExporterProperty prop) {
            if (!("path".equals(prop.getType()) || "directory".equals(prop.getType()))) //$NON-NLS-1$//$NON-NLS-2$
                return null;
            final boolean isPath = "path".equals(prop.getType()); //$NON-NLS-1$
            return new SelectionListener() {
                public void widgetDefaultSelected(SelectionEvent e) {
                    widgetSelected(e);
                }

                public void widgetSelected(SelectionEvent e) {
                    String title = isPath ? HibernateConsoleMessages.ExporterSettingsTab_select_path
                            : HibernateConsoleMessages.ExporterSettingsTab_select_dir;
                    String description = isPath ? HibernateConsoleMessages.ExporterSettingsTab_select_path2
                            : HibernateConsoleMessages.ExporterSettingsTab_select_dir2;

                    MessageDialog dialog = new MessageDialog(getShell(), title, null, description,
                            MessageDialog.QUESTION,
                            new String[] { HibernateConsoleMessages.CodeGenerationSettingsTab_filesystem,
                                    HibernateConsoleMessages.CodeGenerationSettingsTab_workspace,
                                    IDialogConstants.CANCEL_LABEL },
                            1);
                    int answer = dialog.open();
                    String strPath = null;
                    if (answer == 0) { // filesystem
                        DirectoryDialog dialog2 = new DirectoryDialog(getShell());
                        dialog2.setText(title);
                        dialog2.setMessage(description);

                        String dir = dialog2.open();
                        if (dir != null) {
                            strPath = dir;
                        }
                    } else if (answer == 1) { // workspace                        
                        IPath[] paths = DialogSelectionHelper.chooseFileEntries(getShell(), (IPath) null,
                                new Path[0], title, description, new String[0], isPath, true, false);
                        if (paths != null && paths.length > 0) {
                            strPath = paths[0].toOSString();
                            if (isPath) {
                                for (int i = 1; i < paths.length; i++) {
                                    strPath += ';' + paths[i].toOSString();
                                }
                            }
                        }
                    } else
                        return;
                    String oldPath = ((Text) value).getText();
                    if (isPath && oldPath.trim().length() > 0 && strPath != null)
                        ((Text) value).setText(oldPath + ';' + strPath);
                    else {
                        if (strPath != null)
                            ((Text) value).setText(strPath);
                    }
                }
            };
        }

        public void selectionChanged(SelectionChangedEvent event) {
            if (value == null)
                return;
            IStructuredSelection iss = (IStructuredSelection) event.getSelection();
            if (!iss.isEmpty()) {
                ExporterProperty prop = (ExporterProperty) iss.getFirstElement();
                if ("boolean".equalsIgnoreCase(prop.getType())) { //$NON-NLS-1$
                    disposeBrowseButton();
                    createComboValueComposite(new String[] { String.valueOf(true), String.valueOf(false) });
                    ((Combo) value).select(
                            Boolean.valueOf(ef.getPropertyValue(prop.getName())).booleanValue() ? 0 : 1);
                } else if ("directory".equalsIgnoreCase(prop.getType())//$NON-NLS-1$
                        || "path".equalsIgnoreCase(prop.getType())) { //$NON-NLS-1$
                    disposeBrowseButton();
                    createTextValueComposite(1);
                    ((Text) value).setText(ef.getPropertyValue(prop.getName()));
                    createBrowseButton(getSelectionListener(prop), prop);
                } else {
                    disposeBrowseButton();
                    createTextValueComposite(2);
                    ((Text) value).setText(ef.getPropertyValue(prop.getName()));
                }
            } else {
                createTextValueComposite(2);
            }
        }
    });
    viewer.setInput(ef);
    if (viewer.getCombo().getItemCount() > 0) {
        Object selected = null;
        if (selectedPropertyId != null) {
            selected = ef.getExporterProperty(selectedPropertyId);
        } else {
            selected = viewer.getElementAt(0);
        }
        viewer.setSelection(new StructuredSelection(selected));
        viewer.getCombo().select(viewer.getCombo().getSelectionIndex());
    }
}

From source file:org.jboss.bpmn2.editor.ui.property.MainPropertiesComposite.java

License:Open Source License

private void createSingleItemEditor(final EStructuralFeature reference, Object eGet, Collection values) {
    final ComboViewer combo = new ComboViewer(this, SWT.BORDER);
    Combo c = combo.getCombo();
    combo.setLabelProvider(LABEL_PROVIDER);
    c.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1));
    toolkit.adapt(c, true, true);/*from  ww  w  . j  av a 2s .c  o m*/
    widgets.add(c);

    List<Object> l = null;

    if (values != null) {
        l = Arrays.asList(values.toArray());
    } else if (modelHandler != null) {
        l = (List<Object>) modelHandler.getAll(reference.getEType().getInstanceClass());
    }

    combo.add("");
    combo.add(l.toArray());
    if (eGet != null) {
        combo.setSelection(new StructuredSelection(eGet));
    }

    combo.addSelectionChangedListener(new ISelectionChangedListener() {

        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            ISelection selection = combo.getSelection();
            if (selection instanceof StructuredSelection) {
                Object firstElement = ((StructuredSelection) selection).getFirstElement();
                if (firstElement instanceof EObject) {
                    updateEObject(firstElement);
                } else {
                    updateEObject(null);
                }
            }
        }

        public void updateEObject(final Object result) {
            TransactionalEditingDomain domain = bpmn2Editor.getEditingDomain();
            domain.getCommandStack().execute(new RecordingCommand(domain) {
                @Override
                protected void doExecute() {
                    be.eSet(reference, result);
                }
            });
        }
    });
}

From source file:org.jboss.mapper.eclipse.internal.editor.AddCustomFunctionDialog.java

License:Open Source License

@Override
protected Control createDialogArea(final Composite parent) {
    setTitle("Add Custom Operation");
    setMessage("Select or create the Java class and method that implements the custom operation");
    setHelpAvailable(false);//from   ww w  .ja v a2s. c  om
    final Composite area = new Composite(parent, SWT.NONE);
    area.setLayout(GridLayoutFactory.swtDefaults().numColumns(3).create());
    area.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create());
    Label label = new Label(area, SWT.NONE);
    label.setText("Class:");
    final Button classButton = new Button(area, SWT.NONE);
    classButton.setLayoutData(
            GridDataFactory.swtDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false).create());
    classButton.setAlignment(SWT.LEFT);
    classButton.setText("< Click to select an existing class >");
    final Button newClassButton = new Button(area, SWT.NONE);
    newClassButton
            .setImage(new DecorationOverlayIcon(JavaUI.getSharedImages().getImage(ISharedImages.IMG_OBJS_CLASS),
                    Util.Decorations.ADD, IDecoration.TOP_RIGHT).createImage());
    label = new Label(area, SWT.NONE);
    label.setText("Method:");
    final ComboViewer methodComboViewer = new ComboViewer(area, SWT.READ_ONLY);
    methodComboViewer.getCombo().setLayoutData(
            GridDataFactory.swtDefaults().span(2, 1).align(SWT.FILL, SWT.CENTER).grab(true, false).create());
    methodComboViewer.setContentProvider(new ArrayContentProvider());
    methodComboViewer.setLabelProvider(new LabelProvider() {

        @Override
        public String getText(final Object element) {
            final IMethod method = (IMethod) element;
            try {
                final StringBuilder builder = new StringBuilder();
                builder.append(Signature.getSignatureSimpleName(method.getReturnType()));
                builder.append(" ");
                builder.append(method.getElementName());
                builder.append("(");
                final String[] types = method.getParameterTypes();
                final String[] names = method.getParameterNames();
                boolean hasPrm = false;
                for (int ndx = 0; ndx < types.length; ndx++) {
                    if (hasPrm) {
                        builder.append(", ");
                    } else {
                        builder.append(" ");
                        hasPrm = true;
                    }
                    builder.append(Signature.getSignatureSimpleName(types[ndx]));
                    builder.append(" ");
                    builder.append(names[ndx]);
                }
                if (hasPrm) {
                    builder.append(" ");
                }
                builder.append(")");
                return builder.toString();
            } catch (final JavaModelException e) {
                return "";
            }
        }
    });
    methodComboViewer.setComparator(new ViewerComparator() {

        @Override
        public int compare(final Viewer viewer, final Object object1, final Object object2) {
            final IMethod method1 = (IMethod) object1;
            final IMethod method2 = (IMethod) object2;
            int comparison = method1.getElementName().compareTo(method2.getElementName());
            if (comparison != 0) {
                return comparison;
            }
            final String[] types1 = method1.getParameterTypes();
            final String[] types2 = method2.getParameterTypes();
            comparison = types1.length - types2.length;
            if (comparison != 0) {
                return comparison;
            }
            for (int ndx = 0; ndx < types1.length; ndx++) {
                comparison = Signature.getSignatureSimpleName(types1[ndx])
                        .compareTo(Signature.getSignatureSimpleName(types2[ndx]));
                if (comparison != 0) {
                    return comparison;
                }
            }
            return 0;
        }
    });
    methodComboViewer.addSelectionChangedListener(new ISelectionChangedListener() {

        @Override
        public void selectionChanged(final SelectionChangedEvent event) {
            methodSelected(methodComboViewer);
        }
    });
    classButton.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(final SelectionEvent event) {
            selectClass(classButton, methodComboViewer);
        }
    });
    newClassButton.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(final SelectionEvent event) {
            createNewClass(classButton, methodComboViewer);
        }
    });
    return area;
}