fr.ird.observe.client.form.table.DataTableFormUI Maven / Gradle / Ivy
package fr.ird.observe.client.form.table;
/*-
* #%L
* ObServe Toolkit :: Common Client
* %%
* Copyright (C) 2008 - 2017 IRD, Ultreia.io
* %%
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public
* License along with this program. If not, see
* .
* #L%
*/
import fr.ird.observe.client.form.action.WithDeleteActionFormUI;
import fr.ird.observe.client.form.action.WithEditActionFormUI;
import fr.ird.observe.client.form.simplelist.SimpleDataListFormUI;
import fr.ird.observe.client.util.ObserveBlockingLayerUI;
import fr.ird.observe.dto.AbstractObserveDto;
import fr.ird.observe.dto.data.DataDto;
import fr.ird.observe.dto.data.DataListDto;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.Insets;
import java.util.List;
import javax.swing.Icon;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import javax.swing.UIManager;
import javax.swing.border.TitledBorder;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.jaxx.runtime.JAXXContext;
import org.nuiton.jaxx.runtime.JAXXObjectDescriptor;
import org.nuiton.jaxx.runtime.JAXXUtil;
import org.nuiton.jaxx.runtime.binding.DefaultJAXXBinding;
import org.nuiton.jaxx.runtime.swing.SwingUtil;
import org.nuiton.jaxx.runtime.swing.Table;
import org.nuiton.jaxx.validator.JAXXValidator;
import org.nuiton.jaxx.validator.swing.SwingValidator;
import org.nuiton.jaxx.validator.swing.SwingValidatorUtil;
import org.nuiton.jaxx.validator.swing.meta.Validator;
import org.nuiton.jaxx.validator.swing.meta.ValidatorField;
import org.nuiton.jaxx.validator.swing.ui.ImageValidationUI;
import static org.nuiton.i18n.I18n.n;
import static org.nuiton.i18n.I18n.t;
public abstract class DataTableFormUI extends SimpleDataListFormUI implements WithEditActionFormUI, WithDeleteActionFormUI, JAXXValidator {
/*-----------------------------------------------------------------------*/
/*---------------- Constants for all javaBean properties ----------------*/
/*-----------------------------------------------------------------------*/
public static final String PROPERTY_DELETE_ENTRY_TEXT = "deleteEntryText";
public static final String PROPERTY_DELETE_ENTRY_TIP = "deleteEntryTip";
public static final String PROPERTY_NEW_ENTRY_TEXT = "newEntryText";
public static final String PROPERTY_NEW_ENTRY_TIP = "newEntryTip";
public static final String PROPERTY_RESET_ENTRY_TEXT = "resetEntryText";
public static final String PROPERTY_RESET_ENTRY_TIP = "resetEntryTip";
public static final String PROPERTY_RESET_NEW_ENTRY_TEXT = "resetNewEntryText";
public static final String PROPERTY_RESET_NEW_ENTRY_TIP = "resetNewEntryTip";
public static final String PROPERTY_SAVE_ENTRY_TEXT = "saveEntryText";
public static final String PROPERTY_SAVE_ENTRY_TIP = "saveEntryTip";
public static final String PROPERTY_SAVE_NEW_ENTRY_TEXT = "saveNewEntryText";
public static final String PROPERTY_SAVE_NEW_ENTRY_TIP = "saveNewEntryTip";
/*-----------------------------------------------------------------------*/
/*------------------ Constants for all public bindings ------------------*/
/*-----------------------------------------------------------------------*/
public static final String BINDING_DELETE_ENTRY_VISIBLE = "deleteEntry.visible";
public static final String BINDING_EDITOR_ACTIONS_VISIBLE = "editorActions.visible";
public static final String BINDING_EDITOR_BLOCK_LAYER_UI_BLOCK = "editorBlockLayerUI.block";
public static final String BINDING_EDITOR_PANEL_VISIBLE = "editorPanel.visible";
public static final String BINDING_MODEL_CAN_RESET_ROW = "model.canResetRow";
public static final String BINDING_MODEL_CAN_SAVE_ROW = "model.canSaveRow";
public static final String BINDING_MODEL_ENABLED = "model.enabled";
public static final String BINDING_MODEL_MODIFIED = "model.modified";
public static final String BINDING_MODEL_VALID = "model.valid";
public static final String BINDING_NEW_ENTRY_VISIBLE = "newEntry.visible";
public static final String BINDING_RESET_ENABLED = "reset.enabled";
public static final String BINDING_RESET_ENTRY_ENABLED = "resetEntry.enabled";
public static final String BINDING_RESET_ENTRY_VISIBLE = "resetEntry.visible";
public static final String BINDING_RESET_VISIBLE = "reset.visible";
public static final String BINDING_SAVE_ENABLED = "save.enabled";
public static final String BINDING_SAVE_ENTRY_ENABLED = "saveEntry.enabled";
public static final String BINDING_SAVE_ENTRY_VISIBLE = "saveEntry.visible";
public static final String BINDING_SAVE_VISIBLE = "save.visible";
public static final String BINDING_TABLE_MODEL_EDITABLE = "tableModel.editable";
public static final String BINDING_TABLE_SCROLL_PANE_COLUMN_HEADER_VIEW = "tableScrollPane.columnHeaderView";
/*-----------------------------------------------------------------------*/
/*------------------------- Other static fields -------------------------*/
/*-----------------------------------------------------------------------*/
private static final String $jaxxObjectDescriptor = "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";
private static final Log log = LogFactory.getLog(DataTableFormUI.class);
private static final long serialVersionUID = 1L;
/*-----------------------------------------------------------------------*/
/*------------------------ Protected components ------------------------*/
/*-----------------------------------------------------------------------*/
protected JButton deleteEntry;
protected String deleteEntryText;
protected String deleteEntryTip;
protected Table editor;
protected Table editorActions;
protected ObserveBlockingLayerUI editorBlockLayerUI;
@ValidatorField( validatorId = "validator", propertyName = "children", editorName = "editorPanel")
protected Table editorPanel;
protected Table extraZone;
protected JPanel hideForm;
protected JLabel hideFormInformation;
protected Icon iconDataCalcule;
protected Icon iconDataObserve;
protected JButton newEntry;
protected String newEntryText;
protected String newEntryTip;
protected JButton resetEntry;
protected String resetEntryText;
protected String resetEntryTip;
protected String resetNewEntryText;
protected String resetNewEntryTip;
protected JButton saveEntry;
protected String saveEntryText;
protected String saveEntryTip;
protected String saveNewEntryText;
protected String saveNewEntryTip;
protected ListSelectionModel selectionModel;
protected Table showForm;
protected JTable table;
protected DataDto tableEditBean;
protected ContentTableModel tableModel;
protected JScrollPane tableScrollPane;
@Validator( validatorId = "validator")
protected SwingValidator validator;
protected List validatorIds;
/*-----------------------------------------------------------------------*/
/*------------------------- Private components -------------------------*/
/*-----------------------------------------------------------------------*/
private DataTableFormUI $SimpleDataListFormUI0;
/*-----------------------------------------------------------------------*/
/*---------------------- Raw body code from script ----------------------*/
/*-----------------------------------------------------------------------*/
//public abstract SwingValidator getValidator();
public abstract SwingValidator getValidatorTable();
@Override
public final void deleteData() {
getHandler().deleteData();
}
/*-----------------------------------------------------------------------*/
/*---------------------------- Constructors ----------------------------*/
/*-----------------------------------------------------------------------*/
public DataTableFormUI(String param0) {
super(param0);
}
public DataTableFormUI(JAXXContext param0, String param1) {
super(param0 ,param1);
}
public DataTableFormUI(String param0, Container param1) {
super(param0 ,param1);
}
public DataTableFormUI(JAXXContext param0, String param1, Container param2) {
super(param0 ,param1 ,param2);
}
public DataTableFormUI() {
}
public DataTableFormUI(JAXXContext param0) {
super(param0);
}
/*-----------------------------------------------------------------------*/
/*--------------------------- Statics methods ---------------------------*/
/*-----------------------------------------------------------------------*/
public static JAXXObjectDescriptor $getJAXXObjectDescriptor() {
return JAXXUtil.decodeCompressedJAXXObjectDescriptor($jaxxObjectDescriptor);
}
/*-----------------------------------------------------------------------*/
/*-------------------- JAXXValidator implementation --------------------*/
/*-----------------------------------------------------------------------*/
@Override
public SwingValidator> getValidator(String validatorId) {
return (SwingValidator>) (validatorIds.contains(validatorId) ? getObjectById(validatorId) : null);
}
@Override
public List getValidatorIds() {
return validatorIds;
}
@Override
public void registerValidatorFields() {
SwingValidatorUtil.detectValidatorFields(this);
}
/*-----------------------------------------------------------------------*/
/*---------------------------- Event methods ----------------------------*/
/*-----------------------------------------------------------------------*/
public void doValueChanged__on__selectionModel(ListSelectionEvent event) {
if (log.isDebugEnabled()) {
log.debug(event);
}
getHandler().updateEditor(event);
}
/*-----------------------------------------------------------------------*/
/*----------------------- Public acessor methods -----------------------*/
/*-----------------------------------------------------------------------*/
public JButton getDeleteEntry() {
return deleteEntry;
}
public String getDeleteEntryText() {
return deleteEntryText;
}
public String getDeleteEntryTip() {
return deleteEntryTip;
}
public Table getEditor() {
return editor;
}
public Table getEditorActions() {
return editorActions;
}
public ObserveBlockingLayerUI getEditorBlockLayerUI() {
return editorBlockLayerUI;
}
public Table getEditorPanel() {
return editorPanel;
}
public Table getExtraZone() {
return extraZone;
}
@Override
public abstract DataTableFormUIHandler getHandler();
public JPanel getHideForm() {
return hideForm;
}
public JLabel getHideFormInformation() {
return hideFormInformation;
}
public Icon getIconDataCalcule() {
return iconDataCalcule;
}
public Icon getIconDataObserve() {
return iconDataObserve;
}
@Override
public DataTableFormUIModel getModel() {
return (DataTableFormUIModel) super.getModel();
}
public JButton getNewEntry() {
return newEntry;
}
public String getNewEntryText() {
return newEntryText;
}
public String getNewEntryTip() {
return newEntryTip;
}
public JButton getResetEntry() {
return resetEntry;
}
public String getResetEntryText() {
return resetEntryText;
}
public String getResetEntryTip() {
return resetEntryTip;
}
public String getResetNewEntryText() {
return resetNewEntryText;
}
public String getResetNewEntryTip() {
return resetNewEntryTip;
}
public JButton getSaveEntry() {
return saveEntry;
}
public String getSaveEntryText() {
return saveEntryText;
}
public String getSaveEntryTip() {
return saveEntryTip;
}
public String getSaveNewEntryText() {
return saveNewEntryText;
}
public String getSaveNewEntryTip() {
return saveNewEntryTip;
}
public ListSelectionModel getSelectionModel() {
return selectionModel;
}
public Table getShowForm() {
return showForm;
}
public JTable getTable() {
return table;
}
public DataDto getTableEditBean() {
return tableEditBean;
}
public ContentTableModel getTableModel() {
return tableModel;
}
public JScrollPane getTableScrollPane() {
return tableScrollPane;
}
public SwingValidator getValidator() {
return validator;
}
/*-----------------------------------------------------------------------*/
/*----------------------- Public mutator methods -----------------------*/
/*-----------------------------------------------------------------------*/
public void setDeleteEntryText(String deleteEntryText) {
String oldValue = this.deleteEntryText;
this.deleteEntryText = deleteEntryText;
firePropertyChange(PROPERTY_DELETE_ENTRY_TEXT, oldValue, deleteEntryText);
}
public void setDeleteEntryTip(String deleteEntryTip) {
String oldValue = this.deleteEntryTip;
this.deleteEntryTip = deleteEntryTip;
firePropertyChange(PROPERTY_DELETE_ENTRY_TIP, oldValue, deleteEntryTip);
}
public void setNewEntryText(String newEntryText) {
String oldValue = this.newEntryText;
this.newEntryText = newEntryText;
firePropertyChange(PROPERTY_NEW_ENTRY_TEXT, oldValue, newEntryText);
}
public void setNewEntryTip(String newEntryTip) {
String oldValue = this.newEntryTip;
this.newEntryTip = newEntryTip;
firePropertyChange(PROPERTY_NEW_ENTRY_TIP, oldValue, newEntryTip);
}
public void setResetEntryText(String resetEntryText) {
String oldValue = this.resetEntryText;
this.resetEntryText = resetEntryText;
firePropertyChange(PROPERTY_RESET_ENTRY_TEXT, oldValue, resetEntryText);
}
public void setResetEntryTip(String resetEntryTip) {
String oldValue = this.resetEntryTip;
this.resetEntryTip = resetEntryTip;
firePropertyChange(PROPERTY_RESET_ENTRY_TIP, oldValue, resetEntryTip);
}
public void setResetNewEntryText(String resetNewEntryText) {
String oldValue = this.resetNewEntryText;
this.resetNewEntryText = resetNewEntryText;
firePropertyChange(PROPERTY_RESET_NEW_ENTRY_TEXT, oldValue, resetNewEntryText);
}
public void setResetNewEntryTip(String resetNewEntryTip) {
String oldValue = this.resetNewEntryTip;
this.resetNewEntryTip = resetNewEntryTip;
firePropertyChange(PROPERTY_RESET_NEW_ENTRY_TIP, oldValue, resetNewEntryTip);
}
public void setSaveEntryText(String saveEntryText) {
String oldValue = this.saveEntryText;
this.saveEntryText = saveEntryText;
firePropertyChange(PROPERTY_SAVE_ENTRY_TEXT, oldValue, saveEntryText);
}
public void setSaveEntryTip(String saveEntryTip) {
String oldValue = this.saveEntryTip;
this.saveEntryTip = saveEntryTip;
firePropertyChange(PROPERTY_SAVE_ENTRY_TIP, oldValue, saveEntryTip);
}
public void setSaveNewEntryText(String saveNewEntryText) {
String oldValue = this.saveNewEntryText;
this.saveNewEntryText = saveNewEntryText;
firePropertyChange(PROPERTY_SAVE_NEW_ENTRY_TEXT, oldValue, saveNewEntryText);
}
public void setSaveNewEntryTip(String saveNewEntryTip) {
String oldValue = this.saveNewEntryTip;
this.saveNewEntryTip = saveNewEntryTip;
firePropertyChange(PROPERTY_SAVE_NEW_ENTRY_TIP, oldValue, saveNewEntryTip);
}
/*-----------------------------------------------------------------------*/
/*--------------------- Components creation methods ---------------------*/
/*-----------------------------------------------------------------------*/
protected void addChildrenToBody() {
body.add(hideForm, BorderLayout.CENTER);
body.add(showForm, BorderLayout.CENTER);
}
protected void addChildrenToEditor() {
editor.add(SwingUtil.boxComponentWithJxLayer(SwingUtil.boxComponentWithJxLayer(editorPanel)), new GridBagConstraints(0, 0, 1, 1, 1.0, 0.0, 10, 1, new Insets(0, 0, 0, 0), 0, 0));
editor.add(editorActions, new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0, 10, 1, new Insets(0, 0, 0, 0), 0, 0));
}
protected void addChildrenToEditorActions() {
editorActions.add(newEntry, new GridBagConstraints(0, 0, 1, 1, 1.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
editorActions.add(resetEntry, new GridBagConstraints(1, 0, 1, 1, 1.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
editorActions.add(saveEntry, new GridBagConstraints(2, 0, 1, 1, 1.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
editorActions.add(deleteEntry, new GridBagConstraints(3, 0, 1, 1, 1.0, 0.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
}
protected void addChildrenToHideForm() {
hideForm.add(hideFormInformation);
}
protected void addChildrenToShowForm() {
showForm.add(tableScrollPane, new GridBagConstraints(0, 0, 1, 1, 1.0, 0.3, 10, 1, new Insets(0, 0, 0, 0), 0, 0));
showForm.add(SwingUtil.boxComponentWithJxLayer(editor), new GridBagConstraints(0, 1, 1, 1, 1.0, 0.0, 10, 1, new Insets(0, 0, 0, 0), 0, 0));
showForm.add(SwingUtil.boxComponentWithJxLayer(extraZone), new GridBagConstraints(0, 2, 1, 1, 1.0, 0.0, 10, 1, new Insets(0, 0, 0, 0), 0, 0));
}
protected void addChildrenToTableScrollPane() {
tableScrollPane.getViewport().add(table);
}
protected void addChildrenToValidator() {
validator.setErrorTableModel(getErrorTableModel());
validator.setUiClass(ImageValidationUI.class);
}
@Override
protected void createActions() {
super.createActions();
actions.setName("actions");
}
@Override
protected void createBean() {
$objectMap.put("bean", bean = new DataListDto(getModel().getPropertyName()));
}
@Override
protected void createBody() {
super.createBody();
body.setName("body");
body.setLayout(new BorderLayout());
}
protected void createDeleteEntry() {
$objectMap.put("deleteEntry", deleteEntry = new JButton());
deleteEntry.setName("deleteEntry");
deleteEntry.putClientProperty("text", t(getDeleteEntryText()));
deleteEntry.putClientProperty("toolTipText", t(getDeleteEntryTip()));
}
protected void createDeleteEntryText() {
$objectMap.put("deleteEntryText", deleteEntryText = n("observe.action.delete"));
}
protected void createDeleteEntryTip() {
$objectMap.put("deleteEntryTip", deleteEntryTip = n("observe.common.DataDto.action.deleteEntry.tip"));
}
protected void createEditor() {
$objectMap.put("editor", editor = new Table());
editor.setName("editor");
}
protected void createEditorActions() {
$objectMap.put("editorActions", editorActions = new Table());
editorActions.setName("editorActions");
}
protected void createEditorBlockLayerUI() {
$objectMap.put("editorBlockLayerUI", editorBlockLayerUI = new ObserveBlockingLayerUI());
editorBlockLayerUI.setUseIcon(false);
}
protected void createEditorPanel() {
$objectMap.put("editorPanel", editorPanel = new Table());
editorPanel.setName("editorPanel");
}
protected void createExtraZone() {
$objectMap.put("extraZone", extraZone = new Table());
extraZone.setName("extraZone");
}
protected void createHideForm() {
$objectMap.put("hideForm", hideForm = new JPanel());
hideForm.setName("hideForm");
hideForm.setLayout(new BorderLayout());
}
protected void createHideFormInformation() {
$objectMap.put("hideFormInformation", hideFormInformation = new JLabel());
hideFormInformation.setName("hideFormInformation");
hideFormInformation.setHorizontalAlignment(0);
if (hideFormInformation.getFont() != null) {
hideFormInformation.setFont(hideFormInformation.getFont().deriveFont((float) 11));
}
hideFormInformation.setVerticalAlignment(0);
}
protected void createIconDataCalcule() {
$objectMap.put("iconDataCalcule", iconDataCalcule = SwingUtil.getUIManagerActionIcon("data-calcule"));
}
protected void createIconDataObserve() {
$objectMap.put("iconDataObserve", iconDataObserve = SwingUtil.getUIManagerActionIcon("data-observe"));
}
@Override
protected void createModel() {
super.createModel();
((DataTableFormUIModel) model).setEditable(true);
}
protected void createNewEntry() {
$objectMap.put("newEntry", newEntry = new JButton());
newEntry.setName("newEntry");
newEntry.putClientProperty("text", t(getNewEntryText()));
newEntry.putClientProperty("toolTipText", t(getNewEntryTip()));
}
protected void createNewEntryText() {
$objectMap.put("newEntryText", newEntryText = n("observe.common.DataDto.action.newEntry"));
}
protected void createNewEntryTip() {
$objectMap.put("newEntryTip", newEntryTip = n("observe.common.DataDto.action.newEntry.tip"));
}
@Override
protected void createReset() {
super.createReset();
reset.setName("reset");
}
protected void createResetEntry() {
$objectMap.put("resetEntry", resetEntry = new JButton());
resetEntry.setName("resetEntry");
resetEntry.putClientProperty("text", t(getResetEntryText()));
resetEntry.putClientProperty("toolTipText", t(getResetEntryTip()));
}
protected void createResetEntryText() {
$objectMap.put("resetEntryText", resetEntryText = n("observe.common.DataDto.action.reset"));
}
protected void createResetEntryTip() {
$objectMap.put("resetEntryTip", resetEntryTip = n("observe.common.DataDto.action.resetEntry.tip"));
}
protected void createResetNewEntryText() {
$objectMap.put("resetNewEntryText", resetNewEntryText = n("observe.common.DataDto.action.reset"));
}
protected void createResetNewEntryTip() {
$objectMap.put("resetNewEntryTip", resetNewEntryTip = n("observe.common.DataDto.action.resetNewEntry.tip"));
}
@Override
protected void createSave() {
super.createSave();
save.setName("save");
save.putClientProperty("toolTipText", t("observe.action.save.all.tip"));
}
protected void createSaveEntry() {
$objectMap.put("saveEntry", saveEntry = new JButton());
saveEntry.setName("saveEntry");
}
protected void createSaveEntryText() {
$objectMap.put("saveEntryText", saveEntryText = n("observe.action.save"));
}
protected void createSaveEntryTip() {
$objectMap.put("saveEntryTip", saveEntryTip = n("observe.common.DataDto.action.saveEntry.tip"));
}
protected void createSaveNewEntryText() {
$objectMap.put("saveNewEntryText", saveNewEntryText = n("observe.action.create"));
}
protected void createSaveNewEntryTip() {
$objectMap.put("saveNewEntryTip", saveNewEntryTip = n("observe.common.DataDto.action.createEntry.tip"));
}
protected void createSelectionModel() {
$objectMap.put("selectionModel", selectionModel = getModel().getSelectionModel());
selectionModel.addListSelectionListener(JAXXUtil.getEventListener(ListSelectionListener.class, "valueChanged", this, "doValueChanged__on__selectionModel"));
}
protected void createShowForm() {
$objectMap.put("showForm", showForm = new Table());
showForm.setName("showForm");
}
protected void createTable() {
$objectMap.put("table", table = new JTable());
table.setName("table");
table.setAutoResizeMode(2);
table.setFillsViewportHeight(true);
table.setRowSelectionAllowed(true);
}
protected void createTableEditBean() {
$objectMap.put("tableEditBean", tableEditBean = getModel().getTableEditBean());
}
protected void createTableModel() {
$objectMap.put("tableModel", tableModel = getModel().getTableModel());
}
protected void createTableScrollPane() {
$objectMap.put("tableScrollPane", tableScrollPane = new JScrollPane());
tableScrollPane.setName("tableScrollPane");
}
protected void createValidator() {
$objectMap.put("validator", validator = SwingValidator.newValidator(DataListDto.class, "update"));
}
/*-----------------------------------------------------------------------*/
/*------------------------ Internal jaxx methods ------------------------*/
/*-----------------------------------------------------------------------*/
@Override
protected void $initialize() {
if (log.isDebugEnabled()) {
log.debug(this);
}
$SimpleDataListFormUI0 = this;
super.$initialize();
}
@Override
protected void $initialize_01_createComponents() {
if (log.isDebugEnabled()) {
log.debug(this);
}
super.$initialize_01_createComponents();
$objectMap.put("$SimpleDataListFormUI0", $SimpleDataListFormUI0);
createNewEntryText();
createNewEntryTip();
createResetEntryText();
createResetEntryTip();
createResetNewEntryText();
createResetNewEntryTip();
createSaveEntryText();
createSaveEntryTip();
createSaveNewEntryText();
createSaveNewEntryTip();
createDeleteEntryText();
createDeleteEntryTip();
createTableModel();
createSelectionModel();
createEditorBlockLayerUI();
createTableEditBean();
createIconDataObserve();
createIconDataCalcule();
createValidator();
createHideForm();
createHideFormInformation();
createShowForm();
createTableScrollPane();
createTable();
createEditor();
createEditorPanel();
createEditorActions();
createNewEntry();
createResetEntry();
createSaveEntry();
createDeleteEntry();
createExtraZone();
// inline creation of $SimpleDataListFormUI0
setName("$SimpleDataListFormUI0");
}
@Override
protected void $initialize_02_registerDataBindings() {
if (log.isDebugEnabled()) {
log.debug(this);
}
super.$initialize_02_registerDataBindings();
// register 20 data bindings
registerDataBinding(new DefaultJAXXBinding(this, BINDING_MODEL_VALID, true, true) {
@Override
public void applyDataBinding() {
if (getValidator() != null) {
getValidator().addPropertyChangeListener("valid", this);
}
if (getValidatorTable() != null) {
getValidatorTable().addPropertyChangeListener("valid", this);
}
}
@Override
public void processDataBinding() {
if (getValidator() != null && getValidatorTable() != null) {
((DataTableFormUIModel) model).setValid(getValidator().isValid() && getValidatorTable().isValid());
}
}
@Override
public void removeDataBinding() {
if (getValidator() != null) {
getValidator().removePropertyChangeListener("valid", this);
}
if (getValidatorTable() != null) {
getValidatorTable().removePropertyChangeListener("valid", this);
}
}
});
registerDataBinding(new DefaultJAXXBinding(this, BINDING_MODEL_CAN_SAVE_ROW, true, true) {
@Override
public void applyDataBinding() {
if (getValidatorTable() != null) {
getValidatorTable().addPropertyChangeListener("changed", this);
}
if (getValidatorTable() != null) {
getValidatorTable().addPropertyChangeListener("valid", this);
}
}
@Override
public void processDataBinding() {
if (getValidatorTable() != null) {
((DataTableFormUIModel) model).setCanSaveRow(getValidatorTable().isChanged() && getValidatorTable().isValid());
}
}
@Override
public void removeDataBinding() {
if (getValidatorTable() != null) {
getValidatorTable().removePropertyChangeListener("changed", this);
}
if (getValidatorTable() != null) {
getValidatorTable().removePropertyChangeListener("valid", this);
}
}
});
registerDataBinding(new DefaultJAXXBinding(this, BINDING_MODEL_MODIFIED, true) {
@Override
public void applyDataBinding() {
if (tableModel != null) {
tableModel.addPropertyChangeListener("modified", this);
}
}
@Override
public void processDataBinding() {
if (tableModel != null && getValidator() != null) {
((DataTableFormUIModel) model).setModified(tableModel.isModified() || getValidator().isChanged());
}
}
@Override
public void removeDataBinding() {
if (tableModel != null) {
tableModel.removePropertyChangeListener("modified", this);
}
}
});
registerDataBinding(new DefaultJAXXBinding(this, BINDING_MODEL_CAN_RESET_ROW, true) {
@Override
public void applyDataBinding() {
if (getValidatorTable() != null) {
getValidatorTable().addPropertyChangeListener("changed", this);
}
}
@Override
public void processDataBinding() {
if (getValidatorTable() != null) {
((DataTableFormUIModel) model).setCanResetRow(getValidatorTable().isChanged());
}
}
@Override
public void removeDataBinding() {
if (getValidatorTable() != null) {
getValidatorTable().removePropertyChangeListener("changed", this);
}
}
});
registerDataBinding(new DefaultJAXXBinding(this, BINDING_MODEL_ENABLED, true) {
@Override
public void applyDataBinding() {
if (model != null) {
model.addPropertyChangeListener("readingMode", this);
}
}
@Override
public void processDataBinding() {
if (model != null) {
((DataTableFormUIModel) model).setEnabled(!getModel().isReadingMode());
}
}
@Override
public void removeDataBinding() {
if (model != null) {
model.removePropertyChangeListener("readingMode", this);
}
}
});
registerDataBinding(new DefaultJAXXBinding(this, BINDING_TABLE_MODEL_EDITABLE, true) {
@Override
public void applyDataBinding() {
if (model != null) {
model.addPropertyChangeListener("readingMode", this);
}
}
@Override
public void processDataBinding() {
if (model != null) {
tableModel.setEditable(!getModel().isReadingMode());
}
}
@Override
public void removeDataBinding() {
if (model != null) {
model.removePropertyChangeListener("readingMode", this);
}
}
});
registerDataBinding(new DefaultJAXXBinding(this, BINDING_EDITOR_BLOCK_LAYER_UI_BLOCK, true) {
@Override
public void applyDataBinding() {
if (tableModel != null) {
tableModel.addPropertyChangeListener("editable", this);
}
}
@Override
public void processDataBinding() {
if (tableModel != null) {
editorBlockLayerUI.setBlock(!tableModel.isEditable());
}
}
@Override
public void removeDataBinding() {
if (tableModel != null) {
tableModel.removePropertyChangeListener("editable", this);
}
}
});
registerDataBinding(new DefaultJAXXBinding(this, BINDING_TABLE_SCROLL_PANE_COLUMN_HEADER_VIEW, true) {
@Override
public void applyDataBinding() {
if (table != null) {
table.addPropertyChangeListener("tableHeader", this);
}
}
@Override
public void processDataBinding() {
if (table != null) {
tableScrollPane.setColumnHeaderView(table.getTableHeader());
}
}
@Override
public void removeDataBinding() {
if (table != null) {
table.removePropertyChangeListener("tableHeader", this);
}
}
});
registerDataBinding(new DefaultJAXXBinding(this, BINDING_EDITOR_PANEL_VISIBLE, true) {
@Override
public void applyDataBinding() {
if (tableModel != null) {
tableModel.addPropertyChangeListener("empty", this);
}
}
@Override
public void processDataBinding() {
if (tableModel != null) {
editorPanel.setVisible(!tableModel.isEmpty());
}
}
@Override
public void removeDataBinding() {
if (tableModel != null) {
tableModel.removePropertyChangeListener("empty", this);
}
}
});
registerDataBinding(new DefaultJAXXBinding(this, BINDING_EDITOR_ACTIONS_VISIBLE, true) {
@Override
public void applyDataBinding() {
if (tableModel != null) {
tableModel.addPropertyChangeListener("editable", this);
}
}
@Override
public void processDataBinding() {
if (tableModel != null) {
editorActions.setVisible(tableModel.isEditable());
}
}
@Override
public void removeDataBinding() {
if (tableModel != null) {
tableModel.removePropertyChangeListener("editable", this);
}
}
});
registerDataBinding(new DefaultJAXXBinding(this, BINDING_NEW_ENTRY_VISIBLE, true, true) {
@Override
public void applyDataBinding() {
if (tableModel != null) {
tableModel.addPropertyChangeListener("editable", this);
}
if (tableModel != null) {
tableModel.addPropertyChangeListener("create", this);
}
}
@Override
public void processDataBinding() {
if (tableModel != null) {
newEntry.setVisible(tableModel.isEditable() && !tableModel.isCreate());
}
}
@Override
public void removeDataBinding() {
if (tableModel != null) {
tableModel.removePropertyChangeListener("editable", this);
}
if (tableModel != null) {
tableModel.removePropertyChangeListener("create", this);
}
}
});
registerDataBinding(new DefaultJAXXBinding(this, BINDING_RESET_ENTRY_VISIBLE, true, true) {
@Override
public void applyDataBinding() {
if (tableModel != null) {
tableModel.addPropertyChangeListener("editable", this);
}
if (tableModel != null) {
tableModel.addPropertyChangeListener("create", this);
}
if (tableModel != null) {
tableModel.addPropertyChangeListener("empty", this);
}
}
@Override
public void processDataBinding() {
if (tableModel != null) {
resetEntry.setVisible(tableModel.isEditable() && (tableModel.isCreate() || !tableModel.isEmpty()));
}
}
@Override
public void removeDataBinding() {
if (tableModel != null) {
tableModel.removePropertyChangeListener("editable", this);
}
if (tableModel != null) {
tableModel.removePropertyChangeListener("create", this);
}
if (tableModel != null) {
tableModel.removePropertyChangeListener("empty", this);
}
}
});
registerDataBinding(new DefaultJAXXBinding(this, BINDING_RESET_ENTRY_ENABLED, true, true) {
@Override
public void applyDataBinding() {
if (tableModel != null) {
tableModel.addPropertyChangeListener("create", this);
}
if (model != null) {
model.addPropertyChangeListener("canResetRow", this);
}
}
@Override
public void processDataBinding() {
if (tableModel != null && model != null) {
resetEntry.setEnabled(tableModel.isCreate() || getModel().isCanResetRow());
}
}
@Override
public void removeDataBinding() {
if (tableModel != null) {
tableModel.removePropertyChangeListener("create", this);
}
if (model != null) {
model.removePropertyChangeListener("canResetRow", this);
}
}
});
registerDataBinding(new DefaultJAXXBinding(this, BINDING_SAVE_ENTRY_VISIBLE, true, true) {
@Override
public void applyDataBinding() {
if (tableModel != null) {
tableModel.addPropertyChangeListener("editable", this);
}
if (tableModel != null) {
tableModel.addPropertyChangeListener("empty", this);
}
}
@Override
public void processDataBinding() {
if (tableModel != null) {
saveEntry.setVisible(tableModel.isEditable() && !tableModel.isEmpty());
}
}
@Override
public void removeDataBinding() {
if (tableModel != null) {
tableModel.removePropertyChangeListener("editable", this);
}
if (tableModel != null) {
tableModel.removePropertyChangeListener("empty", this);
}
}
});
registerDataBinding(new DefaultJAXXBinding(this, BINDING_SAVE_ENTRY_ENABLED, true) {
@Override
public void applyDataBinding() {
if (model != null) {
model.addPropertyChangeListener("canSaveRow", this);
}
}
@Override
public void processDataBinding() {
if (model != null) {
saveEntry.setEnabled(getModel().isCanSaveRow());
}
}
@Override
public void removeDataBinding() {
if (model != null) {
model.removePropertyChangeListener("canSaveRow", this);
}
}
});
registerDataBinding(new DefaultJAXXBinding(this, BINDING_DELETE_ENTRY_VISIBLE, true, true) {
@Override
public void applyDataBinding() {
if (tableModel != null) {
tableModel.addPropertyChangeListener("editable", this);
}
if (tableModel != null) {
tableModel.addPropertyChangeListener("empty", this);
}
if (tableModel != null) {
tableModel.addPropertyChangeListener("create", this);
}
}
@Override
public void processDataBinding() {
if (tableModel != null) {
deleteEntry.setVisible(tableModel.isEditable() && !tableModel.isEmpty() && !tableModel.isCreate());
}
}
@Override
public void removeDataBinding() {
if (tableModel != null) {
tableModel.removePropertyChangeListener("editable", this);
}
if (tableModel != null) {
tableModel.removePropertyChangeListener("empty", this);
}
if (tableModel != null) {
tableModel.removePropertyChangeListener("create", this);
}
}
});
registerDataBinding(new DefaultJAXXBinding(this, BINDING_RESET_VISIBLE, true) {
@Override
public void applyDataBinding() {
if (model != null) {
model.addPropertyChangeListener("enabled", this);
}
}
@Override
public void processDataBinding() {
if (model != null) {
reset.setVisible(getModel().isEnabled());
}
}
@Override
public void removeDataBinding() {
if (model != null) {
model.removePropertyChangeListener("enabled", this);
}
}
});
registerDataBinding(new DefaultJAXXBinding(this, BINDING_RESET_ENABLED, true) {
@Override
public void applyDataBinding() {
if (model != null) {
model.addPropertyChangeListener("modified", this);
}
}
@Override
public void processDataBinding() {
if (model != null) {
reset.setEnabled(getModel().isModified());
}
}
@Override
public void removeDataBinding() {
if (model != null) {
model.removePropertyChangeListener("modified", this);
}
}
});
registerDataBinding(new DefaultJAXXBinding(this, BINDING_SAVE_VISIBLE, true) {
@Override
public void applyDataBinding() {
if (model != null) {
model.addPropertyChangeListener("enabled", this);
}
}
@Override
public void processDataBinding() {
if (model != null) {
save.setVisible(getModel().isEnabled());
}
}
@Override
public void removeDataBinding() {
if (model != null) {
model.removePropertyChangeListener("enabled", this);
}
}
});
registerDataBinding(new DefaultJAXXBinding(this, BINDING_SAVE_ENABLED, true, true) {
@Override
public void applyDataBinding() {
if (model != null) {
model.addPropertyChangeListener("modified", this);
}
if (model != null) {
model.addPropertyChangeListener("valid", this);
}
if (tableModel != null) {
tableModel.addPropertyChangeListener("create", this);
}
}
@Override
public void processDataBinding() {
if (model != null && tableModel != null) {
save.setEnabled(getModel().isModified() && getModel().isValid() && !tableModel.isCreate());
}
}
@Override
public void removeDataBinding() {
if (model != null) {
model.removePropertyChangeListener("modified", this);
}
if (model != null) {
model.removePropertyChangeListener("valid", this);
}
if (tableModel != null) {
tableModel.removePropertyChangeListener("create", this);
}
}
});
}
@Override
protected void $initialize_03_finalizeCreateComponents() {
if (log.isDebugEnabled()) {
log.debug(this);
}
super.$initialize_03_finalizeCreateComponents();
addChildrenToValidator();
addChildrenToBody();
addChildrenToHideForm();
addChildrenToShowForm();
addChildrenToTableScrollPane();
addChildrenToEditor();
addChildrenToEditorActions();
}
@Override
protected void $initialize_04_applyDataBindings() {
if (log.isDebugEnabled()) {
log.debug(this);
}
super.$initialize_04_applyDataBindings();
// apply 20 data bindings
JAXXUtil.applyDataBinding(this, $bindings.keySet());
}
@Override
protected void $initialize_05_setProperties() {
if (log.isDebugEnabled()) {
log.debug(this);
}
super.$initialize_05_setProperties();
// apply 10 property setters
selectionModel.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
editorBlockLayerUI.setAcceptedComponentTypes(javax.swing.JScrollBar.class);
editorBlockLayerUI.setBlockingColor(javax.swing.UIManager.getColor("BlockingLayerUI.blockingColor"));
hideFormInformation.setIcon(SwingUtil.getUIManagerActionIcon("information"));
tableScrollPane.setMinimumSize(new Dimension(10, 100));
table.setSelectionModel(selectionModel);
table.setModel(tableModel);
editor.setBorder(new TitledBorder(""));// late initializer
// register 1 validator(s)
validatorIds = SwingValidatorUtil.detectValidators(this);
SwingValidatorUtil.installUI(this);
}
@Override
protected void $initialize_06_finalizeInitialize() {
if (log.isDebugEnabled()) {
log.debug(this);
}
super.$initialize_06_finalizeInitialize();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy