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

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

Introduction

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

Prototype

@Override
public void setLabelProvider(IBaseLabelProvider labelProvider) 

Source Link

Document

The list viewer implementation of this Viewer framework method ensures that the given label provider is an instance of ILabelProvider.

Usage

From source file:eu.esdihumboldt.hale.io.csv.ui.SchemaTypePage.java

License:Open Source License

/**
 * @see HaleWizardPage#onShowPage(boolean)
 *//*from  ww  w . java  2  s .c om*/
@Override
protected void onShowPage(boolean firstShow) {

    LocatableInputSupplier<? extends InputStream> source = getWizard().getProvider().getSource();

    int indexStart = 0;
    int indexEnd = source.getLocation().getPath().length() - 1;

    if (source.getLocation().getPath() != null) {
        indexStart = source.getLocation().getPath().lastIndexOf("/") + 1;
        if (source.getLocation().getPath().lastIndexOf(".") >= 0) {
            indexEnd = source.getLocation().getPath().lastIndexOf(".");
        }

        defaultString = source.getLocation().getPath().substring(indexStart, indexEnd);
        sfe.setStringValue(defaultString);
        setPageComplete(sfe.isValid());
    }

    try {
        CSVReader reader = CSVUtil.readFirst(getWizard().getProvider());

        String[] firstLine = reader.readNext();
        final String[] nextLine = reader.readNext();

        int length = 0;
        if (firstLine.length != 0) {
            length = firstLine.length;
        }

        // disposes all property names if the read configuration has changed
        if (last_firstLine != null && !Arrays.equals(firstLine, last_firstLine)) {
            for (TypeNameField properties : fields) {
                properties.dispose();
                properties.getTextControl(group).dispose();
                properties.getLabelControl(group).dispose();
            }
            for (ComboViewer combViewer : comboFields) {
                combViewer.getCombo().dispose();
            }
            fields.clear();
            comboFields.clear();
        }

        if (!Arrays.equals(firstLine, last_firstLine)) {
            for (int i = 0; i < length; i++) {
                final TypeNameField propField;
                final ComboViewer cv;

                validSel.add(true);

                propField = new TypeNameField("properties", Integer.toString(i + 1), group);
                fields.add(propField);
                propField.setEmptyStringAllowed(false);
                propField.setErrorMessage("Please enter a valid Property Name");
                propField.setPropertyChangeListener(new IPropertyChangeListener() {

                    @Override
                    public void propertyChange(PropertyChangeEvent event) {

                        HashSet<String> hs = new HashSet<String>();

                        if (event.getProperty().equals(StringFieldEditor.VALUE)) {
                            for (TypeNameField field : fields) {
                                if (!hs.add(field.getStringValue())) {
                                    valid = false;
                                    break;
                                } else {
                                    valid = true;
                                }

                            }

                        }

                        if (event.getProperty().equals(StringFieldEditor.IS_VALID)) {
                            isValid = (Boolean) event.getNewValue();
                        }
                        setPageComplete(isValid && valid);

                    }
                });
                propField.setStringValue(firstLine[i]);
                cv = new ComboViewer(group);
                comboFields.add(cv);
                cv.addSelectionChangedListener(new ISelectionChangedListener() {

                    @Override
                    public void selectionChanged(SelectionChangedEvent event) {

                        int i = comboFields.indexOf(event.getSource());
                        PropertyTypeFactory actualSelection = ((PropertyTypeFactory) ((IStructuredSelection) cv
                                .getSelection()).getFirstElement());

                        try {
                            actualSelection.createExtensionObject().convertFromField(nextLine[i]);
                            validSel.set(i, true);

                        } catch (Exception e) {
                            log.warn("Selection invalid!", e);
                            validSel.set(i, false);
                        }
                        if (validSel.contains(false)) {
                            int j = validSel.indexOf(false) + 1;
                            setMessage("Your selection in field # " + j + " is not valid!", WARNING);
                        } else {
                            setMessage(null);
                        }

                    }
                });
                cv.setContentProvider(ArrayContentProvider.getInstance());
                cv.setLabelProvider(new LabelProvider() {

                    /**
                     * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)
                     */
                    @Override
                    public String getText(Object element) {
                        if (element instanceof PropertyTypeFactory) {
                            return ((PropertyTypeFactory) element).getDisplayName();
                        }
                        return super.getText(element);
                    }
                });
                Collection<PropertyTypeFactory> elements = PropertyTypeExtension.getInstance().getFactories();
                cv.setInput(elements);

                PropertyTypeFactory defaultSelection = PropertyTypeExtension.getInstance()
                        .getFactory("java.lang.String");
                if (defaultSelection != null) {
                    cv.setSelection(new StructuredSelection(defaultSelection));
                } else if (!elements.isEmpty()) {
                    cv.setSelection(new StructuredSelection(elements.iterator().next()));
                }

            }
        }
        group.setLayout(new GridLayout(3, false));

        last_firstLine = firstLine;

    } catch (IOException e) {
        setErrorMessage("File could not be read");
        setPageComplete(false);
        e.printStackTrace();
    }

    group.layout();
    sc.layout();

    super.onShowPage(firstShow);
}

