Class ActionPanelPropertiesDialog
java.lang.Object
java.awt.Component
java.awt.Container
java.awt.Window
java.awt.Dialog
javax.swing.JDialog
ca.corbett.extras.properties.dialog.PropertiesDialog
ca.corbett.extras.properties.dialog.ActionPanelPropertiesDialog
- All Implemented Interfaces:
ImageObserver,MenuContainer,Serializable,Accessible,RootPaneContainer,WindowConstants
A PropertiesDialog implementation that uses an ActionPanel on the left to show the categories and subcategories,
and a CardLayout on the right to show the corresponding FormPanel for the selected category/subcategory.
- Since:
- swing-extras 2.8
- Author:
- scorbo2
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class javax.swing.JDialog
JDialog.AccessibleJDialogNested classes/interfaces inherited from class java.awt.Dialog
Dialog.AccessibleAWTDialog, Dialog.ModalExclusionType, Dialog.ModalityTypeNested classes/interfaces inherited from class java.awt.Window
Window.AccessibleAWTWindow, Window.TypeNested 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
Fields inherited from class ca.corbett.extras.properties.dialog.PropertiesDialog
alignment, borderMargin, categories, DEFAULT_ALIGNMENT, DEFAULT_BORDER_MARGIN, DIALOG_PROP, formPanels, INITIAL_HEIGHT, INITIAL_WIDTH, keyStrokeManager, MINIMUM_HEIGHT, MINIMUM_WIDTH, owner, properties, subcategoriesByCategoryFields inherited from class javax.swing.JDialog
accessibleContext, rootPane, rootPaneCheckingEnabledFields inherited from class java.awt.Dialog
DEFAULT_MODALITY_TYPEFields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENTFields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTHFields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE -
Constructor Summary
ConstructorsConstructorDescriptionActionPanelPropertiesDialog(Window owner, String title, List<AbstractProperty> properties, boolean addPanelHeaders) It's generally preferable to use the create factory methods in the parent PropertiesDialog class, but you can directly instantiate this class if you want. -
Method Summary
Modifier and TypeMethodDescriptionThere are a crazy number of options for ActionPanel, so rather than write wrapper methods for each of them, we just expose the ActionPanel directly.protected voidSets up the layout of this dialog and populates formPanelList with the FormPanels to be used in this dialog.protected voidmakeFormPanelVisible(FormPanel formPanel) This will be invoked by our validation method in the case where a form validation error occurs.protected voidIn this PropertiesDialog implementation, we will generate a FormPanel for each subcategory, then group those FormPanels together in ActionGroups named after the top-level categories.Methods inherited from class ca.corbett.extras.properties.dialog.PropertiesDialog
buildButtonPanel, createActionPanelDialog, createClassicDialog, dispose, findFormField, setAlignment, setBorderMargin, setVisible, validateFormAndClose, wasOkayedMethods inherited from class javax.swing.JDialog
addImpl, createRootPane, dialogInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, updateMethods inherited from class java.awt.Dialog
addNotify, getModalityType, getTitle, hide, isModal, isResizable, isUndecorated, setBackground, setModal, setModalityType, setOpacity, setResizable, setShape, setTitle, setUndecorated, show, toBackMethods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, getBackground, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOpacity, getOwnedWindows, getOwner, getOwnerlessWindows, getShape, getToolkit, getType, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isAutoRequestFocus, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isOpaque, isShowing, isValidateRoot, pack, paint, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeNotify, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setAutoRequestFocus, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImage, setIconImages, setLocation, setLocation, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setType, toFrontMethods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, 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, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, requestFocusInWindow, resize, resize, revalidate, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setMaximumSize, setMixingCutoutShape, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
Constructor Details
-
ActionPanelPropertiesDialog
public ActionPanelPropertiesDialog(Window owner, String title, List<AbstractProperty> properties, boolean addPanelHeaders) It's generally preferable to use the create factory methods in the parent PropertiesDialog class, but you can directly instantiate this class if you want.- Parameters:
owner- the parent window for this dialogtitle- the title to show in the dialog headerproperties- the list of properties to show in this dialog.addPanelHeaders- true to auto-generate a header label for each FormPanel.
-
-
Method Details
-
getActionPanel
There are a crazy number of options for ActionPanel, so rather than write wrapper methods for each of them, we just expose the ActionPanel directly. Refer to the ActionPanel Javadocs for details on what you can do with it, or refer to the built-in demo application to see examples of it in action! You can make cosmetic/styling changes to the ActionPanel before or after showing the dialog. Adding or removing actions or action groups, however, is not recommended - better to leave that to this class.- Returns:
- The ActionPanel used in this dialog, which you can customize as needed.
-
populateFormPanels
protected void populateFormPanels()In this PropertiesDialog implementation, we will generate a FormPanel for each subcategory, then group those FormPanels together in ActionGroups named after the top-level categories. This is a better style than the "classic" tabbed pane style, particularly for very large properties dialogs with many categories and subcategories. Clicking any subcategory in the ActionPanel on the left will show the corresponding FormPanel on the right.- Specified by:
populateFormPanelsin classPropertiesDialog
-
initLayout
protected void initLayout()Description copied from class:PropertiesDialogSets up the layout of this dialog and populates formPanelList with the FormPanels to be used in this dialog. Descendant classes must implement this method. The expectation is that the subclass will populate the BorderLayout.CENTER region, but subclasses are also free to install something else in the NORTH, EAST, or WEST regions if they wish. The SOUTH region is reserved for our button panel.- Specified by:
initLayoutin classPropertiesDialog
-
makeFormPanelVisible
Description copied from class:PropertiesDialogThis will be invoked by our validation method in the case where a form validation error occurs. Descendant classes must implement this method to make the given FormPanel visible to the user, so that they can see the validation errors and fix them. The details of how to do this will depend on how FormPanels are presented in this dialog, so it is left up to descendant classes.- Specified by:
makeFormPanelVisiblein classPropertiesDialog- Parameters:
formPanel- The FormPanel that contains validation errors that the user needs to fix.
-