Example usage for org.eclipse.jface.viewers TreeViewer expandToLevel

List of usage examples for org.eclipse.jface.viewers TreeViewer expandToLevel

Introduction

In this page you can find the example usage for org.eclipse.jface.viewers TreeViewer expandToLevel.

Prototype

public void expandToLevel(int level) 

Source Link

Document

Expands the root of the viewer's tree to the given level.

Usage

From source file:org.axdt.swc.ui.SwcEditorView.java

License:Open Source License

@Override
public void createPartControl(Composite parent) {
    Composite base = new Composite(parent, SWT.NONE);
    base.setLayout(new FillLayout());
    TreeViewer treeViewer = new TreeViewer(base);
    treeViewer.setLabelProvider(new SwcLabelProvider());
    treeViewer.setContentProvider(new SwcContentProvider());
    IEditorInput input = getEditorInput();
    SwcInfo info = new SwcInfo();
    if (input instanceof IFileEditorInput) {
        IFileEditorInput fileInput = (IFileEditorInput) input;
        info.readFile(fileInput.getFile());
    }/*from   w w w  . ja  va 2s. co m*/
    treeViewer.setInput(info.getModel());
    treeViewer.expandToLevel(3);
}

From source file:org.drools.eclipse.editors.outline.RuleContentOutlinePage.java

License:Apache License

/**
 * Updates the outline page./*w ww.j a  v  a  2s .  com*/
 */
public void update() {
    TreeViewer viewer = getTreeViewer();
    if (viewer != null) {
        Control control = viewer.getControl();
        if (control != null && !control.isDisposed()) {
            initRules();
            populatePackageTreeNode();
            viewer.refresh();
            control.setRedraw(false);
            viewer.expandToLevel(2);
            control.setRedraw(true);
        }
    }
}

From source file:org.dyno.visual.swing.editors.VisualSwingOutline.java

License:Open Source License

public void createControl(Composite parent) {
    super.createControl(parent);
    TreeViewer treeView = getTreeViewer();
    getSite().setSelectionProvider(treeView);
    treeView.setContentProvider(new ComponentTreeContentProvider());
    treeView.setLabelProvider(new ComponentTreeLabelProvider());
    treeView.setInput(input);// ww w. j av  a 2 s .com
    treeView.expandToLevel(2);
    Tree tree = (Tree) treeView.getTree();
    tree.addMenuDetectListener(new MenuDetectListener() {

        public void menuDetected(MenuDetectEvent e) {
            _showMenu(e);
        }
    });
    tree.addMouseListener(new MouseAdapter() {

        public void mouseDoubleClick(MouseEvent e) {
            _mouseDoubleClicked(e);
        }
    });
    tree.addListener(SWT.MeasureItem, new org.eclipse.swt.widgets.Listener() {

        public void handleEvent(org.eclipse.swt.widgets.Event event) {
            event.height = 18;
        }
    });
    new OutlineViewDnD(designer).attach(treeView);
}

From source file:org.eclipse.birt.report.designer.ui.lib.explorer.LibraryExplorerTreeViewPage.java

License:Open Source License

private void handleTreeViewerRefresh() {
    TreeViewer treeViewer = getTreeViewer();

    if (libraryBackup != null) {
        libraryBackup.restoreBackup(treeViewer);
    } else {//  w  w w  .ja v a2 s  .c o  m
        libraryBackup = new TreeViewerBackup();
        treeViewer.expandToLevel(2);
        libraryBackup.updateStatus(treeViewer);
    }
}

From source file:org.eclipse.bpel.ui.wizards.NewBpelFilePortTypePage.java

License:Open Source License

