Example usage for org.eclipse.jface.databinding.viewers ObservableListContentProvider ObservableListContentProvider

List of usage examples for org.eclipse.jface.databinding.viewers ObservableListContentProvider ObservableListContentProvider

Introduction

In this page you can find the example usage for org.eclipse.jface.databinding.viewers ObservableListContentProvider ObservableListContentProvider.

Prototype

public ObservableListContentProvider() 

Source Link

Document

Constructs an ObservableListContentProvider.

Usage

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

License:Open Source License

/**
 * Binding between an GkCombo and a property, based on items list
 * @param source the UI object/*from   w w w.  ja  v  a 2 s  .c  om*/
 * @param property the name of the property
 * @throws GkException GkException
 */
public void addItemsBinding(GkCombo2<?> source, String property) throws GkException {
    verifyGetter(dataModel, property);
    verifySetter(dataModel, property);

    ObservableListContentProvider listContentProvider = new ObservableListContentProvider();
    IObservableMap observeMap = PojoObservables.observeMap(listContentProvider.getKnownElements(),
            LabeledValue.class, "label");
    source.setLabelProvider(new ObservableMapLabelProvider(observeMap));
    source.setContentProvider(listContentProvider);

    source.setInput(BeanProperties.list(property).observe(dataModel));

}

From source file:org.goko.common.elements.list.GkList.java

License:Open Source License

protected void buildListViewer(IObservableList list, Class<T> clazz, String labelField) {
    setContentProvider(new ObservableListContentProvider());
    setInput(list);//from   w w  w .  j ava  2s  .  c  o m
    setLabelProvider(new BeanLabelProvider(labelField, clazz));
}

From source file:org.goko.tools.centerfinder.CenterFinderPart.java

License:Open Source License

protected DataBindingContext initCustomDataBindings() {
    DataBindingContext bindingContext = new DataBindingContext();
    ///*from   ww  w.  j  a  v  a2 s .  co m*/
    ObservableListContentProvider listContentProvider = new ObservableListContentProvider();
    IObservableMap[] observeMaps = PojoObservables.observeMaps(listContentProvider.getKnownElements(),
            Tuple6b.class, new String[] { "x", "y", "z" });
    //A CORRIGER (les valeurs ne s'affichent pas bien suite au passage des tuples en Quantity)
    //tableViewer.setLabelProvider(new ObservableMapLabelProvider(observeMaps));
    //tableViewer.setLabelProvider(new QuantityLableProvider());

    tableViewer.setContentProvider(listContentProvider);
    //
    tableViewer.setInput(getDataModel().getSamplePoints());
    //
    try {
        getController().addTextDisplayBinding(centerXLabel, "centerXPosition");
        getController().addTextDisplayBinding(centerYLabel, "centerYPosition");
        getController().addTextDisplayBinding(centerZLabel, "centerZPosition");
        getController().addTextDisplayBinding(radiusLabel, "radius");
        getController().addTableSelectionBinding(tableViewer, "selectedPoint");
        getController().addItemsBinding(planeCombo, "availablePlane");
        getController().addItemSelectionBinding(planeCombo, "selectedPlane");
    } catch (GkException e) {
        LOG.error(e);
    }

    return bindingContext;
}

From source file:org.gumtree.gumnix.sics.batch.ui.buffer.BatchBufferQueueViewer.java

License:Open Source License

