Example usage for org.eclipse.jface.viewers ViewerCell setImage

List of usage examples for org.eclipse.jface.viewers ViewerCell setImage

Introduction

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

Prototype

public void setImage(Image image) 

Source Link

Document

Set the Image for the cell.

Usage

From source file:net.sf.jmoney.importer.matcher.PatternMatchingDialog.java

License:Open Source License

private Control createPatternMatchingTableControl(Composite parent) {
    Composite composite = new Composite(parent, SWT.NONE);
    composite.setLayout(new GridLayout(2, false));

    // Create the table viewer to display the pattern matching rules
    patternViewer = new TableViewer(composite, SWT.BORDER | SWT.FULL_SELECTION);

    // Set up the table
    final Table table = patternViewer.getTable();
    table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    TableViewerFocusCellManager focusCellManager = new TableViewerFocusCellManager(patternViewer,
            new FocusCellOwnerDrawHighlighter(patternViewer));
    ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(patternViewer) {
        @Override/*w  w w  . j  av  a2  s . c om*/
        protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
            return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL
                    || event.eventType == ColumnViewerEditorActivationEvent.MOUSE_CLICK_SELECTION
                    || (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED
                            && event.keyCode == SWT.CR)
                    || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
        }
    };

    TableViewerEditor.create(patternViewer, focusCellManager, actSupport,
            ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
                    | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION);

    // Set the content and label providers
    patternViewer.setContentProvider(new PatternContentProvider());
    patternViewer.setSorter(new PatternSorter());

    ColumnViewerToolTipSupport.enableFor(patternViewer);

    // Add the columns
    TableViewerColumn column1 = new TableViewerColumn(patternViewer, SWT.LEFT);
    column1.getColumn().setWidth(40);
    column1.getColumn().setText("");
    column1.setLabelProvider(new CellLabelProvider() {
        @Override
        public void update(ViewerCell cell) {
            MemoPattern pattern = (MemoPattern) cell.getElement();
            if (isMemoPatternValid(pattern) != null) {
                cell.setImage(errorImage);
            } else {
                cell.setImage(null);
            }
        }

        @Override
        public String getToolTipText(Object element) {
            MemoPattern pattern = (MemoPattern) element;
            return isMemoPatternValid(pattern);
        }
    });

    column1.setEditingSupport(new EditingSupport(patternViewer) {
        @Override
        protected boolean canEdit(Object element) {
            return false;
        }

        @Override
        protected CellEditor getCellEditor(Object element) {
            return null;
        }

        @Override
        protected Object getValue(Object element) {
            return null;
        }

        @Override
        protected void setValue(Object element, Object value) {
        }
    });

    addColumn(MemoPatternInfo.getPatternAccessor(),
            "<html>The pattern is a Java regular expression that is matched against the memo in the downloadable file.<br>For each record from the bank, the first row in this table with a matching pattern is used.</html>");
    addColumn(MemoPatternInfo.getCheckAccessor(),
            "The value to be put in the check field.  The values in this table may contain {0}, [1} etc. where the number matches the group number in the Java regular expression.");
    addColumn(MemoPatternInfo.getMemoAccessor(),
            "The value to be put in the memo field.  The values in this table may contain {0}, [1} etc. where the number matches the group number in the Java regular expression.");
    addColumn(MemoPatternInfo.getAccountAccessor(),
            "The account to be used for entries that match this pattern.");
    addColumn(MemoPatternInfo.getDescriptionAccessor(),
            "The value to be put in the description field.  The values in this table may contain {0}, [1} etc. where the number matches the group number in the Java regular expression.");

    /*
     * Set the account as the input object that contains the list of pattern
     * matching rules.
     */
    patternViewer.setInput(account);

    // Pack the columns
    for (int i = 0, n = table.getColumnCount(); i < n; i++) {
        table.getColumn(i).pack();
    }

    // Turn on the header and the lines
    table.setHeaderVisible(true);
    table.setLinesVisible(true);

    // Create the button area
    Control buttonAreaControl = createButtonArea(composite);
    buttonAreaControl.setLayoutData(new GridData(SWT.LEFT, SWT.FILL, false, true));

    return composite;
}

