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

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

Introduction

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

Prototype

public TreeViewerColumn(TreeViewer viewer, TreeColumn column) 

Source Link

Document

Creates a new viewer column for the given TreeViewer on the given TreeColumn .

Usage

From source file:org.eclipse.ptp.internal.rm.lml.ui.views.TableView.java

License:Open Source License

/**
 * /* ww  w  . ja v  a 2s .c  om*/
 * @param tableViewer
 * @param fSelected
 */
private void createColumns() {
    if (fLguiItem.isLayout() || fLguiItem.getTableHandler() == null) {
        return;
    }

    final ITableColumnLayout[] tableColumnLayouts = fLguiItem.getTableHandler().getTableColumnLayout(gid);
    if (tableColumnLayouts.length == 0) {
        return;
    }

    treeColumns = new TreeColumn[tableColumnLayouts.length];
    savedColumnWidths = new int[tableColumnLayouts.length + 1];

    final String[] columnTitlesPattern = fLguiItem.getColumnTitlePattern(gid);

    // first column with color rectangle
    TreeViewerColumn treeViewerColumn = new TreeViewerColumn(viewer, SWT.NONE);
    if (firstColumnlabelProvider != null) {
        firstColumnlabelProvider.dispose();
    }
    firstColumnlabelProvider = new FirstColumnLabelProvider();

    treeViewerColumn.setLabelProvider(firstColumnlabelProvider);
    TreeColumn treeColumn = treeViewerColumn.getColumn();
    treeColumn.setMoveable(false);
    treeColumn.setResizable(false);
    treeColumn.setAlignment(SWT.LEFT);
    treeColumn.addControlListener(new ControlAdapter() {
        @Override
        public void controlMoved(ControlEvent e) {
            final List<Integer> newOrder = new ArrayList<Integer>();
            newOrder.add(0);
            for (final int column : tree.getColumnOrder()) {
                if (column != 0) {
                    newOrder.add(column);
                }
            }
            final int[] newOrderArray = new int[newOrder.size()];
            for (int i = 0; i < newOrder.size(); i++) {
                newOrderArray[i] = newOrder.get(i);
            }

            tree.setColumnOrder(newOrderArray);
        }
    });
    createMenuItem(headerMenu, treeColumn, 0);
    treeColumnLayout.setColumnData(treeColumn, new ColumnPixelData(40, true));

    // the remaining columns
    for (int i = 0; i < tableColumnLayouts.length; i++) {
        treeViewerColumn = new TreeViewerColumn(viewer, SWT.NONE);
        final int cellNumber = i;
        treeViewerColumn.setLabelProvider(new CellLabelProvider() {
            @Override
            public void update(ViewerCell cell) {
                String value = "-"; //$NON-NLS-1$
                final Row row = (Row) cell.getElement();
                if (row != null && row.cells.length > cellNumber) {
                    value = row.cells[cellNumber].value;
                }
                cell.setText(value);
            }
        });
        final TreeColumn treeColumnI = treeViewerColumn.getColumn();
        treeColumnI.setMoveable(true);
        boolean isFiltered = false;
        for (final String title : columnTitlesPattern) {
            if (title.equals(tableColumnLayouts[i].getTitle())) {
                isFiltered = true;
            }
        }
        if (isFiltered) {
            treeColumnI.setText(tableColumnLayouts[i].getTitle() + " #"); //$NON-NLS-1$
        } else {
            treeColumnI.setText(tableColumnLayouts[i].getTitle());
        }

        treeColumnI.setAlignment(getColumnAlignment(tableColumnLayouts[i].getStyle()));

        if (tableColumnLayouts[i].isActive()) {
            final boolean resizable = true;
            treeColumnI.setResizable(resizable);

            /*
             * Create the header menu for this column
             */
            createMenuItem(headerMenu, treeColumnI, i + 1);

            /*
             * Set the column width
             */
            treeColumnLayout.setColumnData(treeColumnI, new ColumnPixelData(
                    (int) (tableColumnLayouts[i].getWidth() * composite.getClientArea().width), resizable));
        } else {
            final boolean resizable = false;
            treeColumnI.setResizable(resizable);

            /*
             * Create the header menu for this column
             */
            createMenuItem(headerMenu, treeColumnI, i + 1);

            /*
             * Set the column width
             */
            savedColumnWidths[i + 1] = 0;
            treeColumnLayout.setColumnData(treeColumnI, new ColumnPixelData(0, resizable));
        }
        if (Util.isLinux()) {
            treeColumnI.addControlListener(new ControlAdapter() {
                @Override
                public void controlResized(ControlEvent e) {
                    if (treeColumnI.getWidth() < 10) {
                        treeColumnI.setWidth(10);
                    }
                }
            });
        }
        treeColumns[i] = treeColumnI;
    }

    // just a default column
    treeViewerColumn = new TreeViewerColumn(viewer, SWT.NONE);
    treeViewerColumn.setLabelProvider(new CellLabelProvider() {
        @Override
        public void update(ViewerCell cell) {
        }
    });
    treeColumn = treeViewerColumn.getColumn();
    treeColumn.setMoveable(true);
    treeColumn.setText(""); //$NON-NLS-1$
    treeColumn.setAlignment(SWT.TRAIL);
    treeColumn.setResizable(false);
    treeColumnLayout.setColumnData(treeColumn, new ColumnPixelData(0, false));

    /*
     * Sorting is done in the model as the table is virtual and has a lazy content provider.
     */
    final Listener sortListener = new Listener() {
        @Override
        public void handleEvent(Event e) {
            final TreeColumn currentColumn = (TreeColumn) e.widget;

            if (tree.getSortColumn() == currentColumn) {
                tree.setSortDirection(tree.getSortDirection() == SWT.UP ? SWT.DOWN : SWT.UP);
            } else {
                tree.setSortColumn(currentColumn);
                tree.setSortDirection(SWT.UP);
            }
            if (fLguiItem != null && fLguiItem.getTableHandler() != null) {
                fLguiItem.getTableHandler().setSortProperties(gid, getSortIndex(), getSortDirectionString());
            }
            lmlManager.sortLgui();
        }
    };
    for (final TreeColumn col : treeColumns) {
        col.addListener(SWT.Selection, sortListener);
    }
    // Mouse action (in combination with nodedisplay)
    if (gid.equals(ILMLCoreConstants.ID_ACTIVE_JOBS_VIEW)) {
        tree.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseDown(MouseEvent e) {
                if (e.button == 1) {
                    isMouseDown = true;
                    final TreeItem item = tree.getItem(new Point(e.x, e.y));
                    if (item != null && !composite.isDisposed()) {
                        lmlManager.selectObject(item.getData().toString());
                        lmlManager.markObject(item.getData().toString());
                    }
                }
            }

            @Override
            public void mouseUp(MouseEvent e) {
                if (e.button == 1) {
                    final TreeItem item = tree.getItem(new Point(e.x, e.y));
                    if (item != null && !composite.isDisposed()) {
                        lmlManager.unmarkObject(item.getData().toString());
                        lmlManager.unselectObject(item.getData().toString());
                    }
                    isMouseDown = false;
                }
            }

        });
    }
    /*
     * tree.addMouseMoveListener(new MouseMoveListener() {
     * 
     * public void mouseMove(MouseEvent e) { final TreeItem item = tree.getItem(new Point(e.x, e.y)); if (item == null) {
     * return; } if (selectedItem != null && !selectedItem.equals(item)) { if (!selectedItem.isDisposed()) {
     * lmlManager.unselectObject(selectedItem.getData().toString()); } } selectedItem = item; if (!selectedItem.isDisposed()) {
     * lmlManager.selectObject(selectedItem.getData().toString()); } }
     * 
     * }); tree.addMouseTrackListener(new MouseTrackListener() {
     * 
     * public void mouseEnter(MouseEvent e) { // nothing }
     * 
     * public void mouseExit(MouseEvent e) { if (selectedItem != null && !selectedItem.isDisposed()) {
     * lmlManager.unselectObject(selectedItem.getData().toString()); selectedItem = null; } }
     * 
     * public void mouseHover(MouseEvent e) { // nothing } });
     */
}

