Example usage for org.eclipse.jface.viewers IOpenListener IOpenListener

List of usage examples for org.eclipse.jface.viewers IOpenListener IOpenListener

Introduction

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

Prototype

IOpenListener

Source Link

Usage

From source file:bndtools.editor.components.ComponentListPart.java

License:Open Source License

void createSection(Section section, FormToolkit toolkit) {
    section.setText(Messages.ComponentListPart_listSectionTitle);

    Composite composite = toolkit.createComposite(section);
    section.setClient(composite);//w  w  w.  ja va  2  s .  c  o  m

    table = toolkit.createTable(composite, SWT.MULTI | SWT.FULL_SELECTION | SWT.BORDER);

    viewer = new TableViewer(table);
    viewer.setUseHashlookup(true);
    viewer.setContentProvider(new ArrayContentProvider());
    viewer.setLabelProvider(new ServiceComponentLabelProvider());

    final Button btnAdd = toolkit.createButton(composite, Messages.ComponentListPart_addButton, SWT.PUSH);
    final Button btnRemove = toolkit.createButton(composite, Messages.ComponentListPart_RemoveButton, SWT.PUSH);

    toolkit.paintBordersFor(section);

    // Listeners
    viewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            IStructuredSelection selection = (IStructuredSelection) event.getSelection();
            ArrayList<ServiceComponent> selectedComponents = new ArrayList<ServiceComponent>(selection.size());

            @SuppressWarnings("rawtypes")
            Iterator iterator = selection.iterator();
            while (iterator.hasNext()) {
                String name = (String) iterator.next();
                ServiceComponent component = componentMap.get(name);
                if (component != null)
                    selectedComponents.add(component);
            }

            managedForm.fireSelectionChanged(ComponentListPart.this,
                    new StructuredSelection(selectedComponents));
            btnRemove.setEnabled(!selection.isEmpty());
        }
    });
    viewer.addOpenListener(new IOpenListener() {
        public void open(OpenEvent event) {
            String name = (String) ((IStructuredSelection) event.getSelection()).getFirstElement();
            if (name != null) {
                doOpenComponent(name);
            }
        }
    });
    viewer.addDropSupport(DND.DROP_COPY | DND.DROP_MOVE, new Transfer[] { ResourceTransfer.getInstance() },
            new ComponentListDropAdapter(viewer));
    btnAdd.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            try {
                doAdd();
            } catch (Exception x) {
                Plugin.logError("Error adding component", x);
            }
        }
    });
    btnRemove.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            doRemove();
        }
    });

    // Layout
    GridData gd;
    section.setLayoutData(new GridData(GridData.FILL_BOTH));
    composite.setLayout(new GridLayout(2, false));
    gd = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 3);
    gd.widthHint = 250;
    table.setLayoutData(gd);
    btnAdd.setLayoutData(new GridData(SWT.FILL, SWT.TOP, false, false));
    btnRemove.setLayoutData(new GridData(SWT.FILL, SWT.TOP, false, false));
}

From source file:bndtools.views.ImportsExportsView.java

License:Open Source License