From source file:net.sf.jmoney.reconciliation.reconcilePage.ImportOptionsDialog.java

License:Open Source License

private Control createPatternMatchingTableControl(Composite parent) {
    Composite composite = new Composite(parent, SWT.NONE);
    composite.setLayout(new GridLayout(2, false));

    // Create the table viewer to display the pattern matching rules
    viewer = new TableViewer(composite, SWT.BORDER | SWT.FULL_SELECTION);

    // Set up the table
    final Table table = viewer.getTable();
    table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    TableViewerFocusCellManager focusCellManager = new TableViewerFocusCellManager(viewer,
            new FocusCellOwnerDrawHighlighter(viewer));
    ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(viewer) {
        @Override/*from   w ww  . jav a2  s .  co  m*/
        protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
            return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL
                    || event.eventType == ColumnViewerEditorActivationEvent.MOUSE_CLICK_SELECTION
                    || (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED
                            && event.keyCode == SWT.CR)
                    || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
        }
    };

    TableViewerEditor.create(viewer, focusCellManager, actSupport,
            ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
                    | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION);

    // Set the content and label providers
    viewer.setContentProvider(new PatternContentProvider());
    viewer.setSorter(new PatternSorter());

    ColumnViewerToolTipSupport.enableFor(viewer);

    // Add the columns
    TableViewerColumn column1 = new TableViewerColumn(viewer, SWT.LEFT);
    column1.getColumn().setWidth(40);
    column1.getColumn().setText("");
    column1.setLabelProvider(new CellLabelProvider() {
        @Override
        public void update(ViewerCell cell) {
            MemoPattern pattern = (MemoPattern) cell.getElement();
            if (isMemoPatternValid(pattern) != null) {
                cell.setImage(errorImage);
            } else {
                cell.setImage(null);
            }
        }

        @Override
        public String getToolTipText(Object element) {
            MemoPattern pattern = (MemoPattern) element;
            return isMemoPatternValid(pattern);
        }
    });

    column1.setEditingSupport(new EditingSupport(viewer) {
        @Override
        protected boolean canEdit(Object element) {
            return false;
        }

        @Override
        protected CellEditor getCellEditor(Object element) {
            return null;
        }

        @Override
        protected Object getValue(Object element) {
            return null;
        }

        @Override
        protected void setValue(Object element, Object value) {
        }
    });

    addColumn(MemoPatternInfo.getPatternAccessor(),
            "<html>The pattern is a Java regular expression that is matched against the memo in the downloadable file.<br>For each record from the bank, the first row in this table with a matching pattern is used.</html>");
    addColumn(MemoPatternInfo.getCheckAccessor(),
            "The value to be put in the check field.  The values in this table may contain {0}, [1} etc. where the number matches the group number in the Java regular expression.");
    addColumn(MemoPatternInfo.getMemoAccessor(),
            "The value to be put in the memo field.  The values in this table may contain {0}, [1} etc. where the number matches the group number in the Java regular expression.");
    addColumn(MemoPatternInfo.getAccountAccessor(),
            "The account to be used for entries that match this pattern.");
    addColumn(MemoPatternInfo.getDescriptionAccessor(),
            "The value to be put in the description field.  The values in this table may contain {0}, [1} etc. where the number matches the group number in the Java regular expression.");

    /*
     * Set the account as the input object that contains the list of pattern
     * matching rules.
     */
    viewer.setInput(account);

    // Pack the columns
    for (int i = 0, n = table.getColumnCount(); i < n; i++) {
        table.getColumn(i).pack();
    }

    // Turn on the header and the lines
    table.setHeaderVisible(true);
    table.setLinesVisible(true);

    // Create the button area
    Control buttonAreaControl = createButtonArea(composite);
    buttonAreaControl.setLayoutData(new GridData(SWT.LEFT, SWT.FILL, false, true));

    return composite;
}

From source file:net.sf.jmoney.views.feedback.FeedbackView.java

License:Open Source License

