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.jboss.mapper.eclipse.internal.editor.AddCustomOperationDialog.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 w ww  . j a  v  a 2 s.  c  o m
    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.ADD_OVERLAY_IMAGE_DESCRIPTOR, 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;
}

From source file:org.jboss.mapper.eclipse.internal.wizards.FirstPage.java

License:Open Source License

void createFileControls(final Group group, final Label pathLabel, final String schemaType, final Text pathText,
        final Button pathButton, final Label typeLabel, final ComboViewer typeComboViewer) {
    group.setLayoutData(/*from  www.j  a v  a 2  s.  c o m*/
            GridDataFactory.swtDefaults().grab(true, false).span(3, 1).align(SWT.FILL, SWT.CENTER).create());
    group.setLayout(GridLayoutFactory.swtDefaults().spacing(0, 5).numColumns(3).create());
    group.setText(schemaType + " File");
    pathLabel.setText("File path:");
    pathText.setLayoutData(
            GridDataFactory.swtDefaults().grab(true, false).align(SWT.FILL, SWT.CENTER).create());
    pathButton.setText("...");
    typeLabel.setText("Type:");
    typeComboViewer.getCombo()
            .setLayoutData(GridDataFactory.swtDefaults().span(2, 1).grab(true, false).create());
    pathButton.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(final SelectionEvent event) {
            final String path = Util.selectFile(getShell(), model.getProject(), schemaType);
            if (path != null) {
                pathText.setText(path);
                if (typeComboViewer.getSelection().isEmpty()) {
                    final String ext = path.substring(path.lastIndexOf('.') + 1).toLowerCase();
                    switch (ext) {
                    case "class":
                        typeComboViewer.setSelection(new StructuredSelection(ModelType.CLASS));
                        break;
                    case "java":
                        typeComboViewer.setSelection(new StructuredSelection(ModelType.JAVA));
                        break;
                    case "json":
                        try (InputStream stream = model.getProject().getFile(path).getContents()) {
                            char quote = '\0';
                            final StringBuilder builder = new StringBuilder();
                            ModelType type = ModelType.JSON;
                            for (char chr = (char) stream.read(); chr != -1; chr = (char) stream.read()) {
                                // Find quote
                                if (quote == '\0') {
                                    if (chr == '"' || chr == '\'') {
                                        quote = chr;
                                    }
                                } else if (chr == quote) {
                                    final String keyword = builder.toString();
                                    switch (keyword) {
                                    case "$schema":
                                    case "title":
                                    case "type":
                                    case "id":
                                        type = ModelType.JSON_SCHEMA;
                                        break;
                                    default:
                                        // nothing
                                    }
                                    break;
                                } else {
                                    builder.append(chr);
                                }
                            }
                            typeComboViewer.setSelection(new StructuredSelection(type));
                        } catch (IOException | CoreException e) {
                            Activator.error(e);
                            typeComboViewer.setSelection(new StructuredSelection(ModelType.JSON));
                        }
                        break;
                    case "xml":
                        typeComboViewer.setSelection(new StructuredSelection(ModelType.XML));
                        break;
                    case "xsd":
                        typeComboViewer.setSelection(new StructuredSelection(ModelType.XSD));
                        break;
                    default:
                        break;
                    }
                }
            }
        }
    });
}

From source file:org.jboss.mapper.eclipse.internal.wizards.FirstPage.java

License:Open Source License