From source file:org.eclipse.ptp.rm.lml.ui.views.TableView.java

License:Open Source License

/**
 * //from  w  w  w  .  jav  a 2 s. co  m
 * @param tableViewer
 * @param fSelected
 */
private void createColumns() {
    if (fLguiItem.isLayout() || fLguiItem.getTableHandler() == null) {
        return;
    }

    final ITableColumnLayout[] tableColumnLayouts = fLguiItem.getTableHandler().getTableColumnLayout(gid);
    if (tableColumnLayouts == null) {
        return;
    }

    treeColumns = new TreeColumn[tableColumnLayouts.length];
    savedColumnWidths = new int[tableColumnLayouts.length + 1];

    // first column with color rectangle
    TreeViewerColumn treeViewerColumn = new TreeViewerColumn(viewer, SWT.NONE);
    treeViewerColumn.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public Image getImage(Object element) {
            final Display display = treeColumns[0].getDisplay();
            final Image image = new Image(display, 12, 12);
            final GC gc = new GC(image);
            if (((Row) element).oid != null
                    && (selectedOid == null || ((Row) element).oid.equals(selectedOid))) {
                LMLColor color = ((Row) element).color;
                if (color == null) {
                    color = LMLColor.LIGHT_GRAY;
                }
                gc.setBackground(new Color(display, color.getRed(), color.getGreen(), color.getBlue()));
            } else {
                gc.setBackground(display.getSystemColor(SWT.COLOR_WHITE));
            }
            gc.fillRectangle(image.getBounds().x, image.getBounds().y, image.getBounds().width,
                    image.getBounds().height);
            gc.setForeground(display.getSystemColor(SWT.COLOR_BLACK));
            gc.drawRectangle(image.getBounds().x, image.getBounds().y, image.getBounds().width - 1,
                    image.getBounds().height - 1);
            gc.dispose();
            return image;
        }

        @Override
        public String getText(Object element) {
            return null;
        }
    });
    TreeColumn treeColumn = treeViewerColumn.getColumn();
    treeColumn.setMoveable(false);
    treeColumn.setResizable(false);
    treeColumn.setAlignment(SWT.LEFT);
    createMenuItem(headerMenu, treeColumn, 0);
    treeColumnLayout.setColumnData(treeColumn, new ColumnPixelData(40, true));

    // the remaining columns
    for (int i = 0; i < tableColumnLayouts.length; i++) {
        treeViewerColumn = new TreeViewerColumn(viewer, SWT.NONE);
        final int cellNumber = i;
        treeViewerColumn.setLabelProvider(new CellLabelProvider() {
            @Override
            public void update(ViewerCell cell) {
                cell.setText(((Row) cell.getElement()).cells[cellNumber].value);
            }
        });
        treeColumn = treeViewerColumn.getColumn();
        treeColumn.setMoveable(true);
        treeColumn.setText(tableColumnLayouts[i].getTitle());
        treeColumn.setAlignment(getColumnAlignment(tableColumnLayouts[i].getStyle()));

        if (tableColumnLayouts[i].isActive()) {
            final boolean resizable = true;
            treeColumn.setResizable(resizable);

            /*
             * Create the header menu for this column
             */
            createMenuItem(headerMenu, treeColumn, i + 1);

            /*
             * Set the column width
             */
            treeColumnLayout.setColumnData(treeColumn, new ColumnWeightData(
                    (int) (tableColumnLayouts[i].getWidth() * composite.getClientArea().width), 10, resizable));
        } else {
            final boolean resizable = false;
            treeColumn.setResizable(resizable);

            /*
             * Create the header menu for this column
             */
            createMenuItem(headerMenu, treeColumn, i + 1);

            /*
             * Set the column width
             */
            savedColumnWidths[i + 1] = 0;
            treeColumnLayout.setColumnData(treeColumn, new ColumnWeightData(0, 0, resizable));
        }
        treeColumns[i] = treeColumn;
    }

    // just a default column
    treeViewerColumn = new TreeViewerColumn(viewer, SWT.NONE);
    treeViewerColumn.setLabelProvider(new CellLabelProvider() {
        @Override
        public void update(ViewerCell cell) {
        }
    });
    treeColumn = treeViewerColumn.getColumn();
    treeColumn.setMoveable(true);
    treeColumn.setText(""); //$NON-NLS-1$
    treeColumn.setAlignment(SWT.TRAIL);
    treeColumn.setResizable(false);
    treeColumnLayout.setColumnData(treeColumn, new ColumnWeightData(0, 0, false));

    /*
     * Sorting is done in the model as the table is virtual and has a lazy content provider.
     */
    final Listener sortListener = new Listener() {
        public void handleEvent(Event e) {
            final TreeColumn currentColumn = (TreeColumn) e.widget;

            if (tree.getSortColumn() == currentColumn) {
                tree.setSortDirection(tree.getSortDirection() == SWT.UP ? SWT.DOWN : SWT.UP);
            } else {
                tree.setSortColumn(currentColumn);
                tree.setSortDirection(SWT.UP);
            }
            if (fLguiItem != null && fLguiItem.getTableHandler() != null) {
                fLguiItem.getTableHandler().setSortProperties(gid, getSortIndex(), getSortDirectionString());
            }
            lmlManager.sortLgui();
        }
    };
    for (final TreeColumn col : treeColumns) {
        col.addListener(SWT.Selection, sortListener);
    }
    // Mouse action (in combination with nodedisplay)
    if (gid.equals(ILguiItem.ACTIVE_JOB_TABLE)) {
        tree.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseDown(MouseEvent e) {
                if (e.button == 1) {
                    isMouseDown = true;
                    final TreeItem item = tree.getItem(new Point(e.x, e.y));
                    if (item != null && !composite.isDisposed()) {
                        lmlManager.selectObject(item.getData().toString());
                        lmlManager.markObject(item.getData().toString());
                    }
                }
            }

            @Override
            public void mouseUp(MouseEvent e) {
                if (e.button == 1) {
                    final TreeItem item = tree.getItem(new Point(e.x, e.y));
                    if (item != null && !composite.isDisposed()) {
                        lmlManager.unmarkObject(item.getData().toString());
                        lmlManager.unselectObject(item.getData().toString());
                    }
                    isMouseDown = false;
                }
            }

        });
    }
    /*
     * tree.addMouseMoveListener(new MouseMoveListener() {
     * 
     * public void mouseMove(MouseEvent e) { final TreeItem item = tree.getItem(new Point(e.x, e.y)); if (item == null) {
     * return; } if (selectedItem != null && !selectedItem.equals(item)) { if (!selectedItem.isDisposed()) {
     * lmlManager.unselectObject(selectedItem.getData().toString()); } } selectedItem = item; if (!selectedItem.isDisposed()) {
     * lmlManager.selectObject(selectedItem.getData().toString()); } }
     * 
     * }); tree.addMouseTrackListener(new MouseTrackListener() {
     * 
     * public void mouseEnter(MouseEvent e) { // nothing }
     * 
     * public void mouseExit(MouseEvent e) { if (selectedItem != null && !selectedItem.isDisposed()) {
     * lmlManager.unselectObject(selectedItem.getData().toString()); selectedItem = null; } }
     * 
     * public void mouseHover(MouseEvent e) { // nothing } });
     */
}