private Control createTable(Composite parent) {
    viewer = new TreeViewer(parent,
            /*SWT.MULTI |*/ SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.HIDE_SELECTION);
    viewer.setContentProvider(new StatusContentProvider());

    //      viewer.setSorter(sorter);
    viewer.addFilter(filter);/*from  ww w .j  a v a2  s  .  c  om*/

    Tree tree = viewer.getTree();

    tree.setHeaderVisible(true);
    tree.setLinesVisible(true);

    TreeViewerColumn statusColumn = new TreeViewerColumn(viewer, SWT.LEFT);
    statusColumn.getColumn().setText("Status");
    statusColumn.getColumn().setWidth(100);

    statusColumn.setLabelProvider(new CellLabelProvider() {
        @Override
        public void update(ViewerCell cell) {
            IStatus statusElement = (IStatus) cell.getElement();
            switch (statusElement.getSeverity()) {
            case IStatus.CANCEL:
                cell.setImage(JMoneyPlugin.createImage("status_canceled.gif"));
                break;
            case IStatus.ERROR:
                cell.setImage(JMoneyPlugin.createImage("status_error.gif"));
                break;
            case IStatus.WARNING:
                cell.setImage(JMoneyPlugin.createImage("status_warning.gif"));
                break;
            case IStatus.INFO:
                cell.setImage(JMoneyPlugin.createImage("status_info.gif"));
                break;
            case IStatus.OK:
                cell.setImage(JMoneyPlugin.createImage("status_ok.gif"));
                break;
            }
        }
    });

    TreeViewerColumn descriptionColumn = new TreeViewerColumn(viewer, SWT.LEFT);
    descriptionColumn.getColumn().setText("Description");
    descriptionColumn.getColumn().setWidth(300);

    descriptionColumn.setLabelProvider(new CellLabelProvider() {
        @Override
        public void update(ViewerCell cell) {
            IStatus statusElement = (IStatus) cell.getElement();
            cell.setText(statusElement.getMessage());
        }
    });

    // Create the pop-up menu
    MenuManager menuMgr = new MenuManager();
    menuMgr.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
    getSite().registerContextMenu(menuMgr, viewer);

    Control control = viewer.getControl();
    Menu menu = menuMgr.createContextMenu(control);
    control.setMenu(menu);

    return control;
}

From source file:net.sf.smbt.ui.ableton.views.AbletonLiveView.java

License:LGPL

private TreeViewerColumn createTableViewerColumn(String title, int bound) {
    final TreeViewerColumn viewerColumn = new TreeViewerColumn(subDetailsViewer, SWT.NONE);
    final TreeColumn column = viewerColumn.getColumn();
    column.setText(title);//from ww w.j ava  2  s  .  com
    column.setWidth(bound);
    column.setResizable(true);
    column.setMoveable(true);
    viewerColumn.setLabelProvider(new StyledCellLabelProvider() {
        @Override
        protected void paint(Event event, Object element) {
            if (element instanceof LiveScene) {
                TreeItem treeItem = (TreeItem) event.item;
                Object obj = treeItem.getData(viewerColumn.getColumn().getText() + "#clip");
                if (obj != null) {
                    LiveClip c = (LiveClip) obj;
                    super.paint(event, element);
                    if (((LiveScene) element).getSceneID() == lastSceneID) {
                        int width = 0;
                        int height = event.height - 4;
                        int x = event.x;
                        int y = event.y + 2;
                        float l = c.getLength();
                        float p = c.getPosition();

                        if (p > 0 && l > 0) {
                            float ratio = p / l;
                            width = Float.valueOf(ratio * (float) viewerColumn.getColumn().getWidth())
                                    .intValue();
                            event.gc.setAlpha(100);
                            event.gc.setBackground(Display.getDefault().getSystemColor(SWT.COLOR_WHITE));
                            event.gc.setForeground(Display.getDefault().getSystemColor(SWT.COLOR_WHITE));
                            event.gc.fillRoundRectangle(x, y, width, height, 2, 2);
                            event.gc.setAlpha(255);
                            event.gc.drawRoundRectangle(x, y, width, height, 2, 2);
                        }
                    }
                } else {
                    super.paint(event, element);
                }
            } else {
                super.paint(event, element);
            }
        }

        @Override
        public void update(ViewerCell cell) {
            super.update(cell);
            if (cell.getElement() instanceof LiveScene) {
                LiveScene scene = (LiveScene) cell.getElement();
                int idx = cell.getColumnIndex();
                if (liveController.getLiveApp().getTracks().size() > idx) {
                    LiveTrack track = liveController.getLiveApp().getTracks().get(idx);
                    for (LiveClip c : track.getClips()) {
                        if (scene.getSceneID() == c.getClipID()) {
                            cell.setText(c.getClipName());
                            //cell.getStyleRanges();
                            /*
                            switch(c.getClipState()) {
                               case PLAYING:
                               case TRIGGERED:
                                  cell.setImage(playImage);
                                  //break;
                               case STOP:
                                  cell.setImage(stopImage);
                                  break;
                               default:
                                  cell.setImage(stopImage);
                                  break;
                            };*/

                            cell.setImage(lastSceneID == scene.getSceneID() ? playImage : stopImage);

                            if (c.getColor() != null) {
                                cell.setForeground(Display.getDefault().getSystemColor(SWT.COLOR_BLACK));
                                cell.setBackground(c.getColor());
                            }

                            cell.getItem().setData(track.getTrackName() + "#clip", c);
                            break;
                        } else {
                            cell.setForeground(GUIToolkit.FG);
                            cell.setBackground(GUIToolkit.BG);
                        }
                    }
                }
            }
        }
    });
    return viewerColumn;
}