private void createUI() {
    this.setLayout(new FillLayout());

    queueViewer = new TableViewer(this, getOriginalStyle());
    ObservableListContentProvider contentProvider = new ObservableListContentProvider();
    queueViewer.setContentProvider(contentProvider);
    IObservableMap[] attributeMaps = BeansObservables.observeMaps(contentProvider.getKnownElements(),
            IBatchBuffer.class, new String[] { "name" });
    queueViewer.setLabelProvider(new ObservableMapLabelProvider(attributeMaps) {
        public Image getColumnImage(Object element, int columnIndex) {
            if (columnIndex == 0) {
                if (element instanceof ResourceBasedBatchBuffer) {
                    return InternalImage.FILE.getImage();
                } else {
                    return InternalImage.BUFFER.getImage();
                }//from   w w w .j  av  a  2  s  .c o  m
            }
            return null;
        }
    });
    createContextMenu(queueViewer.getControl());
    Transfer[] transfers = new Transfer[] { LocalSelectionTransfer.getTransfer(), FileTransfer.getInstance(),
            EditorInputTransfer.getInstance() };
    queueViewer.addDropSupport(DND.DROP_COPY | DND.DROP_MOVE, transfers, new DropTargetAdapter() {
        public void drop(DropTargetEvent event) {
            getDNDHandler().handleDrop(event);
        }
    });

    getParent().layout(true, true);
}

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);/*from   www .j  av a  2  s.com*/
    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.aerogear.hybrid.ui.config.internal.NewPluginDialog.java

License:Open Source License

protected DataBindingContext initDataBindings() {
    DataBindingContext bindingContext = new DataBindingContext();
    ///*from   ww w . ja  v a2 s. c o  m*/
    ObservableListContentProvider listContentProvider = new ObservableListContentProvider();
    IObservableMap[] observeMaps = PojoObservables.observeMaps(listContentProvider.getKnownElements(),
            SimpleEntry.class, new String[] { "key", "value" });
    tableViewer.setLabelProvider(new ObservableMapLabelProvider(observeMaps));
    tableViewer.setContentProvider(listContentProvider);
    //
    tableViewer.setInput(parameters);
    //
    return bindingContext;
}

From source file:org.jboss.tools.aerogear.hybrid.ui.config.internal.PropertiesPage.java

License:Open Source License

protected DataBindingContext initDataBindings() {
    DataBindingContext bindingContext = new DataBindingContext();
    ///*from  ww w .j  a  va2s.c  o m*/
    ObservableListContentProvider listContentProvider = new ObservableListContentProvider();
    IObservableMap[] observeMaps = BeansObservables.observeMaps(listContentProvider.getKnownElements(),
            Preference.class, new String[] { "name", "value" });
    preferencesViewer.setLabelProvider(new ObservableMapLabelProvider(observeMaps));
    preferencesViewer.setContentProvider(listContentProvider);
    //
    IObservableList preferencesGetWidgetObserveList = BeanProperties.list("preferences").observe(getWidget());
    preferencesViewer.setInput(preferencesGetWidgetObserveList);
    //
    ObservableListContentProvider listContentProvider_1 = new ObservableListContentProvider();
    IObservableMap[] observeMaps_1 = BeansObservables.observeMaps(listContentProvider_1.getKnownElements(),
            Access.class, new String[] { "origin", "subdomains", "browserOnly" });
    accessViewer.setLabelProvider(new ObservableMapLabelProvider(observeMaps_1));
    accessViewer.setContentProvider(listContentProvider_1);
    //
    IObservableList accessesGetWidgetObserveList = BeanProperties.list("accesses").observe(getWidget());
    accessViewer.setInput(accessesGetWidgetObserveList);
    //
    ObservableListContentProvider listContentProvider_2 = new ObservableListContentProvider();
    IObservableMap observeMap = BeansObservables.observeMap(listContentProvider_2.getKnownElements(),
            Feature.class, "name");
    featuresTableViewer.setLabelProvider(new ObservableMapLabelProvider(observeMap));
    featuresTableViewer.setContentProvider(listContentProvider_2);
    //
    IObservableList featuresGetWidgetObserveList = BeanProperties.list("features").observe(getWidget());
    featuresTableViewer.setInput(featuresGetWidgetObserveList);
    //
    return bindingContext;
}

From source file:org.jboss.tools.common.launcher.ui.wizard.NewLauncherProjectWizardPage.java

License:Open Source License

