Search in sources :

Example 11 with Node

use of com.microsoft.tooling.msservices.serviceexplorer.Node in project azure-tools-for-java by Microsoft.

the class ServiceExplorerView method propertyChange.

@Override
public void propertyChange(final PropertyChangeEvent evt) {
    // this event is fired whenever a property on a node in the
    // model changes; we respond by triggering a node change
    // event in the tree's model
    final Node node = (Node) evt.getSource();
    Display.getDefault().asyncExec(new Runnable() {

        @Override
        public void run() {
            viewer.refresh(node.getViewData());
        }
    });
}
Also used : Node(com.microsoft.tooling.msservices.serviceexplorer.Node)

Example 12 with Node

use of com.microsoft.tooling.msservices.serviceexplorer.Node in project azure-tools-for-java by Microsoft.

the class ServiceExplorerView method hookMouseActions.

private void hookMouseActions() {
    viewer.addDoubleClickListener(new IDoubleClickListener() {

        @Override
        public void doubleClick(DoubleClickEvent event) {
            doubleClickAction.run();
        }
    });
    Tree tree = (Tree) viewer.getControl();
    tree.addMouseListener(new MouseAdapter() {

        @Override
        public void mouseUp(MouseEvent e) {
            if (e.button == 1) {
                // left button
                TreeItem[] selection = ((Tree) e.widget).getSelection();
                if (selection.length > 0) {
                    TreeItem item = ((Tree) e.widget).getSelection()[0];
                    Node node = ((TreeNode) item.getData()).node;
                    // we do not propagate the click event to it
                    if (!node.isLoading()) {
                        node.getClickAction().fireNodeActionEvent();
                    }
                }
            }
        }
    });
}
Also used : MouseEvent(org.eclipse.swt.events.MouseEvent) TreeItem(org.eclipse.swt.widgets.TreeItem) IDoubleClickListener(org.eclipse.jface.viewers.IDoubleClickListener) Node(com.microsoft.tooling.msservices.serviceexplorer.Node) MouseAdapter(org.eclipse.swt.events.MouseAdapter) Tree(org.eclipse.swt.widgets.Tree) DoubleClickEvent(org.eclipse.jface.viewers.DoubleClickEvent)

Example 13 with Node

use of com.microsoft.tooling.msservices.serviceexplorer.Node in project azure-tools-for-java by Microsoft.

the class ServiceExplorerView method hookShortcut.

private void hookShortcut() {
    Tree tree = (Tree) viewer.getControl();
    tree.addKeyListener(new KeyAdapter() {

        public void keyReleased(KeyEvent event) {
            if (event.keyCode == SWT.CR && tree.getSelectionCount() > 0) {
                final TreeItem item = tree.getSelection()[0];
                Node node = ((TreeNode) item.getData()).node;
                // we do not propagate the click event to it
                if (!node.isLoading()) {
                    node.getClickAction().fireNodeActionEvent();
                }
            }
        }
    });
}
Also used : KeyEvent(org.eclipse.swt.events.KeyEvent) TreeItem(org.eclipse.swt.widgets.TreeItem) KeyAdapter(org.eclipse.swt.events.KeyAdapter) Node(com.microsoft.tooling.msservices.serviceexplorer.Node) Tree(org.eclipse.swt.widgets.Tree)

Example 14 with Node

use of com.microsoft.tooling.msservices.serviceexplorer.Node in project azure-tools-for-java by Microsoft.

the class ServerExplorerToolWindowFactory method propertyChange.

@Override
public void propertyChange(final PropertyChangeEvent evt) {
    // to dispatch thread
    if (!ApplicationManager.getApplication().isDispatchThread()) {
        AzureTaskManager.getInstance().runAndWait(() -> propertyChange(evt), AzureTask.Modality.ANY);
        return;
    }
    // this event is fired whenever a property on a node in the
    // model changes; we respond by triggering a node change
    // event in the tree's model
    Node node = (Node) evt.getSource();
    // the treeModel object can be null before it is initialized
    // from createToolWindowContent; we ignore property change
    // notifications till we have a valid model object
    DefaultTreeModel treeModel = treeModelMap.get(node.getProject());
    if (treeModel != null) {
        treeModel.nodeChanged((TreeNode) node.getViewData());
    }
}
Also used : RefreshableNode(com.microsoft.tooling.msservices.serviceexplorer.RefreshableNode) LoadingNode(com.intellij.ui.LoadingNode) MutableTreeNode(javax.swing.tree.MutableTreeNode) DefaultMutableTreeNode(javax.swing.tree.DefaultMutableTreeNode) TreeNode(javax.swing.tree.TreeNode) Node(com.microsoft.tooling.msservices.serviceexplorer.Node) DefaultTreeModel(javax.swing.tree.DefaultTreeModel)

Aggregations

Node (com.microsoft.tooling.msservices.serviceexplorer.Node)14 RefreshableNode (com.microsoft.tooling.msservices.serviceexplorer.RefreshableNode)8 LoadingNode (com.intellij.ui.LoadingNode)5 DefaultMutableTreeNode (javax.swing.tree.DefaultMutableTreeNode)5 MutableTreeNode (javax.swing.tree.MutableTreeNode)5 TreeNode (javax.swing.tree.TreeNode)5 TreePath (javax.swing.tree.TreePath)3 Tree (com.intellij.ui.treeStructure.Tree)2 Tree (org.eclipse.swt.widgets.Tree)2 TreeItem (org.eclipse.swt.widgets.TreeItem)2 Nullable (org.jetbrains.annotations.Nullable)2 ImmutableList (com.google.common.collect.ImmutableList)1 DataManager (com.intellij.ide.DataManager)1 NodeRenderer (com.intellij.ide.util.treeView.NodeRenderer)1 AnAction (com.intellij.openapi.actionSystem.AnAction)1 AnActionEvent (com.intellij.openapi.actionSystem.AnActionEvent)1 ApplicationManager (com.intellij.openapi.application.ApplicationManager)1 Project (com.intellij.openapi.project.Project)1 ProjectManager (com.intellij.openapi.project.ProjectManager)1 ProjectManagerListener (com.intellij.openapi.project.ProjectManagerListener)1