From source file:net.sf.smbt.ui.dmx.editors.DMXMultiPageEditor.java

License:LGPL

private TreeViewerColumn createTableViewerColumn(final TreeViewer treeViewer,
        final AdapterFactoryLabelProvider labelProvider, String title, int bound) {
    final TreeViewerColumn viewerColumn = new TreeViewerColumn(treeViewer, SWT.NONE);
    final TreeColumn column = viewerColumn.getColumn();
    column.setText(title);/* w w w .jav  a2s . c o  m*/
    column.setWidth(bound);
    column.setResizable(true);
    column.setMoveable(true);

    viewerColumn.setLabelProvider(new StyledCellLabelProvider() {
        @Override
        public void update(ViewerCell cell) {
            super.update(cell);

            Object[] children = ((ITreeContentProvider) treeViewer.getContentProvider())
                    .getElements(dmxProject.getFixtureDefinitions());
            int start = 0;
            int end = 0;
            for (Object o : children) {
                if (o instanceof FixtureDefinition) {
                    FixtureDefinition def = (FixtureDefinition) o;
                    List<Channel> channels = def.getChannel();
                    if (!def.getMode().isEmpty()) {
                        end += channels.size();
                        start = end - channels.size();
                        if (def.equals(cell.getElement())) {
                            end--;
                            break;
                        }
                    }
                }
            }

            int idx = cell.getColumnIndex();
            if (idx == 0) {
                cell.setText("0");
            } else if (idx == 1) {
                cell.setText(start + " - " + end);
            } else if (idx == 2) {
                cell.setText(labelProvider.getText(cell.getElement()));
                cell.setImage(labelProvider.getImage(cell.getElement()));
            } else if (idx == 3) {
                cell.setImage(DMXGraphicsUtil.INSTANCE.getDMXFixtureJumpersImage(start));
            }
        }
    });
    return viewerColumn;
}

From source file:net.ssehub.easy.producer.ui.productline_editor.configuration.AbstractConfigurationLabelProvider.java

@Override
public void update(ViewerCell cell) {
    Object element = cell.getElement();
    int index = cell.getVisualIndex();
    String text = getColumnText(element, index);
    cell.setText(text);/* w w  w .j  a va  2s  . c  o m*/
    cell.setImage(getColumnImage(element, index));
    if (ColumnType.ERROR == columType(index) && null != text) {
        cell.setForeground(ERROR_COLOR);
    } else {
        cell.setForeground(getForeground(element));
    }
    cell.setBackground(getBackground(element));
}

