List of usage examples for org.eclipse.jface.viewers TreeViewerColumn TreeViewerColumn
public TreeViewerColumn(TreeViewer viewer, TreeColumn column)
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(); }