@Override
public void createControl(Composite parent) {

    // Create the container
    final Composite container = new Composite(parent, SWT.NONE);
    container.setFont(parent.getFont());
    initializeDialogUnits(parent);/*from   w  w  w  .  j a  v  a  2  s. c om*/
    container.setLayout(new GridLayout(2, false));
    container.setLayoutData(new GridData(GridData.FILL_BOTH));
    setControl(container);

    // WSDL location (as an URL)
    Label l = new Label(container, SWT.NONE);
    l.setText("WSDL URL:");
    l.setToolTipText("The URL of the service description (WSDL)");
    l.setLayoutData(new GridData(SWT.TOP, SWT.DEFAULT, false, false));

    final Text wsdlUrlText = new Text(container, SWT.SINGLE | SWT.BORDER);
    wsdlUrlText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    wsdlUrlText.setToolTipText("Press the 'Tab' key to parse this WSDL");
    if (this.wsdlUrl != null)
        wsdlUrlText.setText(this.wsdlUrl);

    wsdlUrlText.addModifyListener(new ModifyListener() {
        @Override
        public void modifyText(ModifyEvent e) {
            NewBpelFilePortTypePage.this.wsdlUrl = ((Text) e.widget).getText();
            updateStatus();
        }
    });

    final ControlDecoration wsdlTextDecoration = new ControlDecoration(wsdlUrlText, SWT.LEFT | SWT.BOTTOM);
    wsdlTextDecoration
            .setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJS_INFO_TSK));
    wsdlTextDecoration.setDescriptionText(wsdlUrlText.getToolTipText());
    wsdlTextDecoration.hide();

    // Helpers to browse for WSDL files
    new Label(container, SWT.NONE); // Bad but so convenient!
    Composite subContainer = new Composite(container, SWT.NONE);
    GridLayout layout = new GridLayout(2, false);
    layout.marginHeight = 0;
    layout.marginWidth = 0;
    layout.marginBottom = 13;
    subContainer.setLayout(layout);
    subContainer.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

    new Label(subContainer, SWT.NONE).setImage(this.fileSystemImg);
    Link browseFileSystemLink = new Link(subContainer, SWT.NONE);
    browseFileSystemLink.setText("<A>Browse the file system...</A>");

    new Label(subContainer, SWT.NONE).setImage(this.workspaceImg);
    Link browseWorkspaceLink = new Link(subContainer, SWT.NONE);
    browseWorkspaceLink.setText("<A>Browse the workspace...</A>");

    new Label(subContainer, SWT.NONE).setImage(this.parseImg);
    Link parseWsdlLink = new Link(subContainer, SWT.NONE);
    parseWsdlLink.setText("<A>Parse the given WSDL</A>");

    // Port type to use for the generation
    l = new Label(container, SWT.NONE);
    l.setText("Service Contract:");
    l.setToolTipText("The port type (service contract) to implement with BPEL");

    final ComboViewer portTypeCombo = new ComboViewer(container, SWT.BORDER | SWT.DROP_DOWN | SWT.READ_ONLY);
    portTypeCombo.getCombo().setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    portTypeCombo.setContentProvider(new ArrayContentProvider());
    portTypeCombo.setLabelProvider(new LabelProvider() {
        @Override
        public String getText(Object element) {
            QName name = ((PortType) element).getQName();
            return name.getLocalPart() + " - " + name.getNamespaceURI();
        }
    });

    // The button to import the WSDL
    new Label(container, SWT.NONE);
    Button importButton = new Button(container, SWT.CHECK);
    importButton.setText("Import the WSDL file with its dependencies");
    importButton.setSelection(this.importWsdl);
    importButton.addSelectionListener(new SelectionListener() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            widgetDefaultSelected(e);
        }

        @Override
        public void widgetDefaultSelected(SelectionEvent e) {
            NewBpelFilePortTypePage.this.importWsdl = ((Button) e.widget).getSelection();
        }
    });

    // The viewer for a quick overview of the operations
    subContainer = new Composite(container, SWT.NONE);
    layout = new GridLayout();
    layout.marginWidth = 0;
    layout.marginTop = 11;
    subContainer.setLayout(layout);
    GridData layoutData = new GridData(GridData.FILL_BOTH);
    layoutData.horizontalSpan = 2;
    subContainer.setLayoutData(layoutData);

    l = new Label(subContainer, SWT.NONE);
    l.setText("Select a service contract (port type) and see its operations below.");

    final TreeViewer operationsViewer = new TreeViewer(subContainer, SWT.BORDER);
    operationsViewer.getTree().setLayoutData(new GridData(GridData.FILL_BOTH));
    operationsViewer.setLabelProvider(new LabelProvider() {
        @Override
        public Image getImage(Object element) {

            Image result = null;
            if (element instanceof Operation)
                result = BPELUIPlugin.INSTANCE.getImage(IBPELUIConstants.ICON_OPERATION_16);
            else if (element instanceof Input)
                result = BPELUIPlugin.INSTANCE.getImage(IBPELUIConstants.ICON_INPUT_16);
            else if (element instanceof Output)
                result = BPELUIPlugin.INSTANCE.getImage(IBPELUIConstants.ICON_OUTPUT_16);
            else if (element instanceof Fault)
                result = BPELUIPlugin.INSTANCE.getImage(IBPELUIConstants.ICON_FAULT_16);

            return result;
        }

        @Override
        public String getText(Object element) {

            String result = "";
            if (element instanceof Operation) {
                result = ((Operation) element).getName();
                result = result == null || result.trim().length() == 0 ? "?" : result;

            } else if (element instanceof Input) {
                result = ((Input) element).getName();
                result = result == null || result.trim().length() == 0 ? "Input" : result;

            } else if (element instanceof Output) {
                result = ((Output) element).getName();
                result = result == null || result.trim().length() == 0 ? "Output" : result;

            } else if (element instanceof Fault) {
                result = ((Fault) element).getName();
                result = result == null || result.trim().length() == 0 ? "Fault" : result;
            }

            return result;
        }
    });

    operationsViewer.setContentProvider(new ITreeContentProvider() {
        @Override
        public void dispose() {
            // nothing
        }

        @Override
        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
            // nothing
        }

        @Override
        public Object[] getElements(Object inputElement) {
            return ((PortType) inputElement).getOperations().toArray();
        }

        @SuppressWarnings("unchecked")
        @Override
        public Object[] getChildren(Object pa) {

            List<Object> result = new ArrayList<Object>();
            if (pa instanceof Operation) {
                Operation op = (Operation) pa;
                if (op.getInput() != null)
                    result.add(op.getInput());

                if (op.getOutput() != null)
                    result.add(op.getOutput());

                if (op.getFaults() != null)
                    result.addAll(op.getFaults().values());
            }

            return result.toArray();
        }

        @Override
        public Object getParent(Object element) {
            return null;
        }

        @Override
        public boolean hasChildren(Object element) {
            return element instanceof Operation;
        }
    });

    // Listeners
    portTypeCombo.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            NewBpelFilePortTypePage.this.portType = (PortType) ((IStructuredSelection) portTypeCombo
                    .getSelection()).getFirstElement();
            operationsViewer.setInput(NewBpelFilePortTypePage.this.portType);
            operationsViewer.refresh();

            if (NewBpelFilePortTypePage.this.portType != null) {
                if (NewBpelFilePortTypePage.this.portType.getOperations().size() < 4)
                    operationsViewer.expandAll();
                else
                    operationsViewer.expandToLevel(2);
            }

            updateStatus();
        }
    });

    // WSDL parsing
    final List<PortType> portTypes = new ArrayList<PortType>();
    final IRunnableWithProgress wsdlParsingOperation = new IRunnableWithProgress() {
        @Override
        public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {

            monitor.beginTask("Parsing the WSDL...", 5);
            try {
                portTypes.clear();
                monitor.worked(1);

                URI emfUri = URI.createURI(NewBpelFilePortTypePage.this.wsdlUrl);
                Collection<Definition> definitions = WsdlParser.loadAllWsdlDefinitions(emfUri,
                        WsdlParser.createBasicResourceSetForWsdl());
                for (Definition def : definitions) {
                    for (Object o : def.getPortTypes().values())
                        portTypes.add((PortType) o);
                }

                monitor.worked(3);

            } finally {
                monitor.done();
            }
        }
    };

    wsdlUrlText.addTraverseListener(new TraverseListener() {
        @Override
        public void keyTraversed(TraverseEvent e) {

            if (NewBpelFilePortTypePage.this.wsdlUrl == null)
                return;

            try {
                // Parse
                getContainer().run(true, false, wsdlParsingOperation);

                // Update the UI
                portTypeCombo.setInput(portTypes);
                portTypeCombo.refresh();
                if (portTypes.size() > 0)
                    portTypeCombo.getCombo().select(0);
                portTypeCombo.getCombo().notifyListeners(SWT.Selection, new Event());

            } catch (InvocationTargetException e1) {
                BPELUIPlugin.log(e1);

            } catch (InterruptedException e1) {
                BPELUIPlugin.log(e1);
            }
        }
    });

    wsdlUrlText.addFocusListener(new FocusListener() {
        @Override
        public void focusLost(FocusEvent e) {
            wsdlTextDecoration.hide();
        }

        @Override
        public void focusGained(FocusEvent e) {
            wsdlTextDecoration.show();
        }
    });

    // "Browse" call-backs
    browseFileSystemLink.addSelectionListener(new SelectionListener() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            widgetDefaultSelected(e);
        }

        @Override
        public void widgetDefaultSelected(SelectionEvent e) {
            FileDialog dlg = new FileDialog(getShell());
            dlg.setFilterExtensions(new String[] { "*.wsdl" });
            dlg.setFilterNames(new String[] { "WSDL (*.wsdl)" });
            dlg.setText("Select a service description (WSDL).");

            String path = dlg.open();
            if (path != null) {
                File f = new File(path);
                wsdlUrlText.setText(f.toURI().toString());
                wsdlUrlText.notifyListeners(SWT.Traverse, new Event());
            }
        }
    });

    parseWsdlLink.addSelectionListener(new SelectionListener() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            wsdlUrlText.notifyListeners(SWT.Traverse, new Event());
        }

        @Override
        public void widgetDefaultSelected(SelectionEvent e) {
            wsdlUrlText.notifyListeners(SWT.Traverse, new Event());
        }
    });

    browseWorkspaceLink.addSelectionListener(new SelectionListener() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            widgetDefaultSelected(e);
        }

        @Override
        public void widgetDefaultSelected(SelectionEvent e) {

            // Prepare the initial selection
            IFile currentWsdl = null;
            if (NewBpelFilePortTypePage.this.wsdlUrl != null) {
                try {
                    java.net.URI uri = UriAndUrlHelper.urlToUri(NewBpelFilePortTypePage.this.wsdlUrl);
                    File f = new File(uri);
                    IPath path = new Path(f.getAbsolutePath());
                    currentWsdl = ResourcesPlugin.getWorkspace().getRoot().getFileForLocation(path);

                } catch (Exception e1) {
                    BPELUIPlugin.log(e1, IStatus.WARNING);
                }
            }

            // Open a dialog that only shows the WSDL files in the workspace - and their ancestors/containers
            final List<IFile> workspaceWsdlFiles = getFiles("wsdl",
                    Arrays.asList(ResourcesPlugin.getWorkspace().getRoot()));
            ElementTreeSelectionDialog dlg = new ElementTreeSelectionDialog(getShell(),
                    new WorkbenchLabelProvider(), new WorkbenchContentProvider() {

                        @Override
                        public Object[] getChildren(Object element) {

                            Object[] result = super.getChildren(element);
                            if (result == null)
                                result = new Object[0];

                            List<Object> filteredResult = new ArrayList<Object>();
                            for (Object o : result) {
                                if (o instanceof IFile && workspaceWsdlFiles.contains(o))
                                    filteredResult.add(o);

                                else if (o instanceof IContainer) {
                                    IPath containerPath = ((IContainer) o).getFullPath();
                                    for (IFile wsdlFile : workspaceWsdlFiles) {
                                        if (containerPath.isPrefixOf(wsdlFile.getFullPath())) {
                                            filteredResult.add(o);
                                            break;
                                        }
                                    }
                                }
                            }

                            return filteredResult.toArray();
                        }
                    });

            dlg.setInput(ResourcesPlugin.getWorkspace().getRoot());
            dlg.setTitle("WSDL Selection");
            dlg.setMessage("Select a WSDL file located in the workspace.");
            if (currentWsdl != null)
                dlg.setInitialElementSelections(Arrays.asList(currentWsdl));

            // Open it and update the text widget if necessary
            if (dlg.open() == Window.OK) {
                IFile selectedFile = (IFile) dlg.getResult()[0];
                wsdlUrlText.setText(selectedFile.getLocation().toFile().toURI().toString());
                wsdlUrlText.notifyListeners(SWT.Traverse, new Event());
            }
        }
    });

    // Initialize the port type...
    if (this.portType != null)
        portTypeCombo.setSelection(new StructuredSelection(this.portType));

    else if (portTypeCombo.getCombo().getItemCount() > 0) {
        portTypeCombo.getCombo().select(0);
        portTypeCombo.getCombo().notifyListeners(SWT.Selection, new Event());
    }

    // ... and the page's state
    updateStatus();
    if (getErrorMessage() != null) {
        setPageComplete(false);
        setErrorMessage(null);
    }
}

