List of usage examples for org.eclipse.jface.viewers ComboViewer setLabelProvider
@Override public void setLabelProvider(IBaseLabelProvider labelProvider)
Viewer
framework method ensures that the given label provider is an instance of ILabelProvider
. From source file:org.hawk.ui.emfresource.exeed.EClassSelectionDialog.java
License:Open Source License
@Override protected Control createDialogArea(Composite parent) { final Composite container = new Composite(parent, SWT.NONE); final GridLayout layout = new GridLayout(); layout.numColumns = 2;//from w w w. ja v a 2 s .c om container.setLayout(layout); final Label lblPackage = new Label(container, SWT.NONE); lblPackage.setText("Package:"); final ComboViewer lPackages = new ComboViewer(container, SWT.BORDER); lPackages.setLabelProvider(new LabelProvider()); lPackages.setContentProvider(new ArrayContentProvider()); Object[] packages; try { packages = resource.getRegisteredMetamodels().toArray(); } catch (Exception e) { Activator.logError("Could not retrieve registered metamodels", e); packages = new Object[0]; } Arrays.sort(packages); lPackages.setInput(packages); lPackages.getCombo().setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); final Label lblClass = new Label(container, SWT.NONE); lblClass.setText("EClass:"); final ComboViewer lClasses = new ComboViewer(container, SWT.DROP_DOWN); lClasses.setLabelProvider(new LabelProvider()); lClasses.setContentProvider(new ArrayContentProvider()); lClasses.setInput(new Object[0]); lClasses.getCombo().setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); lPackages.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent event) { eClass = null; if (event.getSelection() instanceof IStructuredSelection) { final IStructuredSelection ssel = (IStructuredSelection) event.getSelection(); if (ssel.getFirstElement() != null) { final String packageURI = (String) ssel.getFirstElement(); ePackage = resource.getResourceSet().getPackageRegistry().getEPackage(packageURI); final List<String> eClassNames = new ArrayList<>(); if (ePackage != null) { for (EClassifier classifier : ePackage.getEClassifiers()) { if (classifier instanceof EClass) { eClassNames.add(classifier.getName()); } } } final Object[] arrClassNames = eClassNames.toArray(); Arrays.sort(arrClassNames); lClasses.setInput(arrClassNames); } } checkOKEnabled(); } }); lClasses.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent event) { if (event.getSelection() instanceof IStructuredSelection) { final IStructuredSelection ssel = (IStructuredSelection) event.getSelection(); if (ssel.getFirstElement() != null) { final String className = (String) ssel.getFirstElement(); eClass = (EClass) ePackage.getEClassifier(className); } } checkOKEnabled(); } }); return container; }
From source file:org.hibernate.eclipse.launch.AddPropertyDialog.java
License:Open Source License
private void initDefaultNames(ExporterFactory ef2, ComboViewer viewer) { viewer.setContentProvider(new IStructuredContentProvider() { ExporterFactory localEf;//from ww w . j a v a 2 s .c om public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { localEf = (ExporterFactory) newInput; } public void dispose() { localEf = null; } public Object[] getElements(Object inputElement) { Iterator<Map.Entry<String, ExporterProperty>> set = localEf.getDefaultExporterProperties() .entrySet().iterator(); List<ExporterProperty> values = new ArrayList<ExporterProperty>(4); while (set.hasNext()) { Map.Entry<String, ExporterProperty> element = set.next(); //if(!localEf.hasLocalValueFor((String) element.getKey())) { ExporterProperty exporterProperty = localEf.getExporterProperty(element.getKey()); if (exporterProperty != null) { values.add(exporterProperty); } //} } return values.toArray(new ExporterProperty[values.size()]); } }); viewer.setLabelProvider(new ILabelProvider() { public void removeListener(ILabelProviderListener listener) { } public boolean isLabelProperty(Object element, String property) { return false; } public void dispose() { } public void addListener(ILabelProviderListener listener) { } public String getText(Object element) { ExporterProperty exporterProperty = ((ExporterProperty) element); return exporterProperty.getDescriptionForLabel(); } public Image getImage(Object element) { return null; } }); viewer.addSelectionChangedListener(new ISelectionChangedListener() { private SelectionListener getSelectionListener(ExporterProperty prop) { if (!("path".equals(prop.getType()) || "directory".equals(prop.getType()))) //$NON-NLS-1$//$NON-NLS-2$ return null; final boolean isPath = "path".equals(prop.getType()); //$NON-NLS-1$ return new SelectionListener() { public void widgetDefaultSelected(SelectionEvent e) { widgetSelected(e); } public void widgetSelected(SelectionEvent e) { String title = isPath ? HibernateConsoleMessages.ExporterSettingsTab_select_path : HibernateConsoleMessages.ExporterSettingsTab_select_dir; String description = isPath ? HibernateConsoleMessages.ExporterSettingsTab_select_path2 : HibernateConsoleMessages.ExporterSettingsTab_select_dir2; MessageDialog dialog = new MessageDialog(getShell(), title, null, description, MessageDialog.QUESTION, new String[] { HibernateConsoleMessages.CodeGenerationSettingsTab_filesystem, HibernateConsoleMessages.CodeGenerationSettingsTab_workspace, IDialogConstants.CANCEL_LABEL }, 1); int answer = dialog.open(); String strPath = null; if (answer == 0) { // filesystem DirectoryDialog dialog2 = new DirectoryDialog(getShell()); dialog2.setText(title); dialog2.setMessage(description); String dir = dialog2.open(); if (dir != null) { strPath = dir; } } else if (answer == 1) { // workspace IPath[] paths = DialogSelectionHelper.chooseFileEntries(getShell(), (IPath) null, new Path[0], title, description, new String[0], isPath, true, false); if (paths != null && paths.length > 0) { strPath = paths[0].toOSString(); if (isPath) { for (int i = 1; i < paths.length; i++) { strPath += ';' + paths[i].toOSString(); } } } } else return; String oldPath = ((Text) value).getText(); if (isPath && oldPath.trim().length() > 0 && strPath != null) ((Text) value).setText(oldPath + ';' + strPath); else { if (strPath != null) ((Text) value).setText(strPath); } } }; } public void selectionChanged(SelectionChangedEvent event) { if (value == null) return; IStructuredSelection iss = (IStructuredSelection) event.getSelection(); if (!iss.isEmpty()) { ExporterProperty prop = (ExporterProperty) iss.getFirstElement(); if ("boolean".equalsIgnoreCase(prop.getType())) { //$NON-NLS-1$ disposeBrowseButton(); createComboValueComposite(new String[] { String.valueOf(true), String.valueOf(false) }); ((Combo) value).select( Boolean.valueOf(ef.getPropertyValue(prop.getName())).booleanValue() ? 0 : 1); } else if ("directory".equalsIgnoreCase(prop.getType())//$NON-NLS-1$ || "path".equalsIgnoreCase(prop.getType())) { //$NON-NLS-1$ disposeBrowseButton(); createTextValueComposite(1); ((Text) value).setText(ef.getPropertyValue(prop.getName())); createBrowseButton(getSelectionListener(prop), prop); } else { disposeBrowseButton(); createTextValueComposite(2); ((Text) value).setText(ef.getPropertyValue(prop.getName())); } } else { createTextValueComposite(2); } } }); viewer.setInput(ef); if (viewer.getCombo().getItemCount() > 0) { Object selected = null; if (selectedPropertyId != null) { selected = ef.getExporterProperty(selectedPropertyId); } else { selected = viewer.getElementAt(0); } viewer.setSelection(new StructuredSelection(selected)); viewer.getCombo().select(viewer.getCombo().getSelectionIndex()); } }
From source file:org.jboss.bpmn2.editor.ui.property.MainPropertiesComposite.java
License:Open Source License
private void createSingleItemEditor(final EStructuralFeature reference, Object eGet, Collection values) { final ComboViewer combo = new ComboViewer(this, SWT.BORDER); Combo c = combo.getCombo();//w w w. jav a 2s .co m combo.setLabelProvider(LABEL_PROVIDER); c.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1)); toolkit.adapt(c, true, true); widgets.add(c); List<Object> l = null; if (values != null) { l = Arrays.asList(values.toArray()); } else if (modelHandler != null) { l = (List<Object>) modelHandler.getAll(reference.getEType().getInstanceClass()); } combo.add(""); combo.add(l.toArray()); if (eGet != null) { combo.setSelection(new StructuredSelection(eGet)); } combo.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent event) { ISelection selection = combo.getSelection(); if (selection instanceof StructuredSelection) { Object firstElement = ((StructuredSelection) selection).getFirstElement(); if (firstElement instanceof EObject) { updateEObject(firstElement); } else { updateEObject(null); } } } public void updateEObject(final Object result) { TransactionalEditingDomain domain = bpmn2Editor.getEditingDomain(); domain.getCommandStack().execute(new RecordingCommand(domain) { @Override protected void doExecute() { be.eSet(reference, result); } }); } }); }
From source file:org.jboss.mapper.eclipse.internal.editor.AddCustomFunctionDialog.java
License:Open Source License
@Override protected Control createDialogArea(final Composite parent) { setTitle("Add Custom Operation"); setMessage("Select or create the Java class and method that implements the custom operation"); setHelpAvailable(false);//from w ww. j av a2 s .c o m final Composite area = new Composite(parent, SWT.NONE); area.setLayout(GridLayoutFactory.swtDefaults().numColumns(3).create()); area.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create()); Label label = new Label(area, SWT.NONE); label.setText("Class:"); final Button classButton = new Button(area, SWT.NONE); classButton.setLayoutData( GridDataFactory.swtDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false).create()); classButton.setAlignment(SWT.LEFT); classButton.setText("< Click to select an existing class >"); final Button newClassButton = new Button(area, SWT.NONE); newClassButton .setImage(new DecorationOverlayIcon(JavaUI.getSharedImages().getImage(ISharedImages.IMG_OBJS_CLASS), Util.Decorations.ADD, IDecoration.TOP_RIGHT).createImage()); label = new Label(area, SWT.NONE); label.setText("Method:"); final ComboViewer methodComboViewer = new ComboViewer(area, SWT.READ_ONLY); methodComboViewer.getCombo().setLayoutData( GridDataFactory.swtDefaults().span(2, 1).align(SWT.FILL, SWT.CENTER).grab(true, false).create()); methodComboViewer.setContentProvider(new ArrayContentProvider()); methodComboViewer.setLabelProvider(new LabelProvider() { @Override public String getText(final Object element) { final IMethod method = (IMethod) element; try { final StringBuilder builder = new StringBuilder(); builder.append(Signature.getSignatureSimpleName(method.getReturnType())); builder.append(" "); builder.append(method.getElementName()); builder.append("("); final String[] types = method.getParameterTypes(); final String[] names = method.getParameterNames(); boolean hasPrm = false; for (int ndx = 0; ndx < types.length; ndx++) { if (hasPrm) { builder.append(", "); } else { builder.append(" "); hasPrm = true; } builder.append(Signature.getSignatureSimpleName(types[ndx])); builder.append(" "); builder.append(names[ndx]); } if (hasPrm) { builder.append(" "); } builder.append(")"); return builder.toString(); } catch (final JavaModelException e) { return ""; } } }); methodComboViewer.setComparator(new ViewerComparator() { @Override public int compare(final Viewer viewer, final Object object1, final Object object2) { final IMethod method1 = (IMethod) object1; final IMethod method2 = (IMethod) object2; int comparison = method1.getElementName().compareTo(method2.getElementName()); if (comparison != 0) { return comparison; } final String[] types1 = method1.getParameterTypes(); final String[] types2 = method2.getParameterTypes(); comparison = types1.length - types2.length; if (comparison != 0) { return comparison; } for (int ndx = 0; ndx < types1.length; ndx++) { comparison = Signature.getSignatureSimpleName(types1[ndx]) .compareTo(Signature.getSignatureSimpleName(types2[ndx])); if (comparison != 0) { return comparison; } } return 0; } }); methodComboViewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(final SelectionChangedEvent event) { methodSelected(methodComboViewer); } }); classButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(final SelectionEvent event) { selectClass(classButton, methodComboViewer); } }); newClassButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(final SelectionEvent event) { createNewClass(classButton, methodComboViewer); } }); return area; }
From source file:org.jboss.mapper.eclipse.internal.editor.AddCustomOperationDialog.java
License:Open Source License
@Override protected Control createDialogArea(final Composite parent) { setTitle("Add Custom Operation"); setMessage("Select or create the Java class and method that implements the custom operation"); setHelpAvailable(false);/* w ww. j a v a2 s . com*/ final Composite area = new Composite(parent, SWT.NONE); area.setLayout(GridLayoutFactory.swtDefaults().numColumns(3).create()); area.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create()); Label label = new Label(area, SWT.NONE); label.setText("Class:"); final Button classButton = new Button(area, SWT.NONE); classButton.setLayoutData( GridDataFactory.swtDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false).create()); classButton.setAlignment(SWT.LEFT); classButton.setText("< Click to select an existing class >"); final Button newClassButton = new Button(area, SWT.NONE); newClassButton .setImage(new DecorationOverlayIcon(JavaUI.getSharedImages().getImage(ISharedImages.IMG_OBJS_CLASS), Util.ADD_OVERLAY_IMAGE_DESCRIPTOR, IDecoration.TOP_RIGHT).createImage()); label = new Label(area, SWT.NONE); label.setText("Method:"); final ComboViewer methodComboViewer = new ComboViewer(area, SWT.READ_ONLY); methodComboViewer.getCombo().setLayoutData( GridDataFactory.swtDefaults().span(2, 1).align(SWT.FILL, SWT.CENTER).grab(true, false).create()); methodComboViewer.setContentProvider(new ArrayContentProvider()); methodComboViewer.setLabelProvider(new LabelProvider() { @Override public String getText(final Object element) { final IMethod method = (IMethod) element; try { final StringBuilder builder = new StringBuilder(); builder.append(Signature.getSignatureSimpleName(method.getReturnType())); builder.append(" "); builder.append(method.getElementName()); builder.append("("); final String[] types = method.getParameterTypes(); final String[] names = method.getParameterNames(); boolean hasPrm = false; for (int ndx = 0; ndx < types.length; ndx++) { if (hasPrm) { builder.append(", "); } else { builder.append(" "); hasPrm = true; } builder.append(Signature.getSignatureSimpleName(types[ndx])); builder.append(" "); builder.append(names[ndx]); } if (hasPrm) { builder.append(" "); } builder.append(")"); return builder.toString(); } catch (final JavaModelException e) { return ""; } } }); methodComboViewer.setComparator(new ViewerComparator() { @Override public int compare(final Viewer viewer, final Object object1, final Object object2) { final IMethod method1 = (IMethod) object1; final IMethod method2 = (IMethod) object2; int comparison = method1.getElementName().compareTo(method2.getElementName()); if (comparison != 0) { return comparison; } final String[] types1 = method1.getParameterTypes(); final String[] types2 = method2.getParameterTypes(); comparison = types1.length - types2.length; if (comparison != 0) { return comparison; } for (int ndx = 0; ndx < types1.length; ndx++) { comparison = Signature.getSignatureSimpleName(types1[ndx]) .compareTo(Signature.getSignatureSimpleName(types2[ndx])); if (comparison != 0) { return comparison; } } return 0; } }); methodComboViewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(final SelectionChangedEvent event) { methodSelected(methodComboViewer); } }); classButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(final SelectionEvent event) { selectClass(classButton, methodComboViewer); } }); newClassButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(final SelectionEvent event) { createNewClass(classButton, methodComboViewer); } }); return area; }
From source file:org.jboss.mapper.eclipse.internal.wizards.FirstPage.java
License:Open Source License
void createPage(final Composite parent) { final Composite page = new Composite(parent, SWT.NONE); setControl(page);/* w w w. j a v a2s .c om*/ 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.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//w w w.j a v a 2 s. 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.AddCustomFunctionDialog.java
License:Open Source License
@Override protected void constructContents(final Composite parent) { parent.setLayout(GridLayoutFactory.swtDefaults().numColumns(3).create()); Label label = new Label(parent, SWT.NONE); label.setText("Class:"); final Button classButton = new Button(parent, SWT.NONE); classButton.setLayoutData(/*w w w . j a v a2s .c o m*/ GridDataFactory.swtDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false).create()); classButton.setAlignment(SWT.LEFT); classButton.setText("< Click to select an existing class >"); final Button newClassButton = new Button(parent, SWT.NONE); newClassButton .setImage(new DecorationOverlayIcon(JavaUI.getSharedImages().getImage(ISharedImages.IMG_OBJS_CLASS), Decorations.ADD, IDecoration.TOP_RIGHT).createImage()); label = new Label(parent, SWT.NONE); label.setText("Method:"); final ComboViewer methodComboViewer = new ComboViewer(parent, SWT.READ_ONLY); methodComboViewer.getCombo().setLayoutData( GridDataFactory.swtDefaults().span(2, 1).align(SWT.FILL, SWT.CENTER).grab(true, false).create()); methodComboViewer.setContentProvider(new ArrayContentProvider()); methodComboViewer.setLabelProvider(new LabelProvider() { @Override public String getText(final Object element) { final IMethod method = (IMethod) element; try { final StringBuilder builder = new StringBuilder(); builder.append(Signature.getSignatureSimpleName(method.getReturnType())); builder.append(" "); builder.append(method.getElementName()); builder.append("("); final String[] types = method.getParameterTypes(); final String[] names = method.getParameterNames(); boolean hasPrm = false; for (int ndx = 0; ndx < types.length; ndx++) { if (hasPrm) { builder.append(", "); } else { builder.append(" "); hasPrm = true; } builder.append(Signature.getSignatureSimpleName(types[ndx])); builder.append(" "); builder.append(names[ndx]); } if (hasPrm) { builder.append(" "); } builder.append(")"); return builder.toString(); } catch (final JavaModelException e) { return ""; } } }); methodComboViewer.setComparator(new ViewerComparator() { @Override public int compare(final Viewer viewer, final Object object1, final Object object2) { final IMethod method1 = (IMethod) object1; final IMethod method2 = (IMethod) object2; int comparison = method1.getElementName().compareTo(method2.getElementName()); if (comparison != 0) { return comparison; } final String[] types1 = method1.getParameterTypes(); final String[] types2 = method2.getParameterTypes(); comparison = types1.length - types2.length; if (comparison != 0) { return comparison; } for (int ndx = 0; ndx < types1.length; ndx++) { comparison = Signature.getSignatureSimpleName(types1[ndx]) .compareTo(Signature.getSignatureSimpleName(types2[ndx])); if (comparison != 0) { return comparison; } } return 0; } }); methodComboViewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(final SelectionChangedEvent event) { methodSelected(methodComboViewer); } }); classButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(final SelectionEvent event) { selectClass(classButton, methodComboViewer); } }); newClassButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(final SelectionEvent event) { createNewClass(classButton, methodComboViewer); } }); }
From source file:org.jboss.tools.fuse.transformation.editor.internal.AddCustomTransformationDialog.java
License:Open Source License
@Override protected void constructContents(Composite parent) { parent.setLayout(GridLayoutFactory.swtDefaults().numColumns(3).create()); Label label = new Label(parent, SWT.NONE); label.setText(Messages.AddCustomTransformationDialog_label_Class); final Button classButton = new Button(parent, SWT.NONE); classButton.setLayoutData(//from w ww . j a va 2 s . c o m GridDataFactory.swtDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false).create()); classButton.setAlignment(SWT.LEFT); classButton.setText(Messages.AddCustomTransformationDialog_button_selectAnExistingClass); Button newClassButton = new Button(parent, SWT.NONE); newClassButton .setImage(new DecorationOverlayIcon(JavaUI.getSharedImages().getImage(ISharedImages.IMG_OBJS_CLASS), Decorations.ADD, IDecoration.TOP_RIGHT).createImage()); label = new Label(parent, SWT.NONE); label.setText(Messages.AddCustomTransformationDialog_label_method); final ComboViewer methodComboViewer = new ComboViewer(parent, SWT.READ_ONLY); methodComboViewer.getCombo().setLayoutData( GridDataFactory.swtDefaults().span(2, 1).align(SWT.FILL, SWT.CENTER).grab(true, false).create()); methodComboViewer.setContentProvider(new ArrayContentProvider()); methodComboViewer.setLabelProvider(new LabelProvider() { @Override public String getText(Object element) { IMethod method = (IMethod) element; try { StringBuilder builder = new StringBuilder(); builder.append(Signature.getSignatureSimpleName(method.getReturnType())); builder.append(" "); //$NON-NLS-1$ builder.append(method.getElementName()); builder.append("("); //$NON-NLS-1$ String[] types = method.getParameterTypes(); String[] names = method.getParameterNames(); boolean hasPrm = false; for (int ndx = 0; ndx < types.length; ndx++) { if (hasPrm) builder.append(", "); //$NON-NLS-1$ else { builder.append(" "); //$NON-NLS-1$ hasPrm = true; } builder.append(Signature.getSignatureSimpleName(types[ndx])); builder.append(" "); //$NON-NLS-1$ builder.append(names[ndx]); } if (hasPrm) builder.append(" "); //$NON-NLS-1$ builder.append(")"); //$NON-NLS-1$ return builder.toString(); } catch (JavaModelException e) { return ""; //$NON-NLS-1$ } } }); methodComboViewer.setComparator(new ViewerComparator() { @Override public int compare(Viewer viewer, Object object1, Object object2) { IMethod method1 = (IMethod) object1; IMethod method2 = (IMethod) object2; int comparison = method1.getElementName().compareTo(method2.getElementName()); if (comparison != 0) return comparison; String[] types1 = method1.getParameterTypes(); String[] types2 = method2.getParameterTypes(); comparison = types1.length - types2.length; if (comparison != 0) return comparison; for (int ndx = 0; ndx < types1.length; ndx++) { comparison = Signature.getSignatureSimpleName(types1[ndx]) .compareTo(Signature.getSignatureSimpleName(types2[ndx])); if (comparison != 0) return comparison; } return 0; } }); methodComboViewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent event) { methodSelected(methodComboViewer); } }); classButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent event) { try { selectClass(classButton, methodComboViewer); } catch (JavaModelException e) { Activator.error(e); } } }); newClassButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent event) { createNewClass(classButton, methodComboViewer); } }); }
From source file:org.jboss.tools.openshift.express.internal.ui.wizard.connection.ConnectionWizardPage.java
License:Open Source License
protected void doCreateControls(Composite container, DataBindingContext dbc) { GridLayoutFactory.fillDefaults().numColumns(2).margins(10, 10).applyTo(container); Link signupLink = new Link(container, SWT.WRAP); signupLink.setText("If you do not have an account on OpenShift, please sign up <a>here</a>."); GridDataFactory.fillDefaults().align(SWT.LEFT, SWT.CENTER).span(2, 1).applyTo(signupLink); signupLink.addSelectionListener(onSignupLinkClicked()); Label fillerLabel = new Label(container, SWT.NONE); GridDataFactory.fillDefaults().span(2, 1).hint(SWT.DEFAULT, 6).applyTo(fillerLabel); Label connectionLabel = new Label(container, SWT.NONE); connectionLabel.setText("Connection:"); GridDataFactory.fillDefaults().align(SWT.LEFT, SWT.CENTER).hint(100, SWT.DEFAULT).applyTo(connectionLabel); Combo connectionCombo = new Combo(container, SWT.DEFAULT); GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false).applyTo(connectionCombo); final ComboViewer connectionComboViewer = new ComboViewer(connectionCombo); connectionComboViewer.setContentProvider(ArrayContentProvider.getInstance()); connectionComboViewer.setLabelProvider(new ConnectionColumLabelProvider()); connectionComboViewer.setInput(pageModel.getConnections()); connectionComboViewer.setComparer(new NewConnectionAwareConnectionComparer()); Binding selectedConnectionBinding = ValueBindingBuilder .bind(ViewerProperties.singleSelection().observe(connectionComboViewer)) .validatingAfterGet(new IValidator() { @Override//from w w w . j a v a2s . co m public IStatus validate(Object value) { if (value == null) { return ValidationStatus.cancel("You have to select or create a new connection."); } return ValidationStatus.ok(); } }).to(BeanProperties.value(ConnectionWizardPageModel.PROPERTY_SELECTED_CONNECTION, Connection.class) .observe(pageModel)) .in(dbc); ControlDecorationSupport.create(selectedConnectionBinding, SWT.LEFT | SWT.TOP, null, new RequiredControlDecorationUpdater()); // stack with connection widgets / password widget Composite connectionWidgetsContainer = new Composite(container, SWT.NONE); GridDataFactory.fillDefaults().span(2, 1).applyTo(connectionWidgetsContainer); StackLayout stackLayout = new StackLayout(); connectionWidgetsContainer.setLayout(stackLayout); Composite connectionWidgets = createNewConnectionComposite(connectionWidgetsContainer, dbc); Composite passwordWidgets = createExistingConnectionComposite(connectionWidgetsContainer, dbc); showConnectionWidgets(pageModel.isCreateNewConnection(), passwordWidgets, connectionWidgets, stackLayout, connectionWidgetsContainer); BeanProperties.value(ConnectionWizardPageModel.PROPERTY_SELECTED_CONNECTION).observe(pageModel) .addValueChangeListener(onNewConnectionSelected(passwordWidgets, connectionWidgets, stackLayout, connectionWidgetsContainer)); }