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

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

Introduction

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

Prototype

public StructuredSelection(List elements) 

Source Link

Document

Creates a structured selection from the given List.

Usage

From source file:au.gov.ga.earthsci.bookmark.part.editor.BookmarkEditorDialog.java

License:Apache License

/**
 * Create the property tree control (left side) used to display available {@link IBookmarkProperty}s
 * <p/>/*  w  w w  . j av  a  2s  . c  om*/
 * Expects the {@code parent} to have a {@link GridLayout}.
 */
private Control createPropertyTree(Composite parent) {
    PatternFilter filter = new BookmarkPropertyTreeFilter();
    filter.setIncludeLeadingWildcard(true);

    editorFilteredTree = new FilteredTree(parent, SWT.FULL_SELECTION, filter, true);
    GridData gd = new GridData(GridData.FILL_VERTICAL);
    editorFilteredTree.setLayoutData(gd);

    if (editorFilteredTree.getFilterControl() != null) {
        Composite filterComposite = editorFilteredTree.getFilterControl().getParent();
        gd = (GridData) filterComposite.getLayoutData();
        gd.verticalIndent = 2;
        gd.horizontalIndent = 1;
    }

    ColumnViewerToolTipSupport.enableFor(editorFilteredTree.getViewer());
    editorFilteredTree.getViewer().setContentProvider(new BookmarkPropertyTreeContentProvider());
    editorFilteredTree.getViewer().setLabelProvider(new BookmarkPropertyTreeLabelProvider());
    editorFilteredTree.getViewer().setComparator(new BookmarkPropertyTreeViewerComparator());
    editorFilteredTree.getViewer().setInput(editors);
    editorFilteredTree.getViewer().setAutoExpandLevel(2);

    editorFilteredTree.getViewer().setSelection(new StructuredSelection(editors.get(0)));

    editorFilteredTree.getViewer().addPostSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            if (event.getSelection().isEmpty()) {
                return;
            }
            if (!showEditor(
                    (IBookmarkEditor) ((IStructuredSelection) event.getSelection()).getFirstElement())) {
                handleEditorChangeError();
            }
        }

        private void handleEditorChangeError() {
            try {
                editorFilteredTree.getViewer().removePostSelectionChangedListener(this);
                editorFilteredTree.getViewer().setSelection(new StructuredSelection(currentEditor));
            } finally {
                editorFilteredTree.getViewer().addPostSelectionChangedListener(this);
            }
        }
    });

    return editorFilteredTree;
}

From source file:au.gov.ga.earthsci.bookmark.ui.BookmarksPart.java

License:Apache License

private void initCombo(Composite parent) {
    bookmarkListsComboViewer = new ComboViewer(parent, SWT.READ_ONLY | SWT.DROP_DOWN);

    GridData gd = new GridData(GridData.FILL_HORIZONTAL);
    gd.grabExcessHorizontalSpace = true;
    gd.grabExcessVerticalSpace = false;//from w w w.  j  a v  a  2  s.  co  m
    bookmarkListsComboViewer.getCombo().setLayoutData(gd);

    bookmarkListsComboViewer.setLabelProvider(new LabelProvider() {
        @Override
        public String getText(Object element) {
            if (!(element instanceof IBookmarkList)) {
                return super.getText(element);
            }
            return ((IBookmarkList) element).getName();
        }
    });

    // Trigger a label refresh if a list name changes etc.
    ObservableListContentProvider<IBookmarkList> contentProvider = new ObservableListContentProvider<IBookmarkList>(
            IBookmarkList.class);
    IObservableSet<IBookmarkList> knownElements = contentProvider.getKnownElements();
    IObservableMap<IBookmarkList, String> nameMap = BeanProperties
            .value(IBookmarkList.class, "name", String.class).observeDetail(knownElements); //$NON-NLS-1$
    nameMap.addMapChangeListener(new IMapChangeListener<IBookmarkList, String>() {
        @Override
        public void handleMapChange(MapChangeEvent<IBookmarkList, String> event) {
            for (IBookmarkList key : event.diff.getChangedKeys()) {
                bookmarkListsComboViewer.refresh(key, true);
            }
        }
    });

    IBeanListProperty<IBookmarks, IBookmarkList> listsProperty = BeanProperties.list(IBookmarks.class, "lists", //$NON-NLS-1$
            IBookmarkList.class);
    IObservableList<IBookmarkList> observableList = listsProperty.observe(bookmarks);
    bookmarkListsComboViewer.setContentProvider(contentProvider);
    bookmarkListsComboViewer.setInput(observableList);
    bookmarkListsComboViewer.setSelection(new StructuredSelection(bookmarks.getDefaultList()));

    bookmarkListsComboViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            controller.setCurrentList(getSelectedBookmarkList());
        }
    });
}