From source file:org.eclipse.rap.examples.pages.RowTemplateExample.java

License:Open Source License

private ViewerColumn createViewerColumn(final ColumnViewer viewer, String name, int width) {
    ViewerColumn viewerColumn = null;/*from w  w w.j  a va 2s .c  o  m*/
    if (viewer instanceof TableViewer) {
        TableViewer tableViewer = (TableViewer) viewer;
        TableViewerColumn tableColumn = new TableViewerColumn(tableViewer, SWT.NONE);
        tableColumn.getColumn().setWidth(width);
        tableColumn.getColumn().setText(name);
        viewerColumn = tableColumn;
    } else if (viewer instanceof TreeViewer) {
        TreeViewer treeViewer = (TreeViewer) viewer;
        TreeViewerColumn treeColumn = new TreeViewerColumn(treeViewer, SWT.NONE);
        treeColumn.getColumn().setWidth(width);
        treeColumn.getColumn().setText(name);
        viewerColumn = treeColumn;
    }
    return viewerColumn;
}

From source file:org.eclipse.rcptt.ctx.debug.ui.ContentProvider.java

License:Open Source License

public void install(TreeViewer viewer) {
    viewer.setContentProvider(this);
    TreeColumn treeColumn = new TreeColumn(viewer.getTree(), SWT.LEFT);
    treeColumn.setText("Attribute");
    treeColumn.setWidth(350);/*from   ww w .j av  a2  s. c o  m*/
    TreeViewerColumn viewerColumn = new TreeViewerColumn(viewer, treeColumn);
    // viewerColumn.setEditingSupport(new NameEditing(viewer));
    viewerColumn.setLabelProvider(nameLabelProvider);

    treeColumn = new TreeColumn(viewer.getTree(), SWT.LEFT);
    treeColumn.setText("Value");
    treeColumn.setWidth(200);
    viewerColumn = new TreeViewerColumn(viewer, treeColumn);
    viewerColumn.setEditingSupport(new ValueEditing(viewer));
    viewerColumn.setLabelProvider(valueLabelProvider);
}