void createPage(final Composite parent) {

    final Composite page = new Composite(parent, SWT.NONE);
    setControl(page);//ww w  .  ja v a  2 s. c  o m
    page.setLayout(GridLayoutFactory.swtDefaults().spacing(0, 5).numColumns(3).create());

    // Create project widgets
    Label label = new Label(page, SWT.NONE);
    label.setText("Project:");
    label.setToolTipText("The project that will contain the mapping file.");
    final ComboViewer projectViewer = new ComboViewer(new Combo(page, SWT.READ_ONLY));
    projectViewer.getCombo().setLayoutData(
            GridDataFactory.swtDefaults().grab(true, false).span(2, 1).align(SWT.FILL, SWT.CENTER).create());
    projectViewer.getCombo().setToolTipText(label.getToolTipText());
    projectViewer.setLabelProvider(new LabelProvider() {

        @Override
        public String getText(final Object element) {
            return ((IProject) element).getName();
        }
    });

    // Create ID widgets
    label = new Label(page, SWT.NONE);
    label.setText("ID:");
    label.setToolTipText("The transformation ID that will be shown in the Fuse editor");
    final Text idText = new Text(page, SWT.BORDER);
    idText.setLayoutData(
            GridDataFactory.swtDefaults().span(2, 1).grab(true, false).align(SWT.FILL, SWT.CENTER).create());
    idText.setToolTipText(label.getToolTipText());

    // Create file path widgets
    label = new Label(page, SWT.NONE);
    label.setText("Dozer File path: ");
    label.setToolTipText("The path to the Dozer transformation file.");
    final Text pathText = new Text(page, SWT.BORDER);
    pathText.setLayoutData(
            GridDataFactory.swtDefaults().span(2, 1).grab(true, false).align(SWT.FILL, SWT.CENTER).create());
    pathText.setToolTipText(label.getToolTipText());

    // Create camel file path widgets
    label = new Label(page, SWT.NONE);
    label.setText("Camel File path: ");
    label.setToolTipText("Path to the Camel configuration file.");
    final Text camelFilePathText = new Text(page, SWT.BORDER);
    camelFilePathText.setLayoutData(
            GridDataFactory.swtDefaults().span(1, 1).grab(true, false).align(SWT.FILL, SWT.CENTER).create());
    camelFilePathText.setToolTipText(label.getToolTipText());

    final Button camelPathButton = new Button(page, SWT.NONE);
    camelPathButton.setText("...");
    camelPathButton.setToolTipText("Browse to select an available Camel file.");
    camelPathButton.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(final SelectionEvent event) {
            final IResource res = Util.selectResourceFromWorkspace(getShell(), ".xml", model.getProject());
            if (res != null) {
                final IPath respath = JavaUtil.getJavaPathForResource(res);
                final String path = respath.makeRelative().toString();
                model.setCamelFilePath(path);
                camelFilePathText.setText(path);
                camelFilePathText.notifyListeners(SWT.Modify, new Event());
            }
        }
    });

    // Create source widgets
    Group group = new Group(page, SWT.SHADOW_ETCHED_IN);
    Label fileLabel = new Label(group, SWT.NONE);
    final Text sourcePathText = new Text(group, SWT.BORDER);
    final Button sourcePathButton = new Button(group, SWT.NONE);
    Label typeLabel = new Label(group, SWT.NONE);
    final ComboViewer sourceTypeViewer = new ComboViewer(new Combo(group, SWT.READ_ONLY));
    createFileControls(group, fileLabel, "Source", sourcePathText, sourcePathButton, typeLabel,
            sourceTypeViewer);

    // Create target widgets
    group = new Group(page, SWT.SHADOW_ETCHED_IN);
    fileLabel = new Label(group, SWT.NONE);
    final Text targetPathText = new Text(group, SWT.BORDER);
    final Button targetPathButton = new Button(group, SWT.NONE);
    typeLabel = new Label(group, SWT.NONE);
    final ComboViewer targetTypeViewer = new ComboViewer(new Combo(group, SWT.READ_ONLY));
    createFileControls(group, fileLabel, "Target", targetPathText, targetPathButton, typeLabel,
            targetTypeViewer);

    // Bind project widget to UI model
    projectViewer.setContentProvider(new ObservableListContentProvider());
    IObservableValue widgetValue = ViewerProperties.singleSelection().observe(projectViewer);
    IObservableValue modelValue = BeanProperties.value(Model.class, "project").observe(model);
    UpdateValueStrategy strategy = new UpdateValueStrategy();
    strategy.setBeforeSetValidator(new IValidator() {

        @Override
        public IStatus validate(final Object value) {
            if (value == null) {
                sourcePathButton.setEnabled(false);
                targetPathButton.setEnabled(false);
                return ValidationStatus.error("A project must be selected");
            }
            sourcePathButton.setEnabled(true);
            targetPathButton.setEnabled(true);
            return ValidationStatus.ok();
        }
    });
    ControlDecorationSupport.create(context.bindValue(widgetValue, modelValue, strategy, null), SWT.LEFT);
    projectViewer.setInput(Properties.selfList(IProject.class).observe(model.projects));

    // Bind transformation ID widget to UI model
    widgetValue = WidgetProperties.text(SWT.Modify).observe(idText);
    modelValue = BeanProperties.value(Model.class, "id").observe(model);
    strategy = new UpdateValueStrategy();
    strategy.setBeforeSetValidator(new IValidator() {

        @Override
        public IStatus validate(final Object value) {
            if (value == null || value.toString().trim().isEmpty()) {
                return ValidationStatus.error("A transformation ID must be supplied");
            }
            final String id = value.toString().trim();
            final StringCharacterIterator iter = new StringCharacterIterator(id);
            for (char chr = iter.first(); chr != StringCharacterIterator.DONE; chr = iter.next()) {
                if (!Character.isJavaIdentifierPart(chr)) {
                    return ValidationStatus.error("The transformation ID may only contain letters, "
                            + "digits, currency symbols, or underscores");
                }
            }
            if (model.camelConfigBuilder != null) {
                for (final String endpointId : model.camelConfigBuilder.getTransformEndpointIds()) {
                    if (id.equalsIgnoreCase(endpointId)) {
                        return ValidationStatus.error("A transformation with the supplied ID already exists");
                    }
                }
            }
            return ValidationStatus.ok();
        }
    });
    ControlDecorationSupport.create(context.bindValue(widgetValue, modelValue, strategy, null), SWT.LEFT);

    // Bind file path widget to UI model
    widgetValue = WidgetProperties.text(SWT.Modify).observe(pathText);
    modelValue = BeanProperties.value(Model.class, "filePath").observe(model);
    strategy = new UpdateValueStrategy();
    strategy.setBeforeSetValidator(new IValidator() {

        @Override
        public IStatus validate(final Object value) {
            if (value == null || value.toString().trim().isEmpty()) {
                return ValidationStatus.error("The transformation file path must be supplied");
            }
            if (!(value.toString().trim().isEmpty())) {
                final IFile file = model.getProject().getFile(Util.RESOURCES_PATH + (String) value);
                if (file.exists()) {
                    return ValidationStatus.warning("A transformation file with that name already exists.");
                }
            }
            return ValidationStatus.ok();
        }
    });
    ControlDecorationSupport.create(context.bindValue(widgetValue, modelValue, strategy, null), SWT.LEFT);

    // Bind camel file path widget to UI model
    widgetValue = WidgetProperties.text(SWT.Modify).observe(camelFilePathText);
    modelValue = BeanProperties.value(Model.class, "camelFilePath").observe(model);
    strategy = new UpdateValueStrategy();
    strategy.setBeforeSetValidator(new IValidator() {

        @Override
        public IStatus validate(final Object value) {
            if (value == null || value.toString().trim().isEmpty()) {
                return ValidationStatus.error("The Camel file path must be supplied");
            }
            if (!(value.toString().trim().isEmpty())) {
                File testFile = null;
                final String path = (String) value;
                testFile = new File(model.getProject().getFile(path).getLocationURI());
                if (!testFile.exists()) {
                    testFile = new File(
                            model.getProject().getFile(Util.RESOURCES_PATH + path).getLocationURI());
                    if (!testFile.exists()) {
                        return ValidationStatus.error("The Camel file path must be a valid file location");
                    }
                }
                try {
                    CamelConfigBuilder.loadConfig(testFile);
                } catch (final Exception e) {
                    return ValidationStatus.error("The Camel file path must refer to a valid Camel file");
                }
            }
            return ValidationStatus.ok();
        }
    });
    ControlDecorationSupport.create(context.bindValue(widgetValue, modelValue, strategy, null),
            SWT.LEFT | SWT.TOP);

    final ControlDecorationUpdater sourceUpdator = new ControlDecorationUpdater();
    final ControlDecorationUpdater targetUpdator = new ControlDecorationUpdater();

    // Bind source file path widget to UI model
    widgetValue = WidgetProperties.text(SWT.Modify).observe(sourcePathText);
    modelValue = BeanProperties.value(Model.class, "sourceFilePath").observe(model);
    strategy = new UpdateValueStrategy();
    strategy.setBeforeSetValidator(new IValidator() {

        @Override
        public IStatus validate(final Object value) {
            final String path = value == null ? null : value.toString().trim();
            if (path == null || path.isEmpty()) {
                return ValidationStatus
                        .error("A source file path must be supplied for the supplied target file path");
            }
            if (model.getProject().findMember(path) == null) {
                return ValidationStatus.error("Unable to find a source file with the supplied path");
            }
            return ValidationStatus.ok();
        }
    });
    ControlDecorationSupport.create(context.bindValue(widgetValue, modelValue, strategy, null), SWT.LEFT, null,
            sourceUpdator);

    // Bind target file path widget to UI model
    widgetValue = WidgetProperties.text(SWT.Modify).observe(targetPathText);
    modelValue = BeanProperties.value(Model.class, "targetFilePath").observe(model);
    strategy = new UpdateValueStrategy();
    strategy.setBeforeSetValidator(new IValidator() {

        @Override
        public IStatus validate(final Object value) {
            final String path = value == null ? null : value.toString().trim();
            if (path == null || path.isEmpty()) {
                return ValidationStatus
                        .error("A target file path must be supplied for the supplied source file path");
            }
            if (model.getProject().findMember(path) == null) {
                return ValidationStatus.error("Unable to find a target file with the supplied path");
            }
            return ValidationStatus.ok();
        }
    });
    ControlDecorationSupport.create(context.bindValue(widgetValue, modelValue, strategy, null), SWT.LEFT, null,
            targetUpdator);

    // Bind source type widget to UI model
    sourceTypeViewer.setContentProvider(new ObservableListContentProvider());
    widgetValue = ViewerProperties.singleSelection().observe(sourceTypeViewer);
    modelValue = BeanProperties.value(Model.class, "sourceType").observe(model);
    context.bindValue(widgetValue, modelValue);
    sourceTypeViewer.setInput(Properties.selfList(ModelType.class).observe(Arrays.asList(ModelType.values())));

    // Bind target type widget to UI model
    targetTypeViewer.setContentProvider(new ObservableListContentProvider());
    widgetValue = ViewerProperties.singleSelection().observe(targetTypeViewer);
    modelValue = BeanProperties.value(Model.class, "targetType").observe(model);
    context.bindValue(widgetValue, modelValue);
    targetTypeViewer.setInput(Properties.selfList(ModelType.class).observe(Arrays.asList(ModelType.values())));

    // Set focus to appropriate control
    page.addPaintListener(new PaintListener() {

        @Override
        public void paintControl(final PaintEvent event) {
            if (model.getProject() == null) {
                projectViewer.getCombo().setFocus();
            } else {
                idText.setFocus();
            }
            page.removePaintListener(this);
        }
    });

    for (final Object observable : context.getValidationStatusProviders()) {
        ((Binding) observable).getTarget().addChangeListener(new IChangeListener() {

            @Override
            public void handleChange(final ChangeEvent event) {
                validatePage();
            }
        });
    }

    if (model.getProject() == null) {
        validatePage();
    } else {
        projectViewer.setSelection(new StructuredSelection(model.getProject()));
    }
}