From source file:au.gov.ga.earthsci.common.ui.color.ColorMapEditor.java

License:Apache License

private void wireMapListeners() {
    map.addPropertyChangeListener(MutableColorMap.COLOR_MAP_ENTRY_CHANGE_EVENT, new PropertyChangeListener() {
        @Override//w  w  w .ja v  a 2s  .  co  m
        public void propertyChange(java.beans.PropertyChangeEvent evt) {
            Display.getCurrent().asyncExec(new Runnable() {
                @Override
                public void run() {
                    entriesTable.refresh();

                    populateColors();
                    gradientCanvas.redraw();
                }
            });
        }
    });

    map.addPropertyChangeListener(MutableColorMap.ENTRY_MOVED_EVENT, new PropertyChangeListener() {
        @SuppressWarnings("unchecked")
        @Override
        public void propertyChange(java.beans.PropertyChangeEvent evt) {
            Entry<Double, Color> oldEntry = (Entry<Double, Color>) evt.getOldValue();
            Entry<Double, Color> newEntry = (Entry<Double, Color>) evt.getNewValue();
            if (currentEntryValue == null || oldEntry.getKey().equals(currentEntryValue)) {
                currentEntryValue = newEntry.getKey();

                entriesTable.refresh();
                selectTableEntry(newEntry);
            }
        }
    });

    map.addPropertyChangeListener(MutableColorMap.ENTRY_ADDED_EVENT, new PropertyChangeListener() {

        @Override
        public void propertyChange(java.beans.PropertyChangeEvent evt) {
            @SuppressWarnings("unchecked")
            Entry<Double, Color> newEntry = (Entry<Double, Color>) evt.getNewValue();
            final Marker newMarker = addMarker(newEntry);

            Display.getCurrent().asyncExec(new Runnable() {
                @Override
                public void run() {
                    markerCanvas.redraw(newMarker.bounds.x, newMarker.bounds.y, newMarker.bounds.width,
                            newMarker.bounds.height, true);
                };
            });
        }
    });

    map.addPropertyChangeListener(MutableColorMap.MODE_CHANGE_EVENT, new PropertyChangeListener() {
        @Override
        public void propertyChange(java.beans.PropertyChangeEvent evt) {
            Display.getCurrent().asyncExec(new Runnable() {
                @Override
                public void run() {
                    populateColors();
                    gradientCanvas.redraw();

                    modeCombo.setSelection(new StructuredSelection(map.getMode()));
                };
            });
        }
    });

    map.addPropertyChangeListener(MutableColorMap.NODATA_CHANGE_EVENT, new PropertyChangeListener() {
        @Override
        public void propertyChange(java.beans.PropertyChangeEvent evt) {
            updateNodataEditorFromMap();
            if (map.getMode() == InterpolationMode.EXACT_MATCH) {
                Display.getCurrent().asyncExec(new Runnable() {
                    @Override
                    public void run() {
                        populateColors();
                        gradientCanvas.redraw();
                    }
                });
            }
        }
    });
}

From source file:au.gov.ga.earthsci.common.ui.color.ColorMapEditor.java

License:Apache License

/**
 * Build the options editing//  w w w. j  a  v a  2 s  .  c om
 */