From source file:org.eclipse.cdt.debug.ui.breakpoints.CBreakpointPropertyDialogAction.java

License:Open Source License

public void run() {
    CBreakpointContext bpContext = getCBreakpointContext();
    if (bpContext != null) {
        PreferenceDialog dialog = createDialog(bpContext);

        if (dialog != null) {
            TreeViewer viewer = dialog.getTreeViewer();
            if (viewer != null) {
                viewer.setComparator(new ViewerComparator() {
                    @Override//from   www  .  j  av a  2  s.  c  om
                    public int category(Object element) {
                        if (element instanceof IPreferenceNode) {
                            IPreferenceNode node = (IPreferenceNode) element;
                            if (PAGE_ID_COMMON.equals(node.getId())) {
                                return 0;
                            } else if (node.getSubNodes() == null || node.getSubNodes().length == 0) {
                                // Pages without children (not categories)
                                return super.category(element) + 1;
                            }
                        }
                        // Categories last.
                        return super.category(element) + 2;
                    }
                });
                // Expand all categories
                viewer.expandToLevel(TreeViewer.ALL_LEVELS);
            }

            dialog.open();
        }

    }
}

From source file:org.eclipse.contribution.xref.internal.ui.utils.XRefUIUtils.java

License:Open Source License

public static void evaluateXReferences(IDeferredXReference xr, TreeViewer viewer, Shell shell) {
    try {/*from  w  w  w .  j  a v  a2s  .c  o  m*/
        new ProgressMonitorDialog(shell).run(true, true, xr);
        if (!(viewer.getContentProvider() instanceof XReferenceContentProvider)) {
            return;
        }
        ((XReferenceContentProvider) viewer.getContentProvider()).refresh();
        viewer.refresh();
        viewer.expandToLevel(3);
    } catch (InterruptedException intEx) {
        // user cancelled - this is ok...
    } catch (InvocationTargetException invEx) {
        System.err.println("Something nasty here, " + xr + " could not be evaluated: " + invEx); //$NON-NLS-1$ //$NON-NLS-2$
    }
}