From source file:eu.esdihumboldt.hale.io.gml.ui.PartitionConfigurationPage.java

License:Open Source License

/**
 * Create an element for selecting the partitioning mode.
 * //w w w . j a  v a2  s  .co  m
 * @param parent the parent composite
 * 
 * @return the combo viewer
 */
public static ComboViewer createPartitionModeSelector(Composite parent) {
    ComboViewer viewer = new ComboViewer(parent, SWT.READ_ONLY);

    // for now fixed configuration - rather based on IOProviderDescriptor
    // (which is only available later)

    viewer.setContentProvider(ArrayContentProvider.getInstance());
    viewer.setLabelProvider(new LabelProvider() {

        @Override
        public String getText(Object element) {
            if (element instanceof String) {
                switch (((String) element)) {
                case StreamGmlWriter.PARTITION_MODE_CUT:
                    return "Cut strictly at threshold (may break local references)";
                case StreamGmlWriter.PARTITION_MODE_RELATED:
                    return "Keep instances that reference each other together";
                case StreamGmlWriter.PARTITION_MODE_NONE:
                    return "No partitioning (create one part)";
                }
            }

            return super.getText(element);
        }

    });
    viewer.setInput(Arrays.asList(StreamGmlWriter.PARTITION_MODE_CUT, StreamGmlWriter.PARTITION_MODE_RELATED,
            StreamGmlWriter.PARTITION_MODE_NONE));
    // set default
    viewer.setSelection(new StructuredSelection(StreamGmlWriter.PARTITION_MODE_RELATED));

    return viewer;
}

From source file:eu.esdihumboldt.hale.io.gml.ui.PartitionConfigurationPage.java

License:Open Source License

/**
 * Create an element for selecting the extent partitioning mode.
 * //from w  w w  .  jav a  2s .com
 * @param parent the parent composite
 * 
 * @return the combo viewer
 */
public static ComboViewer createExtentPartitionModeSelector(Composite parent) {
    ComboViewer viewer = new ComboViewer(parent, SWT.READ_ONLY);

    viewer.setContentProvider(ArrayContentProvider.getInstance());
    viewer.setLabelProvider(new LabelProvider() {

        @Override
        public String getText(Object element) {
            if (element instanceof String) {
                switch (((String) element)) {
                case StreamGmlWriter.PARTITION_BY_EXTENT_MODE_DATASET:
                    return "Partition instances based on the bounding box of the exported data set";
                case StreamGmlWriter.PARTITION_BY_EXTENT_MODE_WORLD:
                    return "Partition instances based on world extent";
                }
            }

            return super.getText(element);
        }

    });
    viewer.setInput(Arrays.asList(StreamGmlWriter.PARTITION_BY_EXTENT_MODE_DATASET,
            StreamGmlWriter.PARTITION_BY_EXTENT_MODE_WORLD));
    // set default
    viewer.setSelection(new StructuredSelection(StreamGmlWriter.PARTITION_BY_EXTENT_MODE_DATASET));

    return viewer;
}