From source file:net.tourbook.preferences.PrefPageAppearanceColors.java

License:Open Source License

/**
 * create columns/*  w  w w . j a  v  a  2 s.  c  o m*/
 */
private void defineAllColumns(final TreeColumnLayout treeLayout, final Tree tree) {

    final int numberOfHorizontalImages = 5;
    final int trailingOffset = 10;

    final int itemHeight = tree.getItemHeight();
    final int colorWidth = (itemHeight + GraphColorPainter.GRAPH_COLOR_SPACING) * numberOfHorizontalImages
            + trailingOffset;

    TreeColumn tc;
    TreeViewerColumn tvc;

    // 1. column: color item/color definition
    tvc = new TreeViewerColumn(_colorViewer, SWT.TRAIL);
    tc = tvc.getColumn();
    tvc.setLabelProvider(new StyledCellLabelProvider() {
        @Override
        public void update(final ViewerCell cell) {

            final Object element = cell.getElement();

            if (element instanceof ColorDefinition) {
                cell.setText(((ColorDefinition) (element)).getVisibleName());
            } else if (element instanceof GraphColorItem) {
                cell.setText(((GraphColorItem) (element)).getName());
            } else {
                cell.setText(UI.EMPTY_STRING);
            }
        }
    });
    treeLayout.setColumnData(tc, new ColumnWeightData(1, true));

    // 2. column: color for definition/item
    tvc = new TreeViewerColumn(_colorViewer, SWT.TRAIL);
    tc = tvc.getColumn();
    tvc.setLabelProvider(new StyledCellLabelProvider() {
        @Override
        public void update(final ViewerCell cell) {

            final Object element = cell.getElement();

            if (element instanceof ColorDefinition) {

                cell.setImage(_graphColorPainter.drawColorDefinitionImage((ColorDefinition) element,
                        numberOfHorizontalImages));

            } else if (element instanceof GraphColorItem) {

                cell.setImage(_graphColorPainter.drawGraphColorImage(//
                        (GraphColorItem) element, numberOfHorizontalImages));

            } else {

                cell.setImage(null);
            }
        }
    });
    treeLayout.setColumnData(tc, new ColumnPixelData(colorWidth, true));
}

From source file:net.tourbook.preferences.PrefPageTags.java

License:Open Source License

