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

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

Introduction

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

Prototype

public Object getFirstElement();

Source Link

Document

Returns the first element in this selection, or null if the selection is empty.

Usage

From source file:ca.uvic.chisel.javasketch.ui.internal.presentation.properties.TraceModelPropertySection.java

License:Open Source License

@Override
public void setInput(IWorkbenchPart part, ISelection selection) {
    super.setInput(part, selection);
    this.traceModel = null;
    if (selection instanceof IStructuredSelection) {
        IStructuredSelection ss = (IStructuredSelection) selection;
        traceModel = ss.getFirstElement();
        if (traceModel instanceof IProgramSketch) {
            traceModel = ((IProgramSketch) traceModel).getTraceData();
        }/*w  w w. ja v  a2 s  .c o  m*/
    }
}

From source file:ca.uvic.chisel.javasketch.ui.internal.search.TraceSearchResultPage.java

License:Open Source License

@Override
public void createControl(Composite parent) {
    page = new Composite(parent, SWT.NULL);
    page.setLayout(new GridLayout());
    fViewer = new TreeViewer(page, SWT.NONE);
    fViewer.getTree().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    TableLayout tl = new TableLayout();
    fViewer.getTree().setLayout(tl);/*from w ww.  j ava  2  s. c o  m*/
    // create columns for the viewer
    TreeViewerColumn c = new TreeViewerColumn(fViewer, SWT.NONE);
    c.getColumn().setText("Search Result");
    c.setLabelProvider(new TraceSearchResultLabelProvider());
    GC gc = new GC(fViewer.getTree());
    tl.addColumnData(new ColumnPixelData(Dialog.convertWidthInCharsToPixels(gc.getFontMetrics(), 60)));
    gc.dispose();

    c = new TreeViewerColumn(fViewer, SWT.NONE);
    c.getColumn().setText("Kind");
    c.setLabelProvider(new TraceSearchResultLabelProvider());
    tl.addColumnData(new ColumnPixelData(50));

    c = new TreeViewerColumn(fViewer, SWT.NONE);
    c.getColumn().setText("Trace");
    c.setLabelProvider(new TraceSearchResultLabelProvider());

    tl.addColumnData(new ColumnPixelData(50));
    resultsListener = new TraceSearchResultListener();

    fViewer.getTree().setHeaderVisible(true);

    fViewer.setContentProvider(new TraceSearchResultContentProvider());
    //create a context menu for the viewer so that results can be 
    //linked to
    MenuManager manager = new MenuManager("TraceSearchResultsPage", "#TraceSearchResults");
    Menu menu = manager.createContextMenu(fViewer.getTree());
    manager.setRemoveAllWhenShown(true);
    manager.addMenuListener(new IMenuListener() {

        @Override
        public void menuAboutToShow(IMenuManager manager) {
            fillContextMenu(manager);
            IStructuredSelection ss = (IStructuredSelection) getSite().getSelectionProvider().getSelection();
            if (!ss.isEmpty()) {
                Object o = ss.getFirstElement();
                if (o instanceof IActivation || o instanceof IMessage) {
                    IAction action = new CommandAction(RevealActivationHandler.COMMAND_ID, null);
                    action.setText("Reveal");
                    manager.add(action);
                }
            }
        }
    });
    getSite().registerContextMenu("#TraceSearchResults", manager, fViewer);
    fViewer.getTree().setMenu(menu);
    SelectionForward forward = new SelectionForward();
    fViewer.addSelectionChangedListener(forward);
    getSite().setSelectionProvider(forward);

}

From source file:ca.uvic.chisel.javasketch.ui.internal.views.ToggleSketchFilteredHandler.java

License:Open Source License

/**
 * @return// ww  w . ja v a 2  s.  co  m
 */