From source file:org.eclipse.e4.tools.emf.ui.internal.common.ModelEditor.java

License:Open Source License

private TreeViewer createTreeViewerArea(Composite parent) {

    final Composite treeArea = new Composite(parent, SWT.BORDER);

    treeArea.setLayout(new FillLayout());
    treeArea.setData(CSS_CLASS_KEY, "formContainer"); //$NON-NLS-1$
    treeArea.setBackgroundMode(SWT.INHERIT_DEFAULT);

    TreeViewer tempViewer = null;//w w w.  j a v a 2s  .c o  m
    String property = System.getProperty(ORG_ECLIPSE_E4_TOOLS_MODELEDITOR_FILTEREDTREE_ENABLED_XMITAB_DISABLED);
    if (property != null || preferences.getBoolean("tab-form-search-show", false)) { //$NON-NLS-1$
        FilteredTree viewParent = new FilteredTree(treeArea,
                SWT.MULTI | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL, new PatternFilter(), true);
        tempViewer = viewParent.getViewer();
    } else {
        tempViewer = new TreeViewerEx(treeArea, SWT.MULTI | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL,
                emfDocumentProvider, modelProvider);
    }
    final TreeViewer viewer = tempViewer;

    viewer.setLabelProvider(new ComponentLabelProvider(this, messages));
    ObservableListTreeContentProvider contentProvider = new ObservableListTreeContentProvider(
            new ObservableFactoryImpl(), new TreeStructureAdvisor() {
            });
    viewer.setContentProvider(contentProvider);

    final WritableSet clearedSet = new WritableSet();

    contentProvider.getKnownElements().addSetChangeListener(new ISetChangeListener() {

        @Override
        public void handleSetChange(SetChangeEvent event) {
            for (Object o : event.diff.getAdditions()) {
                if (o instanceof EObject) {
                    clearedSet.add(o);
                }
            }

            for (Object o : event.diff.getRemovals()) {
                if (o instanceof EObject) {
                    clearedSet.remove(o);
                }
            }
        }
    });

    for (FeaturePath p : labelFeaturePaths) {
        IObservableMap map = EMFProperties.value(p).observeDetail(clearedSet);
        map.addMapChangeListener(new IMapChangeListener() {

            @Override
            public void handleMapChange(MapChangeEvent event) {
                viewer.update(event.diff.getChangedKeys().toArray(), null);
            }
        });
    }

    viewer.setInput(modelProvider.getRoot());
    viewer.setAutoExpandLevel(2);
    viewer.expandToLevel(viewer.getAutoExpandLevel());
    viewer.addDoubleClickListener(new IDoubleClickListener() {

        @Override
        public void doubleClick(DoubleClickEvent event) {
            TreeViewer viewer = (TreeViewer) event.getViewer();
            IStructuredSelection thisSelection = (IStructuredSelection) event.getSelection();
            Object selectedNode = thisSelection.getFirstElement();
            if (mod1Down) {
                if (viewer.getExpandedState(selectedNode))
                    viewer.setExpandedState(selectedNode, false);
                else
                    viewer.expandToLevel(selectedNode, AbstractTreeViewer.ALL_LEVELS);
            } else {
                viewer.setExpandedState(selectedNode, !viewer.getExpandedState(selectedNode));
            }

        }
    });

    // Effect of filtered tree implementation (bug 391086)
    viewer.getTree().addTreeListener(new TreeAdapter() {
        @Override
        public void treeCollapsed(TreeEvent e) {
            viewer.expandToLevel(viewer.getAutoExpandLevel());
        }
    });

    int ops = DND.DROP_MOVE;
    viewer.addDragSupport(ops, new Transfer[] { MemoryTransfer.getInstance() }, new DragListener(viewer));
    viewer.addDropSupport(ops, new Transfer[] { MemoryTransfer.getInstance() },
            new DropListener(viewer, modelProvider.getEditingDomain()));

    return viewer;
}

