List of usage examples for org.eclipse.jface.databinding.viewers ObservableListContentProvider ObservableListContentProvider
public ObservableListContentProvider()
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(); }