From source file:eu.esdihumboldt.hale.io.jdbc.ui.JDBCComponents.java

License:Open Source License

/**
 * Create a component for selecting a JDBC driver.
 * /*from   www  . j  a  v  a2 s.  c  om*/
 * @param parent the parent composite
 * @return the combo viewer for selecting the driver
 */
public static ComboViewer createDriverSelector(Composite parent) {
    ComboViewer driver = new ComboViewer(parent, SWT.BORDER | SWT.READ_ONLY);
    driver.setContentProvider(ArrayContentProvider.getInstance());
    driver.setLabelProvider(new LabelProvider() {

        @Override
        public String getText(Object element) {
            if (element instanceof Pair<?, ?>) {
                @SuppressWarnings("unchecked")
                Pair<DriverConfiguration, Driver> driverInfo = (Pair<DriverConfiguration, Driver>) element;
                return driverInfo.getFirst().getName();
            }
            return super.getText(element);
        }

    });

    // driver input
    List<Pair<DriverConfiguration, Driver>> drivers = new ArrayList<>();
    for (DriverConfiguration dc : DriverConfigurationExtension.getInstance().getElements()) {

        // determine associated driver
        Driver jdbcDriver = null;
        Enumeration<Driver> enDrivers = DriverManager.getDrivers();
        while (enDrivers.hasMoreElements()) {
            Driver candidate = enDrivers.nextElement();
            if (dc.matchesDriver(candidate)) {
                jdbcDriver = candidate;
                break;
            }
        }

        //         if (driver != null) {
        // XXX ignore if the driver is null, seems to work nonetheless
        drivers.add(new Pair<>(dc, jdbcDriver));
        //         }
    }
    driver.setInput(drivers);
    if (!drivers.isEmpty()) {
        // by default select a driver if possible
        driver.setSelection(new StructuredSelection(drivers.get(0)));
    }

    return driver;
}

From source file:eu.numberfour.n4js.n4mf.ui.wizard.N4MFWizardNewProjectCreationPage.java

License:Open Source License

@Override
public void createControl(final Composite parent) {
    super.createControl(parent); // We need to create the UI controls from the parent class.

    final Composite control = (Composite) getControl();
    control.setLayout(GridLayoutFactory.fillDefaults().create());
    control.setLayoutData(fillDefaults().align(FILL, FILL).grab(true, true).create());

    final DataBindingContext dbc = new DataBindingContext();
    control.addDisposeListener(e -> dbc.dispose());

    final ComboViewer projectType = new ComboViewer(control, READ_ONLY);
    projectType.setLabelProvider(new ProjectTypeLabelProvider());
    projectType.setContentProvider(ArrayContentProvider.getInstance());
    projectType.getControl().setLayoutData(fillDefaults().grab(true, false).create());
    projectType.setInput(ProjectType.values());

    // A composite to hold the changing UI component (additional library project options / additional test project
    // options)//  ww  w.  j  a  v a 2s  .co  m
    final Composite changingComposite = new Composite(control, NONE);
    StackLayout changingStackLayout = new StackLayout();
    changingComposite.setLayout(changingStackLayout);
    changingComposite.setLayoutData(fillDefaults().align(FILL, FILL).grab(true, true).create());

    Composite defaultOptions = initDefaultOptionsUI(dbc, changingComposite);
    Composite libraryProjectOptionsGroup = initLibraryOptionsUI(dbc, changingComposite);
    Composite testProjectOptionsGroup = initTestProjectUI(dbc, changingComposite);

    initProjectTypeBinding(dbc, projectType);

    // Configure stack layout to show advanced options
    projectType.addPostSelectionChangedListener(e -> {
        switch (projectInfo.getProjectType()) {
        case LIBRARY:
            changingStackLayout.topControl = libraryProjectOptionsGroup;
            break;
        case TEST:
            changingStackLayout.topControl = testProjectOptionsGroup;
            break;
        default:
            changingStackLayout.topControl = defaultOptions;
        }
        changingComposite.layout(true);
        setPageComplete(validatePage());
    });

    // IDs from: org.eclipse.jdt.internal.ui.workingsets.IWorkingSetIDs.class
    createWorkingSetGroup((Composite) getControl(), null,
            new String[] { "org.eclipse.ui.resourceWorkingSetPage", "org.eclipse.jdt.ui.JavaWorkingSetPage",
                    "org.eclipse.jdt.internal.ui.OthersWorkingSet" }); // $NON-NLS-1$
    Dialog.applyDialogFont(getControl());

    dbc.updateTargets();

    setControl(control);
}