From source file:org.eclipse.e4.tools.emf.ui.internal.common.uistructure.UIViewer.java

License:Open Source License

public TreeViewer createViewer(Composite parent, EStructuralFeature feature, final IObservableValue master,
        IResourcePool resourcePool, final Messages messages) {
    final TreeViewer viewer = new TreeViewer(parent);
    viewer.setContentProvider(new WidgetContentProvider());
    viewer.setLabelProvider(new WidgetLabelProvider(resourcePool));
    IEMFValueProperty property = EMFProperties.value(feature);
    IObservableValue value = property.observeDetail(master);
    value.addValueChangeListener(new IValueChangeListener() {

        @Override/*  w  w w.j  a v  a 2 s. c  o m*/
        public void handleValueChange(ValueChangeEvent event) {
            if (event.diff.getNewValue() != null) {
                viewer.setInput(Collections.singleton(event.diff.getNewValue()));
                viewer.expandToLevel(2);
            } else {
                viewer.setInput(Collections.emptyList());
            }
        }
    });

    final MenuManager mgr = new MenuManager();
    mgr.setRemoveAllWhenShown(true);
    mgr.addMenuListener(new IMenuListener() {

        @Override
        public void menuAboutToShow(IMenuManager manager) {
            final Object o = ((IStructuredSelection) viewer.getSelection()).getFirstElement();
            if (o instanceof Control) {
                manager.add(new Action(messages.ModelEditor_ShowControl) {
                    @Override
                    public void run() {
                        ControlHighlighter.show((Control) o);
                    }
                });
            }

            IExtensionRegistry registry = RegistryFactory.getRegistry();
            IExtensionPoint extPoint = registry.getExtensionPoint("org.eclipse.e4.tools.emf.ui.scripting"); //$NON-NLS-1$
            final IConfigurationElement[] elements = extPoint.getConfigurationElements();

            final IStructuredSelection s = (IStructuredSelection) viewer.getSelection();

            if (elements.length > 0 && !s.isEmpty()) {
                MenuManager scriptExecute = new MenuManager(messages.ModelEditor_Script);
                manager.add(scriptExecute);
                for (IConfigurationElement e : elements) {
                    final IConfigurationElement le = e;
                    scriptExecute.add(new Action(e.getAttribute("label")) { //$NON-NLS-1$
                        @Override
                        public void run() {
                            try {
                                MApplicationElement o = (MApplicationElement) master.getValue();
                                IScriptingSupport support = (IScriptingSupport) le
                                        .createExecutableExtension("class"); //$NON-NLS-1$
                                support.openEditor(viewer.getControl().getShell(), s.getFirstElement(),
                                        ModelUtils.getContainingContext(o));
                            } catch (CoreException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                            }
                        }
                    });
                }
            }
        }
    });

    viewer.getControl().setMenu(mgr.createContextMenu(viewer.getControl()));

    return viewer;
}