@Override
protected void doCreateControls(final Composite parent, DataBindingContext dbc) {
    GridLayoutFactory.fillDefaults().margins(6, 6).numColumns(2).applyTo(parent);

    //  explanation
    Label explanation = new Label(parent, SWT.WRAP);
    explanation.setText("Launcher will generate an application for you."
            + " By picking a mission you determine what this application will do."
            + " The runtime then picks the software stack that's used to implement this aim.");
    GridDataFactory.fillDefaults().span(2, 1).align(SWT.FILL, SWT.FILL).grab(true, false).applyTo(explanation);

    // missions//from w  w w  .j av a 2s.  c om
    Label lblMissions = new Label(parent, SWT.NONE);
    lblMissions.setText("Mission:");
    lblMissions.setToolTipText("A specification that describes what your application will do.");
    GridDataFactory.fillDefaults().align(SWT.LEFT, SWT.CENTER).applyTo(lblMissions);
    Combo comboMissions = new Combo(parent, SWT.SINGLE | SWT.DROP_DOWN | SWT.READ_ONLY);
    GridDataFactory.fillDefaults().indent(0, 10).align(SWT.LEFT, SWT.CENTER).hint(300, SWT.DEFAULT)
            .applyTo(comboMissions);
    ComboViewer comboMissionsViewer = new ComboViewer(comboMissions);
    comboMissionsViewer.setContentProvider(new ObservableListContentProvider());
    comboMissionsViewer.setInput(BeanProperties.list(NewLauncherProjectModel.MISSIONS_PROPERTY).observe(model));
    comboMissionsViewer.setLabelProvider(new LabelProvider() {
        @Override
        public String getText(Object element) {
            Mission mission = (Mission) element;
            return mission.getId();
        }
    });
    IObservableValue selectedMissionObservable = BeanProperties
            .value(NewLauncherProjectModel.SELECTED_MISSION_PROPERTY).observe(model);
    ValueBindingBuilder.bind(ViewerProperties.singleSelection().observe(comboMissionsViewer))
            .to(selectedMissionObservable).in(dbc);

    new Label(parent, SWT.None); // filler
    StyledText missionDescription = createStyledText(parent);
    IObservableValue missionDescriptionObservable = PojoProperties
            .value(NewLauncherProjectModel.DESCRIPTION_PROPERTY).observeDetail(selectedMissionObservable);
    ValueBindingBuilder.bind(WidgetProperties.text().observe(missionDescription)).notUpdatingParticipant()
            .to(missionDescriptionObservable).in(dbc);
    missionDescriptionObservable.addValueChangeListener(event -> setToPreferredVerticalSize(getShell()));

    // boosters
    Label lblBoosters = new Label(parent, SWT.NONE);
    lblBoosters.setText("Runtime:");
    lblBoosters.setToolTipText("The framework software used in the application's process.");
    GridDataFactory.fillDefaults().align(SWT.LEFT, SWT.CENTER).applyTo(lblBoosters);
    Combo comboBoosters = new Combo(parent, SWT.SINGLE | SWT.DROP_DOWN | SWT.READ_ONLY);
    GridDataFactory.fillDefaults().align(SWT.LEFT, SWT.CENTER).hint(300, SWT.DEFAULT).applyTo(comboBoosters);
    ComboViewer comboBoostersViewer = new ComboViewer(comboBoosters);
    comboBoostersViewer.setContentProvider(new ObservableListContentProvider());
    comboBoostersViewer.setInput(BeanProperties.list(NewLauncherProjectModel.BOOSTERS_PROPERTY).observe(model));
    comboBoostersViewer.setLabelProvider(new LabelProvider() {
        @Override
        public String getText(Object element) {
            Booster booster = (Booster) element;
            return booster.getRuntime() + " " + booster.getVersion();
        }
    });
    IObservableValue<Booster> selectedBoosterObservable = BeanProperties
            .value(NewLauncherProjectModel.SELECTED_BOOSTER_PROPERTY).observe(model);
    ValueBindingBuilder.bind(ViewerProperties.singleSelection().observe(comboBoostersViewer))
            .to(selectedBoosterObservable).in(dbc);

    new Label(parent, SWT.None); // filler
    StyledText boosterDescription = createStyledText(parent);
    IObservableValue boosterDescriptionObservable = PojoProperties
            .value(NewLauncherProjectModel.DESCRIPTION_PROPERTY).observeDetail(selectedBoosterObservable);
    ValueBindingBuilder.bind(WidgetProperties.text().observe(boosterDescription)).notUpdatingParticipant()
            .to(boosterDescriptionObservable).in(dbc);
    boosterDescriptionObservable.addValueChangeListener(event -> setToPreferredVerticalSize(getShell()));

    // separator
    Label mavenSeparator = new Label(parent, SWT.SEPARATOR | SWT.HORIZONTAL);
    GridDataFactory.fillDefaults().span(2, 1).align(SWT.FILL, SWT.CENTER).applyTo(mavenSeparator);

    // project name
    createTextWidget(parent, dbc, "Project name:", NewLauncherProjectModel.PROJECT_NAME_PROPERTY,
            new EclipseProjectValidator("Please specify an Eclipse project", "Project already exists"));
    //use default location
    Button buttonUseDefaultLocation = new Button(parent, SWT.CHECK);
    buttonUseDefaultLocation.setText("Use default location");
    GridDataFactory.fillDefaults().span(2, 1).align(SWT.LEFT, SWT.CENTER).applyTo(buttonUseDefaultLocation);
    IObservableValue<Boolean> useDefaultLocationButtonObservable = WidgetProperties.selection()
            .observe(buttonUseDefaultLocation);
    ValueBindingBuilder.bind(useDefaultLocationButtonObservable)
            .to(BeanProperties.value(NewLauncherProjectModel.USE_DEFAULT_LOCATION_PROPERTY).observe(model))
            .in(dbc);

    // location
    Label lblLocation = new Label(parent, SWT.NONE);
    lblLocation.setText("Location:");
    GridDataFactory.fillDefaults().align(SWT.LEFT, SWT.CENTER).applyTo(lblLocation);

    Text txtLocation = new Text(parent, SWT.BORDER);
    GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false).applyTo(txtLocation);
    Binding locationBinding = ValueBindingBuilder.bind(WidgetProperties.text(SWT.Modify).observe(txtLocation))
            .validatingAfterGet(new MandatoryStringValidator("Please specify a location for you project"))
            .converting(
                    IConverter.create(String.class, IPath.class, NewLauncherProjectWizardPage::string2IPath))
            .to(BeanProperties.value(NewLauncherProjectModel.LOCATION_PROPERTY).observe(model)).in(dbc);
    ValueBindingBuilder.bind(WidgetProperties.enabled().observe(txtLocation)).notUpdatingParticipant()
            .to(BeanProperties.value(NewLauncherProjectModel.USE_DEFAULT_LOCATION_PROPERTY).observe(model))
            .converting(new InvertingBooleanConverter()).in(dbc);
    ControlDecorationSupport.create(locationBinding, SWT.LEFT | SWT.TOP, null,
            new RequiredControlDecorationUpdater());

    // separator
    Label launcherSeparator = new Label(parent, SWT.SEPARATOR | SWT.HORIZONTAL);
    GridDataFactory.fillDefaults().indent(0, 10).span(2, 1).align(SWT.FILL, SWT.CENTER)
            .applyTo(launcherSeparator);

    // maven artifact
    Label mavenArtifactExplanation = new Label(parent, SWT.None);
    mavenArtifactExplanation.setText("Maven Artifact:");
    GridDataFactory.fillDefaults().span(2, 1).align(SWT.FILL, SWT.CENTER).applyTo(mavenArtifactExplanation);
    createTextWidget(parent, dbc, "Artifact id:", NewLauncherProjectModel.ARTIFACTID_PROPERTY,
            new MandatoryStringValidator("Please specify an artifact id"));
    createTextWidget(parent, dbc, "Group id:", NewLauncherProjectModel.GROUPID_PROPERTY,
            new MandatoryStringValidator("Please specify a group id"));
    createTextWidget(parent, dbc, "Version:", NewLauncherProjectModel.VERSION_PROPERTY,
            new MandatoryStringValidator("Please specify a version"));

    loadCatalog();
}

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