From source file:eu.skillpro.ams.pscm.connector.opcua.ui.dialogs.SendOrdersDialog.java

License:Open Source License

@Override
protected Control createDialogArea(Composite parent) {
    Composite area = (Composite) super.createDialogArea(parent);

    Label orderLabel = new Label(area, SWT.NONE);
    orderLabel.setLayoutData(getLabelGDF().create());
    orderLabel.setText(ORDERS_LABEL);// w  w  w. j  a v  a 2  s  . com

    ComboViewer cv = new ComboViewer(area);
    cv.getControl().setLayoutData(getSecondGDF().create());
    cv.setContentProvider(new ArrayContentProvider());
    cv.setLabelProvider(new OrderContentProvider());

    Label separator = new Label(area, SWT.SEPARATOR | SWT.HORIZONTAL);
    separator.setLayoutData(getViewerGDF().copy().hint(SWT.DEFAULT, SWT.DEFAULT).create());

    Label orderNrLabel = new Label(area, SWT.NONE);
    orderNrLabel.setText(SELECTED_ORDER_LABEL);
    orderNrLabel.setLayoutData(getLabelGDF().create());

    final Text orderNrText = new Text(area, SWT.NONE);
    orderNrText.setText("");
    orderNrText.setLayoutData(getSecondGDF().create());
    orderNrText.setEditable(false);

    Label orderProductLabel = new Label(area, SWT.NONE);
    orderProductLabel.setText(PRODUCT);
    orderProductLabel.setLayoutData(getLabelGDF().create());

    final Text orderProductText = new Text(area, SWT.NONE);
    orderProductText.setText("");
    orderProductText.setLayoutData(getSecondGDF().create());
    orderProductText.setEditable(false);

    Label orderQuantityLabel = new Label(area, SWT.NONE);
    orderQuantityLabel.setText(QUANTITY);
    orderQuantityLabel.setLayoutData(getLabelGDF().create());

    final Text orderQuantityText = new Text(area, SWT.NONE);
    orderQuantityText.setText("");
    orderQuantityText.setLayoutData(getSecondGDF().create());
    orderQuantityText.setEditable(false);

    Label orderPriorityLabel = new Label(area, SWT.NONE);
    orderPriorityLabel.setText(PRIORITY);
    orderPriorityLabel.setLayoutData(getLabelGDF().create());

    final Text orderPriorityText = new Text(area, SWT.NONE);
    orderPriorityText.setText(String.valueOf(priority));
    orderPriorityText.setLayoutData(getSecondGDF().create());
    orderPriorityText.setEditable(false);

    cv.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            order = (Order) ((IStructuredSelection) event.getSelection()).getFirstElement();
            updateControls();
        }

        private void updateControls() {
            orderNrText.setText(order.getOrderID());
            orderProductText.setText(order.getProductQuantity().getProduct().getName());
            orderQuantityText.setText(String.valueOf(order.getProductQuantity().getQuantity()));
        }
    });

    cv.setInput(SkillproService.getSkillproProvider().getOrderRepo().getEntities());

    return area;
}

From source file:ext.org.eclipse.jdt.internal.ui.preferences.FoldingConfigurationBlock.java

License:Open Source License

