Class RecordActionTable<R extends PersistentRecord>
java.lang.Object
org.apache.wicket.Component
org.apache.wicket.MarkupContainer
org.apache.wicket.markup.html.WebMarkupContainer
org.apache.wicket.markup.html.panel.Panel
com.inductiveautomation.ignition.gateway.web.components.ConfigPanel
com.inductiveautomation.ignition.gateway.web.components.RecordActionTable<R>
- All Implemented Interfaces:
Serializable
,Iterable<org.apache.wicket.Component>
,org.apache.wicket.event.IEventSink
,org.apache.wicket.event.IEventSource
,org.apache.wicket.IConverterLocator
,org.apache.wicket.markup.html.IHeaderContributor
,org.apache.wicket.request.component.IRequestableComponent
,org.apache.wicket.util.IHierarchical<org.apache.wicket.Component>
,org.apache.wicket.util.io.IClusterable
- Direct Known Subclasses:
ExtensionPointPage
,SmtpSettingsPage
A RecordActionTable is commonly used in the Configure section of the gateway. It displays a table of each record for
a given record type. By default, it includes edit and delete links next to each record, and an
add link at the bottom. By default, the columns are created by looking at the record's RecordMeta and finding
all fields marked with SFieldFlags.SDESCRIPTIVE
This class is very customizable by subclassing it and overriding functions. Common points of overriding are:
- Override
addRecordInstanceActions(RepeatingView, PersistentRecord)
to add new action links next to each record. - Override
addRecordActions(RepeatingView)
To add new links below the table - Override
getCalculatedFields()
to add new columns to the table
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interface
class
Subclass ofDeleteRecordAction
that delegates canDelete and onDelete to the RecordActionTable -
Field Summary
FieldsFields inherited from class com.inductiveautomation.ignition.gateway.web.components.ConfigPanel
feedback, returnPanel
Fields inherited from class org.apache.wicket.markup.html.panel.Panel
PANEL
Fields inherited from class org.apache.wicket.Component
ENABLE, FLAG_INITIALIZED, FLAG_REMOVING_FROM_HIERARCHY, FLAG_RESERVED1, FLAG_RESERVED2, FLAG_RESERVED3, FLAG_RESERVED4, FLAG_RESERVED5, FLAG_RESERVED8, PARENT_PATH, PATH_SEPARATOR, RENDER
-
Constructor Summary
ConstructorsConstructorDescriptionRecordActionTable
(IConfigPage configPage) Creates a RecordActionTable, using a default RecordListModelRecordActionTable
(IConfigPage configPage, String id) RecordActionTable
(IConfigPage configPage, org.apache.wicket.model.IModel<? extends List<? extends PersistentRecord>> model) Creates a RecordActionTable using a custom model to list the records -
Method Summary
Modifier and TypeMethodDescriptionprotected void
addRecordActions
(org.apache.wicket.markup.repeater.RepeatingView view) Provides a hook to add record actions, like "Add new.." to the bottom of the panel.protected void
addRecordInstanceActions
(org.apache.wicket.markup.repeater.RepeatingView view, R record) Provides an opportunity to add any actions that deal with specific record instances.protected void
Verifies if a record can be deleted.protected org.apache.wicket.Component
createFooter
(String id) Override this to return a Wicket component to display beneath the table.createRecordModel
(RecordMeta<R> meta) protected void
doDeleteRelatedRecords
(PersistenceSession session, R record) Provides a chance for subclasses to delete any related records before this record is deleted.protected ConfigPanel
Returns the panel that will be used by actions as the parent.protected String
protected org.apache.wicket.model.LoadableDetachableModel<Object>
getCalculatedFieldModel
(RecordActionTable.ICalculatedField<R> field, R record) protected List<RecordActionTable.ICalculatedField<R>>
Override this to add calculated fields (columns) to the table.protected List<SFieldMeta>
Looks through the SFieldMeta's defined by the record's RecordMeta, finding all descriptive fields.protected Collection<RecordMeta<? extends PersistentRecord>>
protected String
getFieldValue
(R record, FormMeta formMeta) protected int
Returns the maximum number of instance actions per row.protected String
protected String
Override this to return a custom resource key for what to display when no records existprotected abstract RecordMeta<R>
protected String
protected void
initComponents
(org.apache.wicket.model.IModel<? extends List<? extends PersistentRecord>> model) protected org.apache.wicket.markup.html.WebMarkupContainer
newDeleteRecordAction
(String id, R record) protected org.apache.wicket.markup.html.WebMarkupContainer
newEditRecordAction
(String id, R record) protected org.apache.wicket.markup.html.WebMarkupContainer
Creates a link that will navigate to creating a new record.protected void
protected void
Called after a record is successfully deletedprotected void
setupNewRecord
(R record) Provides subclasses a chance to perform initialization on a new instance of of the record.Methods inherited from class com.inductiveautomation.ignition.gateway.web.components.ConfigPanel
getHelpResourceKey, getHelpTopicId, getMenuLocation, getMenuPath, getTipLabelKey, getTipLabelModel, getTitleModel, initTitleArea, isEscapeHtmlInTipLabel, isFeedbackEnabled, isTitleVisible, log, renderHead
Methods inherited from class org.apache.wicket.markup.html.panel.Panel
newMarkupSourcingStrategy
Methods inherited from class org.apache.wicket.markup.html.WebMarkupContainer
getWebApplication, getWebPage, getWebRequest, getWebResponse, getWebSession
Methods inherited from class org.apache.wicket.MarkupContainer
add, addOrReplace, autoAdd, contains, get, get, getAssociatedMarkup, getAssociatedMarkupStream, getMarkup, getMarkupType, internalAdd, internalInitialize, iterator, iterator, onAfterRenderChildren, onComponentTagBody, onRender, remove, remove, removeAll, renderAll, renderAssociatedMarkup, renderNext, replace, setDefaultModel, size, swap, toString, toString, visitChildren, visitChildren, visitChildren, visitChildren
Methods inherited from class org.apache.wicket.Component
add, addStateChange, afterRender, beforeRender, canCallListenerInterface, checkComponentTag, checkComponentTagAttribute, checkHierarchyChange, clearOriginalDestination, configure, continueToOriginalDestination, debug, detach, detachModel, detachModels, determineVisibility, error, exceptionMessage, fatal, findMarkupStream, findPage, findParent, findParentWithAssociatedMarkup, getAjaxRegionMarkupId, getApplication, getBehaviorById, getBehaviorId, getBehaviors, getBehaviors, getClassRelativePath, getConverter, getDefaultModel, getDefaultModelObject, getDefaultModelObjectAsString, getDefaultModelObjectAsString, getEscapeModelStrings, getFeedbackMessages, getFlag, getId, getInnermostModel, getInnermostModel, getLocale, getLocalizer, getMarkup, getMarkupAttributes, getMarkupId, getMarkupId, getMarkupIdFromMarkup, getMarkupIdImpl, getMarkupSourcingStrategy, getMetaData, getModelComparator, getOutputMarkupId, getOutputMarkupPlaceholderTag, getPage, getPageRelativePath, getParent, getPath, getRenderBodyOnly, getRequest, getRequestCycle, getRequestFlag, getResponse, getSession, getSizeInBytes, getStatelessHint, getString, getString, getString, getStyle, getVariation, hasBeenRendered, hasErrorMessage, hasFeedbackMessage, info, initModel, internalOnModelChanged, internalPrepareForRender, internalRenderComponent, isActionAuthorized, isAuto, isBehaviorAccepted, isEnableAllowed, isEnabled, isEnabledInHierarchy, isIgnoreAttributeModifier, isRenderAllowed, isRendering, isStateless, isVersioned, isVisibilityAllowed, isVisible, isVisibleInHierarchy, markRendering, modelChanged, modelChanging, onAfterRender, onComponentTag, onConfigure, onDetach, onEvent, onInitialize, onModelChanged, onModelChanging, onReAdd, onRemove, prepareForRender, redirectToInterceptPage, remove, remove, render, renderComponentTag, rendered, renderHead, renderHead, renderPlaceholderTag, replaceComponentTagBody, replaceWith, sameInnermostModel, sameInnermostModel, send, setAuto, setDefaultModelObject, setEnabled, setEscapeModelStrings, setFlag, setIgnoreAttributeModifier, setMarkup, setMarkupId, setMarkupIdImpl, setMetaData, setOutputMarkupId, setOutputMarkupPlaceholderTag, setParent, setRenderBodyOnly, setRequestFlag, setResponsePage, setResponsePage, setResponsePage, setVersioned, setVisibilityAllowed, setVisible, success, urlFor, urlFor, urlFor, urlFor, urlFor, visitParents, visitParents, warn, wrap
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
Field Details
-
configPage
-
-
Constructor Details
-
RecordActionTable
Creates a RecordActionTable, using a default RecordListModel -
RecordActionTable
-
RecordActionTable
public RecordActionTable(IConfigPage configPage, org.apache.wicket.model.IModel<? extends List<? extends PersistentRecord>> model) Creates a RecordActionTable using a custom model to list the records
-
-
Method Details
-
createRecordModel
-
getRecordMeta
-
getActionParentPanel
Returns the panel that will be used by actions as the parent. By default is "this", but can be overridden for cases where multiple record action tables are used inside of another panel. -
getDescriptiveFields
Looks through the SFieldMeta's defined by the record's RecordMeta, finding all descriptive fields. -
initComponents
protected void initComponents(org.apache.wicket.model.IModel<? extends List<? extends PersistentRecord>> model) -
onBeforeRender
protected void onBeforeRender()- Overrides:
onBeforeRender
in classorg.apache.wicket.Component
-
getInstanceActionMaxRowCount
protected int getInstanceActionMaxRowCount()Returns the maximum number of instance actions per row. If there are more actions than this, then a new column will be started. Default is 3 -
getCalculatedFieldDisplayValue
-
getCalculatedFieldModel
protected org.apache.wicket.model.LoadableDetachableModel<Object> getCalculatedFieldModel(RecordActionTable.ICalculatedField<R> field, R record) -
getCalculatedFields
Override this to add calculated fields (columns) to the table. Default implementation returns null. -
addRecordInstanceActions
protected void addRecordInstanceActions(org.apache.wicket.markup.repeater.RepeatingView view, R record) Provides an opportunity to add any actions that deal with specific record instances. Default actions are added for edit and delete. -
newEditRecordAction
-
newDeleteRecordAction
-
addRecordActions
protected void addRecordActions(org.apache.wicket.markup.repeater.RepeatingView view) Provides a hook to add record actions, like "Add new.." to the bottom of the panel. Make sure that the wicket ids of the children are obtained viaview.newChildId()
. Default implementation adds a basic "New Record" action (which itself can be customized by overridingnewRecordAction(String)
-
newRecordAction
Creates a link that will navigate to creating a new record. Uses a basicNewRecordAction
-
setupNewRecord
Provides subclasses a chance to perform initialization on a new instance of of the record. -
canDelete
Verifies if a record can be deleted. Throw an exception if the record should not be deleted. The default implementation will check defined foreign keys and will throw an error if any records refer to the record in question.- Throws:
ConfirmedTaskVetoException
-
getExemptForeignKeys
-
onDelete
Called after a record is successfully deleted -
doDeleteRelatedRecords
Provides a chance for subclasses to delete any related records before this record is deleted. Will be called with an active SimpleORM session. -
getNoRowsKey
Override this to return a custom resource key for what to display when no records exist -
getNoDescriptiveFieldsKey
-
getFieldValue
-
getTitleKey
- Overrides:
getTitleKey
in classConfigPanel
-