Example usage for org.eclipse.jface.viewers TreeViewer getTree

List of usage examples for org.eclipse.jface.viewers TreeViewer getTree

Introduction

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

Prototype

public Tree getTree() 

Source Link

Document

Returns this tree viewer's tree control.

Usage

From source file:org.eclipse.babel.editor.tree.internal.KeyTreeContributor.java

License:Open Source License

/**
 * Contributes double-click support, expanding/collapsing nodes.
 *
 * @param treeViewer/* w  w w . j  a v  a2 s. co  m*/
 *            tree viewer
 */
private void contributeDoubleClick(final TreeViewer treeViewer) {
    treeViewer.getTree().addMouseListener(new MouseAdapter() {
        public void mouseDoubleClick(MouseEvent event) {
            IStructuredSelection selection = (IStructuredSelection) treeViewer.getSelection();
            Object element = selection.getFirstElement();
            if (treeViewer.isExpandable(element)) {
                if (treeViewer.getExpandedState(element)) {
                    treeViewer.collapseToLevel(element, 1);
                } else {
                    treeViewer.expandToLevel(element, 1);
                }
            }
        }
    });
}

From source file:org.eclipse.babel.editor.tree.internal.KeyTreeContributor.java

License:Open Source License

/**
 * Contributes key synchronization between editor and tree selected keys.
 *
 * @param treeViewer/*from   w ww. jav  a  2 s . c  o  m*/
 *            tree viewer
 */
private void contributeModelChanges(final TreeViewer treeViewer) {
    final IKeyTreeModelListener keyTreeListener = new IKeyTreeModelListener() {

        public void nodeAdded(KeyTreeNode node) {
            Display.getDefault().asyncExec(new Runnable() {
                public void run() {
                    if (!editor.getI18NPage().isDisposed() && !treeViewer.getTree().isDisposed()) {
                        treeViewer.refresh(true);
                    }
                }
            });
        };

        public void nodeRemoved(KeyTreeNode node) {
            Display.getDefault().asyncExec(new Runnable() {
                public void run() {
                    if (!editor.getI18NPage().isDisposed() && !treeViewer.getTree().isDisposed()) {
                        treeViewer.refresh(true);
                    }
                }
            });
        };
    };
    treeModel.addKeyTreeModelListener(keyTreeListener);
    editor.addChangeListener(new MessagesEditorChangeAdapter() {
        public void keyTreeModelChanged(AbstractKeyTreeModel oldModel, AbstractKeyTreeModel newModel) {
            oldModel.removeKeyTreeModelListener(keyTreeListener);
            newModel.addKeyTreeModelListener(keyTreeListener);
            treeViewer.setInput(newModel);
            treeViewer.refresh();
        }

        public void showOnlyUnusedAndMissingChanged(int hideEverythingElse) {
            treeViewer.refresh();
        }
    });
}

From source file:org.eclipse.babel.editor.tree.internal.KeyTreeContributor.java

License:Open Source License

/**
 * Contributes key synchronization between editor and tree selected keys.
 *
 * @param treeViewer/*from w ww .j a v  a  2  s .co  m*/
 *            tree viewer
 */
private void contributeKeySync(final TreeViewer treeViewer) {
    // changes in tree selected key update the editor
    treeViewer.getTree().addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            IStructuredSelection selection = (IStructuredSelection) treeViewer.getSelection();
            if (selection != null && selection.getFirstElement() != null) {
                KeyTreeNode node = (KeyTreeNode) selection.getFirstElement();
                LOGGER.log(Level.INFO, "viewer key/hash:" + node.getMessageKey() + "/" + node.hashCode());
                editor.setSelectedKey(node.getMessageKey());
            } else {
                editor.setSelectedKey(null);
            }
        }
    });
    // changes in editor selected key updates the tree
    editor.addChangeListener(new MessagesEditorChangeAdapter() {
        public void selectedKeyChanged(String oldKey, String newKey) {
            ITreeContentProvider provider = (ITreeContentProvider) treeViewer.getContentProvider();
            if (provider != null) { // alst workaround
                KeyTreeNode node = findKeyTreeNode(provider, provider.getElements(null), newKey);
                if (node != null) {
                    treeViewer.setSelection(new StructuredSelection(node), true);
                    treeViewer.getTree().showSelection();
                }
            }
        }
    });
}

From source file:org.eclipse.babel.editor.tree.internal.KeyTreeContributor.java

License:Open Source License

/**
 * Contributes actions to the tree.//from ww w.j  av  a  2  s  .c om
 *
 * @param treeViewer
 *            tree viewer
 */