private ComboViewer createProviderViewer() {
    /* list viewer */
    ComboViewer viewer = new ComboViewer(fProviderCombo);
    viewer.setContentProvider(new IStructuredContentProvider() {

        /*//from ww w . j  a v  a 2  s.  c o m
         * @see org.eclipse.jface.viewers.IContentProvider#dispose()
         */
        public void dispose() {
        }

        /*
         * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
         */
        public void inputChanged(Viewer v, Object oldInput, Object newInput) {
        }

        /*
         * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
         */
        public Object[] getElements(Object inputElement) {
            return fProviderDescriptors.values().toArray();
        }
    });
    viewer.setLabelProvider(new LabelProvider() {
        /*
         * @see org.eclipse.jface.viewers.LabelProvider#getImage(java.lang.Object)
         */
        @Override
        public Image getImage(Object element) {
            return null;
        }

        /*
         * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object)
         */
        @Override
        public String getText(Object element) {
            return ((JavaFoldingStructureProviderDescriptor) element).getName();
        }
    });
    viewer.addSelectionChangedListener(new ISelectionChangedListener() {

        public void selectionChanged(SelectionChangedEvent event) {
            IStructuredSelection sel = (IStructuredSelection) event.getSelection();
            if (!sel.isEmpty()) {
                fStore.setValue(PreferenceConstants.EDITOR_FOLDING_PROVIDER,
                        ((JavaFoldingStructureProviderDescriptor) sel.getFirstElement()).getId());
                updateListDependencies();
            }
        }
    });
    viewer.setInput(fProviderDescriptors);
    viewer.refresh();

    return viewer;
}

From source file:fr.univnantes.termsuite.ui.dialogs.ConfigureTaggerDialog.java