License:Open Source License

@Override
protected void constructContents(Composite parent) {
    parent.setLayout(GridLayoutFactory.swtDefaults().numColumns(2).create());
    Label label = new Label(parent, SWT.NONE);
    label.setText(Messages.ExpressionDialog_LabelLanguage);
    languageComboViewer = new ComboViewer(parent, SWT.READ_ONLY);
    languageComboViewer.setContentProvider(ArrayContentProvider.getInstance());
    languageComboViewer.setComparator(new ViewerComparator() {

        @Override//w ww.j a va  2 s. c  om
        public int compare(final Viewer viewer, final Object object1, final Object object2) {
            return ((Language) object1).getTitle().compareTo(((Language) object2).getTitle());
        }
    });
    languageComboViewer.setLabelProvider(new LabelProvider() {

        @Override
        public String getText(final Object element) {
            return ((Language) element).getTitle();
        }
    });
    languageComboViewer.getCombo()
            .setLayoutData(GridDataFactory.fillDefaults().grab(true, false).span(1, 1).create());

    Group detailsGroup = new Group(parent, SWT.NONE);
    detailsGroup.setText(Messages.ExpressionDialog_grouptitleDetails);
    detailsGroup.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).span(2, 1).create());
    detailsGroup.setLayout(GridLayoutFactory.swtDefaults().numColumns(3).create());

    valueOption = new Button(detailsGroup, SWT.RADIO);
    valueOption.setText(Messages.ExpressionDialog_ValueButton);
    valueOption.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).span(3, 1).create());
    valueOption.addSelectionListener(new SelectionListener() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            scriptTypeComboViewer.setSelection(new StructuredSelection("")); //$NON-NLS-1$
            pathText.setText(""); //$NON-NLS-1$
            expression = ""; //$NON-NLS-1$
            expressionText.setText(expression.replace("\\${", "${")); //$NON-NLS-1$ //$NON-NLS-2$
            validate();
        }

        @Override
        public void widgetDefaultSelected(SelectionEvent e) {
        }
    });

    label = new Label(detailsGroup, SWT.NONE);
    label.setText(Messages.ExpressionDialog_ExpressionLabel);
    label.setLayoutData(GridDataFactory.fillDefaults().indent(20, 0).create());
    expressionText = new Text(detailsGroup, SWT.BORDER);
    expressionText
            .setLayoutData(GridDataFactory.fillDefaults().indent(20, 0).grab(true, false).span(2, 1).create());
    if (expression != null) {
        expressionText.setText(expression.replace("\\${", "${")); //$NON-NLS-1$ //$NON-NLS-2$
    }

    scriptOption = new Button(detailsGroup, SWT.RADIO);
    scriptOption.setText(Messages.ExpressionDialog_ScriptButton);
    scriptOption.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).span(3, 1).create());
    scriptOption.addSelectionListener(new SelectionListener() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            validate();
        }

        @Override
        public void widgetDefaultSelected(SelectionEvent e) {
        }
    });

    label = new Label(detailsGroup, SWT.NONE);
    label.setText(Messages.ExpressionDialog_SourceLabel);
    label.setLayoutData(GridDataFactory.fillDefaults().indent(20, 0).create());
    scriptTypeComboViewer = new ComboViewer(detailsGroup, SWT.READ_ONLY);
    scriptTypeComboViewer.setContentProvider(ArrayContentProvider.getInstance());
    scriptTypeComboViewer.getCombo()
            .setLayoutData(GridDataFactory.fillDefaults().grab(true, false).indent(20, 0).span(1, 1).create());
    scriptTypeComboViewer.setContentProvider(new ObservableListContentProvider());
    scriptTypeComboViewer.getCombo().addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(final SelectionEvent event) {
            updateExpression();
        }
    });

    WritableList<String> sourceList = new WritableList<>();
    sourceList.add("classpath"); //$NON-NLS-1$
    sourceList.add("file"); //$NON-NLS-1$
    sourceList.add("http"); //$NON-NLS-1$
    sourceList.add(""); //$NON-NLS-1$
    scriptTypeComboViewer.setInput(sourceList);

    browseBtn = new Button(detailsGroup, SWT.PUSH);
    browseBtn.setText("..."); //$NON-NLS-1$
    browseBtn.setLayoutData(GridDataFactory.fillDefaults().grab(false, false).create());
    browseBtn.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(final SelectionEvent event) {
            IStructuredSelection selection = (IStructuredSelection) scriptTypeComboViewer.getSelection();
            String value = (String) selection.getFirstElement();
            String path = null;
            if ("classpath".equalsIgnoreCase(value)) { //$NON-NLS-1$
                path = selectResourceFromWorkspace(browseBtn.getShell(), ""); //$NON-NLS-1$
            } else if ("file".equalsIgnoreCase(value)) { //$NON-NLS-1$
                FileDialog dialog = new FileDialog(browseBtn.getShell());
                dialog.setText(Messages.ExpressionDialog_fileDialogTitleSelectScriptFile);
                String[] filterExt = { "*.*" }; //$NON-NLS-1$
                dialog.setFilterExtensions(filterExt);
                path = dialog.open();
                if (path != null) {
                    path = convertToFileURL(path);
                }
            }
            if (path != null) {
                pathText.setText(path);
                pathText.notifyListeners(SWT.Modify, null);
            }
        }
    });

    label = new Label(detailsGroup, SWT.NONE);
    label.setText(Messages.ExpressionDialog_labelPath);
    label.setLayoutData(GridDataFactory.fillDefaults().indent(20, 0).create());
    pathText = new Text(detailsGroup, SWT.BORDER);
    pathText.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).indent(20, 0).span(2, 1).create());
    pathText.addModifyListener(new ModifyListener() {

        @Override
        public void modifyText(ModifyEvent e) {
            updateExpression();
        }
    });

    languageComboViewer.getCombo().addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(final SelectionEvent event) {
            final IStructuredSelection selection = (IStructuredSelection) languageComboViewer.getSelection();
            language = (Language) selection.getFirstElement();
            valueOption.setEnabled(true);
            scriptOption.setEnabled(true);
            expressionText.setFocus();
            validate();
            if (!scriptOption.getSelection() && !valueOption.getSelection()) {
                valueOption.setSelection(true);
                valueOption.notifyListeners(SWT.Selection, null);
            }
        }
    });
    expressionText.addModifyListener(new ModifyListener() {

        @Override
        public void modifyText(final ModifyEvent event) {
            String expr = expressionText.getText().trim();
            for (int ndx = expr.indexOf("${"); ndx >= 0; ndx = expr.indexOf("${", ndx)) { //$NON-NLS-1$ //$NON-NLS-2$
                if (ndx == 0 || expr.charAt(ndx - 1) != '\\') {
                    expr = expr.substring(0, ndx) + '\\' + expr.substring(ndx);
                    ndx += 3;
                } else if (expr.charAt(ndx - 1) == '\\') {
                    // ignore it and move on
                    ndx += 3;
                }
            }
            expression = expr;
            validate();
        }
    });

    languageComboViewer.setInput(languages);
    if (language != null) {
        languageComboViewer.setSelection(new StructuredSelection(language));
    }

    valueOption.setSelection(false);
    valueOption.setEnabled(false);
    scriptOption.setSelection(false);
    scriptOption.setEnabled(false);

    if (expression != null) {
        String part0 = getParameterPart(expression, 0);
        valueOption.setSelection(true);
        valueOption.setEnabled(true);
        scriptOption.setSelection(false);
        scriptOption.setEnabled(true);
        if ("resource".equals(part0)) { //$NON-NLS-1$
            valueOption.setSelection(false);
            scriptOption.setSelection(true);
            String part1 = getParameterPart(expression, 1);
            scriptTypeComboViewer.setSelection(new StructuredSelection(part1));
            String part2 = getParameterPart(expression, 2);
            if (part2 != null) {
                pathText.setText(part2.replace("\\${", "${")); //$NON-NLS-1$ //$NON-NLS-2$
            }
        }
    }
}

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

