Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 4aac1786 by Tony Chemit at 2021-01-06T17:14:52+01:00 Bouton 'infos techniques' sur formulaire captures - Closes #1732 - - - - - 7 changed files: - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/ContentUIModel.java - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/ContentUIModelStates.java - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/actions/id/ShowTechnicalInformations.java - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/data/table/ContentTableUI.jaxx - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/data/table/ContentTableUI.jcss - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/data/table/ContentTableUIHandler.java - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/data/table/ContentTableUIModel.java Changes: ===================================== client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/ContentUIModel.java ===================================== @@ -107,10 +107,6 @@ public abstract class ContentUIModel extends AbstractJavaBean implements Closeab states.setFormFocusOwner(formFocusOwner); } - public void setCanShowTechnicalInformation(boolean canShowTechnicalInformation) { - states.setCanShowTechnicalInformation(canShowTechnicalInformation); - } - public String getPrefix() { return getSource().getInitializer().getLogPrefix(); } ===================================== client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/ContentUIModelStates.java ===================================== @@ -54,7 +54,6 @@ public class ContentUIModelStates extends AbstractJavaBean implements Closeable public static final String PROPERTY_UPDATING_MODE = "updatingMode"; public static final String PROPERTY_OPENED = "opened"; private static final String PROPERTY_ENABLED = "enabled"; - private static final String PROPERTY_CAN_SHOW_TECHNICAL_INFORMATION = "canShowTechnicalInformation"; /** * Mode of the content. */ @@ -87,10 +86,6 @@ public class ContentUIModelStates extends AbstractJavaBean implements Closeable * Is content opened? */ private boolean opened; - /** - * Is can show technical information? - */ - private boolean canShowTechnicalInformation; /** * Is a reset edit in progress? */ @@ -288,16 +283,6 @@ public class ContentUIModelStates extends AbstractJavaBean implements Closeable firePropertyChange(PROPERTY_FORM_FOCUS_OWNER, formFocusOwner); } - public boolean isCanShowTechnicalInformation() { - return canShowTechnicalInformation; - } - - public void setCanShowTechnicalInformation(boolean canShowTechnicalInformation) { - boolean oldValue = isCanShowTechnicalInformation(); - this.canShowTechnicalInformation = canShowTechnicalInformation; - firePropertyChange(PROPERTY_CAN_SHOW_TECHNICAL_INFORMATION, oldValue, canShowTechnicalInformation); - } - @Override public void close() { setOpened(false); ===================================== client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/actions/id/ShowTechnicalInformations.java ===================================== @@ -32,6 +32,9 @@ import fr.ird.observe.client.datasource.editor.api.content.data.list.ContentList import fr.ird.observe.client.datasource.editor.api.content.data.list.ContentListUIModelStates; import fr.ird.observe.client.datasource.editor.api.content.data.open.ContentOpenableUI; import fr.ird.observe.client.datasource.editor.api.content.data.open.ContentOpenableUIModelStates; +import fr.ird.observe.client.datasource.editor.api.content.data.table.ContentTableUI; +import fr.ird.observe.client.datasource.editor.api.content.data.table.ContentTableUIModelStates; +import fr.ird.observe.client.datasource.editor.api.content.data.table.ContentTableUITableModel; import fr.ird.observe.client.datasource.editor.api.content.referential.ContentReferentialUI; import fr.ird.observe.client.datasource.editor.api.content.referential.ContentReferentialUIModelStates; import fr.ird.observe.dto.reference.ReferentialDtoReference; @@ -74,6 +77,15 @@ public class ShowTechnicalInformations<U extends ContentUI> extends ContentUIAct ShowTechnicalInformations.init(ui, ui.getShowTechnicalInformations(), action); } + public static <U extends ContentTableUI<?, ?, U>> void installAction(U ui) { + ShowIdRequest request = ui.getModel().getShowIdRequest(); + ShowTechnicalInformations<U> action = new ShowTechnicalInformations<>(request, new ShowIdExecutor(ui.getHandler().getDecoratorService(), ui.getToggleConfigure())); + ui.getTableModel().addPropertyChangeListener(ContentTableUITableModel.SELECTED_ROW_PROPERTY, evt -> request.reset()); + ui.getModel().getStates().addPropertyChangeListener(ContentTableUIModelStates.PROPERTY_CAN_SAVE_ROW, evt -> request.reset()); + ui.getModel().getStates().addPropertyChangeListener(ContentTableUIModelStates.PROPERTY_MODIFIED, evt -> request.reset()); + ShowTechnicalInformations.init(ui, ui.getShowTechnicalInformations(), action); + } + public static <U extends ContentListUI<?, ?, U>> void installAction(U ui) { ShowIdRequest request = ui.getModel().getShowIdRequest(); ShowTechnicalInformations<U> action = new ShowTechnicalInformations<>(request, new ShowIdExecutor(ui.getHandler().getDecoratorService(), ui.getToggleConfigure())); ===================================== client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/data/table/ContentTableUI.jaxx ===================================== @@ -19,39 +19,40 @@ --> <fr.ird.observe.client.datasource.editor.api.content.ContentUI - abstract='true' - genericType='D extends DataDto, C extends DataDto, U extends ContentTableUI<D, C, U>' - implements="fr.ird.observe.client.datasource.editor.api.content.EditableContentUI<D>"> + abstract='true' + genericType='D extends DataDto, C extends DataDto, U extends ContentTableUI<D, C, U>' + implements="fr.ird.observe.client.datasource.editor.api.content.EditableContentUI<D>"> - <import> + <import> - fr.ird.observe.client.util.ObserveBlockingLayerUI - fr.ird.observe.client.datasource.validation.ObserveSwingValidator + fr.ird.observe.client.util.ObserveBlockingLayerUI + fr.ird.observe.client.datasource.validation.ObserveSwingValidator - org.nuiton.jaxx.validator.swing.SwingValidator - fr.ird.observe.dto.data.DataDto + org.nuiton.jaxx.validator.swing.SwingValidator + fr.ird.observe.dto.data.DataDto - java.awt.Dimension + java.awt.Dimension - javax.swing.UIManager + javax.swing.UIManager - static io.ultreia.java4all.i18n.I18n.n - static io.ultreia.java4all.i18n.I18n.t - </import> + static io.ultreia.java4all.i18n.I18n.n + static io.ultreia.java4all.i18n.I18n.t + </import> - <ContentTableUIModel id='model' genericType='D, C'/> - <ContentTableUIModelStates id='states' genericType='D, C'/> - <ContentTableUITableModel id='tableModel' genericType='D, C, U' initializer='null'/> - <DataDto id='bean' initializer='getStates().getBean()'/> - <DataDto id='tableEditBean' initializer='getStates().getTableEditBean()'/> + <ContentTableUIModel id='model' genericType='D, C'/> + <ContentTableUIModelStates id='states' genericType='D, C'/> + <ContentTableUITableModel id='tableModel' genericType='D, C, U' initializer='null'/> + <DataDto id='bean' initializer='getStates().getBean()'/> + <DataDto id='tableEditBean' initializer='getStates().getTableEditBean()'/> - <!-- selection model in table --> - <ListSelectionModel id='selectionModel' initializer='getTableModel().getSelectionModel()' onValueChanged='getHandler().updateEditor(event)'/> + <!-- selection model in table --> + <ListSelectionModel id='selectionModel' initializer='getTableModel().getSelectionModel()' + onValueChanged='getHandler().updateEditor(event)'/> - <!-- to block entry editor --> - <ContentTableEditorLayerUI id='editorBlockLayerUI' constructorParams="this" styleClass="blockBlockLayerUI"/> + <!-- to block entry editor --> + <ContentTableEditorLayerUI id='editorBlockLayerUI' constructorParams="this" styleClass="blockBlockLayerUI"/> - <script><![CDATA[ + <script><![CDATA[ @Override public abstract ContentTableUIHandler<D, C, U> getHandler(); @@ -64,94 +65,94 @@ public void resetEdit() { } ]]> - </script> - - <JPanel id="body" layout='{new BorderLayout()}'> - - <JPanel id='hideForm' layout='{new BorderLayout()}' constraints="BorderLayout.CENTER"> - <JLabel id='hideFormInformation'/> - </JPanel> - <JPanel id='emptyForm' layout='{new BorderLayout()}' constraints="BorderLayout.CENTER"> - <JLabel id='emptyFormInformation'/> - </JPanel> - - <Table id='showForm' insets="0" weightx="1" constraints="BorderLayout.CENTER"> - - <row weighty="0.3"> - <cell fill="both"> - <!-- table with all entries --> - <JScrollPane id='tableScrollPane' decorator="boxed"> - <JTable id='table'/> - </JScrollPane> - </cell> - </row> - <row> - <cell fill="both"> - - <!-- to edit the selected entry --> - <Table id='editor' fill='both' insets='0' decorator='boxed'> - - <!-- Entry editor panel --> + </script> + + <JPanel id="body" layout='{new BorderLayout()}'> + + <JPanel id='hideForm' layout='{new BorderLayout()}' constraints="BorderLayout.CENTER"> + <JLabel id='hideFormInformation'/> + </JPanel> + <JPanel id='emptyForm' layout='{new BorderLayout()}' constraints="BorderLayout.CENTER"> + <JLabel id='emptyFormInformation'/> + </JPanel> + + <Table id='showForm' insets="0" weightx="1" constraints="BorderLayout.CENTER"> + + <row weighty="0.3"> + <cell fill="both"> + <!-- table with all entries --> + <JScrollPane id='tableScrollPane' decorator="boxed"> + <JTable id='table'/> + </JScrollPane> + </cell> + </row> <row> - <cell fill='both' weightx='1'> - <Table id='editorPanel' decorator='boxed'/> - </cell> + <cell fill="both"> + + <!-- to edit the selected entry --> + <Table id='editor' fill='both' insets='0' decorator='boxed'> + + <!-- Entry editor panel --> + <row> + <cell fill='both' weightx='1'> + <Table id='editorPanel' decorator='boxed'/> + </cell> + </row> + + <!--Entry editor actions --> + <row> + <cell> + <Table fill='both' id='editorActions'> + <row> + <cell weightx='1'> + <!-- Reset entry form --> + <JButton id='resetEntry'/> + </cell> + <cell weightx='1'> + <JPanel layout="{new GridLayout(1,0)}"> + <!-- Save entry form --> + <JButton id='saveEntry'/> + <!-- Save entry form and create a new entry --> + <JButton id='saveAndNewEntry'/> + </JPanel> + </cell> + <cell weightx='1'> + <!-- Delete selected entry (only for update mode))--> + <JButton id='deleteEntry'/> + </cell> + </row> + </Table> + </cell> + </row> + </Table> + </cell> </row> - - <!--Entry editor actions --> <row> - <cell> - <Table fill='both' id='editorActions'> - <row> - <cell weightx='1'> - <!-- Reset entry form --> - <JButton id='resetEntry'/> - </cell> - <cell weightx='1'> - <JPanel layout="{new GridLayout(1,0)}"> - <!-- Save entry form --> - <JButton id='saveEntry'/> - <!-- Save entry form and create a new entry --> - <JButton id='saveAndNewEntry'/> - </JPanel> - </cell> - <cell weightx='1'> - <!-- Delete selected entry (only for update mode))--> - <JButton id='deleteEntry'/> - </cell> - </row> - </Table> - </cell> + <cell fill="both"> + <Table id='extraZone' decorator='boxed'/> + </cell> </row> - </Table> - </cell> - </row> - <row> - <cell fill="both"> - <Table id='extraZone' decorator='boxed'/> - </cell> - </row> + </Table> + </JPanel> + <!--Main editor actions --> + <Table id="actions" weightx='1' insets='0' fill="both"> + <row fill="both"> + <cell weightx="0.5"> + <JButton id='reset'/> + </cell> + <cell weightx="0.5"> + <JButton id='save'/> + </cell> + </row> </Table> - </JPanel> - <!--Main editor actions --> - <Table id="actions" weightx='1' insets='0' fill="both"> - <row fill="both"> - <cell weightx="0.5"> - <JButton id='reset'/> - </cell> - <cell weightx="0.5"> - <JButton id='save'/> - </cell> - </row> - </Table> - <JPanel id="invisible"> - <!--Table actions --> - <JToolBar id="selectToolbar"> - <JButton id="selectFirstTableEntry"/> - <JButton id="selectPreviousTableEntry"/> - <JButton id="selectNextTableEntry"/> - <JButton id="selectLastTableEntry"/> - </JToolBar> - </JPanel> - + <JPanel id="invisible"> + <!--Table actions --> + <JToolBar id="selectToolbar"> + <JButton id="selectFirstTableEntry"/> + <JButton id="selectPreviousTableEntry"/> + <JButton id="selectNextTableEntry"/> + <JButton id="selectLastTableEntry"/> + </JToolBar> + </JPanel> + <JMenuItem id='showTechnicalInformations'/> </fr.ird.observe.client.datasource.editor.api.content.ContentUI> ===================================== client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/data/table/ContentTableUI.jcss ===================================== @@ -112,3 +112,7 @@ verticalAlignment:"center"; horizontalAlignment:"center"; } + +#showTechnicalInformations { + enabled:{!states.isCreatingMode() && !tableModel.isCreate() && tableModel.getSelectedRow() > -1}; +} ===================================== client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/data/table/ContentTableUIHandler.java ===================================== @@ -26,6 +26,7 @@ import fr.ird.observe.client.datasource.editor.api.content.ContentMode; import fr.ird.observe.client.datasource.editor.api.content.ContentUIHandler; import fr.ird.observe.client.datasource.editor.api.content.actions.InsertMenuAction; import fr.ird.observe.client.datasource.editor.api.content.actions.create.CreateNewContentTableUIEntry; +import fr.ird.observe.client.datasource.editor.api.content.actions.id.ShowTechnicalInformations; import fr.ird.observe.client.datasource.editor.api.content.actions.mode.ChangeMode; import fr.ird.observe.client.datasource.editor.api.content.actions.mode.ChangeModeExecutor; import fr.ird.observe.client.datasource.editor.api.content.actions.mode.ChangeModeProducer; @@ -132,7 +133,7 @@ public abstract class ContentTableUIHandler<D extends DataDto, C extends DataDto ResetEntry.init(ui, ui.getResetEntry(), ResetEntry.class); SaveAndNewEntry.init(ui, ui.getSaveAndNewEntry(), SaveAndNewEntry.class); DeleteEntry.init(ui, ui.getDeleteEntry(), DeleteEntry.class); - + ShowTechnicalInformations.installAction(ui); getComponent(JButton.class, "importData").ifPresent(e -> ImportDataFile.installAction(ui, e)); getComponent(JButton.class, "deleteData").ifPresent(e -> DeleteDataFile.installAction(ui, e)); getComponent(JButton.class, "exportData").ifPresent(e -> ExportDataFile.installAction(ui, e)); ===================================== client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/data/table/ContentTableUIModel.java ===================================== @@ -22,6 +22,7 @@ package fr.ird.observe.client.datasource.editor.api.content.data.table; import fr.ird.observe.client.datasource.editor.api.content.ContentUI; +import fr.ird.observe.client.datasource.editor.api.content.actions.id.ShowIdRequest; import fr.ird.observe.client.datasource.editor.api.content.actions.save.SaveRequest; import fr.ird.observe.client.datasource.editor.api.content.data.simple.ContentSimpleUIModelSupport; import fr.ird.observe.client.datasource.editor.api.content.data.table.sortable.SortableTableUI; @@ -29,6 +30,7 @@ import fr.ird.observe.client.datasource.editor.api.navigation.tree.NavigationNod import fr.ird.observe.client.util.init.DefaultUIInitializerResult; import fr.ird.observe.dto.data.DataDto; import fr.ird.observe.dto.form.Form; +import fr.ird.observe.dto.reference.DtoReference; import fr.ird.observe.services.service.data.SimpleDataService; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -174,4 +176,11 @@ public abstract class ContentTableUIModel<D extends DataDto, C extends DataDto> } return super.openForm(selectedId); } + + public ShowIdRequest getShowIdRequest() { + return new ShowIdRequest(() -> { + C tableEditBean = ContentTableUIModel.this.getStates().getTableEditBean(); + return tableEditBean == null ? null : DtoReference.toReference(getClientUIContext().getDecoratorService().getReferentialLocale(), tableEditBean); + }); + } } View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/4aac1786a41449b6c15c0130a4... -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/4aac1786a41449b6c15c0130a4... You're receiving this email because of your account on gitlab.com.
participants (1)
-
Tony CHEMIT