@Override
protected Control createDialogArea(final Composite parent) {
    Composite container = (Composite) super.createDialogArea(parent);
    DataBindingContext dbc = new DataBindingContext();
    FormToolkit toolkit = new FormToolkit(container.getDisplay());
    form = toolkit.createScrolledForm(container);
    GridDataFactory.fillDefaults().grab(true, true).applyTo(container);
    GridDataFactory.fillDefaults().grab(true, true).applyTo(form);
    GridDataFactory.fillDefaults().grab(true, true).applyTo(form.getBody());
    form.getBody().setLayout(new GridLayout());
    //       GridLayoutFactory.fillDefaults().margins(10,  10).numColumns(2).applyTo(form.getBody());
    Section helpSection = toolkit.createSection(form.getBody(), SWT.None);
    helpSection.setText("Help");
    helpSection.setExpanded(true);//from  w ww . j ava2  s  .  co  m
    GridDataFactory.fillDefaults().grab(true, true).applyTo(helpSection);

    Section configureSection = toolkit.createSection(form.getBody(), Section.TITLE_BAR);
    configureSection.setText("Configure");
    configureSection.setExpanded(true);
    GridDataFactory.fillDefaults().grab(false, false).span(1, 1).applyTo(configureSection);

    Section errorSection = toolkit.createSection(form.getBody(), SWT.None);
    errorSection.setText("Status");
    errorSection.setExpanded(true);
    toolkit.decorateFormHeading(form.getForm());
    toolkit.paintBordersFor(form.getBody());
    GridDataFactory.fillDefaults().grab(false, false).span(1, 1).applyTo(errorSection);

    // Explaination notice
    Composite helpSectionClient = toolkit.createComposite(helpSection);
    helpSection.setClient(helpSectionClient);
    helpSectionClient.setLayout(new GridLayout());
    FormText notice = toolkit.createFormText(helpSectionClient, true);
    GridDataFactory.fillDefaults().hint(400, SWT.DEFAULT).applyTo(notice);
    //       notice.setLayoutData(new TableWrapData(TableWrapData.FILL));
    //      GridDataFactory.fillDefaults().grab(false, false).span(2, 1).applyTo(notice);
    StringBuffer buf = new StringBuffer();
    buf.append("<form>");
    buf.append(
            "<p>Due to license concerns, you need to install a 3rd party POS tagger to your computer. You need to have at least one of the two currently supported taggers installed:</p>");
    buf.append(
            "<li>1. Tree Tagger (recommended) - download TreeTagger and its languages models. See official installation <a href=\"tt\">intructions</a></li>");
    buf.append(
            "<li>2. Mate - download <a href=\"mate\">mate language models</a> (Mate's algorithm is already embedded in TermSuite) </li>");
    buf.append(
            "<p>Once installed, pay a special attention to TermSuite's naming convention for TreeTagger and Mate models.</p>");
    buf.append(
            "<p>For detailed information about 3rd party tagger installation, read TermSuite's official documentation on <a href=\"doc\">installing 3rd party tagger (and lemmatizer)</a></p>");
    buf.append("</form>");
    notice.setText(buf.toString(), true, false);
    FormTextUtil.bindToExternalLink(notice, "doc", TermSuiteUI.WEB_SITE_TAGGER_DOC_URL);
    FormTextUtil.bindToExternalLink(notice, "tt", TermSuiteUI.URL_TREE_TAGGER);
    FormTextUtil.bindToExternalLink(notice, "mate", TermSuiteUI.URL_MATE);

    Composite configureSectionClient = toolkit.createComposite(configureSection);
    configureSection.setClient(configureSectionClient);
    GridLayoutFactory.fillDefaults().margins(10, 10).numColumns(2).applyTo(configureSectionClient);
    // Tagger type
    toolkit.createLabel(configureSectionClient, "3rd party tagger:");
    ComboViewer taggerComboViewer = new ComboViewer(configureSectionClient, SWT.DROP_DOWN);
    //      toolkit.adapt(taggerComboViewer.getControl(), true, true);
    taggerComboViewer.setContentProvider(ArrayContentProvider.getInstance());
    taggerComboViewer.setLabelProvider(new LabelProvider() {
        public String getText(Object element) {
            ETagger tagger = (ETagger) element;
            return TaggerUtil.getTaggerName(tagger);
        };
    });
    taggerComboViewer.setInput(ETagger.VALUES);
    dbc.bindValue(ViewerProperties.singleSelection().observe(taggerComboViewer), EMFProperties
            .value(TermsuiteuiPackage.Literals.ETAGGER_CONFIG__TAGGER_TYPE).observe(this.taggerConfig));

    // Tagger path
    toolkit.createLabel(configureSectionClient, "Path to tagger's installation directory:");
    BrowseDirText taggerPath = new BrowseDirText(configureSectionClient, SWT.NONE);
    toolkit.adapt(taggerPath, true, true);

    GridDataFactory.fillDefaults().grab(true, false).applyTo(taggerPath);
    dbc.bindValue(new BrowseDirText.TextValueProperty().observe(taggerPath),
            EMFProperties.value(TermsuiteuiPackage.Literals.ETAGGER_CONFIG__PATH).observe(this.taggerConfig));

    Composite errorSectionClient = toolkit.createComposite(errorSection);
    errorSection.setClient(errorSectionClient);
    GridLayoutFactory.fillDefaults().margins(10, 10).numColumns(2).applyTo(errorSectionClient);

    GridLayoutFactory.fillDefaults().margins(10, 10).numColumns(2).applyTo(errorSection);
    // Language viewer
    languageLabel = toolkit.createLabel(errorSectionClient,
            "Languages supported by your current tagger's installation:");
    GridDataFactory.fillDefaults().minSize(0, 20).grab(true, true).span(2, 1).applyTo(languageLabel);
    languageViewer = new TableViewer(errorSectionClient, SWT.BORDER);
    GridDataFactory.fillDefaults().minSize(0, 100).grab(true, true).span(2, 1)
            .applyTo(languageViewer.getControl());
    languageViewer.setContentProvider(new ArrayContentProvider());
    TableViewerColumn column1 = new TableViewerColumn(languageViewer, SWT.LEFT);
    column1.getColumn().setWidth(200);
    column1.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            return LangUtil.getTermsuiteLang((ELang) element).getName();
        }

        @Override
        public Image getImage(Object element) {
            Image flag = TermsuiteImg.INSTANCE.getFlag((ELang) element);
            return flag;
        }
    });
    toolkit.adapt(languageViewer.getControl(), true, true);

    dbc.updateTargets();
    updateTaggerName();
    return form.getBody();
}

From source file:gov.redhawk.datalist.ui.views.OptionsComposite.java