@Override
public void createPartControl(Composite parent) {
    this.display = parent.getDisplay();

    tree = new Tree(parent, SWT.FULL_SELECTION | SWT.MULTI);
    tree.setHeaderVisible(true);/*from www  . j  a  v  a 2  s . c o m*/
    tree.setLinesVisible(true);

    TreeColumn col;
    col = new TreeColumn(tree, SWT.NONE);
    col.setText("Package");
    col.setWidth(400);

    col = new TreeColumn(tree, SWT.NONE);
    col.setText("Attribs");
    col.setWidth(100);

    viewer = new TreeViewer(tree);
    viewer.setContentProvider(new ImportsExportsTreeContentProvider());
    viewer.setSorter(new ImportsAndExportsViewerSorter());
    viewer.setLabelProvider(new ImportsExportsTreeLabelProvider());
    viewer.setAutoExpandLevel(2);

    hideSelfImportsFilter = new ViewerFilter() {
        @Override
        public boolean select(Viewer viewer, Object parentElement, Object element) {
            if (element instanceof ImportPackage) {
                return !((ImportPackage) element).isSelfImport();
            } else if (element instanceof RequiredBundle) {
                return !((RequiredBundle) element).isSatisfied();
            }
            return true;
        }
    };
    viewer.setFilters(new ViewerFilter[] { hideSelfImportsFilter });

    viewer.addDragSupport(DND.DROP_MOVE | DND.DROP_COPY,
            new Transfer[] { LocalSelectionTransfer.getTransfer() }, new DragSourceListener() {
                public void dragStart(DragSourceEvent event) {
                }

                public void dragSetData(DragSourceEvent event) {
                    LocalSelectionTransfer transfer = LocalSelectionTransfer.getTransfer();
                    if (transfer.isSupportedType(event.dataType))
                        transfer.setSelection(viewer.getSelection());
                }

                public void dragFinished(DragSourceEvent event) {
                }
            });

    viewer.addOpenListener(new IOpenListener() {
        public void open(OpenEvent event) {
            IStructuredSelection selection = (IStructuredSelection) event.getSelection();
            for (Iterator<?> iter = selection.iterator(); iter.hasNext();) {
                Object item = iter.next();
                if (item instanceof ImportUsedByClass) {
                    ImportUsedByClass importUsedBy = (ImportUsedByClass) item;
                    String className = importUsedBy.getClazz().getFQN();
                    IType type = null;
                    if (selectedFiles != null) {
                        IWorkspaceRoot wsroot = ResourcesPlugin.getWorkspace().getRoot();
                        for (File selectedFile : selectedFiles) {
                            IFile[] wsfiles = wsroot.findFilesForLocationURI(selectedFile.toURI());
                            for (IFile wsfile : wsfiles) {
                                IJavaProject javaProject = JavaCore.create(wsfile.getProject());
                                try {
                                    type = javaProject.findType(className);
                                    if (type != null)
                                        break;
                                } catch (JavaModelException e) {
                                    ErrorDialog.openError(getSite().getShell(), "Error", "", new Status(
                                            IStatus.ERROR, Plugin.PLUGIN_ID, 0,
                                            MessageFormat.format("Error opening Java class '{0}'.", className),
                                            e));
                                }
                            }
                        }
                    }
                    try {
                        if (type != null)
                            JavaUI.openInEditor(type, true, true);
                    } catch (PartInitException e) {
                        ErrorDialog.openError(getSite().getShell(), "Error", "", new Status(IStatus.ERROR,
                                Plugin.PLUGIN_ID, 0,
                                MessageFormat.format("Error opening Java editor for class '{0}'.", className),
                                e));
                    } catch (JavaModelException e) {
                        ErrorDialog.openError(getSite().getShell(), "Error", "",
                                new Status(IStatus.ERROR, Plugin.PLUGIN_ID, 0,
                                        MessageFormat.format("Error opening Java class '{0}'.", className), e));
                    }
                }
            }
        }
    });

    fillActionBars();

    getSite().getPage().addPostSelectionListener(this);
    getSite().getPage().addPartListener(partAdapter);
    ResourcesPlugin.getWorkspace().addResourceChangeListener(this, IResourceChangeEvent.POST_CHANGE);

    // Current selection & part
    IWorkbenchPart activePart = getSite().getPage().getActivePart();
    ISelection activeSelection = getSite().getWorkbenchWindow().getSelectionService().getSelection();
    selectionChanged(activePart, activeSelection);
}

From source file:bndtools.views.resolution.ResolutionView.java

License:Open Source License