From source file:org.eclipse.e4.xwt.tools.ui.designer.dialogs.ImageDialog.java

License:Open Source License

protected Control createDialogArea(Composite parent) {
    Composite dialogArea = (Composite) super.createDialogArea(parent);
    GridLayout layout = (GridLayout) dialogArea.getLayout();
    layout.numColumns = 2;// ww  w .jav a 2 s  .c o m

    Group leftComp = new Group(dialogArea, SWT.NONE);
    leftComp.setText("types");
    layout = new GridLayout(2, false);
    leftComp.setLayout(layout);
    leftComp.setLayoutData(new GridData(GridData.FILL_BOTH));

    final Button projRadio = new Button(leftComp, SWT.RADIO);
    projRadio.setText("Project");
    projRadio.setSelection(true);
    projRadio.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_CENTER));
    new Label(leftComp,
            SWT.NONE)/* .setLayoutData(new GridData(GridData.VERTICAL_ALIGN_CENTER | GridData.GRAB_VERTICAL)) */;

    final Button fileRadio = new Button(leftComp, SWT.RADIO);
    fileRadio.setText("File System");
    fileRadio.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_CENTER));
    final Button browserButton = new Button(leftComp, SWT.PUSH);
    browserButton.setText("Browser");
    // browserButton.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_CENTER | GridData.GRAB_VERTICAL));
    browserButton.setEnabled(false);

    Group previewer = new Group(dialogArea, SWT.NONE);
    previewer.setText("Preview");
    previewer.setLayout(new FillLayout());
    previewLable = new Label(previewer, SWT.CENTER | SWT.SHADOW_IN);
    GridData gd = new GridData(GridData.FILL_BOTH);
    // gd.heightHint = 50;
    // gd.widthHint = 50;
    // gd.horizontalSpan = 2;
    previewer.setLayoutData(gd);

    final TreeViewer viewer = new TreeViewer(dialogArea, SWT.BORDER);
    GridData layoutData = new GridData(GridData.FILL_BOTH);
    layoutData.horizontalSpan = 2;
    viewer.getControl().setLayoutData(layoutData);
    viewer.setContentProvider(new ImageContentProvider());
    JavaElementLabelProvider labelProvider = new JavaElementLabelProvider() {
        public String getText(Object element) {
            // Need a slight override, for source roots, want to show the entire path so that the project shows up.
            // It doesn't look as good because you can't tell what project the root is in when there are required projects.
            String result = super.getText(element);
            if (element instanceof IPackageFragmentRoot)
                result = MessageFormat.format("{0} - {1}", new Object[] { result,
                        ((IPackageFragmentRoot) element).getJavaProject().getElementName() });
            return result;
        }
    };
    viewer.setLabelProvider(labelProvider);
    if (project != null) {
        viewer.setInput(JavaCore.create(project));
    }
    viewer.expandToLevel(2);
    viewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
            Object firstElement = selection.getFirstElement();
            if (firstElement instanceof IFile) {
                IPath fullPath = ((IFile) firstElement).getLocation();
                String path = fullPath.toString();
                if (file != null) {
                    String sourcePath = file.getLocation().toString();
                    path = PathHelper.getRelativePath(sourcePath, path);
                }
                setImagePath(path);
            }
        }
    });
    Listener listener = new Listener() {
        public void handleEvent(Event event) {
            setImagePath(null);
            if (event.widget == projRadio) {
                viewer.getControl().setEnabled(true);
                browserButton.setEnabled(false);
            } else if (event.widget == fileRadio) {
                viewer.getControl().setEnabled(false);
                browserButton.setEnabled(true);
            } else if (event.widget == browserButton) {
                chooseImage();
            }
        }
    };
    projRadio.addListener(SWT.Selection, listener);
    fileRadio.addListener(SWT.Selection, listener);
    browserButton.addListener(SWT.Selection, listener);

    Composite bottomComp = new Composite(dialogArea, SWT.NONE);
    layout = new GridLayout(2, false);
    layout.marginWidth = 0;
    layout.marginHeight = 0;
    bottomComp.setLayout(layout);
    gd = new GridData(GridData.FILL_HORIZONTAL);
    gd.horizontalSpan = 2;
    bottomComp.setLayoutData(gd);
    new Label(bottomComp, SWT.NONE).setText("Image:");
    imageLabel = new Label(bottomComp, SWT.NONE);
    imageLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    return dialogArea;
}