private IProgramSketch getSelectedSketch() {
    TraceNavigator navigator = getNagivator();
    if (navigator != null) {
        ISelection selection = navigator.getViewSite().getSelectionProvider().getSelection();
        if (selection instanceof IStructuredSelection) {
            IStructuredSelection ss = (IStructuredSelection) selection;
            if (ss.getFirstElement() instanceof IProgramSketch) {
                return (IProgramSketch) ss.getFirstElement();
            }
        }
    }
    return null;
}

From source file:ca.uvic.chisel.javasketch.ui.internal.views.TraceNavigator.java

License:Open Source License

@Override
public void createPartControl(Composite parent) {
    viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION);
    viewer.setUseHashlookup(true);/*from  w w  w .  j a  v a 2 s .  c  om*/
    // TreeViewerColumn plusColumn = new TreeViewerColumn(viewer, SWT.NONE,
    // 0);
    // plusColumn.getColumn().setWidth(60);
    final TreeViewerColumn labelColumn = new TreeViewerColumn(viewer, SWT.NONE, LABEL_COLUMN);
    labelColumn.getColumn().setWidth(100);
    TreeViewerColumn activeTraceColumn = new TreeViewerColumn(viewer, SWT.NONE, ACTIVE_TRACE_COLUMN);
    activeTraceColumn.getColumn().setWidth(16);
    TreeViewerColumn visibleTraceColumn = new TreeViewerColumn(viewer, SWT.NONE, VISIBLE_TRACE_COLUMN);
    visibleTraceColumn.getColumn().setWidth(16);
    viewer.getTree().addMouseListener(treeMouseListener);

    viewer.getTree().addControlListener(new ControlAdapter() {
        /*
         * (non-Javadoc)
         * @see
         * org.eclipse.swt.events.ControlAdapter#controlResized(org.eclipse
         * .swt.events.ControlEvent)
         */
        @Override
        public void controlResized(ControlEvent e) {
            Composite composite = (Composite) e.widget;
            Rectangle b = composite.getBounds();
            ScrollBar scrollbar = composite.getVerticalBar();
            int width = b.width - 32;
            if (scrollbar != null && scrollbar.getVisible()) {
                width -= 20;
            }
            labelColumn.getColumn().setWidth(Math.max(0, width));
        }
    });
    viewer.setContentProvider(new TraceNavigatorContentProvider());
    viewer.setLabelProvider(new TraceNavigatorLabelProvider());
    viewer.setInput(ResourcesPlugin.getWorkspace().getRoot());
    viewer.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            IStructuredSelection selection = (IStructuredSelection) event.getSelection();
            Object o = selection.getFirstElement();
            if (o instanceof IThread) {
                SketchPlugin.getDefault().getDOI().setThreadSelection((IThread) o);
            } else {
                SketchPlugin.getDefault().getDOI().setThreadSelection(null);
            }
            SketchUI.INSTANCE.refreshJavaUI();
        }
    });
    createContextMenu(viewer.getControl());
    getSite().setSelectionProvider(viewer);
    IMenuManager manager = getViewSite().getActionBars().getMenuManager();
    Action toggleFilterAction = new Action("Filter Empty Threads", SWT.CHECK) {
        /* (non-Javadoc)
         * @see org.eclipse.jface.action.Action#run()
         */
        @Override
        public void run() {
            IPreferenceStore store = SketchPlugin.getDefault().getPreferenceStore();
            boolean checked = store.getBoolean("tracenavigator.filter.emptythread");
            if (checked) {
                //uncheck
                viewer.removeFilter(threadFilter);
            } else {
                viewer.addFilter(threadFilter);
            }
            store.setValue("tracenavigator.filter.emptythread", !checked);
            viewer.refresh();
        }
    };
    IPreferenceStore store = SketchPlugin.getDefault().getPreferenceStore();
    boolean checked = true;
    if (!store.contains("tracenavigator.filter.emptythread")) {
        store.setValue("tracenavigator.filter.emptythread", true);
    } else {
        checked = store.getBoolean("tracenavigator.filter.emptythread");
    }
    toggleFilterAction.setChecked(checked);
    if (checked) {
        viewer.addFilter(threadFilter);
    }
    manager.add(toggleFilterAction);
}