From source file:org.eclipse.rcptt.ctx.parameters.ui.ParametersContextEditor.java

License:Open Source License

/**
 * Asks user to select parameters to overwrite
 * /*from   w  w w .  j  a  va 2  s  .c  o  m*/
 * @return conflicts to overwrite
 */
private Collection<Conflict> resolveConflicts(final Collection<Conflict> conflict) {

    CheckedTreeSelectionDialog dialog = new CheckedTreeSelectionDialog(getForm().getForm().getShell(),
            new LabelProvider(), new ArrayTreeContentProvider()) {

        @Override
        protected CheckboxTreeViewer createTreeViewer(Composite parent) {
            final CheckboxTreeViewer rv = super.createTreeViewer(parent);
            TreeViewerColumn column = new TreeViewerColumn(rv, SWT.NONE);
            column.getColumn().setText("Name");
            column.setLabelProvider(new ColumnLabelProvider() {

                @Override
                public String getText(Object element) {
                    return ((Conflict) element).name;
                }

            });
            column = new TreeViewerColumn(rv, SWT.NONE);
            column.getColumn().setText("Original value");
            column.setLabelProvider(new ColumnLabelProvider() {

                @Override
                public String getText(Object element) {
                    return ((Conflict) element).value1;
                }

            });
            column = new TreeViewerColumn(rv, SWT.NONE);
            column.getColumn().setText("New value");
            column.setLabelProvider(new ColumnLabelProvider() {

                @Override
                public String getText(Object element) {
                    return ((Conflict) element).value2;
                }

            });
            rv.getTree().setHeaderVisible(true);
            rv.refresh();
            for (TreeColumn col : rv.getTree().getColumns()) {
                col.pack();
            }
            rv.addSelectionChangedListener(new ISelectionChangedListener() {
                @Override
                public void selectionChanged(final SelectionChangedEvent event) {
                    if (!event.getSelection().isEmpty()) {
                        rv.setSelection(StructuredSelection.EMPTY);
                    }
                }
            });
            return rv;
        }
    };

    dialog.setTitle("Parameters name conflict");
    dialog.setMessage("Select parameters to overwrite with new values");
    dialog.setInput(conflict);
    if (dialog.open() != Dialog.OK)
        return null;
    Object[] result = dialog.getResult();
    if (result == null)
        return null;
    List<Conflict> rv = Lists.newArrayList();
    for (Object object : result) {
        rv.add((Conflict) object);
    }
    return rv;
}

