List of usage examples for org.eclipse.jface.viewers ComboViewer ComboViewer
public ComboViewer(Composite parent, int style)
From source file:net.refractions.udig.style.sld.editor.raster.SingleBandEditorPage.java
License:Open Source License
private ComboViewer createPaletteViewer(Composite parent) { ComboViewer thiscv = new ComboViewer(parent, SWT.DROP_DOWN | SWT.READ_ONLY); thiscv.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false, 2, 1)); ((GridData) thiscv.getControl().getLayoutData()).widthHint = 150; // list of matching palettes thiscv.setLabelProvider(new LabelProvider() { public String getText(Object element) { if (element instanceof BrewerPalette) { return brewerLblProvider.getText(element); } else if (element instanceof String) { return (String) element; } else if (element instanceof PredefinedColorRule) { return ((PredefinedColorRule) element).getName(); }/*from w w w. j a va 2 s . c o m*/ return super.getText(element); } }); thiscv.setContentProvider(ArrayContentProvider.getInstance()); return thiscv; }
From source file:net.refractions.udig.tool.select.internal.AOILayerPage.java
License:Open Source License
@Override public void createControl(Composite parent) { page = new Composite(parent, SWT.NONE); GridLayout layout = new GridLayout(); layout.numColumns = 2;/*from w w w .jav a 2s. c o m*/ page.setLayout(layout); Label comboLabel = new Label(page, SWT.LEFT); comboLabel.setText("Layer:"); comboLabel.pack(); listenStrategy(true); comboViewer = new ComboViewer(page, SWT.READ_ONLY); comboViewer.setContentProvider(new ArrayContentProvider()); comboViewer.setLabelProvider(new LabelProvider() { @Override public String getText(Object element) { if (element instanceof ILayer) { ILayer layer = (ILayer) element; return layer.getName(); } return super.getText(element); } }); List<ILayer> layers = getAOILayerStrategy().getAOILayers(); comboViewer.setInput(layers); ILayer activeLayer = getAOILayerStrategy().getActiveLayer(); setSelected(activeLayer); comboViewer.addSelectionChangedListener(comboListener); // // list of current AOI features // Label listLabel = new Label(page, SWT.LEFT); // listLabel.setText("Current Features:"); // listLabel.pack(); // // listViewer = new ListViewer(page, SWT.READ_ONLY); // listViewer.setContentProvider(new ArrayContentProvider()); // listViewer.setLabelProvider(new LabelProvider(){ // @Override // public String getText( Object element ) { // if (element instanceof SimpleFeature) { // SimpleFeature feature = (SimpleFeature) element; // Collection<Property> properties = feature.getProperties(); // String name = new String(); // for (Property property : properties) { // String propertyName = property.getName().getLocalPart(); // if(propertyName.toLowerCase().contains("name")) { // name = property.getValue().toString(); // System.out.println(name); // continue; // } // // } // return name; // } // return super.getText(element); // } // }); // List<SimpleFeature> features = getAOILayerStrategy().getFeatures(); // listViewer.setInput(features); }
From source file:net.refractions.udig.transformtool.TransformDialog.java
License:Open Source License
protected Control createDialogArea(Composite parent) { /*PlatformUI.getWorkbench().getHelpSystem().setHelp( this.dialogArea, "org.eclipse.help.transformtoolhelp");*/ // Label label; GridData gridData;/* w ww .j ava 2s . c o m*/ Composite container = (Composite) super.createDialogArea(parent); GridLayout layout = new GridLayout(); layout.numColumns = 2; container.setLayout(layout); final RadioGroupComposite radios = new RadioGroupComposite(); IMap map = ApplicationGIS.getActiveMap(); IBlackboard blackboard = map.getBlackboard(); if (blackboard.get(TransformTool.BLACKBOARD_SOURCELAYER) == null) { sourceLayer = (LayerImpl) map.getEditManager().getSelectedLayer(); blackboard.put(TransformTool.BLACKBOARD_SOURCELAYER, sourceLayer); } final Label label = new Label(container, SWT.SINGLE); label.setText("Source Layer:"); gridData = new GridData(); gridData.verticalSpan = 1; gridData.horizontalSpan = 1; gridData.horizontalAlignment = GridData.FILL; gridData.grabExcessHorizontalSpace = true; label.setLayoutData(gridData); final ComboViewer comboViewer = new ComboViewer(container, SWT.SINGLE); comboViewer.setLabelProvider(new LayerLabelProvider()); comboViewer.setContentProvider(new ArrayContentProvider()); comboViewer.setInput(map.getMapLayers().toArray()); comboViewer.setSelection((ISelection) (new StructuredSelection( (Layer) blackboard.get(TransformTool.BLACKBOARD_SOURCELAYER))), true); gridData = new GridData(); gridData.verticalSpan = 2; gridData.horizontalSpan = 2; gridData.verticalAlignment = GridData.FILL; gridData.horizontalAlignment = GridData.FILL; gridData.grabExcessHorizontalSpace = true; comboViewer.getCombo().setLayoutData(gridData); comboViewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { IStructuredSelection selection = (IStructuredSelection) event.getSelection(); IMap map = ApplicationGIS.getActiveMap(); IBlackboard blackboard = map.getBlackboard(); blackboard.put(TransformTool.BLACKBOARD_SOURCELAYER, (LayerImpl) selection.getFirstElement()); System.out.println("Selected: " + selection.getFirstElement()); sourceLayer = (LayerImpl) selection.getFirstElement(); radios.refresh(); } }); //*******************Vector Group************* gridData = new GridData(); gridData.horizontalSpan = 2; gridData.verticalSpan = 1; (new VectorToolComposite(container)).addWidgets(gridData, radios); // *******************Radio Group************* gridData = new GridData(); gridData.horizontalSpan = 2; gridData.grabExcessHorizontalSpace = true; gridData.verticalSpan = 3; gridData.horizontalAlignment = GridData.FILL; radios.addRadios(container, gridData); //**********************Info and transform group***** Button infoButton = new Button(container, SWT.BUTTON1); infoButton.setText("Transformation info"); Button transButton = new Button(container, SWT.BUTTON1); transButton.setText("Transform"); gridData = new GridData(); gridData.verticalSpan = 1; gridData.horizontalSpan = 2; gridData.horizontalAlignment = GridData.FILL; gridData.grabExcessHorizontalSpace = true; infoButton.setLayoutData(gridData); transButton.setLayoutData(gridData); transButton.setEnabled(true); transButton.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent event) { (new DialogUtility()).transClick(); getShell().close(); } }); infoButton.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent event) { Display.getDefault().syncExec(new Runnable() { public void run() { IMap map = ApplicationGIS.getActiveMap(); IBlackboard blackboard = map.getBlackboard(); Object mt = blackboard.get(TransformTool.BLACKBOARD_MATHTRANSFORM); MathTransformBuilder calculator = (MathTransformBuilder) blackboard .get(TransformTool.BLACKBOARD_CALCULATOR); int number = ((List<MappedPosition>) blackboard.get(VectorLayerReader.BLACKBOARD_PTS)) .size(); // Layer sourceLayer = (Layer) blackboard.get(TransformTool.BLACKBOARD_SOURCELAYER); //CoordinateReferenceSystem c = sourceLayer.getCRS(); try { double m = calculator.getErrorStatistics().rms(); NumberFormat foramter = new DecimalFormat("0.00E0"); String error = foramter.format(m); //m = Math.round(m*1000)/1000 ; String info = "Transformation summary" + "\n" + "\n" + "Number of ground control points: " + number + "\n" + "\n" + "Cartesian Standard deviation = " + error + " " + ((Layer) blackboard.get(TransformTool.BLACKBOARD_SOURCELAYER)).getCRS() .getCoordinateSystem().getAxis(0).getUnit() + "\n" + "\n" + mt.toString() + "\n" ; Dialog dialog = new InfoDialog(Display.getDefault().getActiveShell(), info); dialog.open(); /* MessageDialog.openInformation(Display.getDefault() .getActiveShell(), "Transformation summary", "Number of idetical points: " + ptSrc.length + "\n" + "\n" + "Standard deviation = " + m +"\n" + "\n" + "\n" + mt.toWKT()+"\n"+ "SourceLayer coordiante System"+ sourceLayer); */ } catch (Exception e) { MessageDialog.openInformation(Display.getDefault().getActiveShell(), "Transformation summary", e.toString()); } } }); } }); return container; }
From source file:net.refractions.udig.transformtool.VectorToolComposite.java
License:Open Source License
protected void addWidgets(GridData gridData, RadioGroupComposite radios) { this.radios = radios; IToolManager manager = ApplicationGIS.getToolManager(); Group group = new Group(parent, SWT.NULL); group.setText("Transformation method:"); group.setLayoutData(gridData);/*from ww w . j a va 2s . c o m*/ GridLayout layout3 = new GridLayout(); layout3.numColumns = 2; group.setLayout(layout3); final Label labelvector = new Label(group, SWT.SINGLE); labelvector.setText("Vector Layer (leave empty to create new):"); gridData = new GridData(); gridData.verticalSpan = 1; gridData.horizontalSpan = 2; gridData.horizontalAlignment = GridData.FILL; gridData.grabExcessHorizontalSpace = true; labelvector.setLayoutData(gridData); IMap map = ApplicationGIS.getActiveMap(); final ComboViewer comboVector = new ComboViewer(group, SWT.SINGLE); comboVector.setLabelProvider(new LayerLabelProvider()); comboVector.setContentProvider(new ArrayContentProvider()); comboVector.setInput(map.getMapLayers().toArray()); gridData = new GridData(); gridData.verticalSpan = 8; gridData.horizontalSpan = 2; gridData.horizontalAlignment = GridData.FILL; // gridData.verticalAlignment = GridData.FILL; comboVector.getCombo().setLayoutData(gridData); IBlackboard blackboard = map.getBlackboard(); if (blackboard.get(TransformTool.BLACKBOARD_VECTORLAYER) != null) { comboVector.setSelection((ISelection) (new StructuredSelection( (Layer) blackboard.get(TransformTool.BLACKBOARD_VECTORLAYER))), true); } if (blackboard.get(TransformTool.BLACKBOARD_VECTORLAYER) != null) { comboVector.setSelection((ISelection) (new StructuredSelection( (Layer) blackboard.get(TransformTool.BLACKBOARD_VECTORLAYER))), true); } comboVector.addSelectionChangedListener(new ComboHandler()); Button addButton = new Button(group, SWT.BUTTON1); addButton.setData(manager.getTool("net.refractions.udig.ui.transformtool.lineEdit", "net.refractions.udig.tool.edit.create")); addButton.setText("Add Vectors"); gridData = new GridData(); gridData.verticalSpan = 1; gridData.horizontalSpan = 1; gridData.horizontalAlignment = GridData.FILL; gridData.grabExcessHorizontalSpace = true; addButton.setLayoutData(gridData); addButton.addSelectionListener(new AddHandler()); Button deleteButton = new Button(group, SWT.BUTTON1); deleteButton.setData(manager.getTool("net.refractions.udig.ui.transformtool.deleteTool", "net.refractions.udig.tool.edit.feature")); deleteButton.setText("Remove Vectors"); deleteButton.addSelectionListener(new AddHandler()); deleteButton.setLayoutData(gridData); }
From source file:net.refractions.udig.tutorials.featureeditor.CountryPanelForm.java
License:Open Source License
public void createControl(Composite parent, FormToolkit toolkit) { this.toolkit = toolkit; form = toolkit.createScrolledForm(parent); form.getForm().addMessageHyperlinkListener(new HyperlinkAdapter() { @Override// w w w . j av a2s . co m public void linkActivated(HyperlinkEvent e) { final IMessage[] errors = (IMessage[]) e.data; if (errors.length > 0) { final IMessage topError = errors[0]; topError.getControl().setFocus(); } } }); form.getMessageManager().setMessagePrefixProvider(new IMessagePrefixProvider() { @Override public String getPrefix(Control control) { return control.getData().toString() + " - "; } }); form.setText("Country Form"); final ColumnLayout layout = new ColumnLayout(); layout.maxNumColumns = MAX_COLS; layout.minNumColumns = MIN_COLS; form.getBody().setLayout(layout); toolkit.decorateFormHeading(form.getForm()); final Section section = toolkit.createSection(form.getBody(), SECTION_STYLE); section.setText("Country Details"); section.setDescription("Update country details below."); section.addExpansionListener(new ExpansionAdapter() { public void expansionStateChanged(ExpansionEvent e) { // Nothing } }); final Composite client = toolkit.createComposite(section, SWT.NONE); GridLayout sectionLayout = new GridLayout(); sectionLayout.numColumns = 4; client.setLayout(sectionLayout); section.setClient(client); // SWT Widgets Label label = toolkit.createLabel(client, NAME_FORMA_LBL, LABEL_STYLE); nameFormal = toolkit.createText(client, "", FIELD_STYLE); nameFormal.setData(NAME_FORMA_LBL); nameFormal.addFocusListener(this); nameFormal.addKeyListener(this); GridData layoutData = new GridData(GridData.FILL_HORIZONTAL); layoutData.horizontalSpan = 3; nameFormal.setLayoutData(layoutData); label = toolkit.createLabel(client, NAME_SORT_LBL, LABEL_STYLE); nameSort = toolkit.createText(client, "", FIELD_STYLE); nameSort.setData(NAME_SORT_LBL); nameSort.addFocusListener(this); nameSort.addKeyListener(this); layoutData = new GridData(GridData.FILL_HORIZONTAL); layoutData.horizontalSpan = 3; nameSort.setLayoutData(layoutData); label = toolkit.createLabel(client, POP_EST_LBL, LABEL_STYLE); population = toolkit.createText(client, "", FIELD_STYLE); population.setData(POP_EST_LBL); population.addFocusListener(this); population.addKeyListener(this); layoutData = new GridData(GridData.FILL_HORIZONTAL); layoutData.horizontalSpan = 3; population.setLayoutData(layoutData); label = toolkit.createLabel(client, "", LABEL_STYLE); type = toolkit.createButton(client, TYPE_SOV_LBL, SWT.CHECK); type.addMouseListener(this); layoutData = new GridData(GridData.FILL_HORIZONTAL); layoutData.horizontalSpan = 3; type.setLayoutData(layoutData); // JFace Viewer label = toolkit.createLabel(client, "Color Map:", LABEL_STYLE); colorMap = new ComboViewer(client, FIELD_STYLE); colorMap.addSelectionChangedListener(this); layoutData = new GridData(); layoutData.horizontalSpan = 3; colorMap.getControl().setLayoutData(layoutData); // hook up to data colorMap.setContentProvider(new IStructuredContentProvider() { public Object[] getElements(Object inputElement) { if (inputElement instanceof Object[]) { return (Object[]) inputElement; } return null; } public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { // for dynamic content we would register listeners here } public void dispose() { } }); colorMap.setLabelProvider(new LabelProvider() { public String getText(Object element) { return " " + element + " color"; } }); colorMap.setInput(COLOR_MAP_OPTS); // Other sample section - to try out ColumnLayout final Section sectionOther = toolkit.createSection(form.getBody(), SECTION_STYLE); sectionOther.setText("Others"); sectionOther.setDescription( "Sample section to demo ColumnLayout, make the view width smaller to force it to relayout."); sectionOther.addExpansionListener(new ExpansionAdapter() { public void expansionStateChanged(ExpansionEvent e) { // Nothing } }); final Composite clientOther = toolkit.createComposite(sectionOther, SWT.NONE); sectionLayout = new GridLayout(); sectionLayout.numColumns = 4; clientOther.setLayout(sectionLayout); sectionOther.setClient(clientOther); Label remarksLbl = toolkit.createLabel(clientOther, "Remarks:", LABEL_STYLE); Text remarks = toolkit.createText(clientOther, "", FIELD_STYLE); layoutData = new GridData(GridData.FILL_HORIZONTAL); layoutData.horizontalSpan = 3; remarks.setLayoutData(layoutData); // Buttons apply = new Action("Apply") { @Override public void run() { applyChanges(); } }; apply.setEnabled(false); form.getToolBarManager().add(apply); reset = new Action("Reset") { @Override public void run() { resetChanges(); } }; reset.setEnabled(false); form.getToolBarManager().add(reset); form.getToolBarManager().update(true); }
From source file:net.refractions.udig.ui.aoi.AOIView.java
License:Open Source License
@Override public void createPartControl(Composite parent) { GridLayout layout = new GridLayout(); layout.numColumns = 2;/* w w w .j a v a 2 s . c o m*/ parent.setLayout(layout); Label label = new Label(parent, SWT.LEFT); label.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, false, false)); label.setText("Area of Interest: "); // get the current strategy IAOIService aOIService = PlatformGIS.getAOIService(); listenService(true); // eclipse combo viewer comboViewer = new ComboViewer(parent, SWT.READ_ONLY); comboViewer.setContentProvider(new ArrayContentProvider()); comboViewer.setLabelProvider(new LabelProvider() { @Override public String getText(Object element) { if (element instanceof IAOIStrategy) { IAOIStrategy comboStrategy = (IAOIStrategy) element; return comboStrategy.getName(); } return super.getText(element); } }); comboViewer.setInput(aOIService.getProxyList()); // set the current strategy AOIProxy proxy = aOIService.getProxy(); if (proxy == null) { proxy = aOIService.getDefault(); } comboViewer.setSelection(new StructuredSelection(proxy)); // now that we are configured we can start to listen! listenCombo(true); pagebook = new PageBook(parent, SWT.NONE); GridData layoutData = new GridData(SWT.LEFT, SWT.TOP, true, true); layoutData.widthHint = 400; layoutData.horizontalSpan = 2; layoutData.heightHint = 400; pagebook.setLayoutData(layoutData); }
From source file:net.sf.eclipsefp.haskell.ui.internal.search.HaskellSearchPage.java
License:Open Source License
@Override public void createControl(final Composite arg0) { Composite main = new Composite(arg0, SWT.NONE); main.setLayout(new GridLayout(2, false)); Label l = new Label(main, SWT.NONE); l.setText(UITexts.SearchPage_text);/*from ww w . ja v a 2s . c om*/ GridData gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL); gd.horizontalSpan = 2; l.setLayoutData(gd); termList = new ComboViewer(main, SWT.NONE); gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL); gd.horizontalSpan = 2; termList.getCombo().setLayoutData(gd); termList.setContentProvider(new ArrayContentProvider()); termList.setInput(previous); if (previous.size() > 0) { termList.getCombo().select(0); } termList.getCombo().addModifyListener(new ModifyListener() { @Override public void modifyText(final ModifyEvent arg0) { updateStatus(); } }); termList.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(final SelectionChangedEvent arg0) { updateStatus(); } }); Group gType = new Group(main, SWT.NONE); gType.setText(UITexts.SearchPage_type); gType.setLayout(new GridLayout(2, true)); final Button bModule = createTypeButton(gType, UsageQueryFlags.TYPE_MODULE, UITexts.SearchPage_type_modules); createTypeButton(gType, UsageQueryFlags.TYPE_TYPE, UITexts.SearchPage_type_types); createTypeButton(gType, UsageQueryFlags.TYPE_CONSTRUCTOR, UITexts.SearchPage_type_constructors); final Button bFunctions = createTypeButton(gType, UsageQueryFlags.TYPE_VAR, UITexts.SearchPage_type_functions); Group gScope = new Group(main, SWT.NONE); gScope.setText(UITexts.SearchPage_scope); gScope.setLayout(new GridLayout(2, true)); final Button bAll = createScopeButton(gScope, UsageQueryFlags.SCOPE_ALL, UITexts.SearchPage_scope_all); createScopeButton(gScope, UsageQueryFlags.SCOPE_DEFINITIONS, UITexts.SearchPage_scope_declarations); final Button bRefs = createScopeButton(gScope, UsageQueryFlags.SCOPE_REFERENCES, UITexts.SearchPage_scope_references); setControl(main); // preselect module if we have a file if (container.getSelection() instanceof IStructuredSelection) { Object o = ((IStructuredSelection) container.getSelection()).getFirstElement(); if (o instanceof IFile) { String module = ResourceUtil.getModuleName((IFile) o); if (module != null && module.length() > 0) { termList.getCombo().setText(module); bModule.setSelection(true); bFunctions.setSelection(false); bModule.notifyListeners(SWT.Selection, new Event()); bRefs.setSelection(true); bAll.setSelection(false); bRefs.notifyListeners(SWT.Selection, new Event()); } } } updateStatus(); setErrorMessage(null); }
From source file:net.sf.eclipsefp.haskell.ui.internal.views.worksheet.EvalExpressionDialog.java
License:Open Source License
@Override protected Control createDialogArea(final Composite parent) { Composite c = (Composite) super.createDialogArea(parent); Composite typeC = new Composite(c, SWT.NONE); typeC.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); typeC.setLayout(new GridLayout(2, false)); Label typeL = new Label(typeC, SWT.NONE); typeL.setText(UITexts.worksheet_expression_type); ComboViewer cv = new ComboViewer(typeC, SWT.READ_ONLY | SWT.SINGLE); cv.setContentProvider(new ArrayContentProvider()); cv.setLabelProvider(new LabelProvider()); cv.setComparator(new WorkbenchViewerComparator()); cv.setInput(ResultType.values());//from ww w .j av a 2 s . c o m cv.setSelection(new StructuredSelection(resultType)); cv.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(final SelectionChangedEvent event) { resultType = (ResultType) ((IStructuredSelection) event.getSelection()).getFirstElement(); } }); return c; }
From source file:net.sf.logsaw.ui.dialogs.FilterClauseComposite.java
License:Open Source License
/** * Constructor./* w ww . ja v a2 s. com*/ * @param parent the parent composite * @param style the style flags * @param log the log resource */ public FilterClauseComposite(Composite parent, int style, ILogResource log) { super(parent, style); this.log = log; GridLayout layout = new GridLayout(4, false); layout.horizontalSpacing = 10; setLayout(layout); setLayoutData(new GridData(SWT.FILL, SWT.NONE, true, false)); fieldComboViewer = new ComboViewer(this, SWT.BORDER | SWT.READ_ONLY); WritableList model = new WritableList(log.getDialect().getFieldProvider().getAllFields(), ALogEntryField.class); ViewerSupport.bind(fieldComboViewer, model, PojoProperties.values(new String[] { "label" })); //$NON-NLS-1$ fieldComboViewer.setComparator(new ViewerComparator()); fieldComboViewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent e) { IStructuredSelection sel = (IStructuredSelection) e.getSelection(); ALogEntryField<?, ?> fld = (ALogEntryField<?, ?>) sel.getFirstElement(); updateOperatorCombo(fld); recreateRenderer(fld); renderer.validateInput(); // Revalidate } }); operatorComboViewer = new ComboViewer(this, SWT.BORDER | SWT.READ_ONLY); operatorModel = WritableList.withElementType(Operator.class); ViewerSupport.bind(operatorComboViewer, operatorModel, PojoProperties.values(new String[] { "label" })); //$NON-NLS-1$ operatorComboViewer.setComparator(new ViewerComparator()); removeButton = new Button(this, SWT.NONE); removeButton.setText(Messages.FilterClauseComposite_label_remove); removeButton.addSelectionListener(new SelectionAdapter() { /* (non-Javadoc) * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent) */ @Override public void widgetSelected(SelectionEvent e) { fireRemoveButtonPressed(); } }); // Init selection fieldComboViewer.setSelection(new StructuredSelection(fieldComboViewer.getElementAt(0))); }
From source file:net.sf.logsaw.ui.dialogs.FilterSettingsDialog.java
License:Open Source License
@Override protected Control createDialogArea(Composite parent) { Composite parentComposite = (Composite) super.createDialogArea(parent); Composite namedFilterComposite = new Composite(parentComposite, SWT.NONE); namedFilterComposite.setLayoutData(new GridData(SWT.FILL, SWT.NONE, true, false)); namedFilterComposite.setLayout(new GridLayout()); Group group = new Group(namedFilterComposite, SWT.NONE); group.setText(Messages.FilterSettingsDialog_label_saveLoad); group.setLayoutData(new GridData(SWT.FILL, SWT.NONE, true, false)); group.setLayout(new GridLayout(4, false)); Label label = new Label(group, SWT.NONE); label.setText(Messages.FilterSettingsDialog_label_filterName); namedFiltersViewer = new ComboViewer(group, SWT.BORDER); namedFiltersViewer.getCombo().setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); namedFiltersViewer.setContentProvider(new ArrayContentProvider()); namedFiltersViewer.setLabelProvider(new LabelProvider() { /* (non-Javadoc) * @see org.eclipse.jface.viewers.LabelProvider#getText(java.lang.Object) */// ww w . j av a 2 s .c om @Override public String getText(Object element) { NamedFilter flt = (NamedFilter) element; return flt.getName(); } }); namedFiltersViewer.setInput(namedFilters.toArray()); namedFiltersViewer.setComparator(new ViewerComparator()); namedFiltersViewer.addSelectionChangedListener(new ISelectionChangedListener() { /* (non-Javadoc) * @see org.eclipse.jface.viewers.ISelectionChangedListener#selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent) */ @Override public void selectionChanged(SelectionChangedEvent e) { IStructuredSelection sel = (IStructuredSelection) e.getSelection(); NamedFilter flt = (NamedFilter) sel.getFirstElement(); if (flt != null) { // Delete button is only enabled when a fresh filter is selected deleteButton.setEnabled(true); clearContents(); // Set restrictions to load restrictions = new ArrayList<ARestriction<?>>(flt.getRestrictions()); updateContents(false); } } }); namedFiltersViewer.getCombo().addModifyListener(new ModifyListener() { /* (non-Javadoc) * @see org.eclipse.swt.events.ModifyListener#modifyText(org.eclipse.swt.events.ModifyEvent) */ @Override public void modifyText(ModifyEvent e) { updateSaveButton(); // Delete button is being disabled as soon as the text is modified deleteButton.setEnabled(false); try { save(); } catch (CoreException ce) { // Log and show error UIPlugin.logAndShowError(ce, true); } } }); saveButton = new Button(group, SWT.NONE); saveButton.setText(Messages.FilterSettingsDialog_label_save); saveButton.addSelectionListener(new SelectionAdapter() { /* (non-Javadoc) * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent) */ @Override public void widgetSelected(SelectionEvent e) { NamedFilter flt = doFindNamedFilter(); if (flt != null) { if (MessageDialog.openQuestion(getShell(), Messages.FilterSettingsDialog_confirm_title, Messages.FilterSettingsDialog_confirm_question)) { // Remove old namedFilters.remove(flt); } else { // Abort saving return; } } flt = new NamedFilter(); flt.setName(namedFiltersViewer.getCombo().getText().trim()); flt.setRestrictions(doGetRestrictions()); namedFilters.add(flt); namedFiltersViewer.setInput(namedFilters.toArray()); try { save(); } catch (CoreException ce) { // Log and show error UIPlugin.logAndShowError(ce, true); } } }); deleteButton = new Button(group, SWT.NONE); deleteButton.setText(Messages.FilterSettingsDialog_label_delete); deleteButton.addSelectionListener(new SelectionAdapter() { /* (non-Javadoc) * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent) */ @Override public void widgetSelected(SelectionEvent e) { NamedFilter flt = doFindNamedFilter(); namedFilters.remove(flt); namedFiltersViewer.setInput(namedFilters.toArray()); } }); deleteButton.setEnabled(false); label = new Label(parentComposite, SWT.SEPARATOR | SWT.HORIZONTAL); label.setLayoutData(new GridData(SWT.FILL, SWT.NONE, true, false)); scrolledComposite = new ScrolledComposite(parentComposite, SWT.V_SCROLL); GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true); gridData.heightHint = 250; gridData.widthHint = 600; scrolledComposite.setLayoutData(gridData); scrolledComposite.setExpandHorizontal(true); rootComposite = new Composite(scrolledComposite, SWT.NONE); rootComposite.setLayout(new GridLayout()); label = new Label(parentComposite, SWT.SEPARATOR | SWT.HORIZONTAL); label.setLayoutData(new GridData(SWT.FILL, SWT.NONE, true, false)); setTitle(Messages.FilterSettingsDialog_title); setMessage(Messages.FilterSettingsDialog_message); updateContents(true); // Enable help button setHelpAvailable(true); PlatformUI.getWorkbench().getHelpSystem().setHelp(getShell(), IHelpContexts.FILTER_SETTINGS_DIALOG); return rootComposite; }