License:Open Source License

private void createPage(Composite parent) {
    _page = new Composite(parent, SWT.NONE);
    setControl(_page);/* www  . j av a 2 s .c o  m*/

    GridLayout layout = new GridLayout(3, false);
    layout.marginRight = 5;
    layout.horizontalSpacing = 10;
    _page.setLayout(layout);

    // Create file path widgets
    Label label;
    if (isSourcePage()) {
        label = createLabel(_page, Messages.OtherPage_labelSourceClass, Messages.OtherPage_tooltipSourceClass);
    } else {
        label = createLabel(_page, Messages.OtherPage_labelTargetClass, Messages.OtherPage_tooltipTargetClass);
    }

    _javaClassText = new Text(_page, SWT.BORDER);
    _javaClassText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
    _javaClassText.setToolTipText(label.getToolTipText());

    final Button javaClassBrowseButton = new Button(_page, SWT.NONE);
    javaClassBrowseButton.setLayoutData(new GridData());
    javaClassBrowseButton.setText("..."); //$NON-NLS-1$
    javaClassBrowseButton.setToolTipText(Messages.OtherPage_tooltipBrowseButton);

    javaClassBrowseButton.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(final SelectionEvent event) {
            try {
                IType selected = selectType(_page.getShell(), "java.lang.Object", null); //$NON-NLS-1$
                if (selected != null) {
                    _javaClassText.setText(selected.getFullyQualifiedName());
                    if (isSourcePage()) {
                        model.setSourceType(ModelType.OTHER);
                        model.setSourceFilePath(selected.getFullyQualifiedName());
                    } else {
                        model.setTargetType(ModelType.OTHER);
                        model.setTargetFilePath(selected.getFullyQualifiedName());
                    }

                    UIJob uiJob = new UIJob(Messages.OtherPage_uiJobNameOpenError) {
                        @Override
                        public IStatus runInUIThread(IProgressMonitor monitor) {
                            NewTransformationWizard wizard = (NewTransformationWizard) getWizard();
                            try {
                                Class<?> tempClass = wizard.loader()
                                        .loadClass(selected.getFullyQualifiedName());
                                _javaModel = ModelBuilder.fromJavaClass(tempClass);
                                _modelViewer.setModel(_javaModel);
                            } catch (ClassNotFoundException e) {
                                e.printStackTrace();
                            }
                            return Status.OK_STATUS;
                        }
                    };
                    uiJob.setSystem(true);
                    uiJob.schedule();
                    _javaClassText.notifyListeners(SWT.Modify, new Event());
                }
            } catch (JavaModelException e1) {
                e1.printStackTrace();
            }
        }
    });

    createLabel(_page, Messages.OtherPage_labelDataFormatID, Messages.OtherPage_tooltipDataFormatID);

    _dataFormatIdCombo = new ComboViewer(_page, SWT.DROP_DOWN | SWT.READ_ONLY);
    _dataFormatIdCombo.getCombo().setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1));
    _dataFormatIdCombo.getCombo().setToolTipText(label.getToolTipText());
    _dataFormatIdCombo.setContentProvider(new ObservableListContentProvider());

    createLabel(_page, "", ""); // spacer //$NON-NLS-1$ //$NON-NLS-2$
    _dfErrorLabel = createLabel(_page, "", ""); //$NON-NLS-1$ //$NON-NLS-2$
    _dfErrorLabel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1));

    Group group = new Group(_page, SWT.SHADOW_ETCHED_IN);
    group.setText(Messages.OtherPage_groupNameClassStructurePreview);
    group.setLayout(new GridLayout(3, false));
    group.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 3, 3));

    _modelViewer = new ModelViewer(group, _javaModel);
    _modelViewer.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create());
    _modelViewer.layout();

    bindControls();
    validatePage();

}