private void createUI_20_TagViewer(final Composite parent) {

    /*//from   w w w  . j a va2 s.  c  om
     * create tree layout
     */

    final Composite layoutContainer = new Composite(parent, SWT.NONE);
    GridDataFactory.fillDefaults()//
            .grab(true, true).hint(200, 100).applyTo(layoutContainer);

    final TreeColumnLayout treeLayout = new TreeColumnLayout();
    layoutContainer.setLayout(treeLayout);

    /*
     * create viewer
     */
    final Tree tree = new Tree(layoutContainer, SWT.H_SCROLL | SWT.V_SCROLL
    //            | SWT.BORDER
            | SWT.MULTI | SWT.FULL_SELECTION);

    tree.setHeaderVisible(false);
    tree.setLinesVisible(getPreferenceStore().getBoolean(ITourbookPreferences.VIEW_LAYOUT_DISPLAY_LINES));

    _tagViewer = new TreeViewer(tree);

    _tagViewer.setContentProvider(new TagViewerContentProvicer());
    _tagViewer.setComparator(new TagViewerComparator());
    _tagViewer.setUseHashlookup(true);

    _tagViewer.addDoubleClickListener(new IDoubleClickListener() {
        @Override
        public void doubleClick(final DoubleClickEvent event) {

            final Object selection = ((IStructuredSelection) _tagViewer.getSelection()).getFirstElement();

            if (selection instanceof TVIPrefTag) {

                // tag is selected

                onRenameTourTag();

            } else if (selection instanceof TVIPrefTagCategory) {

                // expand/collapse current item

                final TreeViewerItem tourItem = (TreeViewerItem) selection;

                if (_tagViewer.getExpandedState(tourItem)) {
                    _tagViewer.collapseToLevel(tourItem, 1);
                } else {
                    _tagViewer.expandToLevel(tourItem, 1);
                }
            }
        }
    });

    _tagViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(final SelectionChangedEvent event) {
            enableButtons();
        }
    });

    _tagViewer.addDragSupport(DND.DROP_MOVE, new Transfer[] { LocalSelectionTransfer.getTransfer() },
            new DragSourceListener() {

                @Override
                public void dragFinished(final DragSourceEvent event) {

                    final LocalSelectionTransfer transfer = LocalSelectionTransfer.getTransfer();

                    if (event.doit == false) {
                        return;
                    }

                    transfer.setSelection(null);
                    transfer.setSelectionSetTime(0);
                }

                @Override
                public void dragSetData(final DragSourceEvent event) {
                    // data are set in LocalSelectionTransfer
                }

                @Override
                public void dragStart(final DragSourceEvent event) {

                    final LocalSelectionTransfer transfer = LocalSelectionTransfer.getTransfer();
                    final ISelection selection = _tagViewer.getSelection();

                    //                  System.out.println("dragStart");
                    transfer.setSelection(selection);
                    transfer.setSelectionSetTime(_dragStartTime = event.time & 0xFFFFFFFFL);

                    event.doit = !selection.isEmpty();
                }
            });

    _tagViewer.addDropSupport(DND.DROP_MOVE, new Transfer[] { LocalSelectionTransfer.getTransfer() },
            new TagDropAdapter(this, _tagViewer));

    /*
     * create columns
     */
    TreeViewerColumn tvc;
    TreeColumn tvcColumn;

    // column: tags + tag categories
    tvc = new TreeViewerColumn(_tagViewer, SWT.TRAIL);
    tvcColumn = tvc.getColumn();
    tvc.setLabelProvider(new StyledCellLabelProvider() {
        @Override
        public void update(final ViewerCell cell) {

            final StyledString styledString = new StyledString();

            final Object element = cell.getElement();
            if (element instanceof TVIPrefTag) {

                final TourTag tourTag = ((TVIPrefTag) element).getTourTag();

                styledString.append(tourTag.getTagName(), UI.TAG_STYLER);
                cell.setImage(tourTag.isRoot() ? _imgTagRoot : _imgTag);

            } else if (element instanceof TVIPrefTagCategory) {

                final TVIPrefTagCategory tourTagCategoryItem = (TVIPrefTagCategory) element;
                final TourTagCategory tourTagCategory = tourTagCategoryItem.getTourTagCategory();

                cell.setImage(_imgTagCategory);

                styledString.append(tourTagCategory.getCategoryName(), UI.TAG_CATEGORY_STYLER);

                // get number of categories
                final int categoryCounter = tourTagCategory.getCategoryCounter();
                final int tagCounter = tourTagCategory.getTagCounter();
                if (categoryCounter == -1 && tagCounter == -1) {

                    //                  styledString.append("  ...", StyledString.COUNTER_STYLER);

                } else {

                    String categoryString = UI.EMPTY_STRING;
                    if (categoryCounter > 0) {
                        categoryString = "/" + categoryCounter; //$NON-NLS-1$
                    }
                    styledString.append("   " + tagCounter + categoryString, StyledString.QUALIFIER_STYLER); //$NON-NLS-1$
                }

            } else {
                styledString.append(element.toString());
            }

            cell.setText(styledString.getString());
            cell.setStyleRanges(styledString.getStyleRanges());
        }
    });
    treeLayout.setColumnData(tvcColumn, new ColumnWeightData(100, true));
}

From source file:net.tourbook.preferences.PrefPageTourTypeFilterList.java

License:Open Source License

