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:uk.ac.diamond.scisoft.analysis.rcp.hdf5.HDF5TableTree.java

License:Open Source License

/**
 * @param parent//from  w w w . j av  a 2 s . com
 * @param slistener for single clicks
 * @param dlistener for double clicks
 * @param clistener for context click
 */
public HDF5TableTree(Composite parent, Listener slistener, Listener dlistener, Listener clistener) {
    super(parent, SWT.NONE);
    setLayout(new FillLayout());
    this.slistener = slistener;
    this.dlistener = dlistener;
    this.clistener = clistener;

    // set up tree filter to omit following node names
    treeFilter = new TreeFilter(new String[] { "target", NexusTreeUtils.NX_CLASS });

    // set up tree and its columns
    tViewer = new TreeViewer(this, SWT.BORDER | SWT.VIRTUAL);
    tViewer.setUseHashlookup(true);

    final Tree tree = tViewer.getTree();
    tree.setHeaderVisible(true);

    String[] titles = { "Name", "Class", "Dims", "Type", "Data" };
    int[] widths = { 250, 120, 80, 60, 300 };

    TreeViewerColumn tVCol;
    headerMenu = new Menu(parent.getShell(), SWT.POP_UP);

    for (int i = 0; i < titles.length; i++) {
        tVCol = new TreeViewerColumn(tViewer, SWT.NONE);
        final TreeColumn tCol = tVCol.getColumn();
        tCol.setText(titles[i]);
        tCol.setWidth(widths[i]);
        tCol.setMoveable(true);
        final MenuItem item = new MenuItem(headerMenu, SWT.CHECK);
        item.setText(titles[i]);
        item.setSelection(true);
        item.addListener(SWT.Selection, new Listener() {
            @Override
            public void handleEvent(Event event) {
                if (!item.getSelection()) {
                    int width = tCol.getWidth();
                    tCol.setData("restoredWidth", Integer.valueOf(width));
                    tCol.setWidth(0);
                } else {
                    int width = (Integer) tCol.getData("restoredWidth");
                    tCol.setWidth(width);
                }
            }
        });
    }

    treeMenu = new Menu(parent.getShell(), SWT.POP_UP);

    // TODO make context menu dependent on node (use a SWT.Show listener on menu)
    if (clistener != null) {
        treeMenu.addListener(SWT.Show, new Listener() {
            @Override
            public void handleEvent(Event event) {
                // get selection and decide
                ITreeSelection sel = (ITreeSelection) tViewer.getSelection();
                Object obj = sel.getFirstElement();
                boolean enable = false;
                if (obj instanceof NodeLink) {
                    NodeLink link = (NodeLink) obj;
                    enable = link.isDestinationData() && !((DataNode) link.getDestination()).isString();
                } else if (obj instanceof Attribute) {
                    enable = !((Attribute) obj).isString();
                }

                for (MenuItem m : treeMenu.getItems()) {
                    m.setEnabled(enable);
                    m.setText(enable ? MSG_ENABLED : MSG_DISABLED);
                }
            }
        });
        MenuItem item = new MenuItem(treeMenu, SWT.PUSH);
        item.addListener(SWT.Selection, clistener);
    }

    tree.addListener(SWT.MenuDetect, new Listener() {
        @Override
        public void handleEvent(Event event) {
            Point pt = getDisplay().map(null, tree, new Point(event.x, event.y));
            Rectangle clientArea = tree.getClientArea();
            boolean header = clientArea.y <= pt.y && pt.y < (clientArea.y + tree.getHeaderHeight());
            tree.setMenu(header ? headerMenu : treeMenu);
        }
    });

    tViewer.setContentProvider(new HDF5LazyContentProvider(tViewer, treeFilter));
    tViewer.setLabelProvider(new HDF5LabelProvider());
    if (slistener != null)
        tree.addListener(SWT.MouseUp, slistener);
    if (dlistener != null)
        tree.addListener(SWT.MouseDoubleClick, dlistener);
}