From source file:org.eclipse.rcptt.ctx.preferences.ui.PreferencesContextEditor.java

License:Open Source License

private Tree createTree(Composite parent, FormToolkit toolkit) {
    final Tree tree = new Tree(parent, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI);
    GridDataFactory.fillDefaults().grab(true, true).hint(100, 50).applyTo(tree);
    tree.setHeaderVisible(true);//from   www.j a  v a  2s.  c  o  m
    toolkit.adapt(tree);
    tree.setLinesVisible(true);

    viewer = new TreeViewer(tree);

    viewer.setContentProvider(new PreferencesContentProvider());
    viewer.setLabelProvider(new PreferencesLabelProvider());

    TreeColumn nodeColumn = new TreeColumn(tree, SWT.LEFT);
    nodeColumn.setText("Preference");
    nodeColumn.setWidth(350);

    TreeColumn valueColumn = new TreeColumn(tree, SWT.LEFT);
    valueColumn.setText("Value");
    valueColumn.setWidth(200);

    TreeViewerColumn column = new TreeViewerColumn(viewer, valueColumn);
    column.setEditingSupport(new PreferenceEditingSupport(viewer));
    column.setLabelProvider(new ColumnLabelProvider() {

        public String getText(Object element) {
            if (element instanceof StringPrefData) {
                return ((StringPrefData) element).getValue();
            } else if (element instanceof ListPrefData) {
                return getValuesRepresentation((ListPrefData) element);
            }
            return null;
        }
    });
    viewer.setInput(getContextElement());
    adapter = new UIContentAdapter() {

        protected void changed(Notification notification) {
            viewer.refresh();
        }
    };
    getContextElement().eAdapters().add(adapter);

    viewer.getControl().addKeyListener(new KeyListener() {

        public void keyReleased(KeyEvent e) {
        }

        public void keyPressed(KeyEvent e) {
            if ((SWT.DEL == e.character) && (0 == e.stateMask)) {
                if (!viewer.getSelection().isEmpty()) {
                    removeSelected();
                    e.doit = false;
                }
            }
        }
    });
    return tree;
}