private void createUI_10_FilterViewer(final Composite parent) {

    final TableLayoutComposite layouter = new TableLayoutComposite(parent, SWT.NONE);
    GridDataFactory.fillDefaults().grab(true, true).hint(200, SWT.DEFAULT).applyTo(layouter);

    final Table table = new Table(layouter, (SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER | SWT.FULL_SELECTION));
    table.setHeaderVisible(false);//from  w ww.  j  a  v a 2 s  .c  o  m
    table.setLinesVisible(false);

    TableViewerColumn tvc;

    _filterViewer = new TableViewer(table);

    // column: name + image
    tvc = new TableViewerColumn(_filterViewer, SWT.NONE);
    tvc.setLabelProvider(new CellLabelProvider() {
        @Override
        public void update(final ViewerCell cell) {

            final TourTypeFilter filter = ((TourTypeFilter) cell.getElement());
            final int filterType = filter.getFilterType();

            String filterName = null;
            Image filterImage = null;

            // set filter name/image
            switch (filterType) {
            case TourTypeFilter.FILTER_TYPE_DB:
                final TourType tourType = filter.getTourType();
                filterName = tourType.getName();
                filterImage = UI.getInstance().getTourTypeImage(tourType.getTypeId());
                break;

            case TourTypeFilter.FILTER_TYPE_SYSTEM:
                filterName = filter.getSystemFilterName();
                filterImage = UI.IMAGE_REGISTRY.get(UI.IMAGE_TOUR_TYPE_FILTER_SYSTEM);
                break;

            case TourTypeFilter.FILTER_TYPE_TOURTYPE_SET:
                filterName = filter.getTourTypeSet().getName();
                filterImage = UI.IMAGE_REGISTRY.get(UI.IMAGE_TOUR_TYPE_FILTER);
                break;

            default:
                break;
            }

            cell.setText(filterName);
            cell.setImage(filterImage);
        }
    });
    layouter.addColumnData(new ColumnWeightData(1));

    _filterViewer.setContentProvider(new IStructuredContentProvider() {
        @Override
        public void dispose() {
        }

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

        @Override
        public void inputChanged(final Viewer viewer, final Object oldInput, final Object newInput) {
        }
    });

    _filterViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(final SelectionChangedEvent event) {
            onSelectFilter();
        }
    });

    _filterViewer.addDoubleClickListener(new IDoubleClickListener() {
        @Override
        public void doubleClick(final DoubleClickEvent event) {
            onRenameFilterSet();
        }
    });

    /*
     * set drag adapter
     */
    _filterViewer.addDragSupport(DND.DROP_MOVE, new Transfer[] { LocalSelectionTransfer.getTransfer() },
            new DragSourceListener() {

                @Override
                public void dragFinished(final DragSourceEvent event) {

                    final LocalSelectionTransfer transfer = LocalSelectionTransfer.getTransfer();

                    if (event.doit == false) {
                        return;
                    }

                    transfer.setSelection(null);
                    transfer.setSelectionSetTime(0);
                }

                @Override
                public void dragSetData(final DragSourceEvent event) {
                    // data are set in LocalSelectionTransfer
                }

                @Override
                public void dragStart(final DragSourceEvent event) {

                    final LocalSelectionTransfer transfer = LocalSelectionTransfer.getTransfer();
                    final ISelection selection = _filterViewer.getSelection();

                    transfer.setSelection(selection);
                    transfer.setSelectionSetTime(_dragStartViewerLeft = event.time & 0xFFFFFFFFL);

                    event.doit = !selection.isEmpty();
                }
            });

    /*
     * set drop adapter
     */
    final ViewerDropAdapter viewerDropAdapter = new ViewerDropAdapter(_filterViewer) {

        private Widget _tableItem;

        @Override
        public void dragOver(final DropTargetEvent dropEvent) {

            // keep table item
            _tableItem = dropEvent.item;

            super.dragOver(dropEvent);
        }

        @Override
        public boolean performDrop(final Object data) {

            if (data instanceof StructuredSelection) {
                final StructuredSelection selection = (StructuredSelection) data;

                if (selection.getFirstElement() instanceof TourTypeFilter) {

                    final TourTypeFilter filterItem = (TourTypeFilter) selection.getFirstElement();

                    final int location = getCurrentLocation();
                    final Table filterTable = _filterViewer.getTable();

                    /*
                     * check if drag was startet from this filter, remove the filter item before
                     * the new filter is inserted
                     */
                    if (LocalSelectionTransfer.getTransfer().getSelectionSetTime() == _dragStartViewerLeft) {
                        _filterViewer.remove(filterItem);
                    }

                    int filterIndex;

                    if (_tableItem == null) {

                        _filterViewer.add(filterItem);
                        filterIndex = filterTable.getItemCount() - 1;

                    } else {

                        // get index of the target in the table
                        filterIndex = filterTable.indexOf((TableItem) _tableItem);
                        if (filterIndex == -1) {
                            return false;
                        }

                        if (location == LOCATION_BEFORE) {
                            _filterViewer.insert(filterItem, filterIndex);
                        } else if (location == LOCATION_AFTER || location == LOCATION_ON) {
                            _filterViewer.insert(filterItem, ++filterIndex);
                        }
                    }

                    // reselect filter item
                    _filterViewer.setSelection(new StructuredSelection(filterItem));

                    // set focus to selection
                    filterTable.setSelection(filterIndex);
                    filterTable.setFocus();

                    _isModified = true;

                    return true;
                }
            }

            return false;
        }

        @Override
        public boolean validateDrop(final Object target, final int operation, final TransferData transferType) {

            final ISelection selection = LocalSelectionTransfer.getTransfer().getSelection();
            if (selection instanceof StructuredSelection) {
                final Object dragFilter = ((StructuredSelection) selection).getFirstElement();
                if (target == dragFilter) {
                    return false;
                }
            }

            if (LocalSelectionTransfer.getTransfer().isSupportedType(transferType) == false) {
                return false;
            }

            return true;
        }

    };

    _filterViewer.addDropSupport(DND.DROP_MOVE, new Transfer[] { LocalSelectionTransfer.getTransfer() },
            viewerDropAdapter);
}