From source file:org.jboss.tools.fuse.transformation.editor.internal.AddCustomFunctionDialog.java

License:Open Source License

@Override
protected void constructContents(final Composite parent) {
    parent.setLayout(GridLayoutFactory.swtDefaults().numColumns(3).create());
    Label label = new Label(parent, SWT.NONE);
    label.setText("Class:");
    final Button classButton = new Button(parent, SWT.NONE);
    classButton.setLayoutData(//  ww  w  . j a va 2 s  .  c o  m
            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(parent, SWT.NONE);
    newClassButton
            .setImage(new DecorationOverlayIcon(JavaUI.getSharedImages().getImage(ISharedImages.IMG_OBJS_CLASS),
                    Decorations.ADD, IDecoration.TOP_RIGHT).createImage());
    label = new Label(parent, SWT.NONE);
    label.setText("Method:");
    final ComboViewer methodComboViewer = new ComboViewer(parent, 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);
        }
    });
}

From source file:org.jboss.tools.fuse.transformation.editor.internal.AddCustomTransformationDialog.java

License:Open Source License

@Override
protected void constructContents(Composite parent) {
    parent.setLayout(GridLayoutFactory.swtDefaults().numColumns(3).create());
    Label label = new Label(parent, SWT.NONE);
    label.setText(Messages.AddCustomTransformationDialog_label_Class);
    final Button classButton = new Button(parent, SWT.NONE);
    classButton.setLayoutData(//from w  ww.j a va2  s  .co  m
            GridDataFactory.swtDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false).create());
    classButton.setAlignment(SWT.LEFT);
    classButton.setText(Messages.AddCustomTransformationDialog_button_selectAnExistingClass);
    Button newClassButton = new Button(parent, SWT.NONE);
    newClassButton
            .setImage(new DecorationOverlayIcon(JavaUI.getSharedImages().getImage(ISharedImages.IMG_OBJS_CLASS),
                    Decorations.ADD, IDecoration.TOP_RIGHT).createImage());
    label = new Label(parent, SWT.NONE);
    label.setText(Messages.AddCustomTransformationDialog_label_method);
    final ComboViewer methodComboViewer = new ComboViewer(parent, 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(Object element) {
            IMethod method = (IMethod) element;
            try {
                StringBuilder builder = new StringBuilder();
                builder.append(Signature.getSignatureSimpleName(method.getReturnType()));
                builder.append(" "); //$NON-NLS-1$
                builder.append(method.getElementName());
                builder.append("("); //$NON-NLS-1$
                String[] types = method.getParameterTypes();
                String[] names = method.getParameterNames();
                boolean hasPrm = false;
                for (int ndx = 0; ndx < types.length; ndx++) {
                    if (hasPrm)
                        builder.append(", "); //$NON-NLS-1$
                    else {
                        builder.append(" "); //$NON-NLS-1$
                        hasPrm = true;
                    }
                    builder.append(Signature.getSignatureSimpleName(types[ndx]));
                    builder.append(" "); //$NON-NLS-1$
                    builder.append(names[ndx]);
                }
                if (hasPrm)
                    builder.append(" "); //$NON-NLS-1$
                builder.append(")"); //$NON-NLS-1$
                return builder.toString();
            } catch (JavaModelException e) {
                return ""; //$NON-NLS-1$
            }
        }
    });
    methodComboViewer.setComparator(new ViewerComparator() {

        @Override
        public int compare(Viewer viewer, Object object1, Object object2) {
            IMethod method1 = (IMethod) object1;
            IMethod method2 = (IMethod) object2;
            int comparison = method1.getElementName().compareTo(method2.getElementName());
            if (comparison != 0)
                return comparison;
            String[] types1 = method1.getParameterTypes();
            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(SelectionChangedEvent event) {
            methodSelected(methodComboViewer);
        }
    });
    classButton.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent event) {
            try {
                selectClass(classButton, methodComboViewer);
            } catch (JavaModelException e) {
                Activator.error(e);
            }
        }
    });
    newClassButton.addSelectionListener(new SelectionAdapter() {

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

From source file:org.kalypso.contribs.eclipse.ui.pager.ElementsComposite.java

License:Open Source License

private void addCombo(final Composite body) {
    final ComboViewer viewer = new ComboViewer(body, SWT.SINGLE | SWT.READ_ONLY);
    viewer.getCombo().setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false));
    viewer.setContentProvider(new ArrayContentProvider());
    viewer.setLabelProvider(new LabelProvider() {
        @Override/* ww  w . j a  v  a  2s. c  o m*/
        public String getText(final Object element) {
            if (element instanceof IElementPage) {
                final IElementPage page = (IElementPage) element;

                return page.getLabel();
            }
            return super.getText(element);
        }
    });

    viewer.setInput(m_pages);
    viewer.setSelection(new StructuredSelection(m_selectedPage));

    viewer.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(final SelectionChangedEvent event) {
            final IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
            final Object element = selection.getFirstElement();
            if (element instanceof IElementPage) {
                m_selectedPage = (IElementPage) element;

                fireSelectedPageChanged(m_selectedPage);
            }

            update();
        }
    });

    fireSelectedPageChanged(m_selectedPage);
}