From source file:org.eclipse.rcptt.ui.panels.assertion.AssertionPanelWindow.java

License:Open Source License

protected TreeViewerColumn createPropertyColumn() {
    final TreeViewerColumn column = new TreeViewerColumn(viewer, SWT.NONE);
    column.getColumn().setText(Messages.AssertionPanelWindow_ColumnPropertyName);
    column.getColumn().setToolTipText(Messages.AssertionPanelWindow_ColumnPropertyToolTip);
    column.setLabelProvider(new ColumnLabelProvider() {
        @Override//from   w  ww.j ava  2s .  co m
        public String getText(Object element) {
            String result = null;
            if (element instanceof AssertGroup) {
                result = ((AssertGroup) element).getName();
            } else if (element instanceof Assert) {
                final Assert a = (Assert) element;
                String attrName = a.getAttribute();
                int ind = StringUtils.getAttrLastSplitterInd(attrName);
                if (ind > 0) { //$NON-NLS-1$
                    attrName = attrName.substring(attrName.lastIndexOf(".") + 1); //$NON-NLS-1$
                }
                if (attrName.indexOf('[') > 0) {
                    attrName = attrName.substring(attrName.indexOf('['), attrName.indexOf(']') + 1);
                }
                result = attrName;
            }
            if (result != null) {
                result = result.replace("\n", "\\n").replace("\r", "");
            }
            return result;
        }
    });
    return column;
}

