java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JPanel
org.autogui.swing.GuiSwingViewObjectPane.ObjectPane
- All Implemented Interfaces:
ImageObserver,MenuContainer,Serializable,Accessible,GuiMappingContext.SourceUpdateListener,GuiSwingView.ValuePane<Object>,GuiSwingPrefsSupports.PreferencesUpdateSupport
- Direct Known Subclasses:
GuiSwingViewTabbedPane.ObjectTabbedPane
- Enclosing class:
GuiSwingViewObjectPane
public static class GuiSwingViewObjectPane.ObjectPane
extends JPanel
implements GuiMappingContext.SourceUpdateListener, GuiSwingView.ValuePane<Object>, GuiSwingPrefsSupports.PreferencesUpdateSupport
actionToolBar: [JToolBar: actionButtons...],
contentPane: [
fixedSizeComponent1,
...
resizableSubComponents [
[splitPane: resizableComponent1 |
[splitPane: resizableComponent2 | ... ]
]
],
fixedSizeComponent2,
fixedSizeComponent3,
... ]
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class javax.swing.JPanel
JPanel.AccessibleJPanelNested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponentNested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainerNested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected JToolBarprotected Map<String, JComponent> recording mapping between prop (context) name to subcomponentprotected JComponentprotected GuiMappingContextprotected booleanthe default setting for the orientation of split-panesprotected MenuBuilder.MenuLabelprotected SettingsWindow.LabelGroupprotected List<PopupCategorized.CategorizedMenuItem> protected PopupExtensionprotected JComponentprotected GuiSwingView.SpecifierManagerprotected List<JSplitPane> protected GuiTaskClockFields inherited from class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOWFields inherited from class java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENTFields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH -
Constructor Summary
ConstructorsConstructorDescriptionObjectPane(GuiMappingContext context, GuiSwingView.SpecifierManager specifierManager) -
Method Summary
Modifier and TypeMethodDescriptionvoidvoidaddAction(Action action, GuiMappingContext subContext) adding the action created from subContextvoidaddSubComponent(JComponent component, boolean resizable) voidaddSubComponent(JComponent component, boolean resizable, GuiMappingContext subContext) adding a child componentvoidaddSubComponentResizable(JComponent component) voidcreateResizableSplit(boolean horizontal, Component left, Component right) voidfit()getPopup()a typical implementation if there are no dynamic items becomes like the following code:a typical implementation becomes like the following code:protected SearchTextFieldgetTargetForTextAction(GuiMappingContext subContext) obtains action target for a sub-context.voidinit()voidvoidvoidvoidvoidvoidvoidvoidvoidinitName()voidvoidvoidcalled frominit(); set defaultSplitOrientationHorizontal from the context typebooleanvoidloadSwingPreferences(GuiPreferences prefs, GuiSwingPrefsApplyOptions options) a sub-class which wraps another value-pane should overrides the method in order to omit needless value setting.voidfor each component, the method is called before refreshing in order to clear the view-clock.voidonly save the component itself, not including children.voidsetDefaultSplitOrientationHorizontal(boolean defaultSplitOrientationHorizontal) voidsetKeyStrokeString(String keyStrokeString) set the key-stroke info.voidvoidsetSwingViewValue(Object value) special case: update the sourcevoidsetSwingViewValue(Object value, GuiTaskClock clock) update if the clock is newer than the current view-clock of the pane.voidupdate the GUI display and the model.voidsetSwingViewValueWithUpdate(Object value, GuiTaskClock clock) update the GUI display and the model if the clock is newer than the current view-clock of the pane.voidupdate(GuiMappingContext cause, Object newValue, GuiTaskClock clock) voidupdateFromGui(Object v, GuiTaskClock viewClock) Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUIMethods 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, updateMethods 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, validateTreeMethods 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, transferFocusUpCycleMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.autogui.swing.GuiSwingView.ValuePane
addSwingEditFinishHandler, asSwingViewComponent, executeContextTask, getActionByContext, getActionByName, getChildByName, getDescendantActionByContext, getDescendantByContext, getDescendantByValue, getDescendantByValueIf, getPrefsJsonSupported, getSwingFocusKeyStroke, isSwingCurrentValueSupported, isSwingEditable, loadSwingPreferences, refreshByContext, requestSwingViewFocus, setPrefsJsonSupported, setSwingViewHistoryValue, setSwingViewValueForTable, shutdownSwingView, updateSwingViewSource, updateSwingViewSourceFromRoot, wrapSwingNamed, wrapSwingPane, wrapSwingProperty, wrapSwingScrollPane
-
Field Details
-
context
-
specifierManager
-
actionToolBar
-
contentPane
-
resizableSubComponents
-
popup
-
actions
-
infoLabel
-
splitPanes
-
preferencesUpdater
-
labelGroup
-
defaultSplitOrientationHorizontal
protected boolean defaultSplitOrientationHorizontalthe default setting for the orientation of split-panes- Since:
- 1.5
-
childContextToComponents
recording mapping between prop (context) name to subcomponent- Since:
- 1.5
-
viewClock
-
-
Constructor Details
-
ObjectPane
-
-
Method Details
-
init
public void init() -
initName
public void initName() -
initLayout
public void initLayout() -
initBorder
public void initBorder() -
initContentPane
public void initContentPane() -
initLabelGroup
public void initLabelGroup() -
initPreferencesUpdater
public void initPreferencesUpdater() -
initContextUpdate
public void initContextUpdate() -
initPopup
public void initPopup() -
initFocus
public void initFocus() -
initDragDrop
public void initDragDrop() -
initSplitDefaultOrientation
public void initSplitDefaultOrientation()called frominit(); set defaultSplitOrientationHorizontal from the context type- Since:
- 1.8
-
getSwingStaticMenuItems
Description copied from interface:GuiSwingView.ValuePanea typical implementation becomes like the following code:if (menuItems == null) { menuItems =PopupCategorized.getMenuItems(actions, menus); } return menuItems;the method returns original menu items for the pane. so, if a wrapper pane has a wrapped sub-pane added as a child component, it should not include items of the wrapped sub-pane.
- Specified by:
getSwingStaticMenuItemsin interfaceGuiSwingView.ValuePane<Object>- Returns:
- a list of actions (or menu-components) statically determined, that should be always same instances
-
getActions
-
getContentPane
-
getActionToolBar
-
getResizableSubComponents
-
isDefaultSplitOrientationHorizontal
public boolean isDefaultSplitOrientationHorizontal()- Returns:
- the default value is true
- Since:
- 1.8
-
setDefaultSplitOrientationHorizontal
public void setDefaultSplitOrientationHorizontal(boolean defaultSplitOrientationHorizontal) - Parameters:
defaultSplitOrientationHorizontal- the flag- Since:
- 1.8
-
update
- Specified by:
updatein interfaceGuiMappingContext.SourceUpdateListener
-
addSubComponent
adding a child component- Parameters:
component- the component for the subContextresizable- true if the component is resizablesubContext- a target child of the context of the pane- Since:
- 1.5
-
addSubComponent
-
addSubComponentResizable
-
createResizableSubComponents
-
createResizableSplit
-
afterActionsAdded
public void afterActionsAdded() -
fit
public void fit() -
getSplitPanes
-
addAction
adding the action created from subContext- Parameters:
action- the action for subContextsubContext- a child context of the context of the pane- Since:
- 1.5
-
getTargetForTextAction
obtains action target for a sub-context. if the action is "xyzAction" then, searches the "xyz" property, and it is aSearchTextField, then it can combine the action and the field as like [ field [action] ]- Parameters:
subContext- the context of the action- Returns:
- non-null target-field if exists, or null
-
addAction
-
initActionToolBar
public void initActionToolBar() -
getSwingViewValue
- Specified by:
getSwingViewValuein interfaceGuiSwingView.ValuePane<Object>- Returns:
- basically, the source value of the context, held by the component without touching the context.
-
setSwingViewValue
special case: update the source- Specified by:
setSwingViewValuein interfaceGuiSwingView.ValuePane<Object>- Parameters:
value- the new value
-
setSwingViewValueWithUpdate
Description copied from interface:GuiSwingView.ValuePaneupdate the GUI display and the model. processed under the event thread. also increment the view-clock- Specified by:
setSwingViewValueWithUpdatein interfaceGuiSwingView.ValuePane<Object>- Parameters:
value- the new value
-
updateFromGui
-
setSwingViewValue
Description copied from interface:GuiSwingView.ValuePaneupdate if the clock is newer than the current view-clock of the pane. the view-clock becomes the given clock. Note: instead,GuiSwingView.ValuePane.setSwingViewValue(Object)increments the current clock- Specified by:
setSwingViewValuein interfaceGuiSwingView.ValuePane<Object>- Parameters:
value- the new valueclock- the clock of the value: if the clock is newer than the current view-clock of the pane, it can update
-
setSwingViewValueWithUpdate
Description copied from interface:GuiSwingView.ValuePaneupdate the GUI display and the model if the clock is newer than the current view-clock of the pane. the view-clock becomes the given clock.- Specified by:
setSwingViewValueWithUpdatein interfaceGuiSwingView.ValuePane<Object>- Parameters:
value- the new valueclock- the clock of the value
-
getSwingMenuBuilder
Description copied from interface:GuiSwingView.ValuePanea typical implementation if there are no dynamic items becomes like the following code:if (popup == null) { popup = newPopupExtension(this, newPopupCategorized(this::getSwingStaticMenuItems)); } return popup.getMenuBuilder();- Specified by:
getSwingMenuBuilderin interfaceGuiSwingView.ValuePane<Object>- Returns:
- a menu builder
-
getSwingViewContext
- Specified by:
getSwingViewContextin interfaceGuiSwingView.ValuePane<Object>
-
loadSwingPreferences
Description copied from interface:GuiSwingView.ValuePanea sub-class which wraps another value-pane should overrides the method in order to omit needless value setting. it can useGuiSwingView.loadPreferencesDefault(JComponent, GuiPreferences)- Specified by:
loadSwingPreferencesin interfaceGuiSwingView.ValuePane<Object>- Parameters:
prefs- target prefs or ancestor of the target; actual target can be obtained byGuiPreferences.getDescendant(GuiMappingContext)options- options for applying
-
saveSwingPreferences
Description copied from interface:GuiSwingView.ValuePaneonly save the component itself, not including children. it can useGuiSwingView.savePreferencesDefault(JComponent, GuiPreferences)- Specified by:
saveSwingPreferencesin interfaceGuiSwingView.ValuePane<Object>- Parameters:
prefs- target prefs or ancestor of the target; actual target can be obtained byGuiPreferences.getDescendant(GuiMappingContext)
-
setPreferencesUpdater
- Specified by:
setPreferencesUpdaterin interfaceGuiSwingPrefsSupports.PreferencesUpdateSupport
-
getSpecifier
- Specified by:
getSpecifierin interfaceGuiSwingView.ValuePane<Object>- Returns:
- the specifier for the context value, typically obtained from
GuiSwingView.SpecifierManager
-
getPopup
-
setKeyStrokeString
Description copied from interface:GuiSwingView.ValuePaneset the key-stroke info. to the pane as a guide- Specified by:
setKeyStrokeStringin interfaceGuiSwingView.ValuePane<Object>- Parameters:
keyStrokeString- the key stroke info to be set.
-
prepareForRefresh
public void prepareForRefresh()Description copied from interface:GuiSwingView.ValuePanefor each component, the method is called before refreshing in order to clear the view-clock.- Specified by:
prepareForRefreshin interfaceGuiSwingView.ValuePane<Object>
-