@Override
public void createPartControl(Composite parent) {
    this.display = parent.getDisplay();

    SashForm splitPanel = new SashForm(parent, SWT.HORIZONTAL);
    splitPanel.setLayout(new FillLayout());

    Composite reqsPanel = new Composite(splitPanel, SWT.NONE);
    reqsPanel.setBackground(parent.getBackground());

    GridLayout reqsLayout = new GridLayout(1, false);
    reqsLayout.marginWidth = 0;// w  w  w.j  av a 2  s  .c om
    reqsLayout.marginHeight = 0;
    reqsLayout.verticalSpacing = 2;
    reqsPanel.setLayout(reqsLayout);
    new Label(reqsPanel, SWT.NONE).setText("Requirements:");
    reqsTree = new Tree(reqsPanel, SWT.FULL_SELECTION | SWT.MULTI | SWT.BORDER);
    reqsTree.setHeaderVisible(false);
    reqsTree.setLinesVisible(false);
    reqsTree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    reqsViewer = new TreeViewer(reqsTree);
    ColumnViewerToolTipSupport.enableFor(reqsViewer);
    reqsViewer.setLabelProvider(new RequirementWrapperLabelProvider(true));
    reqsViewer.setContentProvider(new CapReqMapContentProvider());

    Composite capsPanel = new Composite(splitPanel, SWT.NONE);
    capsPanel.setBackground(parent.getBackground());

    GridLayout capsLayout = new GridLayout(1, false);
    capsLayout.marginWidth = 0;
    capsLayout.marginHeight = 0;
    capsLayout.verticalSpacing = 2;
    capsPanel.setLayout(capsLayout);
    new Label(capsPanel, SWT.NONE).setText("Capabilities:");
    capsTable = new Table(capsPanel, SWT.FULL_SELECTION | SWT.MULTI | SWT.BORDER);
    capsTable.setHeaderVisible(false);
    capsTable.setLinesVisible(false);
    capsTable.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    capsViewer = new TableViewer(capsTable);
    ColumnViewerToolTipSupport.enableFor(capsViewer);
    capsViewer.setLabelProvider(new CapabilityLabelProvider(true));
    capsViewer.setContentProvider(new CapReqMapContentProvider());
    capsViewer.setFilters(new ViewerFilter[] { new ViewerFilter() {
        @Override
        public boolean select(Viewer viewer, Object parent, Object element) {
            return !filteredCapabilityNamespaces.contains(((Capability) element).getNamespace());
        }
    } });

    hideSelfImportsFilter = new ViewerFilter() {

        @Override
        public boolean select(Viewer viewer, Object parentElement, Object element) {
            if (element instanceof RequirementWrapper) {
                RequirementWrapper rw = (RequirementWrapper) element;
                return !rw.resolved;
            }
            return true;
        }
    };
    reqsViewer.setFilters(new ViewerFilter[] { hideSelfImportsFilter });

    reqsViewer.addDragSupport(DND.DROP_MOVE | DND.DROP_COPY,
            new Transfer[] { LocalSelectionTransfer.getTransfer() }, new LocalTransferDragListener(reqsViewer));

    capsViewer.addDragSupport(DND.DROP_MOVE | DND.DROP_COPY,
            new Transfer[] { LocalSelectionTransfer.getTransfer() }, new LocalTransferDragListener(capsViewer));

    reqsViewer.addOpenListener(new IOpenListener() {
        @Override
        public void open(OpenEvent event) {
            IStructuredSelection selection = (IStructuredSelection) event.getSelection();
            for (Iterator<?> iter = selection.iterator(); iter.hasNext();) {
                Object item = iter.next();
                if (item instanceof Clazz) {
                    Clazz clazz = (Clazz) item;
                    String className = clazz.getFQN();
                    IType type = null;
                    if (!loaders.isEmpty()) {
                        IWorkspaceRoot wsroot = ResourcesPlugin.getWorkspace().getRoot();
                        for (CapReqLoader loader : loaders) {
                            if (loader instanceof BndBuilderCapReqLoader) {
                                File loaderFile = ((BndBuilderCapReqLoader) loader).getFile();
                                IFile[] wsfiles = wsroot.findFilesForLocationURI(loaderFile.toURI());
                                for (IFile wsfile : wsfiles) {
                                    IJavaProject javaProject = JavaCore.create(wsfile.getProject());
                                    try {
                                        type = javaProject.findType(className);
                                        if (type != null)
                                            break;
                                    } catch (JavaModelException e) {
                                        ErrorDialog.openError(getSite().getShell(), "Error", "",
                                                new Status(IStatus.ERROR, Plugin.PLUGIN_ID, 0, MessageFormat
                                                        .format("Error opening Java class '{0}'.", className),
                                                        e));
                                    }
                                }
                            }

                        }
                    }
                    try {
                        if (type != null)
                            JavaUI.openInEditor(type, true, true);
                    } catch (PartInitException e) {
                        ErrorDialog.openError(getSite().getShell(), "Error", "", new Status(IStatus.ERROR,
                                Plugin.PLUGIN_ID, 0,
                                MessageFormat.format("Error opening Java editor for class '{0}'.", className),
                                e));
                    } catch (JavaModelException e) {
                        ErrorDialog.openError(getSite().getShell(), "Error", "",
                                new Status(IStatus.ERROR, Plugin.PLUGIN_ID, 0,
                                        MessageFormat.format("Error opening Java class '{0}'.", className), e));
                    }
                }
            }
        }
    });

    fillActionBars();

    getSite().getPage().addPostSelectionListener(this);
    getSite().getPage().addPartListener(partAdapter);
    ResourcesPlugin.getWorkspace().addResourceChangeListener(this, IResourceChangeEvent.POST_CHANGE);

    // Current selection & part
    IWorkbenchPart activePart = getSite().getPage().getActivePart();
    ISelection activeSelection = getSite().getWorkbenchWindow().getSelectionService().getSelection();
    selectionChanged(activePart, activeSelection);
}