private void contributeActions(final TreeViewer treeViewer) {
    Tree tree = treeViewer.getTree();

    // Add menu
    MenuManager menuManager = new MenuManager();
    Menu menu = menuManager.createContextMenu(tree);

    // Add
    final IAction addAction = new AddKeyAction(editor, treeViewer);
    menuManager.add(addAction);
    // Delete
    final IAction deleteAction = new DeleteKeyAction(editor, treeViewer);
    menuManager.add(deleteAction);

    // Refactor
    final IAction refactorAction = new RefactorKeyAction(editor, treeViewer);
    menuManager.add(refactorAction);

    menuManager.update(true);
    menuManager.addMenuListener(new IMenuListener() {

        @Override
        public void menuAboutToShow(IMenuManager manager) {
            IStructuredSelection selection = (IStructuredSelection) treeViewer.getSelection();
            KeyTreeNode node = (KeyTreeNode) selection.getFirstElement();
            refactorAction.setEnabled(node != null && node.getChildren().length == 0);
            deleteAction.setEnabled(node != null);
        }
    });
    tree.setMenu(menu);

    // Bind actions to tree
    tree.addKeyListener(new KeyAdapter() {
        public void keyReleased(KeyEvent event) {
            if (event.character == SWT.DEL) {
                deleteAction.run();
            }
        }
    });
}

From source file:org.eclipse.babel.editor.tree.KeyTreeContributor.java

License:Open Source License

/**
 * Contributes actions to the tree.// w w w. j av  a 2 s  .  com
 * @param treeViewer tree viewer
 */
private void contributeActions(final TreeViewer treeViewer) {
    final Tree tree = treeViewer.getTree();

    // Add menu
    final MenuManager menuManager = new MenuManager();
    final Menu menu = menuManager.createContextMenu(tree);

    // Add
    final IAction addAction = new AddKeyAction(editor, treeViewer);
    menuManager.add(addAction);
    // Delete
    final IAction deleteAction = new DeleteKeyAction(editor, treeViewer);
    menuManager.add(deleteAction);
    // Rename
    final IAction renameAction = new RenameKeyAction(editor, treeViewer);
    menuManager.add(renameAction);

    menuManager.update(true);
    tree.setMenu(menu);

    // Bind actions to tree
    tree.addKeyListener(new KeyAdapter() {
        @Override
        public void keyReleased(final KeyEvent event) {
            if (event.character == SWT.DEL) {
                deleteAction.run();
            } else if (event.keyCode == SWT.F2) {
                renameAction.run();
            }
        }
    });
}

From source file:org.eclipse.babel.editor.tree.KeyTreeContributor.java

License:Open Source License

/**
 * Contributes double-click support, expanding/collapsing nodes.
 * @param treeViewer tree viewer/*from  w w  w  .  j  av a2s . com*/
 */
private void contributeDoubleClick(final TreeViewer treeViewer) {
    treeViewer.getTree().addMouseListener(new MouseAdapter() {
        @Override
        public void mouseDoubleClick(final MouseEvent event) {
            final IStructuredSelection selection = (IStructuredSelection) treeViewer.getSelection();
            final Object element = selection.getFirstElement();
            if (treeViewer.isExpandable(element)) {
                if (treeViewer.getExpandedState(element)) {
                    treeViewer.collapseToLevel(element, 1);
                } else {
                    treeViewer.expandToLevel(element, 1);
                }
            }
        }
    });
}

From source file:org.eclipse.babel.editor.tree.KeyTreeContributor.java

License:Open Source License

/**
 * Contributes key synchronization between editor and tree selected keys.
 * @param treeViewer tree viewer/*  ww w.  j  a v  a 2  s  . com*/
 */
private void contributeKeySync(final TreeViewer treeViewer) {
    // changes in tree selected key update the editor
    treeViewer.getTree().addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(final SelectionEvent e) {
            final IStructuredSelection selection = (IStructuredSelection) treeViewer.getSelection();
            if (selection != null && selection.getFirstElement() != null) {
                final KeyTreeNode node = (KeyTreeNode) selection.getFirstElement();
                System.out.println("viewer key/hash:" + node.getMessageKey() + "/" + node.hashCode());
                editor.setSelectedKey(node.getMessageKey());
            } else {
                editor.setSelectedKey(null);
            }
        }
    });
    // changes in editor selected key updates the tree
    editor.addChangeListener(new MessagesEditorChangeAdapter() {
        @Override
        public void selectedKeyChanged(final String oldKey, final String newKey) {
            final ITreeContentProvider provider = (ITreeContentProvider) treeViewer.getContentProvider();
            final KeyTreeNode node = findKeyTreeNode(provider, provider.getElements(null), newKey);
            System.out.println("editor key/hash:" + node.getMessageKey() + "/" + node.hashCode());

            //                String[] test = newKey.split("\\.");
            //                treeViewer.setSelection(new StructuredSelection(test), true);

            treeViewer.setSelection(new StructuredSelection(node), true);
            treeViewer.getTree().showSelection();
        }
    });
}

