Class AbstractDesignableWorkspace

  • All Implemented Interfaces:
    java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible, javax.swing.SwingConstants
    Direct Known Subclasses:
    AbstractBlockWorkspace, DefaultDesignableWorkspace, StandaloneWorkspace

    public abstract class AbstractDesignableWorkspace
    extends com.jidesoft.swing.JideTabbedPane

    This abstract workspace provides the "guts" of workspaces that use a drag-and-drop style interface. This class extends from JideTabbedPane, so multiple drag-and-drop interfaces may be open at once.

    Most workspaces that want this functionality should subclass from DefaultDesignableWorkspace instead of this one.

    See Also:
    Serialized Form
    • Nested Class Summary

      • Nested classes/interfaces inherited from class com.jidesoft.swing.JideTabbedPane

        com.jidesoft.swing.JideTabbedPane.ColorProvider, com.jidesoft.swing.JideTabbedPane.GradientColorProvider, com.jidesoft.swing.JideTabbedPane.IgnoreableSingleSelectionModel, com.jidesoft.swing.JideTabbedPane.NoFocusButton, com.jidesoft.swing.JideTabbedPane.PageLastFocusTracker, com.jidesoft.swing.JideTabbedPane.TabListCellRenderer
      • Nested classes/interfaces inherited from class javax.swing.JTabbedPane

        javax.swing.JTabbedPane.AccessibleJTabbedPane, javax.swing.JTabbedPane.ModelListener
      • 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 IDesignTool currentTool
      The currently selected tool.
      static java.lang.String DESIGNABLE_CONTAINER_ICON_KEY  
      static java.lang.String DESIGNTIME_PROPNAME  
      protected java.util.List<DesignableWorkspaceListener> listeners
      These listeners are notified when things happen to the designable workspace such as switching selected designable containers.
      protected LoggerEx log  
      protected java.util.Map<DesignableContainer,​DesignPanel> openContainers
      Holds all of the currently editing containers
      protected java.util.List<javax.swing.JComponent> selectedItems
      The currently selected components
      protected ISelectionControl selectionControl
      The current "selection control" - which is what typically adds handles to the selected components.
      protected IDesignTool selectionTool
      The standard tool - used for moving, resizing, and marquee selection
      • Fields inherited from class com.jidesoft.swing.JideTabbedPane

        _focusChangeListener, _tabEditingAllowed, _tabEditValidator, BOLDACTIVETAB_PROPERTY, BOX_STYLE_PROPERTY, BUTTON_CLOSE, BUTTON_EAST, BUTTON_LIST, BUTTON_NORTH, BUTTON_SOUTH, BUTTON_WEST, COLOR_THEME_DEFAULT, COLOR_THEME_OFFICE2003, COLOR_THEME_VSNET, COLOR_THEME_WIN2K, COLOR_THEME_WINXP, GRIPPER_PROPERTY, HIDE_IF_ONE_TAB_PROPERTY, ONENOTE_COLOR_PROVIDER, PROPERTY_COLOR_THEME, PROPERTY_CONTENT_BORDER_INSETS, PROPERTY_DRAG_OVER_DISABLED, PROPERTY_SELECTED_INDEX, PROPERTY_SHOW_CLOSE_BUTTON_ON_MOUSE_OVER, PROPERTY_TAB_AREA_INSETS, PROPERTY_TAB_COLOR_PROVIDER, PROPERTY_TAB_INSETS, PROPERTY_TAB_LEADING_COMPONENT, PROPERTY_TAB_RESIZE_MODE, PROPERTY_TAB_SHAPE, PROPERTY_TAB_TRAILING_COMPONENT, RESIZE_MODE_COMPRESSED, RESIZE_MODE_DEFAULT, RESIZE_MODE_FIT, RESIZE_MODE_FIXED, RESIZE_MODE_NONE, SCROLL_TAB_ON_WHEEL_PROPERTY, SHAPE_BOX, SHAPE_DEFAULT, SHAPE_ECLIPSE, SHAPE_ECLIPSE3X, SHAPE_EXCEL, SHAPE_FLAT, SHAPE_OFFICE2003, SHAPE_ROUNDED_FLAT, SHAPE_ROUNDED_VSNET, SHAPE_VSNET, SHAPE_WINDOWS, SHAPE_WINDOWS_SELECTED, SHOW_CLOSE_BUTTON_ON_TAB_PROPERTY, SHOW_CLOSE_BUTTON_PROPERTY, SHOW_ICONS_PROPERTY, SHOW_TAB_AREA_PROPERTY, SHOW_TAB_BUTTONS_PROPERTY, SHOW_TAB_CONTENT_PROPERTY, SHRINK_TAB_PROPERTY, TAB_CLOSABLE_PROPERTY, USE_DEFAULT_SHOW_CLOSE_BUTTON_ON_TAB_PROPERTY, USE_DEFAULT_SHOW_ICONS_PROPERTY
      • Fields inherited from class javax.swing.JTabbedPane

        changeEvent, changeListener, model, SCROLL_TAB_LAYOUT, tabPlacement, WRAP_TAB_LAYOUT
      • 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
      • Fields inherited from interface javax.swing.SwingConstants

        BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      void addDesignableWorkspaceListener​(DesignableWorkspaceListener listener)  
      protected void close​(DesignableContainer container)
      Closes the DesignPanel for the given container, if it is open.
      protected java.util.Optional<javax.swing.JComponent> createWorkspaceHomeTab()  
      DesignableContainer findDesignableContainer​(ResourcePath resourcePath)
      Finds a DesignableContainer that is currently open for editing in this workspace.
      javax.swing.JComponent findDropTarget​(java.util.List<javax.swing.JComponent> itemsUnderDrop, java.awt.dnd.DropTargetDragEvent event)
      Override to allow dropping onto items
      int getAcceptableDropActions​(java.awt.dnd.DropTargetDragEvent event)  
      IDesignTool getCurrentTool()  
      abstract java.awt.Color getEditorBackground()
      The background color for the design panels
      abstract IGridSettings getGridSettings()
      Returns the settings for the grid/guide/snapping system
      abstract DesignableDelegate getItemDelegate​(DesignableContainer container)
      Called to provide the DesignableDelegate that is appropriate for the given DesignableContainer
      int getOpenContainerCount()  
      DesignableContainer getSelectedContainer()
      The currently selected designable container, or null if none is selected
      DesignPanel getSelectedDesignPanel()  
      java.util.List<javax.swing.JComponent> getSelectedItems()
      Returns the current selection list.
      int getSelectedItemsCount()
      The number of items currently selected
      ISelectionControl getSelectionControl()  
      javax.swing.JPopupMenu getSelectionPopupMenu​(java.util.List<javax.swing.JComponent> component)
      Gives the workspace a chance to provide a popup menu for the currently selected items
      IDesignTool getSelectionTool()  
      protected javax.swing.JPopupMenu getTabPopupMenu​(DesignableContainer container)
      Return the popup menu to display for a given tab on right click
      protected abstract java.lang.String getTabToolTip​(DesignableContainer container)
      Return the tooltip for the tab representing the given container
      void handleDoubleClick​(java.awt.Point p)
      Called when the user double-clicks using the selection tool.
      boolean handleDrop​(java.lang.Object droppedOn, java.awt.dnd.DropTargetDropEvent event)  
      void handleEditClick​(java.awt.Point p)
      Called when the user edit-clicks a component (clicks on an already selected component)
      boolean isDesignTime()  
      boolean isOpen​(DesignableContainer container)  
      boolean isOpen​(ResourcePath resourcePath)  
      boolean isZoomingEnabled()
      Returns whether or not the zoom level of design panels can be altered.
      protected DesignPanel newDesignPanel​(DesignableContainer container)  
      protected LoggerEx newLogger()  
      protected IDesignTool newSelectionTool()  
      protected boolean onBeforeClose​(DesignableContainer container)
      Provides subclasses a chance to intercept when a tab is closed.
      protected void onClose​(DesignableContainer container)
      Provides subclasses a chance to handle when a tab is closed
      protected void onCurrentToolChanged​(IDesignTool oldTool, IDesignTool newTool)
      Provides AbstractDesignableWorkspace subclasses a way to be notified when the design tool has been changed.
      void onEditorPaint​(DesignPanel panel, java.awt.Graphics g)
      Provides subclasses a chance to paint onto each tab's DesignPanel background
      protected void open​(DesignableContainer container)  
      void openArbitraryTab​(javax.swing.JComponent component, javax.swing.Icon icon, java.lang.String tabText, java.lang.String toolTipText)  
      void paintInteractionLayerHigh​(java.awt.Graphics2D g, DesignableContainer c)  
      void paintInteractionLayerLow​(java.awt.Graphics2D g, DesignableContainer c)  
      void removeDesignableWorkspaceListener​(DesignableWorkspaceListener listener)  
      protected void removeTab​(DesignableContainer container)
      Closes the DesignPanel for the given container without saving.
      boolean restrictMovementToParentBounds()  
      void setCurrentTool​(IDesignTool newTool)  
      void setDesignTime​(boolean designing)  
      void setSelectedContainer​(DesignableContainer container)
      Selects this designable container's tab.
      void setSelectedItems​(java.util.List<javax.swing.JComponent> newSelection)
      Sets the selection to the items in the list.
      void setSelectedItems​(javax.swing.JComponent... newSelection)
      Sets the selection to the components in the list
      protected abstract void setStatusMessage​(java.lang.String message)
      Called when the tool or design panel has a status message to display.
      protected void setupWorkspaceHomeTab​(javax.swing.Icon icon, javax.swing.JComponent welcomePanel)  
      void toggleItemSelection​(javax.swing.JComponent... newSelection)  
      void updateMouseLocation​(int x, int y)
      Called when the mouse moves over the design area.
      void updateSelectionControl()
      Called when the selection changes or the design tool changes (since the ISelectionControl is created by the IDesignTool), or the design tool notifies the system that it has changed itself.
      void updateStatusBarText​(java.awt.Point location, int inputMask)  
      • Methods inherited from class com.jidesoft.swing.JideTabbedPane

        add, addNotify, addTabEditingListener, calculateTabListPopupPosition, cancelTabEditing, clearVisComp, createFocusChangeListener, createNoFocusButton, createTabList, createTabListPopup, editTabAt, fireStateChanged, fireTabEditing, getCloseAction, getColorTheme, getContentBorderInsets, getDefaultColorTheme, getDefaultTabResizeMode, getDefaultTabStyle, getDisplayTitleAt, getEditingTabIndex, getIconForTab, getLastFocusedComponent, getPageLastFocusTrackers, getResourceString, getSelectedTabFont, getStringConverter, getTabAlignment, getTabAreaInsets, getTabAtLocation, getTabColorProvider, getTabEditingListeners, getTabEditingValidator, getTabHeight, getTabInsets, getTabLeadingComponent, getTabListCellRenderer, getTabResizeMode, getTabShape, getTabTrailingComponent, getUI, getUIClassID, hasFocusComponent, hideTabListPopup, insertTab, isAutoFocusOnTabHideClose, isAutoRequestFocus, isBoldActiveTab, isCloseTabOnMouseMiddleButton, isDragOverDisabled, isHideOneTab, isHideTrailingWhileNoButtons, isLayoutTrailingComponentBeforeButtons, isRightClickSelect, isScrollSelectedTabOnWheel, isShowCloseButton, isShowCloseButtonOnMouseOver, isShowCloseButtonOnSelectedTab, isShowCloseButtonOnTab, isShowGripper, isShowIconsOnTab, isShowTabArea, isShowTabButtons, isShowTabContent, isSuppressSetSelectedIndex, isSuppressStateChangedEvents, isTabClosableAt, isTabEditing, isTabEditingAllowed, isTabListPopupVisible, isTabShown, isUseDefaultShowCloseButtonOnTab, isUseDefaultShowIconsOnTab, moveSelectedTabTo, popupSelectedIndex, processMouseSelection, removeAll, removeNotify, removeTabAt, removeTabEditingListener, repaintContentBorder, repaintTabAreaAndContentBorder, requestFocusForVisibleComponent, resetDefaultCloseAction, scrollSelectedTabToVisible, setAutoFocusOnTabHideClose, setAutoRequestFocus, setBoldActiveTab, setCloseAction, setCloseTabOnMouseMiddleButton, setColorTheme, setComponentAt, setContentBorderInsets, setDragOverDisabled, setHideOneTab, setHideTrailingWhileNoButtons, setLayoutTrailingComponentBeforeButtons, setRightClickSelect, setScrollSelectedTabOnWheel, setSelectedIndex, setSelectedTabFont, setShowCloseButton, setShowCloseButtonOnMouseOver, setShowCloseButtonOnSelectedTab, setShowCloseButtonOnTab, setShowGripper, setShowIconsOnTab, setShowTabArea, setShowTabButtons, setShowTabContent, setStringConverter, setSuppressSetSelectedIndex, setSuppressStateChangedEvents, setTabAlignment, setTabAreaInsets, setTabClosableAt, setTabColorProvider, setTabEditingAllowed, setTabEditingValidator, setTabInsets, setTabLeadingComponent, setTabListCellRenderer, setTabResizeMode, setTabShape, setTabTrailingComponent, setUI, setUseDefaultShowCloseButtonOnTab, setUseDefaultShowIconsOnTab, showTabListPopup, stopTabEditing, updateUI
      • Methods inherited from class javax.swing.JTabbedPane

        add, add, add, add, addChangeListener, addTab, addTab, addTab, createChangeListener, getAccessibleContext, getBackgroundAt, getBoundsAt, getChangeListeners, getComponentAt, getDisabledIconAt, getDisplayedMnemonicIndexAt, getForegroundAt, getIconAt, getMnemonicAt, getModel, getSelectedComponent, getSelectedIndex, getTabComponentAt, getTabCount, getTabLayoutPolicy, getTabPlacement, getTabRunCount, getTitleAt, getToolTipText, getToolTipTextAt, indexAtLocation, indexOfComponent, indexOfTab, indexOfTab, indexOfTabComponent, isEnabledAt, paramString, remove, remove, removeChangeListener, setBackgroundAt, setDisabledIconAt, setDisplayedMnemonicIndexAt, setEnabledAt, setForegroundAt, setIconAt, setMnemonicAt, setModel, setSelectedComponent, setTabComponentAt, setTabLayoutPolicy, setTabPlacement, setTitleAt, setToolTipTextAt
      • Methods inherited from class javax.swing.JComponent

        addAncestorListener, 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, 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, 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

        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, 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

      • DESIGNABLE_CONTAINER_ICON_KEY

        public static final java.lang.String DESIGNABLE_CONTAINER_ICON_KEY
        See Also:
        Constant Field Values
      • DESIGNTIME_PROPNAME

        public static final java.lang.String DESIGNTIME_PROPNAME
        See Also:
        Constant Field Values
      • selectionTool

        protected transient IDesignTool selectionTool
        The standard tool - used for moving, resizing, and marquee selection
      • currentTool

        protected transient IDesignTool currentTool
        The currently selected tool.
      • selectionControl

        protected transient ISelectionControl selectionControl
        The current "selection control" - which is what typically adds handles to the selected components. May be null.
      • listeners

        protected transient java.util.List<DesignableWorkspaceListener> listeners
        These listeners are notified when things happen to the designable workspace such as switching selected designable containers.
      • selectedItems

        protected transient java.util.List<javax.swing.JComponent> selectedItems
        The currently selected components
    • Constructor Detail

      • AbstractDesignableWorkspace

        protected AbstractDesignableWorkspace()
    • Method Detail

      • setupWorkspaceHomeTab

        protected void setupWorkspaceHomeTab​(javax.swing.Icon icon,
                                             javax.swing.JComponent welcomePanel)
      • createWorkspaceHomeTab

        protected java.util.Optional<javax.swing.JComponent> createWorkspaceHomeTab()
      • openArbitraryTab

        public void openArbitraryTab​(javax.swing.JComponent component,
                                     javax.swing.Icon icon,
                                     java.lang.String tabText,
                                     java.lang.String toolTipText)
      • newSelectionTool

        protected IDesignTool newSelectionTool()
      • updateStatusBarText

        public void updateStatusBarText​(java.awt.Point location,
                                        int inputMask)
      • setStatusMessage

        protected abstract void setStatusMessage​(java.lang.String message)
        Called when the tool or design panel has a status message to display. Should be some sort of passive status display, not a popup.
      • newLogger

        protected LoggerEx newLogger()
      • getSelectionTool

        public IDesignTool getSelectionTool()
      • setSelectedContainer

        public void setSelectedContainer​(DesignableContainer container)
        Selects this designable container's tab.
        Parameters:
        container - the container to get the tab for
        Throws:
        java.lang.IllegalArgumentException - if the container is not open.
      • getSelectedContainer

        public DesignableContainer getSelectedContainer()
        The currently selected designable container, or null if none is selected
      • getSelectedDesignPanel

        @Nullable
        public DesignPanel getSelectedDesignPanel()
      • getSelectedItems

        public java.util.List<javax.swing.JComponent> getSelectedItems()
        Returns the current selection list. (defensive copy)
      • getSelectedItemsCount

        public int getSelectedItemsCount()
        The number of items currently selected
      • setSelectedItems

        public void setSelectedItems​(javax.swing.JComponent... newSelection)
        Sets the selection to the components in the list
      • setSelectedItems

        public void setSelectedItems​(java.util.List<javax.swing.JComponent> newSelection)
        Sets the selection to the items in the list.
      • toggleItemSelection

        public void toggleItemSelection​(javax.swing.JComponent... newSelection)
      • isOpen

        public boolean isOpen​(ResourcePath resourcePath)
      • getOpenContainerCount

        public int getOpenContainerCount()
      • isDesignTime

        public boolean isDesignTime()
      • isZoomingEnabled

        public boolean isZoomingEnabled()
        Returns whether or not the zoom level of design panels can be altered. Default is always true.
      • setDesignTime

        public void setDesignTime​(boolean designing)
      • findDesignableContainer

        public DesignableContainer findDesignableContainer​(ResourcePath resourcePath)
        Finds a DesignableContainer that is currently open for editing in this workspace.
        Parameters:
        resourcePath - The resource path of the resource container to look for
        Returns:
        The container with the given id and scope, or null if that resource isn't currently open.
      • getTabToolTip

        @Nullable
        protected abstract java.lang.String getTabToolTip​(@Nonnull
                                                          DesignableContainer container)
        Return the tooltip for the tab representing the given container
      • getTabPopupMenu

        @Nullable
        protected javax.swing.JPopupMenu getTabPopupMenu​(@Nonnull
                                                         DesignableContainer container)
        Return the popup menu to display for a given tab on right click
        Parameters:
        container - a selected container
        Returns:
        the constructed menu (default has close, close others, and close all actions) or null for no menu
      • close

        protected void close​(DesignableContainer container)
        Closes the DesignPanel for the given container, if it is open.
      • removeTab

        protected void removeTab​(DesignableContainer container)
        Closes the DesignPanel for the given container without saving. Used for reconnect
      • setCurrentTool

        public void setCurrentTool​(IDesignTool newTool)
      • onCurrentToolChanged

        protected void onCurrentToolChanged​(IDesignTool oldTool,
                                            IDesignTool newTool)
        Provides AbstractDesignableWorkspace subclasses a way to be notified when the design tool has been changed.
      • updateSelectionControl

        public void updateSelectionControl()

        Called when the selection changes or the design tool changes (since the ISelectionControl is created by the IDesignTool), or the design tool notifies the system that it has changed itself.

        Allows the currently installed IDesignTool to create a new ISelectionControl (handle set) and install it on the selection.

      • onBeforeClose

        protected boolean onBeforeClose​(DesignableContainer container)
        Provides subclasses a chance to intercept when a tab is closed. Return false to prevent the tab from closing.
      • onClose

        protected void onClose​(DesignableContainer container)
        Provides subclasses a chance to handle when a tab is closed
      • onEditorPaint

        public void onEditorPaint​(DesignPanel panel,
                                  java.awt.Graphics g)
        Provides subclasses a chance to paint onto each tab's DesignPanel background
      • getEditorBackground

        public abstract java.awt.Color getEditorBackground()
        The background color for the design panels
      • getGridSettings

        public abstract IGridSettings getGridSettings()
        Returns the settings for the grid/guide/snapping system
      • getSelectionPopupMenu

        public javax.swing.JPopupMenu getSelectionPopupMenu​(java.util.List<javax.swing.JComponent> component)
        Gives the workspace a chance to provide a popup menu for the currently selected items
      • updateMouseLocation

        public void updateMouseLocation​(int x,
                                        int y)
        Called when the mouse moves over the design area. Coordinates will be (-1, -1) when the mouse leaves the area.
      • getItemDelegate

        public abstract DesignableDelegate getItemDelegate​(DesignableContainer container)
        Called to provide the DesignableDelegate that is appropriate for the given DesignableContainer
      • restrictMovementToParentBounds

        public boolean restrictMovementToParentBounds()
      • getAcceptableDropActions

        public int getAcceptableDropActions​(java.awt.dnd.DropTargetDragEvent event)
      • findDropTarget

        public javax.swing.JComponent findDropTarget​(java.util.List<javax.swing.JComponent> itemsUnderDrop,
                                                     java.awt.dnd.DropTargetDragEvent event)
        Override to allow dropping onto items
      • handleDrop

        public boolean handleDrop​(java.lang.Object droppedOn,
                                  java.awt.dnd.DropTargetDropEvent event)
      • handleDoubleClick

        public void handleDoubleClick​(java.awt.Point p)
        Called when the user double-clicks using the selection tool.
      • handleEditClick

        public void handleEditClick​(java.awt.Point p)
        Called when the user edit-clicks a component (clicks on an already selected component)
      • paintInteractionLayerLow

        public void paintInteractionLayerLow​(java.awt.Graphics2D g,
                                             DesignableContainer c)
      • paintInteractionLayerHigh

        public void paintInteractionLayerHigh​(java.awt.Graphics2D g,
                                              DesignableContainer c)