From source file:org.kalypso.kalypsomodel1d2d.ui.map.channeledit.ProfileSelectionSection.java

License:Open Source License

private Control createThemeCombo(final FormToolkit toolkit, final Composite parent, final ChannelEditData data,
        final DatabindingForm binding) {
    final ComboViewer themeChooser = new ComboViewer(parent, SWT.DROP_DOWN | SWT.READ_ONLY);
    toolkit.adapt(themeChooser.getControl(), true, false);

    themeChooser.setContentProvider(new ArrayContentProvider());
    themeChooser.setLabelProvider(new LabelProvider());

    /* Binding */
    final IObservableValue targetInput = ViewersObservables.observeInput(themeChooser);
    final IObservableValue modelInput = BeansObservables.observeValue(data,
            ChannelEditData.PROPERTY_PROFILE_THEME_INPUT);
    binding.bindValue(targetInput, modelInput);

    final IObservableValue targetSelection = ViewersObservables.observeSinglePostSelection(themeChooser);
    final IObservableValue modelSelection = BeansObservables.observeValue(data,
            ChannelEditData.PROPERTY_PROFILE_THEME_SELECTED);
    binding.bindValue(targetSelection, modelSelection);

    final IObservableValue targetEnablement = SWTObservables.observeEnabled(themeChooser.getCombo());
    final IObservableValue modelEnablement = BeansObservables.observeValue(data,
            ChannelEditData.PROPERTY_PROFILE_THEME_SELECTION_ENABLED);
    binding.bindValue(targetEnablement, modelEnablement);

    return themeChooser.getControl();
}

