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.
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
javax.swing.JTabbedPane.AccessibleJTabbedPane, javax.swing.JTabbedPane.ModelListener
javax.swing.JComponent.AccessibleJComponent
Modifier and Type | Field and Description |
---|---|
protected IDesignTool |
currentTool
The currently selected tool.
|
protected ProjectScope |
defaultScope |
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 org.apache.log4j.Logger |
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
|
_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
changeEvent, changeListener, model, SCROLL_TAB_LAYOUT, tabPlacement, WRAP_TAB_LAYOUT
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
Modifier | Constructor and Description |
---|---|
protected |
AbstractDesignableWorkspace(ProjectScope defaultScope) |
Modifier and Type | Method and Description |
---|---|
void |
addDesignableWorkspaceListener(DesignableWorkspaceListener listener) |
protected void |
close(DesignableContainer container)
Closes the DesignPanel for the given container, if it is open.
|
DesignableContainer |
findDesignableContainer(long resourceId)
Finds a DesignableContainer that is currently open for editing in this workspace.
|
DesignableContainer |
findDesignableContainer(long resourceId,
ProjectScope scope)
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() |
ProjectScope |
getDefaultScope()
The default scope for resources opened by this workspace
|
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 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(long id) |
boolean |
isOpen(long id,
ProjectScope scope) |
boolean |
isZoomingEnabled()
Returns whether or not the zoom level of design panels can be altered.
|
protected DesignPanel |
newDesignPanel(DesignableContainer container) |
protected org.apache.log4j.Logger |
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(javax.swing.JComponent... newSelection)
Sets the selection to the components in the list
|
void |
setSelectedItems(java.util.List<javax.swing.JComponent> newSelection)
Sets the selection to the items in the list.
|
protected abstract void |
setStatusMessage(java.lang.String message)
Called when the tool or design panel has a status message to display.
|
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) |
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, 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
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, removeAll, removeChangeListener, setBackgroundAt, setDisabledIconAt, setDisplayedMnemonicIndexAt, setEnabledAt, setForegroundAt, setIconAt, setMnemonicAt, setModel, setSelectedComponent, setTabComponentAt, setTabLayoutPolicy, setTabPlacement, setTitleAt, setToolTipTextAt
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
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
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, getPeer, 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, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
public static final java.lang.String DESIGNABLE_CONTAINER_ICON_KEY
public static final java.lang.String DESIGNTIME_PROPNAME
protected java.util.Map<DesignableContainer,DesignPanel> openContainers
protected final ProjectScope defaultScope
protected IDesignTool selectionTool
protected IDesignTool currentTool
protected ISelectionControl selectionControl
protected java.util.List<DesignableWorkspaceListener> listeners
protected java.util.List<javax.swing.JComponent> selectedItems
protected org.apache.log4j.Logger log
protected AbstractDesignableWorkspace(ProjectScope defaultScope)
public ProjectScope getDefaultScope()
public void openArbitraryTab(javax.swing.JComponent component, javax.swing.Icon icon, java.lang.String tabText, java.lang.String toolTipText)
protected IDesignTool newSelectionTool()
public void updateStatusBarText(java.awt.Point location, int inputMask)
protected abstract void setStatusMessage(java.lang.String message)
protected org.apache.log4j.Logger newLogger()
public IDesignTool getSelectionTool()
public void setSelectedContainer(DesignableContainer container)
container
- java.lang.IllegalArgumentException
- if the container is not open.public DesignableContainer getSelectedContainer()
public DesignPanel getSelectedDesignPanel()
public java.util.List<javax.swing.JComponent> getSelectedItems()
public int getSelectedItemsCount()
public void setSelectedItems(javax.swing.JComponent... newSelection)
public void setSelectedItems(java.util.List<javax.swing.JComponent> newSelection)
public void toggleItemSelection(javax.swing.JComponent... newSelection)
public boolean isOpen(DesignableContainer container)
public boolean isOpen(long id)
public boolean isOpen(long id, ProjectScope scope)
public int getOpenContainerCount()
public boolean isDesignTime()
public boolean isZoomingEnabled()
public void setDesignTime(boolean designing)
public DesignableContainer findDesignableContainer(long resourceId)
public DesignableContainer findDesignableContainer(long resourceId, ProjectScope scope)
resourceId
- The resource id of the resource container to look forscope
- The project scope of the resource container to look forprotected abstract java.lang.String getTabToolTip(DesignableContainer container)
protected void open(DesignableContainer container)
protected DesignPanel newDesignPanel(DesignableContainer container)
protected void close(DesignableContainer container)
protected void removeTab(DesignableContainer container)
public IDesignTool getCurrentTool()
public void setCurrentTool(IDesignTool newTool)
protected void onCurrentToolChanged(IDesignTool oldTool, IDesignTool newTool)
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.
public ISelectionControl getSelectionControl()
protected boolean onBeforeClose(DesignableContainer container)
protected void onClose(DesignableContainer container)
public void onEditorPaint(DesignPanel panel, java.awt.Graphics g)
public abstract java.awt.Color getEditorBackground()
public abstract IGridSettings getGridSettings()
public javax.swing.JPopupMenu getSelectionPopupMenu(java.util.List<javax.swing.JComponent> component)
public void updateMouseLocation(int x, int y)
public abstract DesignableDelegate getItemDelegate(DesignableContainer container)
public boolean restrictMovementToParentBounds()
public int getAcceptableDropActions(java.awt.dnd.DropTargetDragEvent event)
public javax.swing.JComponent findDropTarget(java.util.List<javax.swing.JComponent> itemsUnderDrop, java.awt.dnd.DropTargetDragEvent event)
public boolean handleDrop(java.lang.Object droppedOn, java.awt.dnd.DropTargetDropEvent event)
public void handleDoubleClick(java.awt.Point p)
public void handleEditClick(java.awt.Point p)
public void addDesignableWorkspaceListener(DesignableWorkspaceListener listener)
public void removeDesignableWorkspaceListener(DesignableWorkspaceListener listener)
public void paintInteractionLayerLow(java.awt.Graphics2D g, DesignableContainer c)
public void paintInteractionLayerHigh(java.awt.Graphics2D g, DesignableContainer c)