From source file:bndtools.views.ResolutionView.java

License:Open Source License

@Override
public void createPartControl(Composite parent) {
    this.display = parent.getDisplay();

    SashForm splitPanel = new SashForm(parent, SWT.HORIZONTAL);
    splitPanel.setLayout(new FillLayout());

    Composite reqsPanel = new Composite(splitPanel, SWT.NONE);
    reqsPanel.setBackground(parent.getBackground());

    GridLayout reqsLayout = new GridLayout(1, false);
    reqsLayout.marginWidth = 0;/*from   ww  w. j av  a  2  s.  c  o  m*/
    reqsLayout.marginHeight = 0;
    reqsLayout.verticalSpacing = 2;
    reqsPanel.setLayout(reqsLayout);
    new Label(reqsPanel, SWT.NONE).setText("Requirements:");
    reqsTree = new Tree(reqsPanel, SWT.FULL_SELECTION | SWT.MULTI | SWT.BORDER);
    reqsTree.setHeaderVisible(false);
    reqsTree.setLinesVisible(false);
    reqsTree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    reqsViewer = new TreeViewer(reqsTree);
    ColumnViewerToolTipSupport.enableFor(reqsViewer);
    reqsViewer.setLabelProvider(new RequirementWrapperLabelProvider(true));
    reqsViewer.setContentProvider(new CapReqMapContentProvider());

    Composite capsPanel = new Composite(splitPanel, SWT.NONE);
    capsPanel.setBackground(parent.getBackground());

    GridLayout capsLayout = new GridLayout(1, false);
    capsLayout.marginWidth = 0;
    capsLayout.marginHeight = 0;
    capsLayout.verticalSpacing = 2;
    capsPanel.setLayout(capsLayout);
    new Label(capsPanel, SWT.NONE).setText("Capabilities:");
    capsTable = new Table(capsPanel, SWT.FULL_SELECTION | SWT.MULTI | SWT.BORDER);
    capsTable.setHeaderVisible(false);
    capsTable.setLinesVisible(false);
    capsTable.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    capsViewer = new TableViewer(capsTable);
    ColumnViewerToolTipSupport.enableFor(capsViewer);
    capsViewer.setLabelProvider(new CapabilityLabelProvider(true));
    capsViewer.setContentProvider(new CapReqMapContentProvider());
    capsViewer.setFilters(new ViewerFilter[] { new ViewerFilter() {
        @Override
        public boolean select(Viewer viewer, Object parent, Object element) {
            return !filteredCapabilityNamespaces.contains(((Capability) element).getNamespace());
        }
    } });

    hideSelfImportsFilter = new ViewerFilter() {
        @Override
        public boolean select(Viewer viewer, Object parentElement, Object element) {
            if (element instanceof RequirementWrapper) {
                RequirementWrapper rw = (RequirementWrapper) element;
                return !rw.resolved;
            }
            return true;
        }
    };
    reqsViewer.setFilters(new ViewerFilter[] { hideSelfImportsFilter });

    reqsViewer.addDragSupport(DND.DROP_MOVE | DND.DROP_COPY,
            new Transfer[] { LocalSelectionTransfer.getTransfer() }, new LocalTransferDragListener(reqsViewer));

    capsViewer.addDragSupport(DND.DROP_MOVE | DND.DROP_COPY,
            new Transfer[] { LocalSelectionTransfer.getTransfer() }, new LocalTransferDragListener(capsViewer));

    reqsViewer.addOpenListener(new IOpenListener() {
        @Override
        public void open(OpenEvent event) {
            IStructuredSelection selection = (IStructuredSelection) event.getSelection();
            for (Iterator<?> iter = selection.iterator(); iter.hasNext();) {
                Object item = iter.next();
                if (item instanceof Clazz) {
                    Clazz clazz = (Clazz) item;
                    String className = clazz.getFQN();
                    IType type = null;
                    if (selectedFiles != null) {
                        IWorkspaceRoot wsroot = ResourcesPlugin.getWorkspace().getRoot();
                        for (File selectedFile : selectedFiles) {
                            IFile[] wsfiles = wsroot.findFilesForLocationURI(selectedFile.toURI());
                            for (IFile wsfile : wsfiles) {
                                IJavaProject javaProject = JavaCore.create(wsfile.getProject());
                                try {
                                    type = javaProject.findType(className);
                                    if (type != null)
                                        break;
                                } catch (JavaModelException e) {
                                    ErrorDialog.openError(getSite().getShell(), "Error", "", new Status(
                                            IStatus.ERROR, Plugin.PLUGIN_ID, 0,
                                            MessageFormat.format("Error opening Java class '{0}'.", className),
                                            e));
                                }
                            }
                        }
                    }
                    try {
                        if (type != null)
                            JavaUI.openInEditor(type, true, true);
                    } catch (PartInitException e) {
                        ErrorDialog.openError(getSite().getShell(), "Error", "", new Status(IStatus.ERROR,
                                Plugin.PLUGIN_ID, 0,
                                MessageFormat.format("Error opening Java editor for class '{0}'.", className),
                                e));
                    } catch (JavaModelException e) {
                        ErrorDialog.openError(getSite().getShell(), "Error", "",
                                new Status(IStatus.ERROR, Plugin.PLUGIN_ID, 0,
                                        MessageFormat.format("Error opening Java class '{0}'.", className), e));
                    }
                }
            }
        }
    });

    fillActionBars();

    getSite().getPage().addPostSelectionListener(this);
    getSite().getPage().addPartListener(partAdapter);
    ResourcesPlugin.getWorkspace().addResourceChangeListener(this, IResourceChangeEvent.POST_CHANGE);

    // Current selection & part
    IWorkbenchPart activePart = getSite().getPage().getActivePart();
    ISelection activeSelection = getSite().getWorkbenchWindow().getSelectionService().getSelection();
    selectionChanged(activePart, activeSelection);
}