From source file:org.eclipse.rcptt.ui.panels.assertion.AssertionPanelWindow.java

License:Open Source License

protected TreeViewerColumn createOperationColumn() {
    final TreeViewerColumn column = new TreeViewerColumn(viewer, SWT.NONE);
    column.getColumn().setText(Messages.AssertionPanelWindow_ColumnOperationName);
    column.getColumn().setToolTipText(Messages.AssertionPanelWindow_ColumnOperationToolTip);
    column.setLabelProvider(new ColumnLabelProvider() {
        @Override/*w w w .ja va  2  s . c o  m*/
        public String getText(Object element) {
            if (element instanceof Assert) {
                return ((Assert) element).getKind().getLiteral();
            }
            return null;
        }
    });
    column.setEditingSupport(new AssertOperationEditingSupport(viewer));
    return column;
}

From source file:org.eclipse.rcptt.ui.panels.assertion.AssertionPanelWindow.java

License:Open Source License

protected TreeViewerColumn createValueColumn() {
    final TreeViewerColumn column = new TreeViewerColumn(viewer, SWT.NONE);
    column.getColumn().setText(Messages.AssertionPanelWindow_ValueOperationName);
    column.getColumn().setToolTipText(Messages.AssertionPanelWindow_ValueOperationToolTip);
    column.setLabelProvider(new ColumnLabelProvider() {
        @Override/*w ww . j  a v  a2  s.c  o m*/
        public String getText(Object element) {
            String result = null;
            if (element instanceof Assert) {
                result = ((Assert) element).getValue();
            }
            if (result != null) {
                result = result.replace("\n", "\\n").replace("\r", "");
            }
            return result;
        }
    });
    column.setEditingSupport(new AssertValueEditingSupport(viewer));
    return column;
}

From source file:org.eclipse.recommenders.internal.models.rcp.ModelRepositoriesView.java

License:Open Source License

