List of usage examples for org.eclipse.jface.viewers IStructuredSelection toArray
public Object[] toArray();
From source file:com.amalto.workbench.actions.XSDDeleteConceptWrapAction.java
License:Open Source License
/** * author: Fliu it is meant to support multiple deletions on data modules on key press * * @param selections: tree node picking up in the data module view *//*from w w w . j a v a2 s .c o m*/ public void prepareToDelSelectedItems(IStructuredSelection selections, TreeViewer treeView) { viewer = treeView; Object[] objs = selections.toArray(); objs = filterSelectedItemsToDel(selections); wrapDelObj(objs); }
From source file:com.amalto.workbench.actions.XSDDeleteConceptWrapAction.java
License:Open Source License
/** * Author: Fliu this fun is to filter out all the children listed in the selections, all left is the top parent * level ones in the selections// ww w . ja v a 2 s.co m * * @param selections * @return all parent array with no corresponding children in the selection list */ private Object[] filterSelectedItemsToDel(IStructuredSelection selections) { Object[] objs = selections.toArray(); List lst = new ArrayList(); for (Object obj : objs) { if (obj instanceof XSDElementDeclarationImpl) { continue; } for (Object objOther : objs) { if (obj == objOther) { continue; } Object[] offsprings = populateAllOffspring(objOther, new ArrayList()); for (Object offspring : offsprings) { if (offspring == obj) { if (lst.indexOf(obj) < 0) { lst.add(obj); } } } } } for (Object ca : objs) { if (lst.indexOf(ca) >= 0) { lst.remove(ca); } else { lst.add(ca); } } return lst.toArray(); }
From source file:com.amalto.workbench.editors.DataModelMainPage.java
License:Open Source License
private void createSchemaTreeComp(Composite parent) { Composite schemaSash = new Composite(parent, SWT.NONE); GridLayout layout = new GridLayout(); layout.verticalSpacing = 0;//w ww . j ava 2 s .co m schemaSash.setLayout(layout); schemaSash.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); schemaSash.setBackground(sash.getDisplay().getSystemColor(SWT.COLOR_WHITE)); Composite compInfo = new Composite(schemaSash, SWT.NONE); layout = new GridLayout(); layout.verticalSpacing = 0; compInfo.setLayout(layout); compInfo.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false)); compInfo.setBackground(sash.getDisplay().getSystemColor(SWT.COLOR_WHITE)); Composite compSchemaTree = new Composite(schemaSash, SWT.NONE); GridLayout glCompSchemaTree = new GridLayout(); glCompSchemaTree.verticalSpacing = 0; glCompSchemaTree.marginWidth = 0; glCompSchemaTree.marginHeight = 0; glCompSchemaTree.horizontalSpacing = 0; compSchemaTree.setLayout(glCompSchemaTree); compSchemaTree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); compSchemaTree.setBackground(sash.getDisplay().getSystemColor(SWT.COLOR_WHITE)); Label title = new Label(compInfo, SWT.VERTICAL); title.setText(Messages.DataModelEntities); title.setFont(FontUtils.getBoldFont(title.getFont())); Color blue = new Color(compInfo.getDisplay(), 0, 0, 255); title.setForeground(blue); title.setBackground(sash.getDisplay().getSystemColor(SWT.COLOR_WHITE)); ToolBar toolBarSchemaTree = createToolbarOnComposite(compSchemaTree); viewer = new TreeViewer(compSchemaTree, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER); viewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); addToolItems2SchemaTreeToolBar(toolBarSchemaTree); toolBarSchemaTree.pack(); drillDownAdapter = new DrillDownAdapter(viewer); schemaTreeContentProvider = new SchemaTreeContentProvider(this.getSite(), xsdSchema); viewer.setContentProvider(schemaTreeContentProvider); viewer.setFilters(new ViewerFilter[] { new SchemaRoleAccessFilter(null), new SchemaNameFilter(), new SchemaUniqueElementFilter() }); viewer.getTree().addMouseListener(new MouseAdapter() { @Override public void mouseDown(MouseEvent e) { isSchemaSelected = true; } }); viewer.setLabelProvider(new XSDTreeLabelProvider()); viewer.setSorter(schemaTreeSorter); viewer.setInput(this.getSite());// getViewSite()); viewer.getTree().addKeyListener(new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { if (isReadOnly()) { return; } IStructuredSelection selection = ((IStructuredSelection) viewer.getSelection()); // delete if ((e.stateMask == 0) && (e.keyCode == SWT.DEL)) { if (deleteConceptWrapAction.checkInDeletableType(selection.toArray())) { deleteConceptWrapAction.prepareToDelSelectedItems(selection, viewer); deleteConceptWrapAction.run(); } else { MessageDialog.openWarning(getSite().getShell(), Messages.Warning, Messages.SelectDeletableTry); } } } }); viewer.setComparer(new ElementComparer()); }
From source file:com.amalto.workbench.editors.DataModelMainPage.java
License:Open Source License
private void createTypeTreeComp(Composite parent) { Composite TypeSash = new Composite(parent, SWT.NONE); GridLayout layout = new GridLayout(); layout.verticalSpacing = 0;//w w w . j a v a 2s . com TypeSash.setLayout(layout); TypeSash.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); TypeSash.setBackground(sash.getDisplay().getSystemColor(SWT.COLOR_WHITE)); Composite compInfo = new Composite(TypeSash, SWT.NONE); layout = new GridLayout(); layout.verticalSpacing = 0; compInfo.setLayout(layout); compInfo.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false)); compInfo.setBackground(sash.getDisplay().getSystemColor(SWT.COLOR_WHITE)); Composite compTypeTree = new Composite(TypeSash, SWT.NONE); GridLayout glCompTypeTree = new GridLayout(); glCompTypeTree.verticalSpacing = 0; glCompTypeTree.marginWidth = 0; glCompTypeTree.marginHeight = 0; glCompTypeTree.horizontalSpacing = 0; compTypeTree.setLayout(glCompTypeTree); compTypeTree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); compTypeTree.setBackground(sash.getDisplay().getSystemColor(SWT.COLOR_WHITE)); Label title = new Label(compInfo, SWT.VERTICAL); title.setText(Messages.DataModelTypes); title.setFont(FontUtils.getBoldFont(title.getFont())); Color blue = new Color(compInfo.getDisplay(), 0, 0, 255); title.setForeground(blue); title.setBackground(sash.getDisplay().getSystemColor(SWT.COLOR_WHITE)); ToolBar toolBarTypeTree = createToolbarOnComposite(compTypeTree); typesViewer = new TreeViewer(compTypeTree, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER); typesViewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); addToolItems2TypeTreeToolBar(toolBarTypeTree); toolBarTypeTree.pack(); typesTreeContentProvider = new TypesTreeContentProvider(this.getSite(), xsdSchema); typesViewer.setContentProvider(typesTreeContentProvider); typesViewer.setFilters(new ViewerFilter[] { new SchemaRoleAccessFilter(null), new TypeNameFilter() }); typesViewer.getTree().addMouseListener(new MouseAdapter() { @Override public void mouseDown(MouseEvent e) { isSchemaSelected = false; } }); typesViewer.setLabelProvider(new TypesLabelProvider()); typesViewer.setSorter(typeTreeSorter); typesViewer.setInput(this.getSite());// getViewSite()); typesViewer.getTree().addKeyListener(new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { if (isReadOnly()) { return; } IStructuredSelection selection = ((IStructuredSelection) typesViewer.getSelection()); // delete if ((e.stateMask == 0) && (e.keyCode == SWT.DEL)) { deleteConceptWrapAction.regisExtraClassToDel(XSDComplexTypeDefinitionImpl.class); if (deleteConceptWrapAction.checkInDeletableType(selection.toArray())) { deleteConceptWrapAction.prepareToDelSelectedItems(selection, viewer); deleteConceptWrapAction.run(); } else { deleteConceptWrapAction.clearExtraClassToDel(); deleteConceptWrapAction.regisExtraClassToDel(XSDSimpleTypeDefinitionImpl.class); if (deleteConceptWrapAction.checkInDeletableType(selection.toArray())) { deleteConceptWrapAction.prepareToDelSelectedItems(selection, viewer); deleteConceptWrapAction.run(); } else { MessageDialog.openWarning(getSite().getShell(), Messages.Warning, Messages.SelectDeletableTry); } } } } }); }
From source file:com.amalto.workbench.editors.DataModelMainPage.java
License:Open Source License
protected void fillContextMenu(IMenuManager manager, boolean isType) { IStructuredSelection selection; if (!isType) { selection = ((IStructuredSelection) viewer.getSelection()); } else {//from w ww . j a va 2 s. co m selection = ((IStructuredSelection) typesViewer.getSelection()); } Object[] selectedObjs = selection.toArray(); Object obj = selection.getFirstElement(); if (!isType) { manager.add(newConceptAction); } else { manager.add(newComplexTypeAction); manager.add(newSimpleTypeAction); // add by ymli; fix the bug:0012228. Made the multiple types can be deleted. XSDDeleteTypeDefinition deleteTypeDefinition1; if (selectedObjs.length > 1) { deleteTypeDefinition1 = new XSDDeleteTypeDefinition(this, true); } else { deleteTypeDefinition1 = new XSDDeleteTypeDefinition(this, false); } if (selectedObjs.length >= 1 && deleteTypeDefinition1.isTypeDefinition(selectedObjs)) { manager.add(deleteTypeDefinition1); } deleteConceptWrapAction.regisExtraClassToDel(XSDComplexTypeDefinitionImpl.class); if (selectedObjs.length > 1 && deleteConceptWrapAction.checkInDeletableType(selectedObjs)) { deleteConceptWrapAction.prepareToDelSelectedItems(selection, viewer); } if (selectedObjs.length > 1 && deleteConceptWrapAction.outPutDeleteActions() != null) { manager.add(deleteConceptWrapAction.outPutDeleteActions()); if (deleteConceptWrapAction.checkOutAllConcept(selectedObjs)) { manager.add(newBrowseItemAction); } } if (exAdapter != null && obj instanceof XSDComplexTypeDefinition && selectedObjs.length == 1) { exAdapter.fillContextMenu(manager); } } manager.add(new Separator()); if (!isType && ((selection == null) || (selection.getFirstElement() == null))) { if (WorkbenchClipboard.getWorkbenchClipboard().getConcepts().size() > 0) { manager.add(new Separator(ADDITIONMENUID)); // add by ymli, fix bug 0009770 String title = "";//$NON-NLS-1$ if (WorkbenchClipboard.getWorkbenchClipboard().getConcepts().size() == 1) { title = Messages.PasteEntityText; } else if (WorkbenchClipboard.getWorkbenchClipboard().getConcepts().size() > 1) { title = Messages.PasteEntitiesText; } XSDPasteConceptAction pasteConceptAction = new XSDPasteConceptAction(this, title); if (pasteConceptAction.checkInPasteType()) { manager.add(new Separator()); manager.add(pasteConceptAction); } } return; } // Element Declaration if (obj instanceof XSDElementDeclaration && selectedObjs.length == 1) { // check if concept or "just" element XSDElementDeclaration decl = (XSDElementDeclaration) obj; boolean isConcept = Util.checkConcept(decl); if (!Util.IsAImporedElement(decl, xsdSchema)) { if (isConcept) { manager.add(editConceptAction); manager.add(deleteConceptAction); manager.add(newBrowseItemAction); } else { manager.add(editElementAction); manager.add(deleteElementAction); } // add by ymli. fix bug 0009770 add the copy of concepts copyConceptAction.setText(Messages.CopyEntityText); if (Util.checkInCopy(selectedObjs)) { manager.add(new Separator()); manager.add(copyConceptAction); } /* * boolean isMulti = false; if(WorkbenchClipboard.getWorkbenchClipboard().getConcepts().size()>1) * isMulti = true; */ String title = "";//$NON-NLS-1$ if (WorkbenchClipboard.getWorkbenchClipboard().getConcepts().size() > 1) { title = Messages.PasteEntitiesText; } else if (WorkbenchClipboard.getWorkbenchClipboard().getConcepts().size() == 1) { title = Messages.PasteEntityText; } else if (WorkbenchClipboard.getWorkbenchClipboard().getParticles().size() > 1) { title = Messages.PasteElementsText; } else if (WorkbenchClipboard.getWorkbenchClipboard().getParticles().size() == 1) { title = Messages.PasteElement; } XSDPasteConceptAction pasteConceptAction = new XSDPasteConceptAction(this, title); if (pasteConceptAction.checkInPasteType()) { manager.add(pasteConceptAction); } manager.add(new Separator()); manager.add(newElementAction); manager.add(new Separator()); manager.add(changeToComplexTypeAction); manager.add(changeToSimpleTypeAction); // add by fliu, see bugID:0009157 if (((XSDElementDeclaration) obj).getTypeDefinition() instanceof XSDSimpleTypeDefinition) { manager.add(setFacetMsgAction); manager.add(setAnnotationDisplayFomatAction); } manager.add(new Separator()); manager.add(newIdentityConstraintAction); } else { if (isConcept) { manager.add(newBrowseItemAction); } manager.add(newElementAction); } // Annotations if (!Util.IsAImporedElement(decl, xsdSchema) || !Util.IsAImporedElement(decl.getTypeDefinition(), xsdSchema)) { setAnnotationActions2(obj, manager); } } // add by rhou.fix bug 0012073: Enable to create element from sub element group if (obj instanceof XSDModelGroup) { manager.add(new Separator()); manager.add(getAddElementMenuForTypeClass(XSDModelGroup.class, Messages._AddElement)); manager.add(new Separator()); manager.add(changeSubElementGroupAction); manager.add(new Separator()); manager.add(setAnnotationLabelAction); addPasteElementAction(manager); } if (obj instanceof XSDAttributeUse && selectedObjs.length == 1) { manager.add(deleteAttributeAction); } if (obj instanceof XSDAttributeDeclaration && selectedObjs.length == 1) { manager.add(deleteAttributeAction); } if (obj instanceof XSDParticle && selectedObjs.length == 1) { XSDTerm term = ((XSDParticle) obj).getTerm(); if (!(term instanceof XSDWildcard)) { if (term instanceof XSDElementDeclaration) { manager.add(editParticleAction); if (!Util.IsAImporedElement(term, xsdSchema) || term.getContainer() instanceof XSDSchema) { manager.add(getAddElementMenuForTypeClass(XSDParticle.class, Messages._AddElementAfter)); if (term instanceof XSDModelGroup) { manager.add(getAddElementMenuForTypeClass(XSDModelGroup.class, Messages._AddElement)); manager.add(newGroupFromTypeAction); } manager.add(deleteParticleAction); // edit by ymli. fix the bug:0011523 copyConceptAction.setText(Messages.CopyElementText); manager.add(copyConceptAction); if (((XSDElementDeclaration) term) .getTypeDefinition() instanceof XSDComplexTypeDefinition) { addPasteElementAction(manager); } manager.add(new Separator()); manager.add(changeToComplexTypeAction); manager.add(changeToSimpleTypeAction); // add by fliu, see bugID:0009157 manager.add(new Separator()); // Annotations XSDTypeDefinition type = ((XSDElementDeclaration) term).getTypeDefinition(); setAnnotationActions(obj, manager); if (((XSDElementDeclaration) term).getTypeDefinition() instanceof XSDSimpleTypeDefinition) { manager.add(setFacetMsgAction); manager.add(setAnnotationDisplayFomatAction); } // Xpath manager.add(new Separator()); manager.add(getXPathAction); } } } } if (obj instanceof XSDComplexTypeDefinition && selectedObjs.length == 1 && ((XSDComplexTypeDefinition) obj).getTargetNamespace() == null) { if (!isType && !Util.IsAImporedElement((XSDParticle) obj, xsdSchema)) { manager.add(getAddElementMenuForTypeClass(XSDComplexTypeDefinition.class, Messages._AddElement)); manager.add(newGroupFromTypeAction); } if (!Util.IsAImporedElement((XSDComplexTypeDefinition) obj, xsdSchema)) { // add by rhou.fix bug 0012073: Enable to create element from sub element group manager.add(new Separator()); manager.add(getAddElementMenuForTypeClass(XSDComplexTypeDefinition.class, Messages._AddElement)); manager.add(new Separator()); manager.add(editComplexTypeAction); } manager.add(setAnnotationLabelAction); addPasteElementAction(manager); } if (obj instanceof XSDIdentityConstraintDefinition && selectedObjs.length == 1 && ((XSDIdentityConstraintDefinition) obj).getTargetNamespace() == null && !Util.IsAImporedElement((XSDIdentityConstraintDefinition) obj, xsdSchema)) { manager.add(deleteIdentityConstraintAction); manager.add(new Separator()); manager.add(newXPathAction); } if (obj instanceof XSDXPathDefinition && selectedObjs.length == 1 && ((XSDXPathDefinition) obj).getSchema().getTargetNamespace() == null && !Util.IsAImporedElement((XSDXPathDefinition) obj, xsdSchema)) { manager.add(editXPathAction); manager.add(newXPathAction); XSDXPathDefinition xpath = (XSDXPathDefinition) obj; if (xpath.getVariety().equals(XSDXPathVariety.FIELD_LITERAL)) { manager.add(deleteXPathAction); } } // for the anonymous simpleType if (obj instanceof XSDSimpleTypeDefinition && selectedObjs.length == 1 && (!Util.IsAImporedElement((XSDSimpleTypeDefinition) obj, xsdSchema) || ((XSDSimpleTypeDefinition) obj).getName() == null)) { XSDSimpleTypeDefinition typedef = (XSDSimpleTypeDefinition) obj; manager.add(changeBaseTypeAction); manager.add(new Separator()); if (typedef.getBaseTypeDefinition() != null) { EList list = typedef.getBaseTypeDefinition().getValidFacets(); for (Iterator iter = list.iterator(); iter.hasNext();) { String element = (String) iter.next(); manager.add(new XSDEditFacetAction(this, element)); } } } if (selectedObjs.length > 1 && deleteConceptWrapAction.checkInDeletableType(selectedObjs)) { deleteConceptWrapAction.prepareToDelSelectedItems(selection, viewer); } if (selectedObjs.length > 1 && deleteConceptWrapAction.checkInAllElementType(selectedObjs)) { manager.add(newBrowseItemAction); } if (selectedObjs.length > 1 && deleteConceptWrapAction.outPutDeleteActions() != null) { if (!isType) { manager.add(deleteConceptWrapAction.outPutDeleteActions()); } String title = "";//$NON-NLS-1$ if (Util.checkInCopyTypeElement(selectedObjs)) { title = Messages.CopyEntitiesText; } else if (Util.checkInCOpyTypeParticle(selectedObjs)) { title = Messages.CopyElements; } copyConceptAction.setText(title); if (Util.checkInCopy(selectedObjs)) { manager.add(copyConceptAction); } // add by ymli; fix bug:0016645 if (selectedObjs.length > 1 && isXSDParticles(selectedObjs)) { manager.add(getAddElementMenuForTypeClass(XSDParticle.class, Messages._AddElementAfter)); } } if (exAdapter != null) { exAdapter.fillContextMenu(manager, selectedObjs); } // available models java.util.List<IAvailableModel> availablemodels = AvailableModelUtil.getAvailableModels(isLocalInput()); for (int i = 0; i < availablemodels.size(); i++) { IAvailableModel model = availablemodels.get(i); model.fillContextMenu(obj, manager, this, dataModelName); if (i == 1) { manager.add(new Separator()); } } // manager.add(new Separator()); drillDownAdapter.addNavigationActions(manager); // Other plug-ins can contribute there actions here manager.add(new Separator(ADDITIONMENUID)); deleteConceptWrapAction.clearExtraClassToDel(); }
From source file:com.amalto.workbench.editors.DataModelMainPage.java
License:Open Source License
private ToolItem createExpandToolItem(ToolBar parentToolBar, final TreeViewer targetTreeViewer) { ToolItem expanedToolItem = new ToolItem(parentToolBar, SWT.PUSH); expanedToolItem.setImage(ImageCache.getCreatedImage(EImage.EXPAND.getPath())); expanedToolItem.setToolTipText(Messages.ExpandText); expanedToolItem.setEnabled(!isReadOnly()); expanedToolItem.addSelectionListener(new SelectionAdapter() { @Override//from w w w. j a v a 2 s .co m public void widgetSelected(SelectionEvent e) { IStructuredSelection selection = (IStructuredSelection) targetTreeViewer.getSelection(); for (Object eachSelectedObj : selection.toArray()) { targetTreeViewer.expandToLevel(eachSelectedObj, 3); } } }); return expanedToolItem; }
From source file:com.amalto.workbench.editors.DataModelMainPage.java
License:Open Source License
private ToolItem createCollapseToolItem(ToolBar parentToolBar, final TreeViewer targetTreeViewer) { ToolItem collapseToolItem = new ToolItem(parentToolBar, SWT.PUSH); collapseToolItem.setImage(ImageCache.getCreatedImage(EImage.COLLAPSE.getPath())); collapseToolItem.setToolTipText(Messages.CollapseText); collapseToolItem.setEnabled(!isReadOnly()); collapseToolItem.addSelectionListener(new SelectionAdapter() { @Override/* w ww. ja va2s . c om*/ public void widgetSelected(SelectionEvent e) { IStructuredSelection selection = (IStructuredSelection) targetTreeViewer.getSelection(); for (Object eachSelectedObj : selection.toArray()) { targetTreeViewer.collapseToLevel(eachSelectedObj, 3); } } }); return collapseToolItem; }
From source file:com.amalto.workbench.editors.TransformerMainPage.java
License:Open Source License
private void deleteItems(Object view) { if (view != null && view == stepsList) { int[] index = stepsList.getSelectionIndices(); boolean firstPos = false; for (int i = index.length - 1; i >= 0; i--) { if (index[i] == 0) { firstPos = true;// w w w. ja v a2s .c o m } removeStep(index[i]); } if (stepsList.getItemCount() == 0) { section.setVisible(false); } if (stepsList.getItemCount() >= 1 && firstPos) { stepsList.select(0); refreshStep(0); } } else if (view == stepWidget.inputViewer || view == stepWidget.outputViewer) { TableViewer viewer = (TableViewer) view; IStructuredSelection selections = (IStructuredSelection) viewer.getSelection(); java.util.List list = Arrays.asList(selections.toArray()); if (list.size() == 0) { return; } java.util.List<WSTransformerVariablesMapping> items = (java.util.List<WSTransformerVariablesMapping>) viewer .getInput(); items.removeAll(list); if (view == stepWidget.inputViewer) { stepWidget.processStep.getInputMappings().clear(); stepWidget.processStep.getInputMappings().addAll(items); } else { stepWidget.processStep.getOutputMappings().clear(); stepWidget.processStep.getOutputMappings().addAll(items); } // refresh viewer.refresh(); // mark for update markDirtyWithoutCommit(); } }
From source file:com.aptana.editor.php.internal.ui.preferences.BuildPathEditingComposite.java
License:Open Source License
private void createDirectoryPart(TabItem item) { TabFolder parent2 = item.getParent(); Composite projectPart = new Composite(parent2, SWT.NONE); projectPart.setLayout(new GridLayout(2, false)); directoryViewer = new TableViewer(projectPart, SWT.BORDER | SWT.MULTI); directoryViewer.setLabelProvider(new LabelProvider() { @Override/*w w w . j a va2 s.c o m*/ public Image getImage(Object element) { return PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_FOLDER); } @Override public String getText(Object element) { File fl = (File) element; return fl.getAbsolutePath(); } }); directoryViewer.setContentProvider(new ArrayContentProvider()); directoryViewer.getControl().setLayoutData(new GridData(GridData.FILL_BOTH)); Composite buttonsComp = new Composite(projectPart, SWT.NONE); buttonsComp.setLayoutData(new GridData(GridData.FILL_VERTICAL)); buttonsComp.setLayout(new GridLayout(1, false)); Button add = new Button(buttonsComp, SWT.NONE); add.setText(Messages.BuildPathEditingComposite_AddDirectory); add.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { DirectoryDialog dialog = new DirectoryDialog(Display.getCurrent().getActiveShell(), SWT.NONE); dialog.setText(Messages.BuildPathEditingComposite_AddDirectoryDescription); String open = dialog.open(); if (open != null) { addWithValidation(directoryViewer, new File(open)); } } }); add.setLayoutData(GridDataFactory.fillDefaults().hint(100, -1).create()); final Button remove = new Button(buttonsComp, SWT.NONE); remove.setText(Messages.BuildPathEditingComposite_RemoveDirectory); remove.setLayoutData(GridDataFactory.fillDefaults().hint(100, -1).create()); directoryViewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { remove.setEnabled(!event.getSelection().isEmpty()); } }); remove.setEnabled(false); remove.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { IStructuredSelection sel = (IStructuredSelection) directoryViewer.getSelection(); Object[] selections = sel.toArray(); for (Object selected : selections) { directoryViewer.remove(selected); } } }); directoryViewer.setSorter(new ViewerSorter()); item.setControl(projectPart); }
From source file:com.aptana.editor.php.internal.ui.preferences.BuildPathEditingComposite.java
License:Open Source License
private void createWorkspacePart(TabItem item) { TabFolder parent2 = item.getParent(); Composite projectPart = new Composite(parent2, SWT.NONE); item.setControl(projectPart);// w ww .j ava 2 s .com projectPart.setLayout(new GridLayout(2, false)); workspaceViewer = new TableViewer(projectPart, SWT.BORDER | SWT.MULTI); final FullPathWorkbenchLabelProvider workbenchLabelProvider = new FullPathWorkbenchLabelProvider(project); workspaceViewer.setLabelProvider(workbenchLabelProvider); workspaceViewer.getControl().addDisposeListener(new DisposeListener() { public void widgetDisposed(DisposeEvent e) { workbenchLabelProvider.doDispose(); } }); workspaceViewer.getControl().setLayoutData(new GridData(GridData.FILL_BOTH)); workspaceViewer.setContentProvider(new ArrayContentProvider()); Composite buttonsComp = new Composite(projectPart, SWT.NONE); buttonsComp.setLayoutData(new GridData(GridData.FILL_VERTICAL)); buttonsComp.setLayout(new GridLayout(1, false)); Button add = new Button(buttonsComp, SWT.NONE); add.setText(Messages.BuildPathEditingComposite_AddProjectTitle); add.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { WorkspaceFolderSelectionDialog dialog = new WorkspaceFolderSelectionDialog( Display.getCurrent().getActiveShell()); dialog.setTitle(Messages.BuildPathEditingComposite_ProjectsSelectionTitle); dialog.setMessage(Messages.BuildPathEditingComposite_AddProjectDesription); IWorkspace workspace = ResourcesPlugin.getWorkspace(); dialog.setInput(workspace); // filtering out current project and its contents dialog.addFilter(new ViewerFilter() { @Override public boolean select(Viewer viewer, Object parentElement, Object element) { if (element instanceof IResource) { if (project.equals(((IResource) element).getProject())) { return false; } } return true; } }); if (dialog.open() == Dialog.OK) { addWithValidation(workspaceViewer, dialog.getResult()); } } }); add.setLayoutData(GridDataFactory.fillDefaults().hint(100, -1).create()); final Button remove = new Button(buttonsComp, SWT.NONE); remove.setText(Messages.BuildPathEditingComposite_RemoveProjectTitle); remove.setEnabled(false); workspaceViewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { if (project != null) { // Do not allow removal in case the default project is selected remove.setEnabled(!event.getSelection().isEmpty() && !((IStructuredSelection) event.getSelection()).toList().contains(project)); } else { remove.setEnabled(!event.getSelection().isEmpty()); } } }); remove.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { IStructuredSelection sel = (IStructuredSelection) workspaceViewer.getSelection(); Object[] selections = sel.toArray(); for (Object selected : selections) { workspaceViewer.remove(selected); } } }); remove.setLayoutData(GridDataFactory.fillDefaults().hint(100, -1).create()); workspaceViewer.setSorter(new ViewerSorter()); }