From source file:org.kalypso.model.wspm.pdb.ui.internal.admin.waterbody.imports.AbstractSelectAttributesPage.java

License:Open Source License

protected final <T> ImportAttributeInfo<T> createAttributeControl(final String label, final String property,
        final Composite parent, final boolean optional) {
    new Label(parent, SWT.NONE).setText(label);

    final ComboViewer viewer = new ComboViewer(parent, SWT.DROP_DOWN | SWT.READ_ONLY);
    final Combo combo = viewer.getCombo();
    combo.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));

    viewer.setLabelProvider(new DBFFieldLabelProvider());
    viewer.setContentProvider(new ArrayContentProvider());
    viewer.setComparator(new ViewerComparator());

    final ImportAttributeInfo<T> info = new ImportAttributeInfo<>(property, optional);

    m_infoComboMap.put(info, viewer);/*ww w.  java2s.  c  om*/

    final IViewerObservableValue target = ViewersObservables.observeSinglePostSelection(viewer);
    final IObservableValue model = BeansObservables.observeValue(info, ImportAttributeInfo.PROPERTY_FIELD);

    final DataBinder binder = new DataBinder(target, model);
    if (!optional) {
        final String message = String.format(Messages.getString("AbstractSelectAttributesPage.3"), label); //$NON-NLS-1$
        final ObjectNotSameValidator validator = new ObjectNotSameValidator(IStatus.ERROR, message,
                ImportAttributeInfo.FIELD_USE_DEFAULT);
        binder.addTargetAfterGetValidator(validator);
        binder.addModelBeforeSetValidator(validator);
    }
    m_binding.bindValue(binder);

    return info;
}