From source file:ca.uvic.chisel.logging.eclipse.internal.ui.UploadWizardPage1.java

License:Open Source License

private Composite createCategoriesArea(Composite parent) {
    Composite categoriesArea = new Composite(parent, SWT.NONE);
    categoriesArea.setLayout(new GridLayout(2, false));

    //create a list viewer that will display all of the 
    //different loggers

    viewer = CheckboxTableViewer.newCheckList(categoriesArea, SWT.BORDER | SWT.SINGLE);
    viewer.setContentProvider(new ArrayContentProvider());
    viewer.setLabelProvider(new LoggingCategoryLabelProvider());
    viewer.setInput(WorkbenchLoggingPlugin.getDefault().getCategoryManager().getCategories());
    //set all of the enabled categories to the checked state
    for (ILoggingCategory category : WorkbenchLoggingPlugin.getDefault().getCategoryManager().getCategories()) {
        selectedCategories.add(category.getCategoryID());
    }//  w  w w.  j a  va2 s.  com
    viewer.setAllChecked(true);
    viewer.addCheckStateListener(new ICheckStateListener() {

        public void checkStateChanged(CheckStateChangedEvent event) {
            if (event.getElement() instanceof ILoggingCategory) {
                ILoggingCategory category = (ILoggingCategory) event.getElement();
                if (event.getChecked()) {
                    selectedCategories.add(category.getCategoryID());
                } else {
                    selectedCategories.remove(category.getCategoryID());
                }
            }
        }
    });
    viewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            if (aboutButton != null && !aboutButton.isDisposed()) {
                aboutButton.setEnabled(!event.getSelection().isEmpty());
            }
        }
    });

    viewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    //create a button area
    Composite buttonArea = new Composite(categoriesArea, SWT.NONE);
    buttonArea.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    buttonArea.setLayout(new GridLayout());

    GridDataFactory gdf = GridDataFactory.createFrom(new GridData(SWT.FILL, SWT.FILL, true, false));
    Button selectAll = new Button(buttonArea, SWT.PUSH);
    selectAll.setText("Select All");
    selectAll.setLayoutData(gdf.create());
    selectAll.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            viewer.setAllChecked(true);
            for (ILoggingCategory category : WorkbenchLoggingPlugin.getDefault().getCategoryManager()
                    .getCategories()) {
                selectedCategories.add(category.getCategoryID());
            }
        }
    });

    Button selectNone = new Button(buttonArea, SWT.PUSH);
    selectNone.setText("Select None");
    selectNone.setLayoutData(gdf.create());
    selectNone.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            viewer.setAllChecked(false);
            selectedCategories.clear();
        }
    });

    Control spacer = new Composite(buttonArea, SWT.NONE);
    GridData d = gdf.create();
    d.heightHint = 40;
    spacer.setLayoutData(d);

    aboutButton = new Button(buttonArea, SWT.PUSH);
    aboutButton.setText("Disclaimer...");
    aboutButton.setLayoutData(gdf.create());
    aboutButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetDefaultSelected(SelectionEvent e) {
            widgetSelected(e);
        }

        @Override
        public void widgetSelected(SelectionEvent e) {
            ISelection selection = viewer.getSelection();
            if (selection instanceof IStructuredSelection) {
                IStructuredSelection ss = (IStructuredSelection) selection;
                if (!ss.isEmpty() && ss.getFirstElement() instanceof ILoggingCategory) {
                    AboutCategoryDialog dialog = new AboutCategoryDialog(getShell(),
                            (ILoggingCategory) ss.getFirstElement());
                    dialog.open();
                }
            }
        }
    });
    aboutButton.setEnabled(false);
    return categoriesArea;
}

From source file:ca.uvic.chisel.logging.eclipse.internal.ui.WorkbenchLoggerPreferencePage.java