From source file:ch.hsr.ifs.cdt.metriculator.views.MetriculatorView.java

License:Open Source License

private void addViewerOpenListener(StructuredViewer viewer) {
    viewer.addOpenListener(new IOpenListener() {
        @Override//from  ww  w.  j  a  va  2 s .c om
        public void open(OpenEvent event) {
            openSelectedNode(event.getSelection());
        }
    });
}

From source file:cn.dockerfoundry.ide.eclipse.server.ui.internal.DockerFoundryActionProvider.java

License:Open Source License

public void init(ICommonActionExtensionSite actionSite) {
    super.init(actionSite);
    ICommonViewerSite site = actionSite.getViewSite();
    if (site instanceof ICommonViewerWorkbenchSite) {
        StructuredViewer viewer = actionSite.getStructuredViewer();
        if (viewer instanceof CommonViewer) {
            CommonViewer serversViewer = (CommonViewer) viewer;
            serversViewer.addOpenListener(new IOpenListener() {
                public void open(OpenEvent event) {
                    ISelection s = event.getSelection();
                    if (s instanceof IStructuredSelection) {
                        IStructuredSelection selection = (IStructuredSelection) s;
                        Object[] selectedObjects = selection.toArray();
                        if (selectedObjects.length == 1 && selectedObjects[0] instanceof ModuleServer) {
                            ModuleServer moduleServer = (ModuleServer) selectedObjects[0];
                            openApplicationPage(moduleServer);
                        }/* www  . j  a va2  s . co m*/
                    }
                }
            });
        }
    }
}

