Class LockViewTree

  • 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

    @OpenApi
    public class LockViewTree
    extends BrowserTabTree
    Locks Tab tree, for showing projects locks by containment. If element is locked - it will be visible in tree, as well as it's owners.
    See Also:
    Serialized Form
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      private class  com.nomagic.magicdraw.teamwork2.ui.LockViewTree.LockUpdateAction  
      • 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 com.nomagic.magicdraw.teamwork2.ui.UserAndChangeSet ANY_USER  
      private java.beans.PropertyChangeListener decompositionListener
      Listener for project structure lock changes.
      private boolean dirtyLocks
      Flag to indicate that the browser is dirty (locked elements changed).
      private javax.swing.JComboBox<com.nomagic.magicdraw.teamwork2.ui.UserAndChangeSet> filteringComboBox  
      private javax.swing.DefaultComboBoxModel<com.nomagic.magicdraw.teamwork2.ui.UserAndChangeSet> filteringModel  
      private boolean filterUpdateInProgress  
      static com.nomagic.magicdraw.ui.browser.BrowserComponentInfo INFO  
      private com.nomagic.magicdraw.teamwork2.locks.LockedChildrenOwnerVisitor lockedChildrenVisitor  
      private java.beans.PropertyChangeListener manyCheckoutListener  
      private com.nomagic.magicdraw.teamwork2.ui.ProjectOptionsNode projectOptionsNode  
      private com.nomagic.magicdraw.teamwork2.ui.ProjectStructureNode projectStructureNode  
      private java.beans.PropertyChangeListener singleCheckoutListener  
      private java.beans.PropertyChangeListener styleListener
      Listener for style lock changes.
      private com.nomagic.magicdraw.teamwork2.ui.SymbolStylesNode symbolStyleNode  
      private TransactionCommitListener transactionCommitListener  
      private com.nomagic.magicdraw.teamwork2.actions.UpdateLocksAction updateLocksAction  
      • 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
      LockViewTree​(Browser browser)
      Constructor.
      LockViewTree​(Browser browser, com.nomagic.magicdraw.ui.browser.BrowserComponentInfo info)
      Constructor
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void activate()
      Activates the tree.
      private void addFilteringComponent()
      Adds filtering component in panel for filtering locks in the tree.
      void addTreeActionToPanel​(javax.swing.JPanel panel, NMAction action)  
      protected void configureContextActions​(ActionsManager manager)
      Configures context menu actions.
      protected void configureToolbarActions​(ActionsManager manager)  
      protected com.nomagic.magicdraw.ui.browser.CompositeElementFilter createFilter()  
      void dispose()
      Removes all nodes recursively.
      private void doFilter()  
      protected ActionsManager getActions()
      Returns shortcuts action manager for this browser.
      private com.nomagic.magicdraw.teamwork2.ui.UserAndChangeSet getCurrentUserName()  
      com.nomagic.magicdraw.teamwork2.ui.UserAndChangeSet getFilterValue()
      Returns value selected in a filtering combo box.
      java.util.Collection<java.lang.String> getLockOwners​(Project project)
      Returns collection of users (login names) which has locked elements (not cached) in the server
      void initTree()
      Initializes the tree.
      private boolean isEquals​(com.nomagic.magicdraw.teamwork2.ui.UserAndChangeSet value, LockInfo lock)  
      private static boolean projectContainsUserLocks​(com.nomagic.uml2.ext.jmi.reflect.ElementRegistry project, ILockProjectService lockService, java.lang.String user)  
      private void selectCurrentUserInComboBox()  
      private void superUpdateBrowser​(boolean updateOnlyDirty)  
      void updateBrowser​(boolean updateOnlyDirty)
      Updates tree with the newest data and shows it.
      private void updateFilterValues​(boolean lazyUpdate)
      Updates filter component values with the latest server values.
      private void updateNodes​(com.nomagic.magicdraw.teamwork2.ui.UserAndChangeSet value)
      Updates nodes by given filter value.
      • 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
    • Field Detail

      • INFO

        public static final com.nomagic.magicdraw.ui.browser.BrowserComponentInfo INFO
      • filterUpdateInProgress

        private boolean filterUpdateInProgress
      • filteringComboBox

        private javax.swing.JComboBox<com.nomagic.magicdraw.teamwork2.ui.UserAndChangeSet> filteringComboBox
      • filteringModel

        private javax.swing.DefaultComboBoxModel<com.nomagic.magicdraw.teamwork2.ui.UserAndChangeSet> filteringModel
      • ANY_USER

        private final com.nomagic.magicdraw.teamwork2.ui.UserAndChangeSet ANY_USER
      • dirtyLocks

        private volatile boolean dirtyLocks
        Flag to indicate that the browser is dirty (locked elements changed). Is used to check when activating the browser.
      • lockedChildrenVisitor

        private final com.nomagic.magicdraw.teamwork2.locks.LockedChildrenOwnerVisitor lockedChildrenVisitor
      • projectStructureNode

        private com.nomagic.magicdraw.teamwork2.ui.ProjectStructureNode projectStructureNode
      • projectOptionsNode

        private com.nomagic.magicdraw.teamwork2.ui.ProjectOptionsNode projectOptionsNode
      • symbolStyleNode

        private com.nomagic.magicdraw.teamwork2.ui.SymbolStylesNode symbolStyleNode
      • updateLocksAction

        private com.nomagic.magicdraw.teamwork2.actions.UpdateLocksAction updateLocksAction
      • singleCheckoutListener

        private final java.beans.PropertyChangeListener singleCheckoutListener
      • manyCheckoutListener

        private final java.beans.PropertyChangeListener manyCheckoutListener
      • styleListener

        private final java.beans.PropertyChangeListener styleListener
        Listener for style lock changes.
      • decompositionListener

        private final java.beans.PropertyChangeListener decompositionListener
        Listener for project structure lock changes.
    • Constructor Detail

      • LockViewTree

        public LockViewTree​(Browser browser)
        Constructor.
        Parameters:
        browser - instance of Browser.
      • LockViewTree

        public LockViewTree​(Browser browser,
                            com.nomagic.magicdraw.ui.browser.BrowserComponentInfo info)
        Constructor
        Parameters:
        browser - instance of Browser.
        info - instance of BrowserComponentInfo
    • Method Detail

      • updateBrowser

        public void updateBrowser​(boolean updateOnlyDirty)
        Description copied from class: Tree
        Updates tree with the newest data and shows it. The current thread will be blocked until tree update is complete, but the event dispatcher is going to continue to process events.
        Parameters:
        updateOnlyDirty - - if true updates only dirty expanded nodes, otherwise - updates all expanded tree nodes.
      • superUpdateBrowser

        private void superUpdateBrowser​(boolean updateOnlyDirty)
      • activate

        public void activate()
        Description copied from class: BrowserTabTree
        Activates the tree. If tree was not initialized, initializes it.
        Specified by:
        activate in interface com.nomagic.magicdraw.ui.Activatable
      • updateFilterValues

        private void updateFilterValues​(boolean lazyUpdate)
        Updates filter component values with the latest server values.
        Parameters:
        lazyUpdate - when this argument is true, the component updates values only if the selected value is not available in the server.
      • getLockOwners

        public java.util.Collection<java.lang.String> getLockOwners​(Project project)
        Returns collection of users (login names) which has locked elements (not cached) in the server
        Parameters:
        project - project
        Returns:
        list of user names which locked elements in the server.
      • projectContainsUserLocks

        private static boolean projectContainsUserLocks​(com.nomagic.uml2.ext.jmi.reflect.ElementRegistry project,
                                                        ILockProjectService lockService,
                                                        java.lang.String user)
      • getFilterValue

        public com.nomagic.magicdraw.teamwork2.ui.UserAndChangeSet getFilterValue()
        Returns value selected in a filtering combo box.
        Returns:
        value selected in filtering component. If none is selected or there are no values, returns UserLocksManager.ANY_USER
      • addFilteringComponent

        private void addFilteringComponent()
        Adds filtering component in panel for filtering locks in the tree.
      • addTreeActionToPanel

        public void addTreeActionToPanel​(javax.swing.JPanel panel,
                                         NMAction action)
      • doFilter

        private void doFilter()
      • updateNodes

        private void updateNodes​(com.nomagic.magicdraw.teamwork2.ui.UserAndChangeSet value)
        Updates nodes by given filter value.
        Parameters:
        value - filter value.
      • isEquals

        private boolean isEquals​(com.nomagic.magicdraw.teamwork2.ui.UserAndChangeSet value,
                                 LockInfo lock)
      • initTree

        public void initTree()
        Description copied from class: BrowserTabTree
        Initializes the tree. Root nodes will be created here.
      • createFilter

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

        protected ActionsManager getActions()
        Description copied from class: BrowserTabTree
        Returns shortcuts action manager for this browser.
        Returns:
        ActionsManager with actions to register in this browser as KeyListeners
      • configureContextActions

        protected void configureContextActions​(ActionsManager manager)
        Description copied from class: BrowserTabTree
        Configures context menu actions.
        Parameters:
        manager - a manager with context menu actions to configure.
      • configureToolbarActions

        protected void configureToolbarActions​(ActionsManager manager)
      • dispose

        public void dispose()
        Description copied from class: Tree
        Removes all nodes recursively.
      • selectCurrentUserInComboBox

        private void selectCurrentUserInComboBox()
      • getCurrentUserName

        @CheckForNull
        private com.nomagic.magicdraw.teamwork2.ui.UserAndChangeSet getCurrentUserName()