License:Open Source License

@Override
protected Control createContents(Composite parent) {
    Composite page = new Composite(parent, SWT.NONE);
    page.setLayout(new GridLayout(2, false));

    // create a list viewer that will display all of the
    // different loggers

    viewer = CheckboxTableViewer.newCheckList(page, SWT.BORDER | SWT.SINGLE);
    viewer.setContentProvider(new ArrayContentProvider());
    viewer.setLabelProvider(new LoggingCategoryLabelProvider());
    viewer.setInput(WorkbenchLoggingPlugin.getDefault().getCategoryManager().getCategories());
    // set all of the enabled categories to the checked state
    boolean stale = false;
    for (ILoggingCategory category : WorkbenchLoggingPlugin.getDefault().getCategoryManager().getCategories()) {
        if (category.isEnabled()) {
            enabledCategories.add(category.getCategoryID());
            viewer.setChecked(category, true);
        }//  w w  w.j a va2s .co m
        // also set the stale state... used for enabling the upload button.
        stale |= ((LoggingCategory) category).isStale();
    }
    viewer.addCheckStateListener(new ICheckStateListener() {

        public void checkStateChanged(CheckStateChangedEvent event) {
            if (event.getElement() instanceof ILoggingCategory) {
                ILoggingCategory category = (ILoggingCategory) event.getElement();
                if (event.getChecked()) {
                    enabledCategories.add(category.getCategoryID());
                } else {
                    enabledCategories.remove(category.getCategoryID());
                }
            }
        }
    });
    viewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            if (aboutButton != null && !aboutButton.isDisposed()) {
                aboutButton.setEnabled(!event.getSelection().isEmpty());
            }
        }
    });

    viewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    // create a button area
    Composite buttonArea = new Composite(page, SWT.NONE);
    buttonArea.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
    buttonArea.setLayout(new GridLayout());

    GridDataFactory gdf = GridDataFactory.createFrom(new GridData(SWT.FILL, SWT.FILL, true, false));
    Button selectAll = new Button(buttonArea, SWT.PUSH);
    selectAll.setText("Select All");
    selectAll.setLayoutData(gdf.create());
    selectAll.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            viewer.setAllChecked(true);
            for (ILoggingCategory category : WorkbenchLoggingPlugin.getDefault().getCategoryManager()
                    .getCategories()) {
                enabledCategories.add(category.getCategoryID());
            }
        }
    });

    Button selectNone = new Button(buttonArea, SWT.PUSH);
    selectNone.setText("Select None");
    selectNone.setLayoutData(gdf.create());
    selectNone.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            viewer.setAllChecked(false);
            enabledCategories.clear();
        }
    });

    Control spacer = new Composite(buttonArea, SWT.NONE);
    GridData d = gdf.create();
    d.heightHint = 40;
    spacer.setLayoutData(d);

    aboutButton = new Button(buttonArea, SWT.PUSH);
    aboutButton.setText("About...");
    aboutButton.setLayoutData(gdf.create());
    aboutButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetDefaultSelected(SelectionEvent e) {
            widgetSelected(e);
        }

        @Override
        public void widgetSelected(SelectionEvent e) {
            ISelection selection = viewer.getSelection();
            if (selection instanceof IStructuredSelection) {
                IStructuredSelection ss = (IStructuredSelection) selection;
                if (!ss.isEmpty() && ss.getFirstElement() instanceof ILoggingCategory) {
                    AboutCategoryDialog dialog = new AboutCategoryDialog(getShell(),
                            (ILoggingCategory) ss.getFirstElement());
                    dialog.open();
                }
            }
        }
    });
    aboutButton.setEnabled(false);

    spacer = new Composite(buttonArea, SWT.NONE);
    d = gdf.create();
    d.heightHint = 40;
    spacer.setLayoutData(d);

    Button uploadButton = new Button(buttonArea, SWT.PUSH);
    uploadButton.setText("Upload Now...");
    uploadButton.setLayoutData(gdf.create());
    uploadButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            WizardDialog dialog = new WizardDialog(getShell(), new UploadWizard());
            dialog.open();
        }
    });
    uploadButton.setEnabled(stale);
    Composite intervalComposite = new Composite(page, SWT.NONE);
    GridData gd = gdf.create();
    gd.grabExcessVerticalSpace = false;
    gd.grabExcessHorizontalSpace = true;
    intervalComposite.setLayoutData(gd);
    intervalComposite.setLayout(new GridLayout(2, false));
    Label intervalLabel = new Label(intervalComposite, SWT.NONE);
    intervalLabel.setText("Upload Interval: ");
    gd = gdf.create();
    gd.grabExcessVerticalSpace = false;
    gd.grabExcessHorizontalSpace = false;
    intervalLabel.setLayoutData(gd);
    intervalViewer = new ComboViewer(intervalComposite, SWT.BORDER | SWT.SINGLE);
    Long[] intervals = new Long[] { UploadJob.UPLOAD_INTERVAL_DAILY, UploadJob.UPLOAD_INTERVAL_WEEKLY,
            UploadJob.UPLOAD_INTERVAL_MONTHLY };
    intervalViewer.setContentProvider(new ArrayContentProvider());
    intervalViewer.setLabelProvider(new LabelProvider() {
        @Override
        public String getText(Object element) {
            if (element instanceof Long) {
                long interval = (Long) element;
                if (interval == UploadJob.UPLOAD_INTERVAL_DAILY) {
                    return "Daily";
                } else if (interval == UploadJob.UPLOAD_INTERVAL_WEEKLY) {
                    return "Every Seven Days";
                } else if (interval == UploadJob.UPLOAD_INTERVAL_MONTHLY) {
                    return "Every Thirty Days";
                }
            }
            return super.getText(element);
        }
    });
    intervalViewer.setInput(intervals);
    long interval = WorkbenchLoggingPlugin.getDefault().getPreferenceStore()
            .getLong(UploadJob.UPLOAD_INTERVAL_KEY);
    if (interval <= 0) {
        interval = WorkbenchLoggingPlugin.getDefault().getPreferenceStore()
                .getDefaultLong(UploadJob.UPLOAD_INTERVAL_KEY);
    }
    intervalViewer.setSelection(new StructuredSelection(interval));
    intervalViewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));

    spacer = new Composite(page, SWT.NONE);
    gd = gdf.create();
    gd.grabExcessVerticalSpace = false;
    gd.grabExcessHorizontalSpace = false;
    gd.heightHint = 2;
    spacer.setLayoutData(gd);
    Composite uidComposite = new Composite(page, SWT.NONE);
    uidComposite.setLayout(new GridLayout(2, false));
    gd = gdf.create();
    gd.grabExcessVerticalSpace = false;
    gd.grabExcessHorizontalSpace = false;
    gd.horizontalSpan = 2;
    uidComposite.setLayoutData(gd);
    Label uidLabel = new Label(uidComposite, SWT.NONE);
    uidLabel.setText("User ID:");
    gd = gdf.create();
    gd.grabExcessVerticalSpace = false;
    gd.grabExcessHorizontalSpace = false;
    uidLabel.setLayoutData(gd);
    final Text uidText = new Text(uidComposite, SWT.SINGLE | SWT.READ_ONLY);
    uidText.setText(WorkbenchLoggingPlugin.getDefault().getLocalUser());
    uidText.addMouseListener(new MouseAdapter() {
        /* (non-Javadoc)
         * @see org.eclipse.swt.events.MouseAdapter#mouseUp(org.eclipse.swt.events.MouseEvent)
         */
        @Override
        public void mouseUp(MouseEvent e) {
            uidText.selectAll();
        }
    });
    MenuManager manager = new MenuManager();
    Menu menu = manager.createContextMenu(uidText);
    uidText.setMenu(menu);
    CommandContributionItemParameter parameters = new CommandContributionItemParameter(
            WorkbenchLoggingPlugin.getDefault().getWorkbench(), null, EDIT_COPY, SWT.PUSH);
    manager.add(new CommandContributionItem(parameters));
    return page;
}