private void addOptionsArea() {
    optionsContainer = new Composite(this, SWT.BORDER);
    optionsContainer.setLayoutData(
            new GridData(GridData.FILL_BOTH | GridData.GRAB_HORIZONTAL | GridData.GRAB_VERTICAL));

    optionsContainer.setLayout(new GridLayout(2, false));

    Label modeLabel = new Label(optionsContainer, SWT.NONE);
    modeLabel.setText(Messages.ColorMapEditor_ModeLabel);
    modeCombo = new ComboViewer(optionsContainer, SWT.DROP_DOWN);
    modeCombo.setContentProvider(ArrayContentProvider.getInstance());
    modeCombo.setInput(InterpolationMode.values());
    modeCombo.setLabelProvider(new NamedLabelProvider());
    modeCombo.setSelection(new StructuredSelection(map.getMode()));

    final Label modeDescription = new Label(optionsContainer, SWT.WRAP);
    GridData gd = new GridData(GridData.FILL_HORIZONTAL);
    gd.horizontalSpan = 2;
    gd.horizontalIndent = 10;
    modeDescription.setLayoutData(gd);
    modeDescription.setText(map.getMode().getDescription());
    modeDescription.setFont(JFaceResources.getFontRegistry().getItalic("default")); //$NON-NLS-1$

    modeCombo.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            InterpolationMode newMode = (InterpolationMode) ((IStructuredSelection) event.getSelection())
                    .getFirstElement();
            if (newMode != map.getMode()) {
                map.setMode(newMode);
                modeDescription.setText(newMode.getDescription());
            }
        }
    });

    if (hasDataValues) {
        percentageBasedButton = new Button(optionsContainer, SWT.CHECK);
        percentageBasedButton.setText(Messages.ColorMapEditor_UsePercentagesLabel);
        percentageBasedButton.setSelection(map.isPercentageBased());
        gd = new GridData();
        gd.horizontalSpan = 2;
        percentageBasedButton.setLayoutData(gd);
        percentageBasedButton.addSelectionListener(new SelectionListener() {
            @Override
            public void widgetSelected(SelectionEvent e) {
                map.setValuesArePercentages(percentageBasedButton.getSelection(), minDataValue, maxDataValue);
            }

            @Override
            public void widgetDefaultSelected(SelectionEvent e) {
                map.setValuesArePercentages(percentageBasedButton.getSelection(), minDataValue, maxDataValue);
            }
        });
    }

    addEntryEditor(optionsContainer);
    addAddRemoveButtons(optionsContainer);
    addEntriesList(optionsContainer);
    addNodataEditor(optionsContainer);
}

From source file:au.gov.ga.earthsci.common.ui.color.ColorMapEditor.java

License:Apache License

private void selectTableEntry(Entry<Double, Color> entry) {
    if (entry == null) {
        entriesTable.setSelection(null);
        return;//from   ww w . j a v a2  s  .  c  o m
    }

    entriesTable.setSelection(new StructuredSelection(entry));
}

From source file:au.gov.ga.earthsci.common.ui.color.ColorMapEditor.java

License:Apache License

/**
 * Select the marker at the given coordinate, if one exists
 *///from  w  w  w.j  a v a 2  s .  co  m
private Marker selectMarkerByCoordinate(int x, int y) {
    Point p = new Point(x, y);
    Marker result = null;
    for (Marker m : markers) {
        m.setSelected(m.contains(p));
        if (m.selected) {
            result = m;
            entriesTable.setSelection(new StructuredSelection(m.getEntry()));
        }
    }
    return result;
}

From source file:au.gov.ga.earthsci.common.ui.preferences.LazyPreferenceDialog.java

License:Apache License

public final void setCurrentPageId(final String preferencePageId) {
    final IPreferenceNode node = findNodeMatching(preferencePageId);
    if (node != null) {
        getTreeViewer().setSelection(new StructuredSelection(node));
        showPage(node);/*from   www.  j a  v a  2 s.  co m*/
    }
}

From source file:au.gov.ga.earthsci.discovery.darwin.DarwinURLSelectionDialog.java

License:Apache License