From source file:uk.ac.diamond.scisoft.analysis.rcp.nexus.NexusTableTree.java

License:Apache License

/**
 * @param parent/*www  . j a  va  2  s .  c o m*/
 * @param slistener for single clicks
 * @param dlistener for double clicks
 */
public NexusTableTree(Composite parent, Listener slistener, Listener dlistener) {

    super(parent, SWT.NONE);
    setLayout(new FillLayout());
    this.slistener = slistener;
    this.dlistener = dlistener;

    // set up tree filter to omit following node names
    final String[] nodeNames = new String[] { "target" };
    treeFilter = new TreeFilter(nodeNames);

    // set up tree and its columns
    tViewer = new TreeViewer(this, SWT.BORDER | SWT.VIRTUAL);
    tViewer.setUseHashlookup(true);

    Tree tree = tViewer.getTree();
    tree.setHeaderVisible(true);

    String[] titles = { "Name", "Class", "Dims", "Type", "Data" };
    int[] widths = { 250, 120, 80, 60, 300 };

    TreeViewerColumn tVCol;
    for (int i = 0; i < titles.length; i++) {
        tVCol = new TreeViewerColumn(tViewer, SWT.NONE);
        TreeColumn tCol = tVCol.getColumn();
        tCol.setText(titles[i]);
        tCol.setWidth(widths[i]);
        tCol.setMoveable(true);
    }

    tViewer.setContentProvider(new NexusLazyContentProvider(tViewer, treeFilter));
    tViewer.setLabelProvider(new NexusLabelProvider());
    if (slistener != null)
        tree.addListener(SWT.MouseUp, slistener);
    if (dlistener != null)
        tree.addListener(SWT.MouseDoubleClick, dlistener);
    addMenu(tViewer);
}

From source file:uk.ac.diamond.sda.navigator.views.FileView.java

License:Open Source License