From source file:com.amazonaws.eclipse.cloudformation.templates.editor.TemplateContentOutlinePage.java

License:Apache License

public void createControl(Composite parent) {
    super.createControl(parent);
    final TreeViewer viewer = getTreeViewer();
    viewer.setContentProvider(new TemplateOutlineContentProvider());
    viewer.setLabelProvider(new TemplateOutlineLabelProvider());
    viewer.addSelectionChangedListener(this);
    viewer.setAutoExpandLevel(2);//  ww  w . j  a v a 2 s . c o m

    viewer.addOpenListener(new IOpenListener() {
        public void open(OpenEvent event) {
            TemplateOutlineNode selectedNode = (TemplateOutlineNode) ((StructuredSelection) event
                    .getSelection()).getFirstElement();

            JsonLocation startLocation = selectedNode.getNode().getStartLocation();
            JsonLocation endLocation = selectedNode.getNode().getEndLocation();

            IEditorPart activeEditor = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage()
                    .getActiveEditor();
            if (activeEditor != null) {
                TemplateEditor templateEditor = (TemplateEditor) activeEditor;
                templateEditor.setHighlightRange((int) startLocation.getCharOffset(),
                        (int) endLocation.getCharOffset() - (int) startLocation.getCharOffset(), true);
            }
        }
    });

    document.addTemplateDocumentListener(this);
    updateContent();
}

From source file:com.aptana.git.ui.internal.history.CommitFileDiffViewer.java

License:Open Source License

CommitFileDiffViewer(final Composite parent, final GitHistoryPage historyPage) {
    super(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER | SWT.FULL_SELECTION);

    final Table rawTable = getTable();
    rawTable.setHeaderVisible(true);//  w  w  w  .ja  v a  2s. co  m
    rawTable.setLinesVisible(false);

    final TableLayout layout = new TableLayout();
    rawTable.setLayout(layout);
    createColumns(rawTable, layout);

    setContentProvider(new CommitDiffContentProvider());
    setLabelProvider(new SingleCommitLabelProvider());

    addOpenListener(new IOpenListener() {
        public void open(final OpenEvent event) {
            final ISelection s = event.getSelection();
            if (s.isEmpty() || !(s instanceof IStructuredSelection))
                return;
            final IStructuredSelection iss = (IStructuredSelection) s;
            final Diff d = (Diff) iss.getFirstElement();
            showTwoWayFileDiff(d);
        }
    });

    MenuManager menuMgr = new MenuManager("#PopupMenu"); //$NON-NLS-1$
    menuMgr.setRemoveAllWhenShown(true);
    menuMgr.addMenuListener(new IMenuListener() {
        public void menuAboutToShow(IMenuManager manager) {
            manager.add(new OpenRevisionAction(historyPage.getSite().getPage(), getTable()));
            // Other plug-ins can contribute there actions here
            manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
        }
    });

    Menu menu = menuMgr.createContextMenu(getControl());
    getControl().setMenu(menu);
}

From source file:com.baremetalstudios.mapleide.internal.ResourceNavigator.java

License:Open Source License

