Package com.portal.bas.comp
Class PIABigIntegerField
- All Implemented Interfaces:
PAppComponent
,PAppFieldComponent
,PClientComponent
,PCollectDataListener
,PComponent
,PComponentAttribute
,PFieldBean
,PLightComponent
,PViewDataChangeListener
,CyclerListener
,ImageObserver
,MenuContainer
,Serializable
,Remote
,EventListener
,Accessible
,Scrollable
,SwingConstants
public class PIABigIntegerField
extends BigIntegerTextField
implements PAppFieldComponent, PLightComponent, PComponentAttribute, PCollectDataListener, Serializable
PIABigIntegerField
is a Swing-compatible, Portal-aware
big integer display class.- Version:
- %Version%
- Author:
- anthony
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class javax.swing.JTextField
JTextField.AccessibleJTextField
Nested classes/interfaces inherited from class javax.swing.text.JTextComponent
JTextComponent.AccessibleJTextComponent, JTextComponent.DropLocation, JTextComponent.KeyBinding
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
FieldsFields inherited from class javax.swing.JTextField
notifyAction
Fields inherited from class javax.swing.text.JTextComponent
DEFAULT_KEYMAP, FOCUS_ACCELERATOR_KEY
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
Fields inherited from interface javax.swing.SwingConstants
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
clear()
Clears existing data from the component, and resets the value to zero.void
collectData
(PCollectDataEvent event) OverridesPCollectDataListener
.Gets the associated class, if any, for this field.Retrieves the class name of this component's controller.Gets the data field description used by the component.Gets the data field description used by the component.Gets the display field format used by this component.getField()
Gets the value of the field referred to in thedisplayFieldDescription
.Gets the current help ID for this component.Gets the lightweight data object.Gets the data field description used by the component.Retrieves thePModelHandle
for this component.Gets a reference to the remote component for this object.Gets the base resource name used in resource look up.getTools()
Gets a list of actions supported by this component.boolean
Determines whether the component currently displays currency data.boolean
isDirty()
Determines if this component is currently in a DIRTY state.boolean
isError()
Determines if this component is currently in an ERROR state.boolean
Determines ifinputTracking
is enabled.boolean
isLight()
Determines if this component defersPModelHandle
knowledge to its parent container.boolean
Determines if this component is a required field in its current context.void
Resets the component value to the original value (that which was established by callingsetDefault()
).void
revertToPrimary
(int primary) Causes the widget to display its data in the primary currencyvoid
setAssociatedClass
(String name) Sets the associated class, if any, for this field.void
setClean()
Resets the component to the CLEAN state.void
setCurrencyDisplay
(boolean b) Determines whether this component currently displays currency data.void
Establishes the current value (or element count, depending on the given component) as the default value.void
setDisplayFieldDescription
(String fieldDisp) Sets the description of the field(s) in the data model that this component displays.void
setDisplayFieldFormat
(String fieldForm) Sets thejava.text.MessageFormat
format used to display data in this component.void
setError
(boolean b) Marks that this component contains erroneous data in the current context, or unmarks the ERROR state, depending on the parameter.void
Sets the value of the field referred to in themodelFieldDescription
.void
Sets the help ID for this component.void
setInputTracking
(boolean b) If theinputTracking
property is enabled, any changes made by the user to the component are tracked and the component is marked DIRTY.void
setJoinDescription
(String joinDesc) Used in the search panel, specifies the join field in a complex searchvoid
setLightData
(Object field) Sets the lightweight data object.void
setModelFieldDescription
(String fieldDesc) Sets the description of the field in the data model that this component is interested in.void
setModelHandle
(PModelHandle data) Establishes thePModelHandle
for this component.void
setRequired
(boolean b) Marks this component as required in its current context.void
setResourceName
(String name) Sets the base resource name used in resource look up.togglePrimaryToSecondary
(int primary, int secondary) Causes the component to use theBEIDManager
to convert its data.void
Used to disassociate this component from its delegate (controller)void
OverridesPViewDataChangeListener
.Methods inherited from class com.portal.pfc.ui.BigIntegerTextField
addNotify, coalesceEvents, getMaximumValue, getMinimumValue, getNumDigitsAllowed, getValue, isAllowEmptyValue, replaceSelection, setAllowEmptyValue, setMaximumValue, setMaximumValue, setMaximumValue, setMinimumValue, setMinimumValue, setMinimumValue, setNumDigitsAllowed, setText, valueChange
Methods inherited from class com.portal.pfc.ui.ValidatedTextField
getSpecialChars, isValidInput, setSpecialChars
Methods inherited from class javax.swing.JTextField
actionPropertyChanged, addActionListener, configurePropertiesFromAction, createActionPropertyChangeListener, createDefaultModel, fireActionPerformed, getAccessibleContext, getAction, getActionListeners, getActions, getColumns, getColumnWidth, getHorizontalAlignment, getHorizontalVisibility, getPreferredSize, getScrollOffset, getUIClassID, isValidateRoot, paramString, postActionEvent, removeActionListener, scrollRectToVisible, setAction, setActionCommand, setColumns, setDocument, setFont, setHorizontalAlignment, setScrollOffset
Methods inherited from class javax.swing.text.JTextComponent
addCaretListener, addInputMethodListener, addKeymap, copy, cut, fireCaretUpdate, getCaret, getCaretColor, getCaretListeners, getCaretPosition, getDisabledTextColor, getDocument, getDragEnabled, getDropLocation, getDropMode, getFocusAccelerator, getHighlighter, getInputMethodRequests, getKeymap, getKeymap, getMargin, getNavigationFilter, getPreferredScrollableViewportSize, getPrintable, getScrollableBlockIncrement, getScrollableTracksViewportHeight, getScrollableTracksViewportWidth, getScrollableUnitIncrement, getSelectedText, getSelectedTextColor, getSelectionColor, getSelectionEnd, getSelectionStart, getText, getText, getToolTipText, getUI, isEditable, loadKeymap, modelToView, modelToView2D, moveCaretPosition, paste, print, print, print, processInputMethodEvent, read, removeCaretListener, removeKeymap, removeNotify, restoreComposedText, saveComposedText, select, selectAll, setCaret, setCaretColor, setCaretPosition, setComponentOrientation, setDisabledTextColor, setDragEnabled, setDropMode, setEditable, setFocusAccelerator, setHighlighter, setKeymap, setMargin, setNavigationFilter, setSelectedTextColor, setSelectionColor, setSelectionEnd, setSelectionStart, setUI, updateUI, viewToModel, viewToModel2D, write
Methods inherited from class javax.swing.JComponent
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, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, 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, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, 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, 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, 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, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
Field Details
-
mPrimaryData
-
mPrimaryCur
protected int mPrimaryCur -
mSecondaryCur
protected int mSecondaryCur
-
-
Constructor Details
-
PIABigIntegerField
public PIABigIntegerField()Creates a text field that only allows numeric input.
-
-
Method Details
-
unregister
Used to disassociate this component from its delegate (controller)- Specified by:
unregister
in interfacePClientComponent
- Throws:
RemoteException
-
setModelHandle
Establishes thePModelHandle
for this component.- Specified by:
setModelHandle
in interfacePComponent
- Parameters:
data
- the newPModelHandle
from which to extract information- Throws:
RemoteException
- thrown for errors
-
getModelHandle
Retrieves thePModelHandle
for this component.- Specified by:
getModelHandle
in interfacePComponent
- Returns:
- The
PModelHandle
associated with this component. - Throws:
RemoteException
- thrown for errors
-
isLight
Determines if this component defersPModelHandle
knowledge to its parent container. If so, the parent container passes thePModelHandle
to this component on the server side (by way of the controller), which saves a client/server round trip for data exchange.If specific processing is required, when
PModelHandle
is called subclass this component and override this method. Otherwise,setModelHandle()
will not be called.- Specified by:
isLight
in interfacePComponent
- Returns:
- True if this component defers knowledge; false otherwise.
- Throws:
RemoteException
- thrown for errors
-
getControllerClassName
Retrieves the class name of this component's controller.- Specified by:
getControllerClassName
in interfacePComponent
- Returns:
- A
String
with the value "com.portal.bas.comp.PIAFieldBean". - Throws:
RemoteException
- thrown for errors
-
getTools
Gets a list of actions supported by this component. When subclassed, the overriding class should call its super class version, then add its actions to the returned list. This preserves actions supplied by base classes. The default, supplied here, includes help for this component.- Specified by:
getTools
in interfacePClientComponent
- Returns:
- A
Vector
that containsAction
objects.
-
setResourceName
Sets the base resource name used in resource look up. Basically, the resource name is this base, followed by a dot, followed by the local name (label).- Specified by:
setResourceName
in interfacePClientComponent
- Parameters:
name
- the new base resource name
-
getResourceName
Gets the base resource name used in resource look up.- Specified by:
getResourceName
in interfacePClientComponent
- Returns:
- A
String
with the base resource name.
-
getRemoteComponent
Gets a reference to the remote component for this object. The remote component is used to interface with this component's controller.- Specified by:
getRemoteComponent
in interfacePAppComponent
- Returns:
- A
Remote
component.
-
setModelFieldDescription
Sets the description of the field in the data model that this component is interested in.- Specified by:
setModelFieldDescription
in interfacePFieldBean
- Parameters:
fieldDesc
- aString
that describes the field used by this component- Throws:
RemoteException
- thrown for errors
-
getModelFieldDescription
Gets the data field description used by the component.- Specified by:
getModelFieldDescription
in interfacePFieldBean
- Returns:
- A
String
description of the field used by this component. - Throws:
RemoteException
- thrown for errors
-
setDisplayFieldDescription
Sets the description of the field(s) in the data model that this component displays.- Specified by:
setDisplayFieldDescription
in interfacePFieldBean
- Parameters:
fieldDisp
- aString
that describes the field displayed by this component- Throws:
RemoteException
- thrown for errors
-
getDisplayFieldDescription
Gets the data field description used by the component.- Specified by:
getDisplayFieldDescription
in interfacePFieldBean
- Returns:
- A
String
description of the field used by this component. - Throws:
RemoteException
- thrown for errors
-
setDisplayFieldFormat
Sets thejava.text.MessageFormat
format used to display data in this component. This is typically (but not necessarily) directly tied to thedisplayFieldDescription
property. For example, the value fordisplayFieldDescription
might be "FldNameinfo[any].FldFirstName, FldNameinfo[any].FldLastName" and theDisplayFieldFormat
for that might be "{1}, {0}" to display the last name, followed by a comma, and then the first name.- Specified by:
setDisplayFieldFormat
in interfacePAppFieldComponent
- Parameters:
fieldForm
- the format used to display the data- Throws:
RemoteException
- thrown for errors
-
getDisplayFieldFormat
Gets the display field format used by this component.- Specified by:
getDisplayFieldFormat
in interfacePAppFieldComponent
- Returns:
- A
String
representation of the display field format. - Throws:
RemoteException
- thrown for errors
-
setAssociatedClass
Sets the associated class, if any, for this field.- Specified by:
setAssociatedClass
in interfacePFieldBean
- Parameters:
name
- the class name- Throws:
RemoteException
- thrown for errors
-
getAssociatedClass
Gets the associated class, if any, for this field.- Specified by:
getAssociatedClass
in interfacePFieldBean
- Returns:
- A
String
with the associated class name. - Throws:
RemoteException
- thrown for errors
-
setJoinDescription
Used in the search panel, specifies the join field in a complex search- Parameters:
The
- join description
-
getJoinDescription
-
setField
Sets the value of the field referred to in themodelFieldDescription
.- Specified by:
setField
in interfacePFieldBean
- Parameters:
field
- the field's valuevalue
- the field's value- Throws:
RemoteException
- thrown for errors
-
getField
Gets the value of the field referred to in thedisplayFieldDescription
.- Specified by:
getField
in interfacePFieldBean
- Returns:
- The field's value.
- Throws:
RemoteException
- thrown for errors
-
getDataDescriptor
Gets the data field description used by the component.- Specified by:
getDataDescriptor
in interfacePLightComponent
- Returns:
- A
String
description of the fields used by this component or null if there is none. - Throws:
RemoteException
- thrown for errors
-
setLightData
Sets the lightweight data object.- Specified by:
setLightData
in interfacePLightComponent
- Parameters:
field
- the lightweight component's display data
-
getLightData
Gets the lightweight data object.- Specified by:
getLightData
in interfacePLightComponent
- Parameters:
field
- the lightweight component's display value- Returns:
- An
Object
that represents a component's display data.
-
setHelpID
Sets the help ID for this component.- Specified by:
setHelpID
in interfacePAppFieldComponent
- Parameters:
id
- the new help ID
-
getHelpID
Gets the current help ID for this component.- Specified by:
getHelpID
in interfacePAppFieldComponent
- Returns:
- A
String
help ID.
-
resetToDefault
public void resetToDefault()Resets the component value to the original value (that which was established by callingsetDefault()
). If no default value exists, the component data is cleared.- Specified by:
resetToDefault
in interfacePComponentAttribute
-
clear
public void clear()Clears existing data from the component, and resets the value to zero.- Specified by:
clear
in interfacePComponentAttribute
-
isRequired
public boolean isRequired()Determines if this component is a required field in its current context. This provides a visual indicator only; there is no mechanism to enforce that required fields be filled in.- Specified by:
isRequired
in interfacePComponentAttribute
- Returns:
- True if this field is marked REQUIRED; false otherwise.
-
setRequired
public void setRequired(boolean b) Marks this component as required in its current context. This is currently a visual indicator only; there is no mechanism to enforce that required fields be filled in.- Specified by:
setRequired
in interfacePComponentAttribute
- Parameters:
b
- if true, puts the component in REQUIRED state
-
isError
public boolean isError()Determines if this component is currently in an ERROR state.- Specified by:
isError
in interfacePComponentAttribute
- Returns:
- True if this component is in an ERROR state; false otherwise.
-
setError
public void setError(boolean b) Marks that this component contains erroneous data in the current context, or unmarks the ERROR state, depending on the parameter.- Specified by:
setError
in interfacePComponentAttribute
- Parameters:
b
- if true, puts the component in ERROR state; if false, removes the ERROR state
-
setInputTracking
public void setInputTracking(boolean b) If theinputTracking
property is enabled, any changes made by the user to the component are tracked and the component is marked DIRTY. If the user modifies the data and returns it to its default or original state, the component is marked CLEAN or not DIRTY.- Specified by:
setInputTracking
in interfacePComponentAttribute
- Parameters:
b
- the state of theinputTracking
property
-
isInputTracking
public boolean isInputTracking()Determines ifinputTracking
is enabled.- Specified by:
isInputTracking
in interfacePComponentAttribute
- Returns:
- True if
inputTracking
is enabled; false otherwise.
-
setClean
public void setClean()Resets the component to the CLEAN state. If the component was in a DIRTY or ERROR state, this method removes those attributes. A required component is still marked REQUIRED after a call to this method.- Specified by:
setClean
in interfacePComponentAttribute
-
isDirty
public boolean isDirty()Determines if this component is currently in a DIRTY state.- Specified by:
isDirty
in interfacePComponentAttribute
- Returns:
- True if the user has modified the data represented by this
component, false otherwise. It also returns false if
inputTracking
is not enabled.
-
setDefault
public void setDefault()Establishes the current value (or element count, depending on the given component) as the default value. Any modifications made after this method is called will result in a DIRTY component.- Specified by:
setDefault
in interfacePComponentAttribute
-
isCurrencyDisplay
public boolean isCurrencyDisplay()Determines whether the component currently displays currency data.- Specified by:
isCurrencyDisplay
in interfacePComponentAttribute
- Returns:
- True if the component currently displays currency data; false otherwise.
- Since:
- Release 6.2
-
setCurrencyDisplay
public void setCurrencyDisplay(boolean b) Determines whether this component currently displays currency data. Widgets that display currency data are capable of automatically toggling their data between a primary and secondary Portal currency type.- Specified by:
setCurrencyDisplay
in interfacePComponentAttribute
- Parameters:
b
- if true, indicates that the component currently displays currency data- Since:
- Release 6.2
-
togglePrimaryToSecondary
Causes the component to use theBEIDManager
to convert its data.- Specified by:
togglePrimaryToSecondary
in interfacePComponentAttribute
- Specified by:
togglePrimaryToSecondary
in interfacePFieldBean
- Parameters:
primary
- the current currency ID used to display the datasecondary
- the new currency ID to use to display the data- Returns:
- The converted value.
- Throws:
RemoteException
- thrown for errors- Since:
- Release 6.2
-
revertToPrimary
Causes the widget to display its data in the primary currency- Specified by:
revertToPrimary
in interfacePComponentAttribute
- Specified by:
revertToPrimary
in interfacePFieldBean
- Parameters:
primary
- The primary currency ID for an account- Throws:
RemoteException
-
viewDataChange
OverridesPViewDataChangeListener
. This method is no longer called by the controller itself. To ensure backward compatibility, it is called after the model is set, by any operation that causes a change in the display data. Client code should call the appropriateget
methods on the controller to get the data, because the() PViewDataChangeEvent
parameter is no longer used.- Specified by:
viewDataChange
in interfacePViewDataChangeListener
- Parameters:
event
- thePViewDataChangeEvent
event that describes the change. No longer used. By default, the value passed in is always set to null.- Throws:
RemoteException
- thrown for errors
-
collectData
OverridesPCollectDataListener
. Causes the controller to save changes back to the data model. Done prior to committing changes to Portal.- Specified by:
collectData
in interfacePCollectDataListener
- Parameters:
event
- the data collection event
-