@Override
public void createPartControl(final Composite parent) {

    parent.setLayout(new GridLayout(1, false));

    final Composite top = new Composite(parent, SWT.NONE);
    top.setLayout(new GridLayout(2, false));
    top.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));

    final Label fileLabel = new Label(top, SWT.NONE);
    fileLabel.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, false, false));
    try {/*  w w w  . ja v a  2  s . co  m*/
        IFileIconService service = FileIconServiceHolder.getFileIconService();
        final Image icon = service.getIconForFile(OSUtils.isWindowsOS() ? "C:/Windows/" : "/");
        fileLabel.setImage(icon);
    } catch (Exception e) {
        logger.error("Cannot get icon for system root!", e);
    }

    this.filePath = new Text(top, SWT.BORDER);
    if (savedSelection != null)
        filePath.setText(savedSelection.toAbsolutePath().toString());
    filePath.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    final FileContentProposalProvider prov = new FileContentProposalProvider();
    final TextContentAdapter adapter = new TextContentAdapter();
    final ContentProposalAdapter ad = new ContentProposalAdapter(filePath, adapter, prov, null, null);
    ad.setProposalAcceptanceStyle(ContentProposalAdapter.PROPOSAL_REPLACE);
    ad.addContentProposalListener(new IContentProposalListener() {
        @Override
        public void proposalAccepted(IContentProposal proposal) {
            final String path = proposal.getContent();
            try {
                updatingTextFromTreeSelections = false;
                setSelectedFile(path);
            } finally {
                updatingTextFromTreeSelections = true;
            }
        }
    });

    filePath.addKeyListener(new KeyAdapter() {
        @Override
        public void keyPressed(KeyEvent e) {
            if (e.character == '\t') {
                if (ad.isProposalPopupOpen()) {
                    if (prov.getFirstPath() != null) {
                        final String path = prov.getFirstPath();

                        filePath.getDisplay().asyncExec(new Runnable() {
                            @Override
                            public void run() {
                                try {
                                    updatingTextFromTreeSelections = false;
                                    filePath.setFocus();
                                    filePath.setText(path);
                                    setSelectedFile(path);
                                    filePath.setFocus();
                                    filePath.setSelection(path.length(), path.length());
                                } finally {
                                    updatingTextFromTreeSelections = true;
                                }
                            }
                        });
                    }
                }
            } else if (e.character == '\t' || e.character == '\n' || e.character == '\r') {
                final String path = filePath.getText();
                try {
                    updatingTextFromTreeSelections = false;
                    setSelectedFile(path);
                } finally {
                    updatingTextFromTreeSelections = true;
                }
            }
        }
    });

    tree = new TreeViewer(parent,
            SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER | SWT.VIRTUAL);
    tree.getTree().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    tree.getTree().setHeaderVisible(true);
    tree.setUseHashlookup(true);

    tree.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            if (!updatingTextFromTreeSelections)
                return;
            final Path file = getSelectedPath();
            if (file != null && Files.isDirectory(file)) {
                try {
                    ad.setEnabled(false);
                    filePath.setText(file.toAbsolutePath().toString());
                    filePath.setSelection(filePath.getText().length());
                } finally {
                    ad.setEnabled(true);
                }
            }
        }
    });

    final String[] titles = { "Name", "Date", "Type", "Size", "Comment", "Scan Command" };

    IPreferenceStore store = NavigatorRCPActivator.getDefault().getPreferenceStore();
    boolean showDate = store.getBoolean(FileNavigatorPreferenceConstants.SHOW_DATE_COLUMN);
    boolean showType = store.getBoolean(FileNavigatorPreferenceConstants.SHOW_TYPE_COLUMN);
    boolean showSize = store.getBoolean(FileNavigatorPreferenceConstants.SHOW_SIZE_COLUMN);
    boolean showComment = store.getBoolean(FileNavigatorPreferenceConstants.SHOW_COMMENT_COLUMN);
    boolean showScanCmd = store.getBoolean(FileNavigatorPreferenceConstants.SHOW_SCANCMD_COLUMN);

    // we listen to the preference store property changes
    store.addPropertyChangeListener(new IPropertyChangeListener() {
        @Override
        public void propertyChange(PropertyChangeEvent event) {
            if (event.getProperty().equals(FileNavigatorPreferenceConstants.SHOW_DATE_COLUMN)) {
                setColumnVisible(1, 120, (Boolean) event.getNewValue());
            } else if (event.getProperty().equals(FileNavigatorPreferenceConstants.SHOW_TYPE_COLUMN)) {
                setColumnVisible(2, 80, (Boolean) event.getNewValue());
            } else if (event.getProperty().equals(FileNavigatorPreferenceConstants.SHOW_SIZE_COLUMN)) {
                setColumnVisible(3, 150, (Boolean) event.getNewValue());
            } else if (event.getProperty().equals(FileNavigatorPreferenceConstants.SHOW_COMMENT_COLUMN)) {
                setColumnVisible(4, 250, (Boolean) event.getNewValue());
            } else if (event.getProperty().equals(FileNavigatorPreferenceConstants.SHOW_SCANCMD_COLUMN)) {
                setColumnVisible(5, 300, (Boolean) event.getNewValue());
            }
        }
    });

    int dateWidth = showDate ? 120 : 0;
    int typeWidth = showType ? 80 : 0;
    int sizeWidth = showSize ? 150 : 0;
    int commentWidth = showComment ? 250 : 0;
    int scanCmdWidth = showScanCmd ? 300 : 0;

    final int[] widths = { 350, dateWidth, typeWidth, sizeWidth, commentWidth, scanCmdWidth };
    TreeViewerColumn tVCol;
    for (int i = 0; i < titles.length; i++) {
        tVCol = new TreeViewerColumn(tree, SWT.NONE);
        TreeColumn tCol = tVCol.getColumn();
        tCol.setText(titles[i]);
        tCol.setWidth(widths[i]);
        try {
            tVCol.setLabelProvider(new FileLabelProvider(tree, i));
        } catch (Exception e1) {
            logger.error("Cannot create label provider " + i, e1);
        }
    }
    getSite().setSelectionProvider(tree);

    createContent(true);

    // Make drag source, it can then drag into projects
    final DragSource dragSource = new DragSource(tree.getControl(),
            DND.DROP_MOVE | DND.DROP_DEFAULT | DND.DROP_COPY);
    dragSource.setTransfer(new Transfer[] { FileTransfer.getInstance() });
    dragSource.addDragListener(new DragSourceAdapter() {
        @Override
        public void dragSetData(DragSourceEvent event) {
            if (getSelectedPaths() == null)
                return;
            event.data = getSelectedPaths();
        }
    });

    // Add ability to open any file double clicked on (folders open in Image Monitor View)
    tree.getTree().addListener(SWT.MouseDoubleClick, new Listener() {

        @Override
        public void handleEvent(Event event) {
            openSelectedFile();
        }
    });

    tree.getTree().addKeyListener(new KeyListener() {
        @Override
        public void keyReleased(KeyEvent e) {

        }

        @Override
        public void keyPressed(KeyEvent e) {
            if (e.character == '\n' || e.character == '\r') {
                openSelectedFile();
            }
        }
    });

    createRightClickMenu();
    createActions();

    if (savedSelection != null) {
        if (savedSelection.toFile().exists()) {
            tree.setSelection(new StructuredSelection(savedSelection));
        } else if (savedSelection.getParent() != null && savedSelection.getParent().toFile().exists()) {
            // If file deleted, select parent.
            tree.setSelection(new StructuredSelection(savedSelection.getParent()));
        }
    }

    Display.getDefault().asyncExec(new Runnable() {
        @Override
        public void run() {
            final TreePath path = new TreePath(new Object[] { NIOUtils.getRoots().get(0) });
            tree.setExpandedState(path, true);
        }
    });

}