@Override
protected Control createDialogArea(Composite parent) {
    Composite comp = new Composite(parent, SWT.NONE);
    comp.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    GridLayout layout = new GridLayout();
    layout.marginTop = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING);
    comp.setLayout(layout);//from   w  w  w.  j av  a 2  s  . c o m
    initializeDialogUnits(comp);

    viewer = new TableViewer(comp, SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL | SWT.FULL_SELECTION);
    GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true);
    //set max size (actual size is calculated below):
    gd.widthHint = 600;
    gd.heightHint = 400;
    viewer.getTable().setLayoutData(gd);
    viewer.setContentProvider(new ArrayContentProvider());
    viewer.setLabelProvider(new LabelProvider());
    viewer.setInput(urls);

    DarwinDiscoveryResultURL longestUrl = urlWithLongestName(urls);
    if (longestUrl != null) {
        GC gc = new GC(viewer.getTable());
        Point point = gc.textExtent(longestUrl.getName());
        gc.dispose();
        gd.widthHint = Math.min(gd.widthHint, point.x);
    }
    int height = viewer.getTable().getItemHeight() * urls.size() + viewer.getTable().getHeaderHeight();
    if (height < gd.heightHint) {
        //if height of all rows is less than the max height, then use the default height:
        gd.heightHint = SWT.DEFAULT;
    }

    //keep the column width in sync with the table width
    final TableColumn resultsColumn = new TableColumn(viewer.getTable(), SWT.LEFT);
    Listener resizeListener = new Listener() {
        @Override
        public void handleEvent(Event event) {
            resultsColumn.setWidth(viewer.getTable().getClientArea().width);
        }
    };
    viewer.getControl().addListener(SWT.Resize, resizeListener);
    viewer.getControl().addListener(SWT.Paint, resizeListener);

    if (selected != null) {
        viewer.setSelection(new StructuredSelection(selected));
    } else if (urls.size() == 1) {
        viewer.getTable().select(0);
    } else {
        //if there is a WMS url, select it by default
        for (DarwinDiscoveryResultURL url : urls) {
            if (url.getProtocol().toLowerCase().contains("wms")) //$NON-NLS-1$
            {
                viewer.setSelection(new StructuredSelection(url));
                break;
            }
        }
    }

    viewer.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            validate();
        }
    });

    ColumnViewerToolTipSupport.enableFor(viewer);

    urlLabel = new CLabel(comp, SWT.NONE);
    urlLabel.setLayoutData(new GridData(SWT.FILL, SWT.NONE, true, false));

    Dialog.applyDialogFont(comp);
    return comp;
}

From source file:au.gov.ga.earthsci.discovery.ui.preferences.DiscoveryServicesPreferencePage.java

License:Apache License

private void editSelected() {
    IDiscoveryService[] selected = getSelected();
    if (selected.length != 1) {
        return;//w ww . j av  a 2 s . c  om
    }

    IDiscoveryService oldService = selected[0];
    EditDiscoveryServiceDialog dialog = new EditDiscoveryServiceDialog(getShell());
    dialog.setTitle(Messages.DiscoveryServicesPreferencePage_EditDialogTitle);
    dialog.setService(oldService);
    if (dialog.open() == Window.OK) {
        IDiscoveryService newService = dialog.getService();
        if (newService != null) {
            newService.setEnabled(oldService.isEnabled());

            stagingSet.remove(oldService);
            stagingSet.add(newService);

            viewer.refresh();
            viewer.setSelection(new StructuredSelection(newService));
            validateButtons();
        }
    }
}

From source file:au.gov.ga.earthsci.layer.ui.LayerTreePart.java

License:Apache License

protected void activateAndSelectElement(final ILayerTreeNode element) {
    if (!structureViewer.getControl().isDisposed()) {
        structureViewer.getControl().getDisplay().asyncExec(new Runnable() {
            @Override//  ww w.j  a  v a  2  s. co m
            public void run() {
                MPart part = partService.findPart(PART_ID);
                if (part != null) {
                    partService.activate(part);
                    structureViewer.setSelection(new StructuredSelection(element), true);
                    tabFolder.setSelection(structureTabItem);
                }
            }
        });
    }
}