From source file:ca.uvic.chisel.logging.eclipse.internal.ui.WorkbenchLoggerPreferencePage.java

License:Open Source License

@Override
public boolean performOk() {
    for (ILoggingCategory category : WorkbenchLoggingPlugin.getDefault().getCategoryManager().getCategories()) {
        boolean enabled = enabledCategories.contains(category.getCategoryID());
        if (category.isEnabled() != enabled) {
            category.setEnabled(enabled);
        }// www. j ava2s .  c  o m
    }
    IPreferenceStore store = WorkbenchLoggingPlugin.getDefault().getPreferenceStore();
    IStructuredSelection selection = (IStructuredSelection) intervalViewer.getSelection();
    store.setValue(UploadJob.UPLOAD_INTERVAL_KEY, (long) ((Long) selection.getFirstElement()));
    return super.performOk();
}

From source file:ca.uvic.cs.tagsea.actions.GoToTagAction.java

License:Open Source License

/**
 * Grabs the currently selected waypoint from the viewer and navigates to
 * that waypoint's marker position in the editor.
 *//* w w w . j  a v a2s.c o m*/
public void run() {
    IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
    if (!selection.isEmpty()) {
        Object obj = selection.getFirstElement();
        IMarker marker = null;
        if (obj instanceof Waypoint) {
            // Waypoints TableViewer
            marker = ((Waypoint) obj).getMarker();
        }
        if ((marker != null) && marker.exists()) {
            IResource resource = marker.getResource();
            if (marker.exists() && resource instanceof IFile) {
                try {
                    IDE.openEditor(page, marker, OpenStrategy.activateOnOpen());
                    Monitoring.getDefault().fireEvent(new TagSEANavigationEvent((Waypoint) obj));
                } catch (PartInitException e) {
                    TagSEAPlugin.log("Couldn't open editor to show the tag", e);
                }
            }
        }
    }
}