@Override
public void createPartControl(Composite parent) {
    bus.register(this);
    Composite container = new Composite(parent, SWT.NONE);
    container.setLayout(new GridLayout());

    txtSearch = new Text(container, SWT.BORDER | SWT.ICON_SEARCH | SWT.SEARCH | SWT.CANCEL);
    txtSearch.setMessage(Messages.SEARCH_PLACEHOLDER_FILTER_TEXT);
    txtSearch.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
    txtSearch.addKeyListener(new KeyAdapter() {
        @Override//  w  ww.j  a  v  a2  s.co m
        public void keyPressed(KeyEvent e) {
            if (e.keyCode == SWT.ARROW_DOWN && tree.getItemCount() != 0) {
                tree.setFocus();
                tree.setSelection(tree.getTopItem());
            }
        }
    });

    Composite composite = new Composite(container, SWT.NONE);

    TreeColumnLayout treeLayout = new TreeColumnLayout();
    composite.setLayout(treeLayout);
    composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));

    treeViewer = new TreeViewer(composite, SWT.BORDER | SWT.FULL_SELECTION | SWT.VIRTUAL);
    ColumnViewerToolTipSupport.enableFor(treeViewer);
    tree = treeViewer.getTree();
    tree.setHeaderVisible(true);
    tree.setLinesVisible(true);

    TreeViewerColumn repositoryViewerColumn = new TreeViewerColumn(treeViewer, SWT.NONE);
    TreeColumn repositoryColumn = repositoryViewerColumn.getColumn();
    treeLayout.setColumnData(repositoryColumn, new ColumnWeightData(1, ColumnWeightData.MINIMUM_WIDTH, true));
    repositoryColumn.setText(Messages.COLUMN_LABEL_REPOSITORY);
    repositoryViewerColumn.setLabelProvider(new StyledCellLabelProvider() {

        @Override
        public void update(ViewerCell cell) {
            Object element = cell.getElement();
            StyledString text = new StyledString();
            if (element instanceof String) {
                String url = (String) element;
                text.append(url);
                text.append(" "); //$NON-NLS-1$
                text.append(format(Messages.TABLE_CELL_SUFFIX_KNOWN_COORDINATES, fetchNumberOfModels(url)),
                        StyledString.COUNTER_STYLER);
                cell.setImage(images.getImage(OBJ_REPOSITORY));
            }
            if (element instanceof KnownCoordinate) {
                KnownCoordinate v = (KnownCoordinate) element;
                text.append(v.pc.toString());
            }
            cell.setText(text.toString());
            cell.setStyleRanges(text.getStyleRanges());
            super.update(cell);
        }
    });

    int minWidth = calculateMinColumnWidthForClassifier();
    for (String classifier : modelClassifiers) {
        newColumn(treeLayout, classifier, minWidth);
    }
    treeViewer.setUseHashlookup(true);
    treeViewer.setContentProvider(new ILazyTreeContentProvider() {

        @Override
        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
            filteredCoordinatesGroupedByRepo = ArrayListMultimap.create(coordinatesGroupedByRepo);
        }

        @Override
        public void dispose() {
        }

        @Override
        public void updateElement(Object parent, int index) {
            if (parent instanceof IViewSite) {
                String element = prefs.remotes[index];
                treeViewer.replace(parent, index, element);
                treeViewer.setChildCount(element, getChildren(element).length);
            } else if (parent instanceof String) {
                treeViewer.replace(parent, index, getChildren(parent)[index]);
            }
        }

        private Object[] getChildren(Object element) {
            if (element instanceof String) {
                return filteredCoordinatesGroupedByRepo.get((String) element).toArray();
            }
            return new Object[0];
        }

        @Override
        public void updateChildCount(Object element, int currentChildCount) {
            int count = 0;

            if (element instanceof IViewSite) {
                count = prefs.remotes.length;
            }

            if (contains(prefs.remotes, element)) {
                count = getChildren(element).length;
            }

            if (count != currentChildCount) {
                treeViewer.setChildCount(element, count);
            }
        }

        @Override
        public Object getParent(Object element) {
            if (element instanceof KnownCoordinate) {
                KnownCoordinate v = (KnownCoordinate) element;
                return v.url;
            }
            return null;
        }
    });

    treeViewer.setInput(getViewSite());
    refreshData();

    addRemoteRepositoryAction = new Action() {
        @Override
        public void run() {
            addRemoteRepository();
        }
    };

    IToolBarManager toolBarManager = getViewSite().getActionBars().getToolBarManager();
    addAction(Messages.TOOLBAR_TOOLTIP_ADD_REPOSITORY, ELCL_ADD_REPOSITORY, toolBarManager,
            addRemoteRepositoryAction);

    addAction(Messages.TOOLBAR_TOOLTIP_REFRESH, ELCL_REFRESH, toolBarManager, new Action() {
        @Override
        public void run() {
            refreshData();
        }
    });

    addAction(Messages.TOOLBAR_TOOLTIP_EXPAND_ALL, ELCL_EXPAND_ALL, toolBarManager, new Action() {
        @Override
        public void run() {
            for (int i = 0; i < treeViewer.getTree().getItemCount(); i++) {
                treeViewer.getTree().getItem(i).setExpanded(true);
            }
        }
    });

    addAction(Messages.TOOLBAR_TOOLTIP_COLLAPSE_ALL, ELCL_COLLAPSE_ALL, toolBarManager, new Action() {
        @Override
        public void run() {
            for (int i = 0; i < treeViewer.getTree().getItemCount(); i++) {
                treeViewer.getTree().getItem(i).setExpanded(false);
            }
        }
    });

    IMenuManager menuManager = getViewSite().getActionBars().getMenuManager();
    addAction(Messages.MENUITEM_DELETE_MODELS, ELCL_DELETE, menuManager, new Action() {
        @Override
        public void run() {
            deleteCacheAndRefresh();
        }
    });

    addContextMenu();
    bindingContext = initDataBindings();
}