Class BrowserTabTree

  • All Implemented Interfaces:
    com.nomagic.awt.PopupOwner, com.nomagic.magicdraw.ui.Activatable, WindowComponent, com.nomagic.magicdraw.ui.EditActionExecutorsOwner, com.nomagic.magicdraw.ui.Updatable, Cachable, java.awt.dnd.Autoscroll, java.awt.event.FocusListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible
    Direct Known Subclasses:
    com.nomagic.magicdraw.ui.browser.AbstractBrowserRootTabTree, DiagramsTree, ExtensionsTree, LockViewTree, SearchResultsTree

    @OpenApi
    public abstract class BrowserTabTree
    extends Tree
    implements WindowComponent, com.nomagic.magicdraw.ui.Activatable, com.nomagic.magicdraw.ui.EditActionExecutorsOwner
    The base class for all trees added into Browser top tab.
    See Also:
    Serialized Form
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      private static class  com.nomagic.magicdraw.ui.browser.BrowserTabTree.BrowserTabActionExecutorsProvider  
      private static class  com.nomagic.magicdraw.ui.browser.BrowserTabTree.BrowserTabTreeSearchable  
      private class  com.nomagic.magicdraw.ui.browser.BrowserTabTree.StatusLineUpdater  
      (package private) class  com.nomagic.magicdraw.ui.browser.BrowserTabTree.TreeEventListener
      Listener for documentation editing for selected node.
      (package private) class  com.nomagic.magicdraw.ui.browser.BrowserTabTree.TreeFocusListener
      This focus listener initializes documentation of selected tree node on focusGained event.
      • Nested classes/interfaces inherited from class com.nomagic.magicdraw.ui.browser.Tree

        com.nomagic.magicdraw.ui.browser.Tree.TreeSelectionParticipant
      • Nested classes/interfaces inherited from class javax.swing.JPanel

        javax.swing.JPanel.AccessibleJPanel
      • Nested classes/interfaces inherited from class javax.swing.JComponent

        javax.swing.JComponent.AccessibleJComponent
      • Nested classes/interfaces inherited from class java.awt.Container

        java.awt.Container.AccessibleAWTContainer
      • Nested classes/interfaces inherited from class java.awt.Component

        java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private Browser browser
      Reference to the browser.
      private java.lang.String browserTreeGroup  
      private com.nomagic.magicdraw.ui.actions.EditActionExecutorsProvider editActionExecutorsProvider  
      private com.nomagic.magicdraw.ui.browser.BrowserComponentInfo info  
      private boolean needsInit
      If this flag is true, tree must be initialized on activation.
      private javax.swing.JComponent toolbar  
      private ActionsManager toolbarManager  
      private com.nomagic.magicdraw.ui.browser.BrowserTabTree.TreeEventListener treeListener  
      • Fields inherited from class javax.swing.JComponent

        listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
      • Fields inherited from class java.awt.Component

        accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
      • Fields inherited from interface java.awt.image.ImageObserver

        ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
    • Constructor Summary

      Constructors 
      Constructor Description
      BrowserTabTree​(Browser browser, com.nomagic.magicdraw.ui.browser.BrowserComponentInfo info, java.lang.String browserTreeGroup)
      Constructs new tree.
      BrowserTabTree​(Browser browser, com.nomagic.magicdraw.ui.browser.BrowserComponentInfo info, java.lang.String browserTreeGroup, com.nomagic.magicdraw.ui.browser.ChildrenOwner childrenOwner)
      Constructs new tree.
    • Method Summary

      All Methods Static Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      void activate()
      Activates the tree.
      void activate​(boolean activateNotShowing)
      Activates the tree.
      void addDragListener()  
      void addDropListener()  
      protected void addLockUnlockActionsCategory​(ActionsManager actionsManager, java.util.List<Element> elements)  
      protected void applyFilterToModel()  
      private static void configureActionsForMultipleNodes​(ActionsManager actionsManager, Node[] nodes)
      when there are big number of nodes of same type, only single call to configureMultiple is required to configure actions for all such nodes, since all nodes are being passed in as parameter.
      protected abstract void configureContextActions​(ActionsManager manager)
      Configures context menu actions.
      protected abstract void configureToolbarActions​(ActionsManager manager)  
      ActionsManager createContextMenuActionManager​(java.awt.event.MouseEvent e)  
      protected com.nomagic.magicdraw.ui.browser.CompositeElementFilter createFilter()  
      protected void createToolbar​(ActionsManager manager)  
      void disposeAll()  
      void doBeforeOpenNode()  
      javax.swing.tree.TreePath findTreePathFor​(BaseElement data)  
      protected ActionsManager getActions()
      Returns shortcuts action manager for this browser.
      Browser getBrowser()
      Returns reference to a browser.
      java.lang.String getBrowserTreeGroup()  
      WindowComponentContent getContent()
      Returns a contents of this window component.
      com.nomagic.magicdraw.ui.actions.EditActionExecutorsProvider getEditActionExecutorsProvider()  
      com.nomagic.magicdraw.ui.browser.BrowserComponentInfo getInfo()
      Returns an information about this window component.
      Project getProject()  
      void initTree()
      Initializes the tree.
      private void internalSortNodes()  
      boolean isNeedsInit()  
      boolean renameNodeByElement​(Element element)
      Searches for the node representing element and invokes rename for the node
      protected void resetTabTree()  
      void setBrowserTreeGroup​(java.lang.String browserTreeGroup)  
      void setNeedsInit​(boolean needsInit)
      Sets needs init flag.
      void setShowElementLockInfo​(boolean showElementLockInfo)  
      private static void setShowElementLockInfo​(com.nomagic.magicdraw.ui.browser.TreeNodeCreator nodeCreator, boolean showElementLockInfo)  
      void showPopupMenu​(java.awt.event.MouseEvent e)
      Shows context menu.
      void sortNodes()
      Sorts all nodes in this tree.
      protected void specificActivate()  
      private void updateSelectedElements​(Node[] nodes)  
      • Methods inherited from class javax.swing.JPanel

        getAccessibleContext, getUI, getUIClassID, paramString, setUI
      • Methods inherited from class javax.swing.JComponent

        addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
      • Methods inherited from class java.awt.Container

        add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree
      • Methods inherited from class java.awt.Component

        action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface com.nomagic.magicdraw.ui.Updatable

        afterAllUpdates, beforeAllUpdates
    • Field Detail

      • needsInit

        private boolean needsInit
        If this flag is true, tree must be initialized on activation.
      • browser

        private final Browser browser
        Reference to the browser.
      • toolbar

        private javax.swing.JComponent toolbar
      • info

        private final com.nomagic.magicdraw.ui.browser.BrowserComponentInfo info
      • browserTreeGroup

        private java.lang.String browserTreeGroup
      • treeListener

        private final com.nomagic.magicdraw.ui.browser.BrowserTabTree.TreeEventListener treeListener
      • editActionExecutorsProvider

        private com.nomagic.magicdraw.ui.actions.EditActionExecutorsProvider editActionExecutorsProvider
    • Constructor Detail

      • BrowserTabTree

        public BrowserTabTree​(Browser browser,
                              com.nomagic.magicdraw.ui.browser.BrowserComponentInfo info,
                              java.lang.String browserTreeGroup)
        Constructs new tree.
        Parameters:
        browser - browser
        info - component info
        browserTreeGroup - group name
      • BrowserTabTree

        public BrowserTabTree​(Browser browser,
                              com.nomagic.magicdraw.ui.browser.BrowserComponentInfo info,
                              java.lang.String browserTreeGroup,
                              com.nomagic.magicdraw.ui.browser.ChildrenOwner childrenOwner)
        Constructs new tree.
        Parameters:
        browser - browser
        info - component info
        childrenOwner - children owner
        browserTreeGroup - group name
    • Method Detail

      • setShowElementLockInfo

        public void setShowElementLockInfo​(boolean showElementLockInfo)
      • setShowElementLockInfo

        private static void setShowElementLockInfo​(com.nomagic.magicdraw.ui.browser.TreeNodeCreator nodeCreator,
                                                   boolean showElementLockInfo)
      • disposeAll

        public void disposeAll()
      • configureToolbarActions

        protected abstract void configureToolbarActions​(ActionsManager manager)
      • initTree

        public void initTree()
        Initializes the tree. Root nodes will be created here.
      • applyFilterToModel

        protected void applyFilterToModel()
      • createFilter

        @CheckForNull
        protected com.nomagic.magicdraw.ui.browser.CompositeElementFilter createFilter()
      • getActions

        protected ActionsManager getActions()
        Returns shortcuts action manager for this browser.
        Returns:
        ActionsManager with actions to register in this browser as KeyListeners
      • activate

        public final void activate()
        Activates the tree. If tree was not initialized, initializes it.
        Specified by:
        activate in interface com.nomagic.magicdraw.ui.Activatable
      • activate

        public final void activate​(boolean activateNotShowing)
        Activates the tree. If tree was not initialized, initializes it.
        Parameters:
        activateNotShowing - indicates if tree should be activate if it is not showing
      • specificActivate

        protected void specificActivate()
      • doBeforeOpenNode

        public final void doBeforeOpenNode()
      • addDropListener

        public void addDropListener()
      • addDragListener

        public void addDragListener()
      • updateSelectedElements

        private void updateSelectedElements​(Node[] nodes)
      • getBrowser

        public Browser getBrowser()
        Returns reference to a browser.
        Returns:
        a browser.
      • setNeedsInit

        public void setNeedsInit​(boolean needsInit)
        Sets needs init flag.
        Parameters:
        needsInit - if this flag is true, tree will be initialized on activation.
      • resetTabTree

        protected void resetTabTree()
      • isNeedsInit

        public boolean isNeedsInit()
      • sortNodes

        public void sortNodes()
        Sorts all nodes in this tree.
      • internalSortNodes

        private void internalSortNodes()
      • showPopupMenu

        public void showPopupMenu​(java.awt.event.MouseEvent e)
        Shows context menu.
        Specified by:
        showPopupMenu in interface com.nomagic.awt.PopupOwner
        Parameters:
        e - the source mouse event. May be null.
      • createContextMenuActionManager

        public ActionsManager createContextMenuActionManager​(java.awt.event.MouseEvent e)
      • addLockUnlockActionsCategory

        protected void addLockUnlockActionsCategory​(ActionsManager actionsManager,
                                                    java.util.List<Element> elements)
      • configureActionsForMultipleNodes

        private static void configureActionsForMultipleNodes​(ActionsManager actionsManager,
                                                             Node[] nodes)
        when there are big number of nodes of same type, only single call to configureMultiple is required to configure actions for all such nodes, since all nodes are being passed in as parameter. Repeatedly calling configureMultiple for each node causes performance issues for large selections
      • configureContextActions

        protected abstract void configureContextActions​(ActionsManager manager)
        Configures context menu actions.
        Parameters:
        manager - a manager with context menu actions to configure.
      • createToolbar

        protected void createToolbar​(ActionsManager manager)
      • getInfo

        public com.nomagic.magicdraw.ui.browser.BrowserComponentInfo getInfo()
        Description copied from interface: WindowComponent
        Returns an information about this window component.
        Specified by:
        getInfo in interface WindowComponent
        Returns:
        window component information.
      • setBrowserTreeGroup

        public void setBrowserTreeGroup​(java.lang.String browserTreeGroup)
      • getBrowserTreeGroup

        public java.lang.String getBrowserTreeGroup()
      • findTreePathFor

        @CheckForNull
        public javax.swing.tree.TreePath findTreePathFor​(BaseElement data)
      • getProject

        public Project getProject()
        Specified by:
        getProject in interface com.nomagic.magicdraw.ui.Activatable
      • renameNodeByElement

        public boolean renameNodeByElement​(Element element)
        Searches for the node representing element and invokes rename for the node
        Returns:
        true if the node is found else false
      • getEditActionExecutorsProvider

        public com.nomagic.magicdraw.ui.actions.EditActionExecutorsProvider getEditActionExecutorsProvider()
        Specified by:
        getEditActionExecutorsProvider in interface com.nomagic.magicdraw.ui.EditActionExecutorsOwner