Class AbstractDesignableWorkspace
java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JTabbedPane
com.jidesoft.swing.JideTabbedPane
com.inductiveautomation.ignition.designer.designable.AbstractDesignableWorkspace
- All Implemented Interfaces:
- ImageObserver,- MenuContainer,- Serializable,- Accessible,- 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:
- 
Nested Class SummaryNested classes/interfaces inherited from class com.jidesoft.swing.JideTabbedPanecom.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.TabListCellRendererNested classes/interfaces inherited from class javax.swing.JTabbedPaneJTabbedPane.AccessibleJTabbedPane, JTabbedPane.ModelListenerNested classes/interfaces inherited from class javax.swing.JComponentJComponent.AccessibleJComponentNested classes/interfaces inherited from class java.awt.ContainerContainer.AccessibleAWTContainerNested classes/interfaces inherited from class java.awt.ComponentComponent.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
- 
Field SummaryFieldsModifier and TypeFieldDescriptionprotected IDesignToolThe currently selected tool.static final Stringstatic final Stringprotected List<DesignableWorkspaceListener>These listeners are notified when things happen to the designable workspace such as switching selected designable containers.protected LoggerExprotected Map<DesignableContainer,DesignPanel> Holds all of the currently editing containersprotected List<JComponent>The currently selected componentsprotected ISelectionControlThe current "selection control" - which is what typically adds handles to the selected components.protected IDesignToolThe standard tool - used for moving, resizing, and marquee selectionFields 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_PROPERTYFields inherited from class javax.swing.JTabbedPanechangeEvent, changeListener, model, SCROLL_TAB_LAYOUT, tabPlacement, WRAP_TAB_LAYOUTFields inherited from class javax.swing.JComponentlistenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOWFields inherited from class java.awt.ComponentaccessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENTFields inherited from interface java.awt.image.ImageObserverABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTHFields inherited from interface javax.swing.SwingConstantsBOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionvoidprotected voidclose(DesignableContainer container) Closes the DesignPanel for the given container, if it is open.protected Optional<JComponent>findDesignableContainer(ResourcePath resourcePath) Finds a DesignableContainer that is currently open for editing in this workspace.findDropTarget(List<JComponent> itemsUnderDrop, DropTargetDragEvent event) Override to allow dropping onto itemsintThe background color for the design panelsabstract IGridSettingsReturns the settings for the grid/guide/snapping systemabstract DesignableDelegategetItemDelegate(DesignableContainer container) Called to provide the DesignableDelegate that is appropriate for the given DesignableContainerintThe currently selected designable container, or null if none is selectedReturns the current selection list.intThe number of items currently selectedgetSelectionPopupMenu(List<JComponent> component) Gives the workspace a chance to provide a popup menu for the currently selected itemsprotected JPopupMenugetTabPopupMenu(DesignableContainer container) Return the popup menu to display for a given tab on right clickprotected abstract StringgetTabToolTip(DesignableContainer container) Return the tooltip for the tab representing the given containervoidCalled when the user double-clicks using the selection tool.booleanhandleDrop(Object droppedOn, DropTargetDropEvent event) voidCalled when the user edit-clicks a component (clicks on an already selected component)booleanbooleanisOpen(DesignableContainer container) booleanisOpen(ResourcePath resourcePath) booleanReturns whether or not the zoom level of design panels can be altered.protected DesignPanelnewDesignPanel(DesignableContainer container) protected LoggerExprotected IDesignToolprotected booleanonBeforeClose(DesignableContainer container) Provides subclasses a chance to intercept when a tab is closed.protected voidonClose(DesignableContainer container) Provides subclasses a chance to handle when a tab is closedprotected voidonCurrentToolChanged(IDesignTool oldTool, IDesignTool newTool) Provides AbstractDesignableWorkspace subclasses a way to be notified when the design tool has been changed.voidonEditorPaint(DesignPanel panel, Graphics g) Provides subclasses a chance to paint onto each tab's DesignPanel backgroundprotected voidopen(DesignableContainer container) voidopenArbitraryTab(JComponent component, Icon icon, String tabText, String toolTipText) voidvoidvoidprotected voidremoveTab(DesignableContainer container) Closes the DesignPanel for the given container without saving.booleanvoidsetCurrentTool(IDesignTool newTool) voidsetDesignTime(boolean designing) voidsetSelectedContainer(DesignableContainer container) Selects this designable container's tab.voidsetSelectedItems(List<JComponent> newSelection) Sets the selection to the items in the list.voidsetSelectedItems(JComponent... newSelection) Sets the selection to the components in the listprotected abstract voidsetStatusMessage(String message) Called when the tool or design panel has a status message to display.protected voidsetupWorkspaceHomeTab(Icon icon, JComponent welcomePanel) voidtoggleItemSelection(JComponent... newSelection) voidupdateMouseLocation(int x, int y) Called when the mouse moves over the design area.voidCalled 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.voidupdateStatusBarText(Point location, int inputMask) Methods inherited from class com.jidesoft.swing.JideTabbedPaneadd, 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, 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, updateUIMethods inherited from class javax.swing.JTabbedPaneadd, 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, setToolTipTextAtMethods inherited from class javax.swing.JComponentaddAncestorListener, 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, updateMethods inherited from class java.awt.ContaineraddContainerListener, 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, validateTreeMethods inherited from class java.awt.Componentaction, 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
- 
Field Details- 
DESIGNABLE_CONTAINER_ICON_KEY- See Also:
 