From source file:org.kalypso.model.wspm.tuhh.ui.panel.EnergylossPanel.java

License:Open Source License

private void buildCombo(final IDataBinding dataBinding, final EnergylossDataModel model) {
    final ComboViewer elType = new ComboViewer(m_propPanel, SWT.BORDER);
    elType.setContentProvider(new ArrayContentProvider());
    elType.setInput(ArrayUtils.remove(ENERGYLOSS_TYPE.values(), 0));
    final Combo combo = elType.getCombo();
    combo.setLayoutData(new GridData(GridData.FILL, GridData.CENTER, true, false));
    combo.setToolTipText(Messages.getString("org.kalypso.model.wspm.tuhh.ui.panel.EnergylossPanel.2")); //$NON-NLS-1$

    // FIXME: makes no sense: data binding, but also a focus listener ?!?
    combo.addFocusListener(new FocusListener() {
        @Override/*w w w . java2s . c  o  m*/
        public void focusGained(final FocusEvent e) {
            //
        }

        @Override
        public void focusLost(final FocusEvent e) {
            if (!(e.getSource() instanceof Combo)) {
                return;
            }

            if (((Combo) e.getSource()).getSelectionIndex() > -1 || ((Combo) e.getSource()).getText() != "") //$NON-NLS-1$
            {
                model.fireObjectChange(((Combo) e.getSource()).getText(), model.getEnergylossValue());
            } else if (((Combo) e.getSource()).getText() == "") //$NON-NLS-1$
            {
                model.removeEnergyloss();
            }
        }
    });
    combo.addFocusListener(getComboMessageListener());
    m_toolkit.adapt(elType.getCombo());
    final DataBinder binder = bind(elType.getCombo(), model);

    dataBinding.bindValue(binder);
    m_comboFocusListener.init(combo);
}

From source file:org.kalypso.model.wspm.tuhh.ui.panel.roughness.pages.RoughnessClassesPage.java

License:Open Source License

@Override
protected void build(final Composite body, final FormToolkit toolkit, final String label,
        final String property) {
    toolkit.createLabel(body, label);/*from   w  w  w  .j av  a 2  s.c  o m*/

    final ComboViewer viewer = new ComboViewer(body, SWT.READ_ONLY | SWT.SINGLE | SWT.BORDER);
    viewer.getCombo().setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
    viewer.setContentProvider(new ArrayContentProvider());
    viewer.setLabelProvider(
            new ClassificationLabelProvider(getProfile(), IWspmPointProperties.POINT_PROPERTY_ROUGHNESS_CLASS));

    viewer.setInput(getRoughnessClasses());

    final IObservableValue viewerSelection = ViewersObservables.observeSingleSelection(viewer);
    final IObservableValue modelValue = getModel().getObservableValue(property);

    getBinding().bindValue(new DataBinder(viewerSelection, modelValue));

}