Example usage for org.eclipse.jface.viewers IStructuredSelection toArray

List of usage examples for org.eclipse.jface.viewers IStructuredSelection toArray

Introduction

In this page you can find the example usage for org.eclipse.jface.viewers IStructuredSelection toArray.

Prototype

public Object[] toArray();

Source Link

Document

Returns the elements in this selection as an array.

Usage

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());
}