License:Open Source License

public void createControl(Composite main) {
    final Composite parent = new Composite(main, SWT.None);
    parent.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create());
    parent.setLayout(GridLayoutFactory.fillDefaults().numColumns(3).create());

    final ComboViewer captureCombo = new ComboViewer(parent, SWT.DROP_DOWN | SWT.READ_ONLY | SWT.BORDER);
    captureCombo.setContentProvider(new ArrayContentProvider());
    captureCombo.setLabelProvider(new LabelProvider());
    captureCombo.setInput(new Object[] { CaptureMethod.NUMBER, CaptureMethod.INDEFINITELY });
    ctx.bindValue(ViewerProperties.singleSelection().observe(captureCombo),
            BeanProperties.value("processType").observe(settings));

    samplesTxt = new Text(parent, SWT.BORDER);
    samplesTxt.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create());
    ctx.bindValue(WidgetProperties.enabled().observe(samplesTxt),
            BeanProperties.value("processType").observe(settings),
            new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER),
            new UpdateValueStrategy().setConverter(new Converter(CaptureMethod.class, Boolean.class) {

                @Override/*from   w  ww .j a v a2 s.  c o m*/
                public Object convert(Object fromObject) {
                    if (fromObject == CaptureMethod.INDEFINITELY) {
                        return false;
                    }
                    return true;
                }
            }));
    Binding binding = ctx.bindValue(WidgetProperties.text(SWT.Modify).observe(samplesTxt),
            BeanProperties.value("samples").observe(settings),
            new UpdateValueStrategy().setBeforeSetValidator(new IValidator() {

                @Override
                public IStatus validate(Object obj) {
                    Double value = (Double) obj;
                    if (Double.valueOf(value) <= 0) {
                        return ValidationStatus.error(settings.getProcessType() + " must be greater than 0.");
                    }

                    if (value > Integer.MAX_VALUE) {
                        return ValidationStatus.error(settings.getProcessType()
                                + " must be less than or equal to " + Integer.MAX_VALUE + ".");
                    }

                    if ((value - value.intValue()) > 0) {
                        return ValidationStatus
                                .error(settings.getProcessType() + " must be a positive integer.");
                    }

                    if (value > 1000000) {
                        return ValidationStatus.warning("For this sample size, you may run out of heap space.");
                    }
                    return ValidationStatus.ok();
                }

            }), null);
    ControlDecorationSupport.create(binding, SWT.TOP | SWT.LEFT);

    final IObservableValue running = BeanProperties.value("running").observe(state);
    final IObservableValue pType = BeanProperties.value("processType").observe(settings);
    ComputedValue enabledSamples = new ComputedValue(Boolean.class) {

        @Override
        protected Object calculate() {
            return !(Boolean) running.getValue() && pType.getValue() != CaptureMethod.INDEFINITELY;
        }
    };

    ctx.bindValue(WidgetProperties.enabled().observe(samplesTxt), enabledSamples,
            new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER), null);

    final Label unitsLabel = new Label(parent, SWT.None);
    unitsLabel.setText("");
    GridData unitsLayout = new GridData();
    unitsLayout.widthHint = 20;
    unitsLabel.setLayoutData(unitsLayout);

    settings.addPropertyChangeListener(new PropertyChangeListener() {

        @Override
        public void propertyChange(PropertyChangeEvent evt) {
            if ("processType".equals(evt.getPropertyName())) {
                CaptureMethod method = (CaptureMethod) evt.getNewValue();
                if (method == CaptureMethod.INDEFINITELY) {
                    settings.setSamples(1);
                    unitsLabel.setText("");
                } else {
                    if (method == CaptureMethod.CLOCK_TIME || method == CaptureMethod.SAMPLE_TIME) {
                        unitsLabel.setText("(s)");
                    } else {
                        unitsLabel.setText("");
                    }
                    settings.setSamples(1024);
                }
            }
        }
    });

    Label label = new Label(parent, SWT.None);
    label.setText("Number of Dimensions:");

    Combo columnsCombo = new Combo(parent, SWT.BORDER | SWT.SINGLE | SWT.DROP_DOWN);
    columnsCombo.setText(REAL);
    columnsCombo.add(REAL, 0);
    columnsCombo.add(COMPLEX, 1);
    columnsCombo.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create());
    ctx.bindValue(WidgetProperties.enabled().observe(columnsCombo),
            BeanProperties.value("running").observe(state),
            new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER),
            new UpdateValueStrategy().setConverter(new Converter(Boolean.class, Boolean.class) {

                @Override
                public Boolean convert(Object fromObject) {
                    return !((Boolean) fromObject);
                }
            }));
    binding = ctx.bindValue(WidgetProperties.selection().observe(columnsCombo),
            BeanProperties.value("dimensions").observe(settings),
            new UpdateValueStrategy().setAfterGetValidator(new IValidator() {

                @Override
                public IStatus validate(Object value) {
                    if (REAL.equalsIgnoreCase((String) value)) {
                        return ValidationStatus.ok();
                    } else if (COMPLEX.equalsIgnoreCase((String) value)) {
                        return ValidationStatus.ok();
                    } else {
                        try {
                            Integer intValue = Integer.valueOf((String) value);
                            if (intValue > 0) {
                                return ValidationStatus.ok();
                            }
                        } catch (NumberFormatException e) {
                            // PASS
                        }
                    }
                    return ValidationStatus
                            .error("Please enter a positive integer or choose one of the options below.");
                }

            }).setConverter(new Converter(String.class, Integer.class) {

                @Override
                public Object convert(Object fromObject) {
                    if (REAL.equalsIgnoreCase((String) fromObject)) {
                        return 1;
                    } else if (COMPLEX.equalsIgnoreCase((String) fromObject)) {
                        return 2;
                    } else {
                        return Integer.valueOf((String) fromObject);
                    }
                }

            }), null);
    ControlDecorationSupport.create(binding, SWT.TOP | SWT.LEFT);

    button = new Button(parent, SWT.None);
    button.setLayoutData(GridDataFactory.fillDefaults().create());
    button.setImage(resources.get("icons/start.gif"));
    button.setToolTipText("Start Acquire");
    button.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(final SelectionEvent e) {
            if (state.isRunning) {
                stopAcquire();
            } else {
                startAcquire();
            }
        }
    });
    ctx.bindValue(WidgetProperties.enabled().observe(button),
            new AggregateValidationStatus(ctx, AggregateValidationStatus.MAX_SEVERITY),
            new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER),
            new UpdateValueStrategy().setConverter(new Converter(IStatus.class, Boolean.class) {

                @Override
                public Object convert(Object fromObject) {
                    return ((IStatus) fromObject).getSeverity() != IStatus.ERROR;
                }
            }));
}