From source file:net.tourbook.preferences.PrefPageTourTypeFilterList.java

License:Open Source License

private void createUI_20_TourTypeViewer(final Composite parent) {

    final TableLayoutComposite layouter = new TableLayoutComposite(parent, SWT.NONE);
    GridDataFactory.fillDefaults().grab(true, true).hint(200, SWT.DEFAULT).applyTo(layouter);

    final Table table = new Table(layouter,
            (SWT.CHECK | SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER | SWT.FULL_SELECTION));

    table.setHeaderVisible(false);//from w w w .  j a v  a  2s  . com
    table.setLinesVisible(false);

    _tourTypeViewer = new CheckboxTableViewer(table);

    TableViewerColumn tvc;

    // column: name
    tvc = new TableViewerColumn(_tourTypeViewer, SWT.NONE);
    tvc.setLabelProvider(new CellLabelProvider() {
        @Override
        public void update(final ViewerCell cell) {
            final TourType tourType = ((TourType) cell.getElement());
            cell.setText(tourType.getName());
            cell.setImage(UI.getInstance().getTourTypeImage(tourType.getTypeId()));
        }
    });
    layouter.addColumnData(new ColumnWeightData(1));

    _tourTypeViewer.setContentProvider(new IStructuredContentProvider() {

        @Override
        public void dispose() {
        }

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

        @Override
        public void inputChanged(final Viewer viewer, final Object oldInput, final Object newInput) {
        }
    });

    _tourTypeViewer.addCheckStateListener(new ICheckStateListener() {
        @Override
        public void checkStateChanged(final CheckStateChangedEvent event) {
            _isModified = true;
        }
    });

    _tourTypeViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(final SelectionChangedEvent event) {
            onSelectTourType();
        }
    });

    _tourTypeViewer.addDoubleClickListener(new IDoubleClickListener() {
        @Override
        public void doubleClick(final DoubleClickEvent event) {

            /*
             * invert check state
             */
            final TourType tourType = (TourType) ((StructuredSelection) _tourTypeViewer.getSelection())
                    .getFirstElement();

            final boolean isChecked = _tourTypeViewer.getChecked(tourType);

            _tourTypeViewer.setChecked(tourType, !isChecked);

            //            getSelectedTourTypes();
        }
    });
}