From source file:unc.lib.cdr.workbench.arrange.ArrangementTreeViewPart.java

License:Apache License

/**
 * @param viewer2/*from   w w w .  j a  v  a 2 s  .  c o  m*/
 */
private void createColumns(TreeViewer viewer2) {
    for (int i = 0; i < headers.length; i++) {
        TreeViewerColumn column = new TreeViewerColumn(viewer, SWT.NONE);
        column.getColumn().setText(headers[i]);
        column.getColumn().setWidth(bounds[i]);
        column.getColumn().setResizable(true);
        column.getColumn().setMoveable(true);
    }
    viewer.getTree().setHeaderVisible(true);
    viewer.getTree().setLinesVisible(true);
}

From source file:v9t9.gui.client.swt.shells.DemoSelector.java

License:Open Source License

/**
 * @param demoManager//from ww  w.  ja  v a2s  .c  om
 */
protected TreeViewer createTable() {
    final TreeViewer viewer = new TreeViewer(this, SWT.READ_ONLY | SWT.BORDER | SWT.FULL_SELECTION);

    viewer.setComparer(new IElementComparer() {

        @Override
        public int hashCode(Object element) {
            return System.identityHashCode(element);
        }

        @Override
        public boolean equals(Object a, Object b) {
            return a == b || a.equals(b);
        }
    });

    Tree tree = viewer.getTree();
    tree.setHeaderVisible(true);
    tree.setLinesVisible(true);

    GridDataFactory.fillDefaults().grab(true, true).applyTo(tree);

    FontDescriptor desc = FontUtils
            .getFontDescriptor(JFaceResources.getFontRegistry().getBold(JFaceResources.DIALOG_FONT));
    nameColumnFont = desc.createFont(getDisplay());

    nameColumn = new TreeColumn(tree, SWT.LEFT);
    nameColumn.setText("Name");
    descrColumn = new TreeColumn(tree, SWT.LEFT);
    descrColumn.setText("Description");
    dateColumn = new TreeColumn(tree, SWT.LEFT);
    dateColumn.setText("Date");

    viewer.setContentProvider(new DemoTreeContentProvider());
    viewer.setLabelProvider(new DemoTreeLabelProvider());

    viewer.setColumnProperties(NAME_PROPERTY_ARRAY);

    viewer.setComparator(new ViewerComparator() {
        /* (non-Javadoc)
         * @see org.eclipse.jface.viewers.ViewerComparator#isSorterProperty(java.lang.Object, java.lang.String)
         */
        @Override
        public boolean isSorterProperty(Object element, String property) {
            return NAME_PROPERTY_ARRAY[sortColumn].equals(property);
        }

        @Override
        public int compare(Viewer viewer, Object e1, Object e2) {
            if (!sortDemos)
                return 0;

            if (e1 instanceof IDemo && e2 instanceof IDemo) {
                IDemo dem1 = (IDemo) e1;
                IDemo dem2 = (IDemo) e2;
                boolean l1 = isDemoLoadable(dem1);
                boolean l2 = isDemoLoadable(dem2);
                if (l1 == l2) {
                    int diff;
                    if (sortColumn == NAME_COLUMN) {
                        diff = dem1.getName().toLowerCase().compareTo(dem2.getName().toLowerCase());
                    } else if (sortColumn == DATE_COLUMN) {
                        try {
                            long d1 = demoManager.getDemoLocator().getLastModified(dem1.getURI());
                            long d2 = demoManager.getDemoLocator().getLastModified(dem2.getURI());
                            diff = (int) Math.signum(d1 - d2);
                        } catch (IOException e) {
                            diff = dem1.getName().toLowerCase().compareTo(dem2.getName().toLowerCase());
                        }
                    } else /*if (sortColumn == DESCR_COLUMN)*/ {
                        diff = dem1.getDescription().toLowerCase()
                                .compareTo(dem2.getDescription().toLowerCase());

                    }
                    return sortDirection * diff;
                } else if (l1) {
                    return -1;
                } else {
                    return 1;
                }
            } else if (e1 instanceof IDemo) {
                return 1;
            }
            /* else if (e2 instanceof IDemo) */ {
                return -1;
            }
        }
    });

    addIterativeSearch(viewer, tree);

    sortDemos = dialogSettings.getBoolean(SORT_ENABLED);
    sortDirection = dialogSettings.getInt(SORT_DIRECTION);
    sortColumn = dialogSettings.getInt(SORT_COLUMN);

    viewer.setInput(new Object());

    tree.addKeyListener(new KeyAdapter() {
        /* (non-Javadoc)
         * @see org.eclipse.swt.events.KeyAdapter#keyPressed(org.eclipse.swt.events.KeyEvent)
         */
        @Override
        public void keyPressed(KeyEvent e) {
            if (e.keyCode == '\r' || e.keyCode == '\n') {
                playDemo();
                e.doit = false;
            }
        }
    });

    final ViewerColumn descrViewerColumn = new TreeViewerColumn(viewer, descrColumn);
    final DescrViewerColumnLabelProvider descrLabelProvider = new DescrViewerColumnLabelProvider();
    descrViewerColumn.setLabelProvider(descrLabelProvider);
    descrColumn.addControlListener(new ControlAdapter() {
        @Override
        public void controlResized(ControlEvent e) {
            getDisplay().asyncExec(new Runnable() {
                public void run() {
                    viewer.refresh();
                }
            });
        }
    });

    addDisposeListener(new DisposeListener() {

        @Override
        public void widgetDisposed(DisposeEvent e) {
            if (nameColumnFont != null)
                nameColumnFont.dispose();
        }
    });

    return viewer;
}