From source file:gov.redhawk.ide.codegen.frontend.ui.wizard.FrontEndTunerOptionsWizardPage.java

License:Open Source License

private Composite createDigitalIn(Composite parent) {
    Composite digitalIn = new Composite(parent, SWT.SHADOW_NONE);
    digitalIn.setLayout(new GridLayout(2, false));

    Label digitalInputTypeLabel = new Label(digitalIn, SWT.None);
    digitalInputTypeLabel.setText("Digital Input Type: ");

    ComboViewer digitalInputCombo = new ComboViewer(digitalIn, SWT.READ_ONLY);
    digitalInputCombo.setContentProvider(new ArrayContentProvider());
    digitalInputCombo.setLabelProvider(definitionComboViewerLabelProvider);
    digitalInputCombo.setInput(propertyTypes);
    ctx.bindValue(ViewersObservables.observeSingleSelection(digitalInputCombo), EMFObservables
            .observeValue(this.feiDevice, FrontendPackage.Literals.FEI_DEVICE__DIGITAL_INPUT_TYPE));

    ctx.bindValue(WidgetProperties.enabled().observe(digitalInputCombo.getCombo()), EMFObservables
            .observeValue(this.feiDevice, FrontendPackage.Literals.FEI_DEVICE__HAS_DIGITAL_INPUT));
    return digitalIn;
}