From source file:org.eclipse.babel.editor.tree.KeyTreeContributor.java

License:Open Source License

/**
 * Contributes markers./*from   w w w  .  j a va  2  s  .  co  m*/
 * @param treeViewer tree viewer
 */
private void contributeMarkers(final TreeViewer treeViewer) {

    editor.getMarkers().addObserver(new Observer() {

        public void update(final Observable o, final Object arg) {

            fRefreshCounter[0]++;

            final Runnable refreshThread = new Runnable() {

                final int fRunnableRefreshCounter = fRefreshCounter[0];

                public void run() {

                    if (fRunnableRefreshCounter != fRefreshCounter[0]) {
                        // a new refresh event occured
                        return;
                    }

                    if (treeViewer.getTree().isDisposed()) {
                        // widget is disposed
                        return;
                    }

                    treeViewer.refresh();
                }
            };

            Display.getDefault().asyncExec(refreshThread);
        }
    });

    //      editor.addChangeListener(new MessagesEditorChangeAdapter() {
    //      public void editorDisposed() {
    //          editor.getMarkers().clear();
    //      }
    //  });

    //        final IMarkerListener markerListener = new IMarkerListener() {
    //            public void markerAdded(IMarker marker) {
    //                PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable () {
    //                    public void run() {
    //                        if (!PlatformUI.getWorkbench().getDisplay().isDisposed()) {
    //                            treeViewer.refresh(true);
    //                        }
    //                    }
    //                });
    //            }
    //            public void markerRemoved(IMarker marker) {
    //                PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable () {
    //                    public void run() {
    //                        if (!PlatformUI.getWorkbench().getDisplay().isDisposed()) {
    //                            treeViewer.refresh(true);
    //                        }
    //                    }
    //                });
    //            }
    //        };
    //        editor.getMarkerManager().addMarkerListener(markerListener);
    //        editor.addChangeListener(new MessagesEditorChangeAdapter() {
    //            public void editorDisposed() {
    //                editor.getMarkerManager().removeMarkerListener(markerListener);
    //            }
    //        });
}

From source file:org.eclipse.babel.editor.tree.KeyTreeContributor.java

License:Open Source License

/**
 * Contributes key synchronization between editor and tree selected keys.
 * @param treeViewer tree viewer/*from  w w w  . j a  v  a 2 s.  c  om*/
 */
private void contributeKeySync(final TreeViewer treeViewer) {
    // changes in tree selected key update the editor
    treeViewer.getTree().addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            IStructuredSelection selection = (IStructuredSelection) treeViewer.getSelection();
            if (selection != null && selection.getFirstElement() != null) {
                KeyTreeNode node = (KeyTreeNode) selection.getFirstElement();
                System.out.println("viewer key/hash:" + node.getMessageKey() + "/" + node.hashCode());
                editor.setSelectedKey(node.getMessageKey());
            } else {
                editor.setSelectedKey(null);
            }
        }
    });
    // changes in editor selected key updates the tree
    editor.addChangeListener(new MessagesEditorChangeAdapter() {
        public void selectedKeyChanged(String oldKey, String newKey) {
            ITreeContentProvider provider = (ITreeContentProvider) treeViewer.getContentProvider();
            KeyTreeNode node = findKeyTreeNode(provider, provider.getElements(null), newKey);
            System.out.println("editor key/hash:" + node.getMessageKey() + "/" + node.hashCode());

            //                String[] test = newKey.split("\\.");
            //                treeViewer.setSelection(new StructuredSelection(test), true);

            treeViewer.setSelection(new StructuredSelection(node), true);
            treeViewer.getTree().showSelection();
        }
    });
}

From source file:org.eclipse.babel.editor.tree.KeyTreeContributor.java

License:Open Source License

/**
 * Contributes actions to the tree./*from   www  .j  a  va2  s  .  com*/
 * @param treeViewer tree viewer
 */
private void contributeActions(final TreeViewer treeViewer) {
    Tree tree = treeViewer.getTree();

    // Add menu
    MenuManager menuManager = new MenuManager();
    Menu menu = menuManager.createContextMenu(tree);

    // Add
    final IAction addAction = new AddKeyAction(editor, treeViewer);
    menuManager.add(addAction);
    // Delete
    final IAction deleteAction = new DeleteKeyAction(editor, treeViewer);
    menuManager.add(deleteAction);
    // Rename
    final IAction renameAction = new RenameKeyAction(editor, treeViewer);
    menuManager.add(renameAction);

    menuManager.update(true);
    tree.setMenu(menu);

    // Bind actions to tree
    tree.addKeyListener(new KeyAdapter() {
        public void keyReleased(KeyEvent event) {
            if (event.character == SWT.DEL) {
                deleteAction.run();
            } else if (event.keyCode == SWT.F2) {
                renameAction.run();
            }
        }
    });
}