From source file:ca.uvic.cs.tagsea.ui.views.RoutesComposite.java

License:Open Source License

protected void selectionChanged(SelectionChangedEvent event) {
    if (event.getSelection().isEmpty()) {
        enableAllActions(false);//from ww  w.ja va  2s .  c om
    } else {
        enableAllActions(true);
        IStructuredSelection selections = (IStructuredSelection) event.getSelection();

        if (selections.size() == 1 && selections.getFirstElement() instanceof Route) {
            Route route = (Route) selections.getFirstElement();

            if (route.getWaypoints().size() == 0) {
                backAction.setEnabled(false);
                forwardAction.setEnabled(false);
            }
        }
    }

    boolean routesSelected = false;

    TreeItem[] selections = routesTreeViewer.getTree().getSelection();

    for (TreeItem item : selections) {
        if (item.getData() instanceof Route)
            routesSelected = true;
    }

    if (routesSelected)
        removeStaleWaypointsAction.setEnabled(true);
    else
        removeStaleWaypointsAction.setEnabled(false);
}

From source file:ca.uwaterloo.gp.fmp.presentation.FmpAdapterFactoryTreeEditor.java

License:Open Source License

public void keyPressed(KeyEvent event) {
    if ((event.stateMask & SWT.ALT) == SWT.ALT && event.keyCode == SWT.ARROW_DOWN) {
        // expand subtree
        IStructuredSelection selection = (IStructuredSelection) treeViewer.getSelection();
        Object element = selection.getFirstElement();
        if (element != null)
            treeViewer.expandToLevel(element, AbstractTreeViewer.ALL_LEVELS);
    } else// www . j  a  v  a 2s.com
        super.keyPressed(event);
}