From source file:v9t9.gui.client.swt.shells.modules.ModuleSelector.java

License:Open Source License

/**
 * @param moduleManager//from  w  w w. j  a v  a2s .c om
 */
protected TreeViewer createTable() {
    final TreeViewer viewer = new TreeViewer(this, SWT.READ_ONLY | SWT.BORDER | SWT.FULL_SELECTION);

    moduleImageResizer = new ILazyImageAdjuster() {

        @Override
        public Image adjustImage(Object element, URI imageURI, Image image) {
            //final boolean moduleLoadable = module == null || isModuleLoadable(module);
            //final String imageKey = imageURI.toString() + (moduleLoadable ? "" : "?grey");

            Rectangle bounds = image.getBounds();
            int sz = Math.max(bounds.width, bounds.height);

            if (sz > MAX) {
                sz = MAX;

                Image scaled = ImageUtils.scaleImage(getDisplay(), image, new Point(MAX, MAX), true, true);
                image.dispose();

                //               if (!moduleLoadable) {
                //                  Image grey = ImageUtils.convertToGreyscale(display, scaled);
                //                  scaled.dispose();
                //                  scaled = grey;
                //               }

                image = scaled;
            }
            return image;
        }
    };

    try {
        builtinImagesURI = machine.getRomPathFileLocator()
                .resolveInsideURI(machine.getModel().getDataURL().toURI(), "images/");
        logger.info("builtinImagesURI = " + builtinImagesURI);
    } catch (URISyntaxException e3) {
        logger.error("Failed to load stock module image", e3);
    }

    stockModuleImage = loadStockImage("stock_module_missing.png");

    lazyImageLoader = new LazyImageLoader(viewer, executor, stockModuleImage);

    modulesListImage = EmulatorGuiData.loadImage(getDisplay(), "icons/module_list.png");
    noModuleImage = ImageUtils.scaleImage(getDisplay(),
            EmulatorGuiData.loadImage(getDisplay(), "icons/stock_no_module.png"), new Point(MAX, MAX));

    viewer.setUseHashlookup(true);
    viewer.setComparer(new IElementComparer() {

        @Override
        public int hashCode(Object element) {
            return element.hashCode();
        }

        @Override
        public boolean equals(Object a, Object b) {
            return a == b || a.equals(b);
        }
    });

    Tree tree = viewer.getTree();
    tree.setHeaderVisible(true);
    tree.setLinesVisible(true);

    GridDataFactory.fillDefaults().grab(true, true).applyTo(tree);

    FontDescriptor desc = FontUtils
            .getFontDescriptor(JFaceResources.getFontRegistry().getBold(JFaceResources.DIALOG_FONT));
    tableFont = desc.createFont(getDisplay());
    tree.setFont(tableFont);

    nameColumn = new TreeColumn(tree, SWT.LEFT);
    nameColumn.setText("Name");

    final ModuleContentProvider contentProvider = new ModuleContentProvider();
    viewer.setContentProvider(contentProvider);

    CellLabelProvider cellLabelProvider = new CellLabelProvider() {

        @Override
        public void update(ViewerCell cell) {
            if (cell.getElement() instanceof URI) {
                URI uri = (URI) cell.getElement();
                String text = machine.getRomPathFileLocator().splitFileName(uri).second;

                cell.setText(text);
                cell.setImage(getModuleListImage());
            } else if (cell.getElement() instanceof IModule) {
                IModule module = (IModule) cell.getElement();
                cell.setText(module.getName());
                ModuleInfo info = module.getInfo();
                cell.setForeground(isModuleLoadable(module) ? null
                        : viewer.getControl().getDisplay().getSystemColor(SWT.COLOR_TITLE_INACTIVE_FOREGROUND));
                cell.setImage(getOrLoadModuleImage(module, module, info != null ? info.getImagePath() : null));
            } else {
                cell.setText(String.valueOf(cell.getElement()));
                cell.setImage(getNoModuleImage());
            }
        }
    };

    viewer.setLabelProvider(cellLabelProvider);

    viewer.setColumnProperties(NAME_PROPERTY_ARRAY);

    viewer.setComparator(new ViewerComparator() {
        /* (non-Javadoc)
         * @see org.eclipse.jface.viewers.ViewerComparator#isSorterProperty(java.lang.Object, java.lang.String)
         */
        @Override
        public boolean isSorterProperty(Object element, String property) {
            return "name".equals(property);
        }

        @Override
        public int compare(Viewer viewer, Object e1, Object e2) {
            if (!sortModules)
                return 0;

            if (e1 instanceof IModule && e2 instanceof IModule) {
                IModule mod1 = (IModule) e1;
                IModule mod2 = (IModule) e2;
                boolean l1 = isModuleLoadable(mod1);
                boolean l2 = isModuleLoadable(mod2);
                if (l1 == l2)
                    return sortDirection * mod1.getName().toLowerCase().compareTo(mod2.getName().toLowerCase());
                else if (l1)
                    return -1;
                else
                    return 1;
            } else if (e1 instanceof IModule) {
                return 1;
            }
            /* else if (e2 instanceof IModule) */ {
                return -1;
            }
        }
    });

    selectedModule = null;

    addIterativeSearch(viewer, tree);

    sortModules = dialogSettings.getBoolean(SORT_ENABLED);
    sortDirection = dialogSettings.getInt(SORT_DIRECTION);

    moduleMap = new LinkedHashMap<URI, Collection<IModule>>();

    revertModules();
    viewer.setInput(new ModuleInput("No module", moduleMap));
    viewer.expandToLevel(3);

    viewer.setSelection(new StructuredSelection(moduleManager.getLoadedModules()), true);

    tree.addKeyListener(new KeyAdapter() {
        /* (non-Javadoc)
         * @see org.eclipse.swt.events.KeyAdapter#keyPressed(org.eclipse.swt.events.KeyEvent)
         */
        @Override
        public void keyPressed(KeyEvent e) {
            if (e.keyCode == '\r' || e.keyCode == '\n') {
                switchModule(false);
                e.doit = false;
            } else if (e.keyCode == SWT.ARROW_LEFT) {
                if (selectedModule != null) {
                    viewer.setSelection(new StructuredSelection(contentProvider.getParent(selectedModule)));
                }
            }
        }
    });

    TreeViewerColumn nameViewerColumn = new TreeViewerColumn(viewer, nameColumn);
    nameViewerColumn.setLabelProvider(cellLabelProvider);

    editingSupport = new ModuleNameEditingSupport(viewer, dirtyModuleLists);
    nameViewerColumn.setEditingSupport(editingSupport);

    addDisposeListener(new DisposeListener() {

        @Override
        public void widgetDisposed(DisposeEvent e) {
            for (Image image : stockImages.values())
                image.dispose();
            stockImages.clear();
            if (modulesListImage != null)
                modulesListImage.dispose();
            if (noModuleImage != null)
                noModuleImage.dispose();

            if (tableFont != null)
                tableFont.dispose();
            /*for (Image image : loadedImages.values()) {
               image.dispose();
            }*/
        }
    });

    lazyImageLoader.addListener(new ILazyImageLoadedListener() {

        @Override
        public void imageLoaded(Object element, URI imageURI, Image image) {
            if (element != null)
                viewerUpdater.post(element);
        }
    });

    return viewer;
}

From source file:v9t9.gui.client.swt.shells.PathSetupComposite.java

License:Open Source License

/**
 * //from w  ww . jav a  2 s. co  m
 */
private void createROMTable(Composite parent) {
    viewer = new TreeViewer(parent);

    viewer.setAutoExpandLevel(2);

    Tree tree = viewer.getTree();

    GridDataFactory.fillDefaults().grab(true, true).minSize(-1, 96).applyTo(tree);

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

    TreeViewerColumn nameColumn = new TreeViewerColumn(viewer, SWT.LEFT);
    nameColumn.getColumn().setText("Name");

    TreeViewerColumn fileColumn = new TreeViewerColumn(viewer, SWT.LEFT);
    fileColumn.getColumn().setText("File(s)");

    TreeViewerColumn dirColumn = new TreeViewerColumn(viewer, SWT.LEFT);
    dirColumn.getColumn().setText("Path(s)");

    romTreeContentProvider = new ROMSetupTreeContentProvider(requiredRoms, optionalRoms, machine);
    viewer.setContentProvider(romTreeContentProvider);
    viewer.setLabelProvider(new ROMSetupLabelProvider(machine, romTreeContentProvider));
    viewer.setInput(new Object());
}