Module is.codion.swing.framework.ui
Package is.codion.swing.framework.ui
Class EntityEditComponentPanel
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JPanel
-
- is.codion.swing.framework.ui.EntityEditComponentPanel
-
- All Implemented Interfaces:
ImageObserver
,MenuContainer
,Serializable
,Accessible
- Direct Known Subclasses:
EntityEditPanel
public class EntityEditComponentPanel extends JPanel
A base class for entity edit panels, providing components for editing entities.- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class javax.swing.JPanel
JPanel.AccessibleJPanel
-
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
-
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
-
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
-
-
Field Summary
Fields Modifier and Type Field Description static PropertyValue<Integer>
MODIFIED_INDICATOR_UNDERLINE_STYLE
The type of underline to use to indicate a modified value
Value type: Integer
Default value:TextAttribute.UNDERLINE_LOW_DOTTED
Valid values:TextAttribute
.UNDERLINE_*static PropertyValue<Boolean>
USE_MODIFIED_INDICATOR
Specifies whether label text should be underlined to indicate that the associated value is modified
Value type: Boolean
Default value: true-
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
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
EntityEditComponentPanel(SwingEntityEditModel editModel)
Instantiates a new EntityEditComponentPanel
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
addInputPanel(Attribute<?> attribute)
Adds a panel for the given attribute to this panelprotected void
addInputPanel(Attribute<?> attribute, Object constraints)
Adds a panel for the given attribute to this panel using the given layout constraintsprotected void
addInputPanel(Attribute<?> attribute, JComponent inputComponent)
Adds a panel for the given attribute to this panelprotected void
addInputPanel(Attribute<?> attribute, JComponent inputComponent, Object constraints)
Adds a panel for the given attribute to this panel using the given layout constraintsprotected JComponent
afterInsertFocusComponent()
Collection<Attribute<?>>
componentAttributes()
protected <T,C extends JComboBox<T>,B extends ComboBoxBuilder<T,C,B>>
ComboBoxBuilder<T,C,B>createAttributeComboBox(Attribute<T> attribute)
Creates a builder for combo boxes, containing the values of the given attribute.protected NumberField.Builder<BigDecimal>
createBigDecimalField(Attribute<BigDecimal> attribute)
Creates a builder for big decimal fields.protected ItemComboBoxBuilder<Boolean>
createBooleanComboBox(Attribute<Boolean> attribute)
Creates a builder for boolean combo boxes.protected CheckBoxBuilder
createCheckBox(Attribute<Boolean> attribute)
Creates a builder for check boxes.protected <T,C extends JComboBox<T>,B extends ComboBoxBuilder<T,C,B>>
ComboBoxBuilder<T,C,B>createComboBox(Attribute<T> attribute, ComboBoxModel<T> comboBoxModel)
Creates a builder for combo boxes.protected NumberField.Builder<Double>
createDoubleField(Attribute<Double> attribute)
Creates a builder for double fields.protected <B extends ComboBoxBuilder<Entity,EntityComboBox,B>>
ComboBoxBuilder<Entity,EntityComboBox,B>createForeignKeyComboBox(ForeignKey foreignKey)
Creates a builder for foreign key combo boxes.protected LabelBuilder<Entity>
createForeignKeyLabel(ForeignKey foreignKey)
Creates a builder for a read-only foreign key label.protected EntitySearchField.Builder
createForeignKeySearchField(ForeignKey foreignKey)
Creates a builder for foreign key search fields.protected <B extends TextFieldBuilder<Entity,JTextField,B>>
TextFieldBuilder<Entity,JTextField,B>createForeignKeyTextField(ForeignKey foreignKey)
Creates a builder for a read-only, non-focusable foreign key text field.protected JPanel
createInputPanel(Attribute<?> attribute)
Creates a panel containing a label and the component associated with the given attribute.protected JPanel
createInputPanel(Attribute<?> attribute, JComponent inputComponent)
Creates a panel containing a label and the component associated with the given attribute.protected JPanel
createInputPanel(Attribute<?> attribute, JComponent inputComponent, String labelBorderLayoutConstraints)
Creates a panel containing a label and the component associated with the given attribute.protected JPanel
createInputPanel(Attribute<?> attribute, JComponent inputComponent, String labelBorderLayoutConstraints, int labelAlignment)
Creates a panel containing a label and the given component.protected JPanel
createInputPanel(JComponent labelComponent, JComponent inputComponent)
Creates a panel containing a label component and theinputComponent
with the label component positioned above the input component.protected JPanel
createInputPanel(JComponent labelComponent, JComponent inputComponent, String labelBorderLayoutConstraints)
Creates a panel with a BorderLayout, with theinputComponent
atBorderLayout.CENTER
and thelabelComponent
at a specified location.protected NumberField.Builder<Integer>
createIntegerField(Attribute<Integer> attribute)
Creates a builder for integer fields.protected <T> ItemComboBoxBuilder<T>
createItemComboBox(Attribute<T> attribute)
Creates a builder for value item list combo boxes.protected <T> LabelBuilder<T>
createLabel(Attribute<T> attribute)
Creates a builder for a label using the caption and mnemonic associated withattribute
.protected TemporalField.Builder<LocalDate>
createLocalDateField(Attribute<LocalDate> attribute)
Creates a builder for temporal fields.protected TemporalField.Builder<LocalDate>
createLocalDateField(Attribute<LocalDate> attribute, String dateTimePattern)
Creates a builder for temporal fields.protected TemporalField.Builder<LocalDateTime>
createLocalDateTimeField(Attribute<LocalDateTime> attribute)
Creates a builder for temporal fields.protected TemporalField.Builder<LocalDateTime>
createLocalDateTimeField(Attribute<LocalDateTime> attribute, String dateTimePattern)
Creates a builder for temporal fields.protected TemporalField.Builder<LocalTime>
createLocalTimeField(Attribute<LocalTime> attribute)
Creates a builder for temporal fields.protected TemporalField.Builder<LocalTime>
createLocalTimeField(Attribute<LocalTime> attribute, String dateTimePattern)
Creates a builder for temporal fields.protected NumberField.Builder<Long>
createLongField(Attribute<Long> attribute)
Creates a builder for long fields.protected MaskedTextFieldBuilder
createMaskedTextField(Attribute<String> attribute)
Creates a builder for formatted text fields.protected TemporalField.Builder<OffsetDateTime>
createOffsetDateTimeField(Attribute<OffsetDateTime> attribute)
Creates a builder for temporal fields.protected TemporalField.Builder<OffsetDateTime>
createOffsetDateTimeField(Attribute<OffsetDateTime> attribute, String dateTimePattern)
Creates a builder for temporal fields.protected <T extends Temporal>
TemporalField.Builder<T>createTemporalField(Attribute<T> attribute)
Creates a builder for temporal fields.protected <T extends Temporal>
TemporalField.Builder<T>createTemporalField(Attribute<T> attribute, String dateTimePattern)
Creates a builder for temporal fields.protected <T extends Temporal>
TemporalInputPanel.Builder<T>createTemporalInputPanel(Attribute<T> attribute)
Creates a builder for temporal input panels.protected <T extends Temporal>
TemporalInputPanel.Builder<T>createTemporalInputPanel(Attribute<T> attribute, String dateTimePattern)
Creates a builder for temporal input panels.protected TextAreaBuilder
createTextArea(Attribute<String> attribute)
Creates a builder for text areas.protected <T,C extends JTextField,B extends TextFieldBuilder<T,C,B>>
TextFieldBuilder<T,C,B>createTextField(Attribute<T> attribute)
Creates a builder for text fields.protected TextInputPanel.Builder
createTextInputPanel(Attribute<String> attribute)
Creates a builder for text input panels.void
displayException(Throwable exception)
Displays the exception in a dialogSwingEntityEditModel
editModel()
void
excludeComponentFromSelection(Attribute<?> attribute)
Specifies that the given attribute should be excluded when presenting a component selection list.<T> Attribute<T>
getAttribute(JComponent component)
JComponent
getComponent(Attribute<?> attribute)
protected JComponent
initialFocusComponent()
void
onException(Throwable exception)
Handles the given exception, simply displays the error message to the user by default.void
requestComponentFocus(Attribute<?> attribute)
Request focus for the component associated with the given attribute.protected void
requestFocusAfterInsert()
protected void
requestFocusAfterUpdate()
void
requestInitialFocus()
Sets the initial focus, if an initial focus component or component attribute has been set that component receives the focus, if not, or if that component is not focusable, this panel receives the focus.Collection<Attribute<?>>
selectComponentAttributes()
void
selectInputComponent()
Displays a dialog allowing the user the select an input component which should receive the keyboard focus, if only one input component is available then that component is selected automatically.void
setAfterInsertFocusAttribute(Attribute<?> attribute)
Sets the component associated with the given attribute as the component that should receive the focus after an insert is performed in this edit panel.JComponent
setAfterInsertFocusComponent(JComponent afterInsertFocusComponent)
Sets the component that should receive the focus after an insert has been performed.protected void
setComponent(Attribute<?> attribute, JComponent component)
Associates the given input component with the given attribute.protected void
setDefaultTextFieldColumns(int defaultTextFieldColumns)
Sets the default number of text field columnsvoid
setInitialFocusAttribute(Attribute<?> attribute)
Sets the component associated with the given attribute as the component that should receive the initial focus in this edit panel.JComponent
setInitialFocusComponent(JComponent initialFocusComponent)
Sets the component that should receive the focus when the UI is cleared or activated.protected void
setTransferFocusOnEnter(boolean transferFocusOnEnter)
If set to true then components created subsequently will transfer focus on enter, otherwise not.protected void
setUseModifiedIndicator(boolean useModifiedIndicator)
If set to true then component labels will indicate that the value is modified.-
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
-
Methods 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, update
-
Methods 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, 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
-
-
-
-
Field Detail
-
USE_MODIFIED_INDICATOR
public static final PropertyValue<Boolean> USE_MODIFIED_INDICATOR
Specifies whether label text should be underlined to indicate that the associated value is modified
Value type: Boolean
Default value: true- See Also:
MODIFIED_INDICATOR_UNDERLINE_STYLE
-
MODIFIED_INDICATOR_UNDERLINE_STYLE
public static final PropertyValue<Integer> MODIFIED_INDICATOR_UNDERLINE_STYLE
The type of underline to use to indicate a modified value
Value type: Integer
Default value:TextAttribute.UNDERLINE_LOW_DOTTED
Valid values:TextAttribute
.UNDERLINE_*- See Also:
USE_MODIFIED_INDICATOR
-
-
Constructor Detail
-
EntityEditComponentPanel
protected EntityEditComponentPanel(SwingEntityEditModel editModel)
Instantiates a new EntityEditComponentPanel- Parameters:
editModel
- the edit model
-
-
Method Detail
-
editModel
public final SwingEntityEditModel editModel()
- Returns:
- the edit model this panel is based on
-
componentAttributes
public final Collection<Attribute<?>> componentAttributes()
- Returns:
- the attributes that have associated components.
-
getComponent
public final JComponent getComponent(Attribute<?> attribute)
- Parameters:
attribute
- the attribute- Returns:
- the component associated with the given attribute
- Throws:
IllegalArgumentException
- in case no component or component builder has been associated with the given attribute
-
getAttribute
public final <T> Attribute<T> getAttribute(JComponent component)
- Type Parameters:
T
- the attribute type- Parameters:
component
- the component- Returns:
- the attribute the given component is associated with
- Throws:
IllegalArgumentException
- in case no attribute is associated with the given component
-
setInitialFocusComponent
public final JComponent setInitialFocusComponent(JComponent initialFocusComponent)
Sets the component that should receive the focus when the UI is cleared or activated. Overrides the value set viasetInitialFocusAttribute(Attribute)
- Parameters:
initialFocusComponent
- the component- Returns:
- the component
-
setInitialFocusAttribute
public final void setInitialFocusAttribute(Attribute<?> attribute)
Sets the component associated with the given attribute as the component that should receive the initial focus in this edit panel. This is overridden by setInitialFocusComponent().- Parameters:
attribute
- the component attribute- See Also:
setInitialFocusComponent(javax.swing.JComponent)
-
setAfterInsertFocusComponent
public final JComponent setAfterInsertFocusComponent(JComponent afterInsertFocusComponent)
Sets the component that should receive the focus after an insert has been performed. Overrides the value set viasetAfterInsertFocusAttribute(Attribute)
- Parameters:
afterInsertFocusComponent
- the component- Returns:
- the component
-
setAfterInsertFocusAttribute
public final void setAfterInsertFocusAttribute(Attribute<?> attribute)
Sets the component associated with the given attribute as the component that should receive the focus after an insert is performed in this edit panel. This is overridden by setAfterInsertFocusComponent().- Parameters:
attribute
- the component attribute- See Also:
setAfterInsertFocusComponent(JComponent)
-
requestInitialFocus
public final void requestInitialFocus()
Sets the initial focus, if an initial focus component or component attribute has been set that component receives the focus, if not, or if that component is not focusable, this panel receives the focus. Note that if this panel is not visible then calling this method has no effect.
-
requestComponentFocus
public final void requestComponentFocus(Attribute<?> attribute)
Request focus for the component associated with the given attribute. If no component is associated with the attribute calling this method has no effect.- Parameters:
attribute
- the attribute of the component to select
-
selectInputComponent
public final void selectInputComponent()
Displays a dialog allowing the user the select an input component which should receive the keyboard focus, if only one input component is available then that component is selected automatically.
-
selectComponentAttributes
public final Collection<Attribute<?>> selectComponentAttributes()
- Returns:
- a collection of attributes to use when selecting an input component in this panel, this returns all attributes that have an associated component in this panel that is enabled, displayable, visible and focusable.
- See Also:
excludeComponentFromSelection(Attribute)
,setComponent(Attribute, JComponent)
-
excludeComponentFromSelection
public final void excludeComponentFromSelection(Attribute<?> attribute)
Specifies that the given attribute should be excluded when presenting a component selection list.- Parameters:
attribute
- the attribute to exclude from selection- See Also:
selectInputComponent()
-
onException
public void onException(Throwable exception)
Handles the given exception, simply displays the error message to the user by default.- Parameters:
exception
- the exception to handle- See Also:
displayException(Throwable)
-
displayException
public final void displayException(Throwable exception)
Displays the exception in a dialog- Parameters:
exception
- the exception to display
-
setUseModifiedIndicator
protected final void setUseModifiedIndicator(boolean useModifiedIndicator)
If set to true then component labels will indicate that the value is modified. This applies to all components created by this edit component panel as well as components set viasetComponent(Attribute, JComponent)
as long as the component has a JLabel associated with its 'labeledBy' client property. Note that this has no effect on components that have already been created.- Parameters:
useModifiedIndicator
- the new value- See Also:
USE_MODIFIED_INDICATOR
,JLabel.setLabelFor(Component)
-
setTransferFocusOnEnter
protected final void setTransferFocusOnEnter(boolean transferFocusOnEnter)
If set to true then components created subsequently will transfer focus on enter, otherwise not. Note that this has no effect on components that have already been created.- Parameters:
transferFocusOnEnter
- the new value- See Also:
ComponentBuilder.TRANSFER_FOCUS_ON_ENTER
-
setDefaultTextFieldColumns
protected final void setDefaultTextFieldColumns(int defaultTextFieldColumns)
Sets the default number of text field columns- Parameters:
defaultTextFieldColumns
- the default text field columns- See Also:
createTextField(Attribute)
,createForeignKeySearchField(ForeignKey)
,createTextInputPanel(Attribute)
-
setComponent
protected final void setComponent(Attribute<?> attribute, JComponent component)
Associates the given input component with the given attribute.- Parameters:
attribute
- the attributecomponent
- the input component
-
addInputPanel
protected final void addInputPanel(Attribute<?> attribute)
Adds a panel for the given attribute to this panel- Parameters:
attribute
- the attribute- See Also:
createInputPanel(Attribute)
-
addInputPanel
protected final void addInputPanel(Attribute<?> attribute, Object constraints)
Adds a panel for the given attribute to this panel using the given layout constraints- Parameters:
attribute
- the attributeconstraints
- the layout constraints- See Also:
createInputPanel(Attribute)
-
addInputPanel
protected final void addInputPanel(Attribute<?> attribute, JComponent inputComponent)
Adds a panel for the given attribute to this panel- Parameters:
attribute
- the attributeinputComponent
- a component bound toattribute
- See Also:
createInputPanel(Attribute, JComponent)
-
addInputPanel
protected final void addInputPanel(Attribute<?> attribute, JComponent inputComponent, Object constraints)
Adds a panel for the given attribute to this panel using the given layout constraints- Parameters:
attribute
- the attributeinputComponent
- a component bound toattribute
constraints
- the layout constraints- See Also:
createInputPanel(Attribute, JComponent)
-
createInputPanel
protected final JPanel createInputPanel(Attribute<?> attribute)
Creates a panel containing a label and the component associated with the given attribute. The label text is the caption of the property based onattribute
. The default layout of the resulting panel is with the label on top and inputComponent below.- Parameters:
attribute
- the attribute from which property to retrieve the label caption- Returns:
- a panel containing a label and a component
- Throws:
IllegalArgumentException
- in case no component has been associated with the given attribute
-
createInputPanel
protected final JPanel createInputPanel(Attribute<?> attribute, JComponent inputComponent)
Creates a panel containing a label and the component associated with the given attribute. The label text is the caption of the property based onattribute
. The default layout of the resulting panel is with the label on top andinputComponent
below.- Parameters:
attribute
- the attribute from which property to retrieve the label captioninputComponent
- a component bound to the property with idattribute
- Returns:
- a panel containing a label and a component
-
createInputPanel
protected final JPanel createInputPanel(Attribute<?> attribute, JComponent inputComponent, String labelBorderLayoutConstraints)
Creates a panel containing a label and the component associated with the given attribute. The label text is the caption of the property based onattribute
.- Parameters:
attribute
- the attribute from which property to retrieve the label captioninputComponent
- a component bound to the property with idattribute
labelBorderLayoutConstraints
-BorderLayout.NORTH
,BorderLayout.SOUTH
,BorderLayout.EAST
orBorderLayout.WEST
- Returns:
- a panel containing a label and a component
-
createInputPanel
protected final JPanel createInputPanel(Attribute<?> attribute, JComponent inputComponent, String labelBorderLayoutConstraints, int labelAlignment)
Creates a panel containing a label and the given component. The label text is the caption ofattribute
.- Parameters:
attribute
- the attribute from which property to retrieve the label captioninputComponent
- a component bound to the property with idattribute
labelBorderLayoutConstraints
-BorderLayout.NORTH
,BorderLayout.SOUTH
,BorderLayout.EAST
orBorderLayout.WEST
labelAlignment
- the label alignment- Returns:
- a panel containing a label and a component
-
createInputPanel
protected final JPanel createInputPanel(JComponent labelComponent, JComponent inputComponent)
Creates a panel containing a label component and theinputComponent
with the label component positioned above the input component.- Parameters:
labelComponent
- the label componentinputComponent
- a input component- Returns:
- a panel containing a label and a component
-
createInputPanel
protected final JPanel createInputPanel(JComponent labelComponent, JComponent inputComponent, String labelBorderLayoutConstraints)
Creates a panel with a BorderLayout, with theinputComponent
atBorderLayout.CENTER
and thelabelComponent
at a specified location.- Parameters:
labelComponent
- the label componentinputComponent
- a input componentlabelBorderLayoutConstraints
-BorderLayout.NORTH
,BorderLayout.SOUTH
,BorderLayout.EAST
orBorderLayout.WEST
- Returns:
- a panel containing a label and a component
-
createTextArea
protected final TextAreaBuilder createTextArea(Attribute<String> attribute)
Creates a builder for text areas.- Parameters:
attribute
- the attribute for which to build a text area- Returns:
- a text area builder
-
createTextInputPanel
protected final TextInputPanel.Builder createTextInputPanel(Attribute<String> attribute)
Creates a builder for text input panels.- Parameters:
attribute
- the attribute for which to build a text input panel- Returns:
- a text input panel builder
-
createTemporalInputPanel
protected final <T extends Temporal> TemporalInputPanel.Builder<T> createTemporalInputPanel(Attribute<T> attribute)
Creates a builder for temporal input panels.- Type Parameters:
T
- the temporal type- Parameters:
attribute
- the attribute for which to build a temporal input panel- Returns:
- a text area builder
-
createTemporalInputPanel
protected final <T extends Temporal> TemporalInputPanel.Builder<T> createTemporalInputPanel(Attribute<T> attribute, String dateTimePattern)
Creates a builder for temporal input panels.- Type Parameters:
T
- the temporal type- Parameters:
attribute
- the attribute for which to build a temporal input paneldateTimePattern
- the date time pattern- Returns:
- a text area builder
-
createTextField
protected final <T,C extends JTextField,B extends TextFieldBuilder<T,C,B>> TextFieldBuilder<T,C,B> createTextField(Attribute<T> attribute)
Creates a builder for text fields.- Type Parameters:
T
- the value typeC
- the text field typeB
- the builder type- Parameters:
attribute
- the attribute for which to build a text field- Returns:
- a text field builder
-
createLocalTimeField
protected final TemporalField.Builder<LocalTime> createLocalTimeField(Attribute<LocalTime> attribute)
Creates a builder for temporal fields.- Parameters:
attribute
- the attribute for which to build a temporal field- Returns:
- a local time field builder
-
createLocalTimeField
protected final TemporalField.Builder<LocalTime> createLocalTimeField(Attribute<LocalTime> attribute, String dateTimePattern)
Creates a builder for temporal fields.- Parameters:
attribute
- the attribute for which to build a temporal fielddateTimePattern
- the date time pattern- Returns:
- a local time field builder
-
createLocalDateField
protected final TemporalField.Builder<LocalDate> createLocalDateField(Attribute<LocalDate> attribute)
Creates a builder for temporal fields.- Parameters:
attribute
- the attribute for which to build a temporal field- Returns:
- a local date field builder
-
createLocalDateField
protected final TemporalField.Builder<LocalDate> createLocalDateField(Attribute<LocalDate> attribute, String dateTimePattern)
Creates a builder for temporal fields.- Parameters:
attribute
- the attribute for which to build a temporal fielddateTimePattern
- the date time pattern- Returns:
- a local date field builder
-
createLocalDateTimeField
protected final TemporalField.Builder<LocalDateTime> createLocalDateTimeField(Attribute<LocalDateTime> attribute)
Creates a builder for temporal fields.- Parameters:
attribute
- the attribute for which to build a temporal field- Returns:
- a local date time field builder
-
createLocalDateTimeField
protected final TemporalField.Builder<LocalDateTime> createLocalDateTimeField(Attribute<LocalDateTime> attribute, String dateTimePattern)
Creates a builder for temporal fields.- Parameters:
attribute
- the attribute for which to build a temporal fielddateTimePattern
- the date time pattern- Returns:
- a local date time field builder
-
createOffsetDateTimeField
protected final TemporalField.Builder<OffsetDateTime> createOffsetDateTimeField(Attribute<OffsetDateTime> attribute)
Creates a builder for temporal fields.- Parameters:
attribute
- the attribute for which to build a temporal field- Returns:
- an offset date time field builder
-
createOffsetDateTimeField
protected final TemporalField.Builder<OffsetDateTime> createOffsetDateTimeField(Attribute<OffsetDateTime> attribute, String dateTimePattern)
Creates a builder for temporal fields.- Parameters:
attribute
- the attribute for which to build a temporal fielddateTimePattern
- the date time pattern- Returns:
- an offset date time field builder
-
createTemporalField
protected final <T extends Temporal> TemporalField.Builder<T> createTemporalField(Attribute<T> attribute)
Creates a builder for temporal fields.- Type Parameters:
T
- the temporal type- Parameters:
attribute
- the attribute for which to build a temporal field- Returns:
- an offset date time field builder
-
createTemporalField
protected final <T extends Temporal> TemporalField.Builder<T> createTemporalField(Attribute<T> attribute, String dateTimePattern)
Creates a builder for temporal fields.- Type Parameters:
T
- the temporal type- Parameters:
attribute
- the attribute for which to build a temporal fielddateTimePattern
- the date time pattern- Returns:
- an offset date time field builder
-
createIntegerField
protected final NumberField.Builder<Integer> createIntegerField(Attribute<Integer> attribute)
Creates a builder for integer fields.- Parameters:
attribute
- the attribute for which to build a text field- Returns:
- a integer field builder
-
createLongField
protected final NumberField.Builder<Long> createLongField(Attribute<Long> attribute)
Creates a builder for long fields.- Parameters:
attribute
- the attribute for which to build a text field- Returns:
- a long field builder
-
createDoubleField
protected final NumberField.Builder<Double> createDoubleField(Attribute<Double> attribute)
Creates a builder for double fields.- Parameters:
attribute
- the attribute for which to build a text field- Returns:
- a double field builder
-
createBigDecimalField
protected final NumberField.Builder<BigDecimal> createBigDecimalField(Attribute<BigDecimal> attribute)
Creates a builder for big decimal fields.- Parameters:
attribute
- the attribute for which to build a text field- Returns:
- a big decimal field builder
-
createMaskedTextField
protected final MaskedTextFieldBuilder createMaskedTextField(Attribute<String> attribute)
Creates a builder for formatted text fields.- Parameters:
attribute
- the attribute for which to build a formatted text field- Returns:
- a formatted text field builder
-
createCheckBox
protected final CheckBoxBuilder createCheckBox(Attribute<Boolean> attribute)
Creates a builder for check boxes. IfCheckBoxBuilder.nullable(boolean)
is set to true, aNullableCheckBox
is built.- Parameters:
attribute
- the attribute for which to build a check-box- Returns:
- a check-box builder
-
createBooleanComboBox
protected ItemComboBoxBuilder<Boolean> createBooleanComboBox(Attribute<Boolean> attribute)
Creates a builder for boolean combo boxes.- Parameters:
attribute
- the attribute for which to build boolean combo box- Returns:
- a boolean combo box builder
-
createComboBox
protected final <T,C extends JComboBox<T>,B extends ComboBoxBuilder<T,C,B>> ComboBoxBuilder<T,C,B> createComboBox(Attribute<T> attribute, ComboBoxModel<T> comboBoxModel)
Creates a builder for combo boxes.- Type Parameters:
T
- the value typeC
- the component typeB
- the builder type- Parameters:
attribute
- the attribute for which to build combo boxcomboBoxModel
- the combo box model- Returns:
- a combo box builder
-
createItemComboBox
protected final <T> ItemComboBoxBuilder<T> createItemComboBox(Attribute<T> attribute)
Creates a builder for value item list combo boxes.- Type Parameters:
T
- the value type- Parameters:
attribute
- the attribute for which to build a value list combo box- Returns:
- a value item list combo box builder
-
createAttributeComboBox
protected final <T,C extends JComboBox<T>,B extends ComboBoxBuilder<T,C,B>> ComboBoxBuilder<T,C,B> createAttributeComboBox(Attribute<T> attribute)
Creates a builder for combo boxes, containing the values of the given attribute.- Type Parameters:
T
- the value typeC
- the component typeB
- the builder type- Parameters:
attribute
- the attribute for which to build a combo box- Returns:
- a combo box builder
-
createForeignKeyComboBox
protected final <B extends ComboBoxBuilder<Entity,EntityComboBox,B>> ComboBoxBuilder<Entity,EntityComboBox,B> createForeignKeyComboBox(ForeignKey foreignKey)
Creates a builder for foreign key combo boxes.- Type Parameters:
B
- the builder type- Parameters:
foreignKey
- the foreign key for which to build a combo box- Returns:
- a foreign key combo box builder
-
createForeignKeySearchField
protected final EntitySearchField.Builder createForeignKeySearchField(ForeignKey foreignKey)
Creates a builder for foreign key search fields.- Parameters:
foreignKey
- the foreign key for which to build a search field- Returns:
- a foreign key search field builder
-
createForeignKeyTextField
protected final <B extends TextFieldBuilder<Entity,JTextField,B>> TextFieldBuilder<Entity,JTextField,B> createForeignKeyTextField(ForeignKey foreignKey)
Creates a builder for a read-only, non-focusable foreign key text field.- Type Parameters:
B
- the builder type- Parameters:
foreignKey
- the foreign key for which to build a text field- Returns:
- a foreign key text field builder
-
createForeignKeyLabel
protected final LabelBuilder<Entity> createForeignKeyLabel(ForeignKey foreignKey)
Creates a builder for a read-only foreign key label.- Parameters:
foreignKey
- the foreign key for which to build a label- Returns:
- a foreign key label builder
-
createLabel
protected final <T> LabelBuilder<T> createLabel(Attribute<T> attribute)
Creates a builder for a label using the caption and mnemonic associated withattribute
. If an input component exists for the given attribute the label is associated with it viaJLabel.setLabelFor(Component)
.- Type Parameters:
T
- the attribute type- Parameters:
attribute
- the attribute from which to retrieve the caption- Returns:
- a label builder for the given attribute
-
initialFocusComponent
protected JComponent initialFocusComponent()
- Returns:
- the component that should get the initial focus when the UI is initialized
-
afterInsertFocusComponent
protected JComponent afterInsertFocusComponent()
- Returns:
- the component that should receive the focus when the UI is initialized after insert
-
requestFocusAfterInsert
protected final void requestFocusAfterInsert()
-
requestFocusAfterUpdate
protected final void requestFocusAfterUpdate()
-
-