Class ProjectAccessPanel

  • All Implemented Interfaces:
    WizardPanel, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible
    Direct Known Subclasses:
    ViewProjectAccessPanel

    public class ProjectAccessPanel
    extends AbstractWizardJPanel
    Panel that shows the users for a given repository and the users associated with the current shared project. There are 3 main sub-panels:

    • Known Users Panel: Displays all users in the repository
    • Button Panel: Provides buttons for adding/removing users from the project
    • User Access Panel: Displays all users on the project, and their access permissions

    If the current user is an admin, he may change user permissions and add/remove them from the project. If not, only the User Access Panel will be visible and it will be read-only.

    See Also:
    Serialized Form
    • Nested Class Summary

      • 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
      protected ghidra.framework.main.ProjectAccessPanel.ButtonPanel addRemoveButtonPanel  
      protected javax.swing.JCheckBox anonymousAccessCB  
      protected java.lang.String currentUser  
      protected HelpLocation helpLoc  
      protected ghidra.framework.main.ProjectAccessPanel.KnownUsersPanel knownUsersPanel  
      protected boolean origAnonymousAccessEnabled  
      protected java.util.List<User> origProjectUserList  
      protected java.lang.String repositoryName  
      protected java.awt.Color SELECTION_BG_COLOR  
      protected java.awt.Color SELECTION_FG_COLOR  
      protected PluginTool tool  
      protected ghidra.framework.main.ProjectAccessPanel.UserAccessPanel userAccessPanel  
      • 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
      ProjectAccessPanel​(java.lang.String[] knownUsers, RepositoryAdapter repository, PluginTool tool)
      Construct a new panel from a RepositoryAdapter instance.
      ProjectAccessPanel​(java.lang.String[] knownUsers, java.lang.String currentUser, java.util.List<User> allUsers, java.lang.String repositoryName, boolean anonymousServerAccessAllowed, boolean anonymousAccessEnabled, PluginTool tool)
      Constructs a new panel from the given arguments.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void createMainPanel​(java.lang.String[] knownUsers, boolean anonymousServerAccessAllowed)
      Creates the main gui panel, containing the known users, button, and user access panels.
      HelpLocation getHelpLocation()
      Returns the help content location for this panel.
      java.lang.String getTitle()
      Get the title for this panel.
      void initialize()
      Initialize the panel as though this is the first time it is being displayed.
      boolean isValidInformation()
      Return true if the user entered valid information for this panel.
      • Methods inherited from class javax.swing.JPanel

        getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
      • 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

      • knownUsersPanel

        protected ghidra.framework.main.ProjectAccessPanel.KnownUsersPanel knownUsersPanel
      • userAccessPanel

        protected ghidra.framework.main.ProjectAccessPanel.UserAccessPanel userAccessPanel
      • addRemoveButtonPanel

        protected ghidra.framework.main.ProjectAccessPanel.ButtonPanel addRemoveButtonPanel
      • anonymousAccessCB

        protected javax.swing.JCheckBox anonymousAccessCB
      • currentUser

        protected java.lang.String currentUser
      • origProjectUserList

        protected java.util.List<User> origProjectUserList
      • origAnonymousAccessEnabled

        protected boolean origAnonymousAccessEnabled
      • repositoryName

        protected java.lang.String repositoryName
      • SELECTION_BG_COLOR

        protected final java.awt.Color SELECTION_BG_COLOR
      • SELECTION_FG_COLOR

        protected final java.awt.Color SELECTION_FG_COLOR
    • Constructor Detail

      • ProjectAccessPanel

        public ProjectAccessPanel​(java.lang.String[] knownUsers,
                                  RepositoryAdapter repository,
                                  PluginTool tool)
                           throws java.io.IOException
        Construct a new panel from a RepositoryAdapter instance.
        Parameters:
        knownUsers - names of the users that are known to the remote server
        repository - the repository adapter instance
        tool - the current tool
        Throws:
        java.io.IOException - if there's an error processing the repository user list
      • ProjectAccessPanel

        public ProjectAccessPanel​(java.lang.String[] knownUsers,
                                  java.lang.String currentUser,
                                  java.util.List<User> allUsers,
                                  java.lang.String repositoryName,
                                  boolean anonymousServerAccessAllowed,
                                  boolean anonymousAccessEnabled,
                                  PluginTool tool)
        Constructs a new panel from the given arguments.
        Parameters:
        knownUsers - names of the users that are known to the remote server
        currentUser - the current user
        allUsers - all users known to the repository
        repositoryName - the name of the repository
        anonymousServerAccessAllowed - true if the server allows anonymous access
        anonymousAccessEnabled - true if the repository allows anonymous access (ignored if anonymousServerAccessAllowed is false)
        tool - the current tool
    • Method Detail

      • isValidInformation

        public boolean isValidInformation()
        Description copied from interface: WizardPanel
        Return true if the user entered valid information for this panel.
        Returns:
        boolean whether or not the info on the panel valid
      • getTitle

        public java.lang.String getTitle()
        Description copied from interface: WizardPanel
        Get the title for this panel.
        Returns:
        String title
      • initialize

        public void initialize()
        Description copied from interface: WizardPanel
        Initialize the panel as though this is the first time it is being displayed.
      • createMainPanel

        protected void createMainPanel​(java.lang.String[] knownUsers,
                                       boolean anonymousServerAccessAllowed)
        Creates the main gui panel, containing the known users, button, and user access panels.