@Inject
public ResourceNavigator(Composite parent, final IEclipseContext context, IWorkspace workspace) {
    final Realm realm = SWTObservables.getRealm(parent.getDisplay());
    this.context = context;
    parent.setLayout(new FillLayout());
    TreeViewer viewer = new TreeViewer(parent, SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL);
    viewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            StructuredSelection selection = (StructuredSelection) event.getSelection();
            selectionService/*from ww  w. ja  v a 2  s .co m*/
                    .setSelection(selection.size() == 1 ? selection.getFirstElement() : selection.toArray());
            //            context.modify(IServiceConstants.ACTIVE_SELECTION, selection.size() == 1 ? selection.getFirstElement() : selection.toArray());
        }
    });

    IObservableFactory setFactory = new IObservableFactory() {
        public IObservable createObservable(Object element) {
            if (element instanceof IContainer && ((IContainer) element).exists()) {
                IObservableSet observableSet = observableSets.get(element);
                if (observableSet == null) {
                    observableSet = new WritableSet(realm);
                    try {
                        observableSet.addAll(Arrays.asList(((IContainer) element).members()));
                    } catch (CoreException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                    observableSets.put((IContainer) element, observableSet);
                }
                return observableSet;
            }
            return Observables.emptyObservableSet();
        }
    };
    viewer.setContentProvider(new ObservableSetTreeContentProvider(setFactory, new TreeStructureAdvisor() {
        public Boolean hasChildren(Object element) {
            return Boolean.valueOf(element instanceof IContainer);
        }
    }));

    viewer.setLabelProvider(new LabelProvider() {
        public String getText(Object element) {
            if (element instanceof IResource)
                return ((IResource) element).getName();
            return element == null ? "" : element.toString();
        }
    });
    viewer.setSorter(new ViewerSorter());
    viewer.setInput(workspace.getRoot());
    viewer.addOpenListener(new IOpenListener() {

        public void open(OpenEvent event) {

            MapleIDEApplication app = (MapleIDEApplication) application;
            IStructuredSelection s = (IStructuredSelection) event.getSelection();
            for (Object o : s.toArray()) {
                if (o instanceof IFile) {
                    IFile f = (IFile) o;
                    context.set(IFile.class, f);
                    String fExt = f.getFileExtension();
                    EDITOR: for (EditorPartDescriptor desc : app.getEditorPartDescriptors()) {
                        for (String ext : desc.getFileextensions()) {
                            if (ext.equals(fExt)) {
                                context.set(EditorPartDescriptor.class, desc);
                                System.err.println("Opening with: " + desc);

                                Command cmd = commandService
                                        .getCommand("com.baremetalstudios.mapleide.command.openeditor");
                                //                           Command cmd = commandService.getCommand("simpleide.command.openeditor");
                                ParameterizedCommand pCmd = ParameterizedCommand.generateCommand(cmd, null);
                                handlerService.executeHandler(pCmd);

                                break EDITOR;
                            }
                        }
                    }
                }
            }

        }
    });
    setupContextMenu(viewer, parent.getShell());
    workspace.addResourceChangeListener(listener);
}

From source file:com.bluexml.side.Requirements.modeler.views.internal.TableView.java

License:Open Source License

public void createPartControl(Composite parent) {
    parent.setLayout(new FillLayout());

    viewer = new TreeViewer(createTree(parent));
    createColumns(viewer.getTree());//from   www  .j av a  2s.  c o m

    viewer.setComparator(buildComparator());
    setSortIndicators();

    contentProvider = getContentProvider();

    viewer.setContentProvider(contentProvider);

    viewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            IStructuredSelection selection = (IStructuredSelection) event.getSelection();
            viewerSelectionChanged(selection);
        }
    });

    // create the actions before the input is set on the viewer but after
    // the
    // sorter and filter are set so the actions will be enabled correctly.
    createActions();

    viewer.setInput(createViewerInput());

    Scrollable scrollable = (Scrollable) viewer.getControl();
    ScrollBar bar = scrollable.getVerticalBar();
    if (bar != null) {
        bar.setSelection(restoreVerticalScrollBarPosition(memento));
    }
    bar = scrollable.getHorizontalBar();
    if (bar != null) {
        bar.setSelection(restoreHorizontalScrollBarPosition(memento));
    }

    MenuManager mgr = initContextMenu();
    Menu menu = mgr.createContextMenu(viewer.getControl());
    viewer.getControl().setMenu(menu);
    getSite().registerContextMenu(mgr, selectionProvider);

    getSite().setSelectionProvider(selectionProvider);

    IActionBars actionBars = getViewSite().getActionBars();
    initMenu(actionBars.getMenuManager());
    initToolBar(actionBars.getToolBarManager());

    registerGlobalActions(getViewSite().getActionBars());

    viewer.addOpenListener(new IOpenListener() {
        public void open(OpenEvent event) {
            handleOpenEvent(event);
        }
    });

}