- 
DESIGNTIME_PROPNAME- See Also:
 
- 
openContainersHolds all of the currently editing containers
- 
selectionToolThe standard tool - used for moving, resizing, and marquee selection
- 
currentToolThe currently selected tool.
- 
selectionControlThe current "selection control" - which is what typically adds handles to the selected components. May be null.
- 
listenersThese listeners are notified when things happen to the designable workspace such as switching selected designable containers.
- 
selectedItemsThe currently selected components
- 
log
 
- 
- 
Constructor Details- 
AbstractDesignableWorkspaceprotected AbstractDesignableWorkspace()
 
- 
- 
Method Details- 
setupWorkspaceHomeTab
- 
createWorkspaceHomeTab
- 
openArbitraryTab
- 
newSelectionTool
- 
updateStatusBarText
- 
setStatusMessageCalled when the tool or design panel has a status message to display. Should be some sort of passive status display, not a popup.
- 
newLogger
- 
getSelectionTool
- 
setSelectedContainerSelects this designable container's tab.- Parameters:
- container- the container to get the tab for
- Throws:
- IllegalArgumentException- if the container is not open.
 
- 
getSelectedContainerThe currently selected designable container, or null if none is selected
- 
getSelectedDesignPanel
- 
getSelectedItemsReturns the current selection list. (defensive copy)
- 
getSelectedItemsCountpublic int getSelectedItemsCount()The number of items currently selected
- 
setSelectedItemsSets the selection to the components in the list
- 
setSelectedItemsSets the selection to the items in the list.
- 
toggleItemSelection
- 
isOpen
- 
isOpen
- 
getOpenContainerCountpublic int getOpenContainerCount()
- 
isDesignTimepublic boolean isDesignTime()
- 
isZoomingEnabledpublic boolean isZoomingEnabled()Returns whether or not the zoom level of design panels can be altered. Default is always true.
- 
setDesignTimepublic void setDesignTime(boolean designing) 
- 
findDesignableContainerFinds 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.
 
- 
getTabToolTipReturn the tooltip for the tab representing the given container
- 
getTabPopupMenuReturn 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
 
- 
open
- 
newDesignPanel
- 
closeCloses the DesignPanel for the given container, if it is open.
- 
removeTabCloses the DesignPanel for the given container without saving. Used for reconnect
- 
getCurrentTool
- 
setCurrentTool
- 
onCurrentToolChangedProvides AbstractDesignableWorkspace subclasses a way to be notified when the design tool has been changed.
- 
updateSelectionControlpublic 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. 
- 
getSelectionControl
- 
onBeforeCloseProvides subclasses a chance to intercept when a tab is closed. Return false to prevent the tab from closing.
- 
onCloseProvides subclasses a chance to handle when a tab is closed
- 
onEditorPaintProvides subclasses a chance to paint onto each tab's DesignPanel background
- 
getEditorBackgroundThe background color for the design panels
- 
getGridSettingsReturns the settings for the grid/guide/snapping system
- 
getSelectionPopupMenuGives the workspace a chance to provide a popup menu for the currently selected items
- 
updateMouseLocationpublic 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.
- 
getItemDelegateCalled to provide the DesignableDelegate that is appropriate for the given DesignableContainer
- 
restrictMovementToParentBoundspublic boolean restrictMovementToParentBounds()
- 
getAcceptableDropActions
- 
findDropTargetOverride to allow dropping onto items
- 
handleDrop
- 
handleDoubleClickCalled when the user double-clicks using the selection tool.
- 
handleEditClickCalled when the user edit-clicks a component (clicks on an already selected component)
- 
addDesignableWorkspaceListener
- 
removeDesignableWorkspaceListener
- 
paintInteractionLayerLow
- 
paintInteractionLayerHigh
 
-