Class Crud<E>
- java.lang.Object
-
- com.vaadin.flow.component.Component
-
- com.vaadin.flow.component.crud.Crud<E>
-
- Type Parameters:
E- the bean type
- All Implemented Interfaces:
AttachNotifier,DetachNotifier,HasElement,HasSize,HasStyle,HasTheme,Serializable
@Tag("vaadin-crud") @NpmPackage(value="@vaadin/polymer-legacy-adapter",version="23.6.2") @NpmPackage(value="@vaadin/crud",version="23.6.2") @NpmPackage(value="@vaadin/vaadin-crud",version="23.6.2") @JsModule("@vaadin/polymer-legacy-adapter/style-modules.js") @JsModule("@vaadin/crud/src/vaadin-crud.js") @JsModule("@vaadin/crud/src/vaadin-crud-edit-column.js") public class Crud<E> extends Component implements HasSize, HasTheme, HasStyle
A component for performing CRUD operations on a data backend (e.g entities from a database).- Author:
- Vaadin Ltd
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classCrud.CancelEvent<E>Event fired when the user cancels the creation of a new item or modifications to an existing item.static classCrud.DeleteEvent<E>Event fired when the user tries to delete an existing item.static classCrud.EditEvent<E>Event fired when the user starts to edit an existing item.static classCrud.EditModeDetermines whether an item presented for editing is to be treated as a new item or an existing item.static classCrud.NewEvent<E>Event fired when the user starts to create a new item.static classCrud.SaveEvent<E>Event fired when the user tries to save a new item or modifications to an existing item.
-
Constructor Summary
Constructors Constructor Description Crud()Instantiates a new Crud with no grid, editor and runtime bean type information.Crud(Class<E> beanType, CrudEditor<E> editor)Instantiates a new Crud for the given bean type and uses the supplied editor.Crud(Class<E> beanType, Grid<E> grid, CrudEditor<E> editor)Instantiates a new Crud using a custom grid.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description RegistrationaddCancelListener(ComponentEventListener<Crud.CancelEvent<E>> listener)Registers a listener to be notified when the user cancels a new item creation or existing item modification in progress.RegistrationaddDeleteListener(ComponentEventListener<Crud.DeleteEvent<E>> listener)Registers a listener to be notified when the user tries to delete an existing item.static voidaddEditColumn(Grid grid)A helper method to add an edit column to a grid.static voidaddEditColumn(Grid grid, CrudI18n crudI18n)A helper method to add an edit column to a grid.RegistrationaddEditListener(ComponentEventListener<Crud.EditEvent<E>> listener)Registers a listener to be notified when the user starts to edit an existing item.RegistrationaddNewListener(ComponentEventListener<Crud.NewEvent<E>> listener)Registers a listener to be notified when the user starts to create a new item.RegistrationaddSaveListener(ComponentEventListener<Crud.SaveEvent<E>> listener)Registers a listener to be notified when the user tries to save a new item or modifications to an existing item.voidaddThemeVariants(CrudVariant... variants)Adds theme variants to the component.voidedit(E item, Crud.EditMode editMode)Initiates an item edit from the server-side.Class<E>getBeanType()Gets the runtime bean type informationButtongetCancelButton()Gets the Crud cancel buttonDataProvider<E,?>getDataProvider()Gets the data provider supplying the grid data.ButtongetDeleteButton()Gets the Crud editor delete buttonCrudEditor<E>getEditor()Gets the crud editor.CrudEditorPositiongetEditorPosition()Gets the current editor position on the desktop screen.Grid<E>getGrid()Gets the gridButtongetSaveButton()Gets the Crud save buttonbooleangetToolbarVisible()Gets visiblity state of toolbarstatic booleanhasEditColumn(Grid grid)Checks if an edit column has been added to the Grid usingCrud.addEditColumn(Grid)booleanisEditOnClick()Gets whether click on row to edit item is enabled or not.protected voidonAttach(AttachEvent attachEvent)Called when the component is attached to a UI.static voidremoveEditColumn(Grid grid)Removes the crud edit column from a gridvoidremoveThemeVariants(CrudVariant... variants)Removes theme variants from the component.voidsetBeanType(Class<E> beanType)Sets the runtime bean type information.voidsetDataProvider(DataProvider<E,?> provider)Sets the data provider for the grid.voidsetDirty(boolean dirty)Set the dirty state of the Crud.voidsetEditOnClick(boolean editOnClick)Sets the option to open item to edit by row click.voidsetEditor(CrudEditor<E> editor)Sets the editor.voidsetEditorPosition(CrudEditorPosition editorPosition)Sets how editor will be presented on desktop screen.voidsetGrid(Grid<E> grid)Sets the gridvoidsetI18n(CrudI18n i18n)Sets the internationalized messages to be used by this crud instance.voidsetOpened(boolean opened)Opens or closes the editor.voidsetToolbar(Component... components)Sets the content of the toolbar.voidsetToolbarVisible(boolean value)Controls visiblity of toolbar-
Methods inherited from class com.vaadin.flow.component.Component
addListener, findAncestor, fireEvent, from, get, getChildren, getElement, getEventBus, getId, getListeners, getLocale, getParent, getTranslation, getTranslation, getTranslation, getTranslation, getTranslation, getTranslation, getUI, hasListener, isAttached, isTemplateMapped, isVisible, onDetach, onEnabledStateChanged, scrollIntoView, set, setElement, setId, setVisible
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.vaadin.flow.component.AttachNotifier
addAttachListener
-
Methods inherited from interface com.vaadin.flow.component.DetachNotifier
addDetachListener
-
Methods inherited from interface com.vaadin.flow.component.HasElement
getElement
-
Methods inherited from interface com.vaadin.flow.component.HasSize
getHeight, getHeightUnit, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, getWidth, getWidthUnit, setHeight, setHeight, setHeightFull, setMaxHeight, setMaxHeight, setMaxWidth, setMaxWidth, setMinHeight, setMinHeight, setMinWidth, setMinWidth, setSizeFull, setSizeUndefined, setWidth, setWidth, setWidthFull
-
Methods inherited from interface com.vaadin.flow.component.HasStyle
addClassName, addClassNames, getClassName, getClassNames, getStyle, hasClassName, removeClassName, removeClassNames, setClassName, setClassName
-
Methods inherited from interface com.vaadin.flow.component.HasTheme
addThemeName, addThemeNames, getThemeName, getThemeNames, hasThemeName, removeThemeName, removeThemeNames, setThemeName, setThemeName
-
-
-
-
Constructor Detail
-
Crud
public Crud(Class<E> beanType, Grid<E> grid, CrudEditor<E> editor)
Instantiates a new Crud using a custom grid.- Parameters:
beanType- the class of itemsgrid- the grid with which the items listing should be displayededitor- the editor for manipulating individual items- See Also:
Crud(Class, CrudEditor)
-
Crud
public Crud(Class<E> beanType, CrudEditor<E> editor)
Instantiates a new Crud for the given bean type and uses the supplied editor. Furthermore, it displays the items using the built-in grid.- Parameters:
beanType- the class of itemseditor- the editor for manipulating individual items- See Also:
CrudGrid,Crud(Class, Grid, CrudEditor)
-
Crud
public Crud()
Instantiates a new Crud with no grid, editor and runtime bean type information. The editor and bean type must be initialized before a Crud is put into full use therefore this constructor only exists for partial initialization in order to support template binding.- See Also:
setEditor(CrudEditor),setBeanType(Class)
-
-
Method Detail
-
onAttach
protected void onAttach(AttachEvent attachEvent)
Description copied from class:ComponentCalled when the component is attached to a UI.The default implementation does nothing.
This method is invoked before the
AttachEventis fired for the component.
-
edit
public void edit(E item, Crud.EditMode editMode)
Initiates an item edit from the server-side. This sets the supplied item as the working bean and opens the edit dialog.- Parameters:
item- the item to be editededitMode- the edit mode
-
setOpened
public void setOpened(boolean opened)
Opens or closes the editor. In most use cases opening or closing the editor is automatically done by the component and this method does not need to be called.- Parameters:
opened- true to open or false to close
-
setDirty
public void setDirty(boolean dirty)
Set the dirty state of the Crud.A dirty Crud has its editor Save button enabled. Ideally a Crud automatically detects if it is dirty based on interactions with the form fields within it but in some special cases (e.g with composites) this might not be automatically detected. For such cases this method could be used to explicitly set the dirty state of the Crud editor.
NOTE: editor Save button will not be automatically enabled in case its enabled state was changed with
getSaveButton()- Parameters:
dirty- true if dirty and false if otherwise.- See Also:
getSaveButton()
-
getBeanType
public Class<E> getBeanType()
Gets the runtime bean type information- Returns:
- the bean type
-
setBeanType
public void setBeanType(Class<E> beanType)
Sets the runtime bean type information. If no grid exists a built-in grid is created since the bean type information is now known. When injecting aCrudwith @Id this method must be called before the crud is put into use.- Parameters:
beanType- the bean type
-
getEditor
public CrudEditor<E> getEditor()
Gets the crud editor.- Returns:
- the crud editor
-
setEditor
public void setEditor(CrudEditor<E> editor)
Sets the editor. When injecting aCrudwith @Id this method must be called before the crud is put into use.- Parameters:
editor- the editor
-
setEditorPosition
public void setEditorPosition(CrudEditorPosition editorPosition)
Sets how editor will be presented on desktop screen.The default position is
CrudEditorPosition.OVERLAY.- Parameters:
editorPosition- the editor position, nevernull- See Also:
CrudEditorPosition
-
getEditorPosition
public CrudEditorPosition getEditorPosition()
Gets the current editor position on the desktop screen.The default position is
CrudEditorPosition.OVERLAY.- Returns:
- the editor position
-
setEditOnClick
public void setEditOnClick(boolean editOnClick)
Sets the option to open item to edit by row click.If enabled, it removes the edit column created by
CrudGrid.- Parameters:
editOnClick-trueto enable it (false, by default).
-
isEditOnClick
public boolean isEditOnClick()
Gets whether click on row to edit item is enabled or not.- Returns:
trueif enabled,falseotherwise
-
setToolbar
public void setToolbar(Component... components)
Sets the content of the toolbar. Any content with the attribute `new-button` triggers a new item creation.- Parameters:
components- the content to be set
-
setI18n
public void setI18n(CrudI18n i18n)
Sets the internationalized messages to be used by this crud instance.- Parameters:
i18n- the internationalized messages- See Also:
CrudI18n.createDefault()
-
setToolbarVisible
public void setToolbarVisible(boolean value)
Controls visiblity of toolbar- Parameters:
value-
-
getToolbarVisible
public boolean getToolbarVisible()
Gets visiblity state of toolbar- Returns:
- true if toolbar is visible false otherwise
-
getDeleteButton
public Button getDeleteButton()
Gets the Crud editor delete button- Returns:
- the delete button
-
getSaveButton
public Button getSaveButton()
Gets the Crud save buttonNOTE: State of the button set with
HasEnabled.setEnabled(boolean)will remain even if dirty state of the crud changes- Returns:
- the save button
- See Also:
setDirty(boolean)
-
getCancelButton
public Button getCancelButton()
Gets the Crud cancel button- Returns:
- the cancel button
-
addThemeVariants
public void addThemeVariants(CrudVariant... variants)
Adds theme variants to the component.- Parameters:
variants- theme variants to add
-
removeThemeVariants
public void removeThemeVariants(CrudVariant... variants)
Removes theme variants from the component.- Parameters:
variants- theme variants to remove
-
addNewListener
public Registration addNewListener(ComponentEventListener<Crud.NewEvent<E>> listener)
Registers a listener to be notified when the user starts to create a new item.- Parameters:
listener- a listener to be notified- Returns:
- a handle that can be used to unregister the listener
-
addEditListener
public Registration addEditListener(ComponentEventListener<Crud.EditEvent<E>> listener)
Registers a listener to be notified when the user starts to edit an existing item.- Parameters:
listener- a listener to be notified- Returns:
- a handle that can be used to unregister the listener
-
addSaveListener
public Registration addSaveListener(ComponentEventListener<Crud.SaveEvent<E>> listener)
Registers a listener to be notified when the user tries to save a new item or modifications to an existing item.- Parameters:
listener- a listener to be notified- Returns:
- a handle that can be used to unregister the listener
-
addCancelListener
public Registration addCancelListener(ComponentEventListener<Crud.CancelEvent<E>> listener)
Registers a listener to be notified when the user cancels a new item creation or existing item modification in progress.- Parameters:
listener- a listener to be notified- Returns:
- a handle that can be used to unregister the listener
-
addDeleteListener
public Registration addDeleteListener(ComponentEventListener<Crud.DeleteEvent<E>> listener)
Registers a listener to be notified when the user tries to delete an existing item.- Parameters:
listener- a listener to be notified- Returns:
- a handle that can be used to unregister the listener
-
getDataProvider
public DataProvider<E,?> getDataProvider()
Gets the data provider supplying the grid data.- Returns:
- the data provider for the grid
-
setDataProvider
public void setDataProvider(DataProvider<E,?> provider)
Sets the data provider for the grid.- Parameters:
provider- the data provider for the grid
-
addEditColumn
public static void addEditColumn(Grid grid)
A helper method to add an edit column to a grid. Clicking on the edit cell for a row opens the item for editing in the editor.- Parameters:
grid- the grid in which to add the edit column- See Also:
addEditColumn(Grid, CrudI18n),removeEditColumn(Grid),hasEditColumn(Grid)
-
addEditColumn
public static void addEditColumn(Grid grid, CrudI18n crudI18n)
A helper method to add an edit column to a grid. Clicking on the edit cell for a row opens the item for editing in the editor. Additionally, the i18n object is used for setting the aria-label for the button, improving accessibility.- Parameters:
grid- the grid in which to add the edit columncrudI18n- the i18n object for localizing the accessibility of the edit column
-
removeEditColumn
public static void removeEditColumn(Grid grid)
Removes the crud edit column from a grid- Parameters:
grid- the grid from which to remove the edit column- See Also:
addEditColumn(Grid),hasEditColumn(Grid)
-
hasEditColumn
public static boolean hasEditColumn(Grid grid)
Checks if an edit column has been added to the Grid usingCrud.addEditColumn(Grid)- Parameters:
grid- the grid to check- Returns:
- true if an edit column is present or false if otherwise
- See Also:
addEditColumn(Grid)
-
-