This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 2edb9835cd6924488a01eda1328757be921b4bc9 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Nov 28 17:01:01 2016 +0100 refs #8429 [iso] revue des écrans de type List : simplification du code --- .../actions/global/NewNextDataGlobalUIAction.java | 2 +- .../global/OpenCloseDataGlobalUIAction.java | 4 +- .../ui/actions/global/ResetDataGlobalUIAction.java | 1 - .../swing/ui/content/ContentUIHandler.java | 4 +- .../swing/ui/content/ObserveFocusManager.java | 18 ++--- .../swing/ui/content/list/ContentListUI.jaxx | 53 +++---------- .../swing/ui/content/list/ContentListUI.jcss | 29 -------- .../ui/content/list/ContentListUIHandler.java | 47 +++++++++--- .../swing/ui/content/list/ContentListUIModel.java | 86 +++++++++++++++++++--- .../ActivitySeinesUI.jcss => CommonListUI.jcss} | 45 ++++++----- .../list/impl/longline/ActivityLonglinesUI.jaxx | 46 ++++++++---- .../list/impl/longline/ActivityLonglinesUI.jcss | 28 +++---- .../impl/longline/ActivityLonglinesUIHandler.java | 24 +++++- .../content/list/impl/longline/CommonListUI.jcss | 64 ---------------- .../list/impl/longline/TripLonglinesUI.jaxx | 40 ++++++---- .../list/impl/longline/TripLonglinesUI.jcss | 14 +++- .../list/impl/longline/TripLonglinesUIHandler.java | 45 +++++++++-- .../list/impl/longline/TripLonglinesUIModel.java | 4 +- .../content/list/impl/seine/ActivitySeinesUI.jaxx | 44 +++++++---- .../content/list/impl/seine/ActivitySeinesUI.jcss | 27 +++---- .../list/impl/seine/ActivitySeinesUIHandler.java | 25 ++++++- .../ui/content/list/impl/seine/CommonListUI.jcss | 81 -------------------- .../swing/ui/content/list/impl/seine/RoutesUI.jaxx | 43 +++++++---- .../swing/ui/content/list/impl/seine/RoutesUI.jcss | 24 +++--- .../content/list/impl/seine/RoutesUIHandler.java | 28 ++++++- .../ui/content/list/impl/seine/TripSeinesUI.jaxx | 42 ++++++----- .../ui/content/list/impl/seine/TripSeinesUI.jcss | 15 ++-- .../list/impl/seine/TripSeinesUIHandler.java | 28 ++++++- .../content/open/impl/longline/TripLonglineUI.jcss | 4 + 29 files changed, 497 insertions(+), 418 deletions(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/global/NewNextDataGlobalUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/global/NewNextDataGlobalUIAction.java index 5572231..3314a47 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/global/NewNextDataGlobalUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/global/NewNextDataGlobalUIAction.java @@ -53,7 +53,7 @@ public class NewNextDataGlobalUIAction extends AbstractGlobalUIAction { if (contentUI instanceof ContentListUI) { ContentListUI ui = (ContentListUI) contentUI; - ui.getCreateChild().getAction().actionPerformed(e); + ui.getCreate().getAction().actionPerformed(e); } else if (contentUI instanceof ContentOpenableUI) { ContentOpenableUI ui = (ContentOpenableUI) contentUI; ui.getCloseAndCreate().getAction().actionPerformed(e); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/global/OpenCloseDataGlobalUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/global/OpenCloseDataGlobalUIAction.java index cb9e795..0ba2d1a 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/global/OpenCloseDataGlobalUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/global/OpenCloseDataGlobalUIAction.java @@ -66,11 +66,11 @@ public class OpenCloseDataGlobalUIAction extends AbstractGlobalUIAction implemen if (contentUI instanceof ContentListUI) { ContentListUI ui = (ContentListUI) contentUI; - if (ui.getReopenChild().isEnabled()) { + if (ui.getReopen().isEnabled()) { // on réouvre openAction.actionPerformed(ui); - } else if (ui.getCloseChild().isEnabled()) { + } else if (ui.getClose().isEnabled()) { // on ferme closeAction.actionPerformed(ui); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/global/ResetDataGlobalUIAction.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/global/ResetDataGlobalUIAction.java index e0b140f..0dfa178 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/global/ResetDataGlobalUIAction.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/actions/global/ResetDataGlobalUIAction.java @@ -44,7 +44,6 @@ public class ResetDataGlobalUIAction extends AbstractGlobalUIAction { super(mainUI, ACTION_NAME, "pressed F7"); } - @Override public void actionPerformed(ActionEvent e) { diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIHandler.java index 256bcf2..ba66cbf 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ContentUIHandler.java @@ -395,7 +395,9 @@ public abstract class ContentUIHandler<E extends IdDto, U extends ContentUI<E, U if (log.isInfoEnabled()) { log.info("Grab focus on first component: " + firstComponent); } - firstComponent.grabFocus(); + if (firstComponent != null) { + firstComponent.grabFocus(); + } } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveFocusManager.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveFocusManager.java index 1f2a3b2..5f1096e 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveFocusManager.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/ObserveFocusManager.java @@ -1053,18 +1053,12 @@ public class ObserveFocusManager { if (actions == null) { actions = new ArrayList<>(); - actions.add(getUi().getGotoSelectedChild()); - actions.add(getUi().getReopenChild()); - actions.add(getUi().getCloseChild()); - actions.add(getUi().getGotoOpenChild()); - actions.add(getUi().getGotoOpenChild2()); - actions.add(getUi().getCreateChild()); - for (Component component : getUi().getExtraActions().getComponents()) { - if (component instanceof JButton) { - actions.add((JComponent) component); - } - } - actions.add(getUi().getMoveSelectedChildren()); + actions.add(getUi().getGotoSelected()); + actions.add(getUi().getReopen()); + actions.add(getUi().getClose()); + actions.add(getUi().getGotoOpen()); + actions.add(getUi().getCreate()); + actions.add(getUi().getMove()); } List<JComponent> result = new ArrayList<>(actions); diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUI.jaxx index d44ab79..9b1c48a 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUI.jaxx @@ -20,9 +20,8 @@ #L% --> -<fr.ird.observe.application.swing.ui.content.ContentUI - abstract='true' superGenericType='E, U' - genericType='E extends IdDto, C extends DataDto, U extends ContentListUI<E,C, U>'> +<fr.ird.observe.application.swing.ui.content.ContentUI abstract='true' superGenericType='E, U' + genericType='E extends IdDto, C extends DataDto, U extends ContentListUI<E,C, U>'> <import> fr.ird.observe.application.swing.ui.actions.content.CloseOpenUIAction @@ -40,11 +39,13 @@ javax.swing.DefaultListSelectionModel javax.swing.ListSelectionModel + javax.swing.JButton java.util.List static org.nuiton.i18n.I18n.t </import> + <java.lang.String id='listText' javaBean='""'/> <java.lang.String id='emptyListMessage' javaBean='""'/> @@ -58,6 +59,13 @@ <script><![CDATA[ +public abstract JButton getGotoSelected(); +public abstract JButton getGotoOpen(); +public abstract JButton getReopen(); +public abstract JButton getClose(); +public abstract JButton getCreate(); +public abstract JButton getMove(); + public final DataReference<C> getSelectedData() { return (DataReference<C>) getSelectedBean(list); } @@ -81,43 +89,6 @@ public final List<DataReference<C>> getSelectedDatas() { </JPanel> - <Table id="actions" fill='both' weightx='1' insets='0'> - <row> - <cell fill='both' columns="3"> - <JButton id='gotoSelectedChild'/> - </cell> - </row> - <row> - <cell fill='both' columns="3"> - <JButton id='reopenChild'/> - </cell> - </row> - <row> - <cell fill='both' columns="3"> - <JButton id='closeChild'/> - </cell> - </row> - <row weighty="1" weightx="1" fill="both"> - <cell> - <JButton id='gotoOpenChild'/> - </cell> - <cell> - <JButton id='gotoOpenChild2'/> - </cell> - <cell> - <JButton id='createChild'/> - </cell> - </row> - <row> - <cell fill="both" columns="3"> - <Table id='extraActions' fill="both" weightx="1" insets='2'/> - </cell> - </row> - <row> - <cell fill='both' columns="3"> - <JButton id='moveSelectedChildren'/> - </cell> - </row> - </Table> + <Table id="actions" fill='both' weightx='1' insets='0'/> </fr.ird.observe.application.swing.ui.content.ContentUI> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUI.jcss b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUI.jcss index 03a4753..a2fbddf 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUI.jcss +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUI.jcss @@ -48,32 +48,3 @@ selectionModel:{listSelectionModel} } -#gotoSelectedChild { - visible:{!model.isEmpty()}; - enabled:{model.isOneSelectedData()}; - _observeAction:{SelectNodeUIAction.ACTION_NAME}; - _actionIcon:{"go-down"}; -} - -#reopenChild { - visible:{!model.isEmpty() && model.isCanReopen()}; - enabled:{model.isOneSelectedData()}; - _observeAction:{ReOpenUIAction.ACTION_NAME}; -} - -#closeChild { - visible:{!model.isEmpty() && !model.isCanReopen()}; - enabled:{getHandler().isCanCloseChild()}; - _observeAction:{CloseOpenUIAction.ACTION_NAME}; -} - -#createChild { - visible:{model.isCreatingMode()}; - _observeAction:{CreateOpenUIAction.ACTION_NAME}; -} - -#moveSelectedChildren { - visible:{!model.isEmpty()}; - enabled:{model.isOneOrMoreSelectedData()}; -} - diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUIHandler.java index 8f182fc..94c17d6 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUIHandler.java @@ -65,8 +65,6 @@ public abstract class ContentListUIHandler<E extends IdDto, C extends DataDto, U super(ui, parentType, type); } - public abstract boolean isCanCloseChild(); - @Override protected boolean computeCanWrite(ObserveSwingDataSource source) { return source.canWriteData(); @@ -87,6 +85,15 @@ public abstract class ContentListUIHandler<E extends IdDto, C extends DataDto, U NavigationTree treeHelper = getTreeHelper(getUi()); getUi().getList().setCellRenderer(new EntityListCellRenderer(renderer, treeHelper)); + + getModel().addPropertyChangeListener(ContentListUIModel.PROPERTY_SELECTED_DATAS, e -> { + ContentListUIModel model = (ContentListUIModel) e.getSource(); + model.setCanClose(computeCanClose()); + model.setCanReopen(computeCanReopen()); + model.setCanCreate(computeCanCreate()); + model.setCanMove(computeCanMove()); + model.setCanGotoSelected(computeCanGotoSelected()); + }); } @Override @@ -128,12 +135,6 @@ public abstract class ContentListUIHandler<E extends IdDto, C extends DataDto, U model.setMode(null); model.setMode(mode); - boolean canReopen = mode == ContentMode.CREATE; - if (log.isInfoEnabled()) { - log.info(prefix + "canReopen = " + canReopen); - } - model.setCanReopen(canReopen); - // il n'est pas nécessaire de charger le bean car seuls ses enfants nous sont utile dans cette ecran List<DataReference<C>> data = new ArrayList<>(); @@ -151,15 +152,41 @@ public abstract class ContentListUIHandler<E extends IdDto, C extends DataDto, U model.setData(data); + model.setCanClose(computeCanClose()); + model.setCanReopen(computeCanReopen()); + model.setCanCreate(computeCanCreate()); + model.setCanMove(computeCanMove()); + model.setCanGotoOpen(computeCanGotoOpen()); + model.setCanGotoSelected(computeCanGotoSelected()); + SwingUtilities.invokeLater(() -> { getUi().getListSelectionModel().clearSelection(); }); - getUi().getCloseChild().setEnabled(isCanCloseChild()); // finalize openUI with specified code finalizeOpenUI(); } + protected boolean computeCanGotoSelected() { + return ui.getModel().isOneSelectedData(); + } + + protected abstract boolean computeCanGotoOpen(); + + protected boolean computeCanMove() { + return ui.getModel().isOneOrMoreSelectedData(); + } + + protected boolean computeCanCreate() { + return ui.getModel().isCreatingMode(); + } + + protected boolean computeCanReopen() { + return ui.getModel().isOneSelectedData() && getModel().getMode() == ContentMode.CREATE; + } + + protected abstract boolean computeCanClose(); + @Override protected void updateToolbarActions() { super.updateToolbarActions(); @@ -193,7 +220,7 @@ public abstract class ContentListUIHandler<E extends IdDto, C extends DataDto, U } // attach the node to action - JButton button = getUi().getGotoSelectedChild(); + JButton button = getUi().getGotoSelected(); button.putClientProperty(SelectNodeUIAction.NODE, node); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUIModel.java index e6bcbe9..622abab 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/ContentListUIModel.java @@ -21,10 +21,10 @@ */ package fr.ird.observe.application.swing.ui.content.list; +import fr.ird.observe.application.swing.ui.content.ContentUIModel; import fr.ird.observe.services.dto.DataDto; import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.IdDto; -import fr.ird.observe.application.swing.ui.content.ContentUIModel; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -39,20 +39,25 @@ import java.util.List; */ public abstract class ContentListUIModel<E extends IdDto, C extends DataDto> extends ContentUIModel<E> { - public static final String PROPERTY_DATA = "data"; + private static final long serialVersionUID = 1L; + /** Logger */ + private static final Log log = LogFactory.getLog(ContentListUIModel.class); + + public static final String PROPERTY_DATA = "data"; public static final String PROPERTY_SELECTED_DATAS = "selectedDatas"; public static final String PROPERTY_ONE_SELECTED_DATA = "oneSelectedData"; public static final String PROPERTY_ONE_OR_MORE_SELECTED_DATA = "oneOrMoreSelectedData"; public static final String PROPERTY_EMPTY = "empty"; - public static final String PROPERTY_CAN_REOPEN = "canReopen"; + public static final String PROPERTY_CAN_GOTO_SELECTED = "canGotoSelected"; + public static final String PROPERTYCAN_GOTO_OPEN = "canGotoOpen"; + public static final String PROPERTY_CAN_CLOSE = "canClose"; + public static final String PROPERTY_CAN_CREATE = "canCreate"; + public static final String PROPERTY_CAN_DELETE = "canDelete"; - private static final long serialVersionUID = 1L; - - /** Logger */ - static private final Log log = LogFactory.getLog(ContentListUIModel.class); + public static final String PROPERTY_CAN_MOVE = "canMove"; /** type des entites */ protected final Class<C> childType; @@ -63,8 +68,13 @@ public abstract class ContentListUIModel<E extends IdDto, C extends DataDto> ext /** entités sélectionnées dans la liste */ protected List<DataReference<C>> selectedDatas; - /** un drapeau pour savoir si on peut reouvrir l'un des données de la liste. */ - protected boolean canReopen; + private boolean canReopen; + private boolean canGotoSelected; + private boolean canGotoOpen; + private boolean canClose; + private boolean canCreate; + private boolean canDelete; + private boolean canMove; public ContentListUIModel(Class<E> beanType, Class<C> childType) { super(beanType); @@ -114,7 +124,7 @@ public abstract class ContentListUIModel<E extends IdDto, C extends DataDto> ext } public boolean isOneOrMoreSelectedData() { - return CollectionUtils.isNotEmpty(selectedDatas ); + return CollectionUtils.isNotEmpty(selectedDatas); } public boolean isCanReopen() { @@ -124,11 +134,65 @@ public abstract class ContentListUIModel<E extends IdDto, C extends DataDto> ext public void setCanReopen(boolean canReopen) { boolean old = isCanReopen(); this.canReopen = canReopen; - firePropertyChange(PROPERTY_CAN_REOPEN, old, canReopen); + firePropertyChange(PROPERTY_CAN_REOPEN, canReopen); } public boolean isEmpty() { return data == null || data.isEmpty(); } + + public boolean isCanGotoSelected() { + return canGotoSelected; + } + + public void setCanGotoSelected(boolean canGotoSelected) { + this.canGotoSelected = canGotoSelected; + firePropertyChange(PROPERTY_CAN_GOTO_SELECTED, canGotoSelected); + } + + public boolean isCanGotoOpen() { + return canGotoOpen; + } + + public void setCanGotoOpen(boolean canGotoOpen) { + this.canGotoOpen = canGotoOpen; + firePropertyChange(PROPERTYCAN_GOTO_OPEN, canGotoOpen); + } + + public boolean isCanClose() { + return canClose; + } + + public void setCanClose(boolean canClose) { + this.canClose = canClose; + firePropertyChange(PROPERTY_CAN_CLOSE, canClose); + } + + public boolean isCanCreate() { + return canCreate; + } + + public void setCanCreate(boolean canCreate) { + this.canCreate = canCreate; + firePropertyChange(PROPERTY_CAN_CREATE, canCreate); + } + + public boolean isCanDelete() { + return canDelete; + } + + public void setCanDelete(boolean canDelete) { + this.canDelete = canDelete; + firePropertyChange(PROPERTY_CAN_DELETE, canDelete); + } + + public boolean isCanMove() { + return canMove; + } + + public void setCanMove(boolean canMove) { + this.canMove = canMove; + firePropertyChange(PROPERTY_CAN_MOVE, canMove); + } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/ActivitySeinesUI.jcss b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/CommonListUI.jcss similarity index 50% copy from application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/ActivitySeinesUI.jcss copy to application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/CommonListUI.jcss index 2fede4f..24e9286 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/ActivitySeinesUI.jcss +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/CommonListUI.jcss @@ -20,38 +20,45 @@ * #L% */ -#gotoSelectedChild { - _text:{t("observe.content.action.goto.selected.activity")}; - _toolTipText:{t("observe.content.action.goto.selected.activity.tip")}; +#model { + enabled: true; } -#reopenChild { - _text:{t("observe.content.action.reopen.selected.activity")}; - _toolTipText:{t("observe.content.action.reopen.selected.activity.tip")}; +#gotoSelected { + enabled:{model.isCanGotoSelected()}; + _observeAction:{SelectNodeUIAction.ACTION_NAME}; + _actionIcon:{"go-down"}; } -#createChild { - text:"observe.content.action.activity"; - toolTipText:"observe.content.action.activity.tip"; +#gotoOpen { + enabled:{model.isCanGotoOpen()}; + _observeAction:{SelectOpenNodeUIAction.ACTION_NAME}; } -#extraActions { - visible:{model.isUpdatingMode() && getDataContext().isOpenActivity()}; +#reopen { + enabled:{model.isCanReopen()}; + _observeAction:{ReOpenUIAction.ACTION_NAME}; + _globalAction:{"openCloseDataGlobal"}; } #close { + enabled:{model.isCanClose()}; _observeAction:{CloseOpenUIAction.ACTION_NAME}; - _toolTipText:{t("observe.action.close.activity.tip")}; + _globalAction:{"openCloseDataGlobal"}; +} + +#create { + enabled:{model.isCanCreate()}; + _observeAction:{CreateOpenUIAction.ACTION_NAME}; + _globalAction:{"newNextGlobal"}; } #closeAndCreate { + enabled:{model.isCanCreate()}; _observeAction:{CloseAndCreateUIAction.ACTION_NAME}; - _text:{t("observe.content.action.closeAndCreate.activity")}; - _toolTipText:{t("observe.content.action.closeAndCreate.activity.tip")}; + _globalAction:{"newNextGlobal"}; } -#moveSelectedChildren { - text:"observe.content.action.move.activities.seine"; - toolTipText:"observe.content.action.move.activities.seine.tip"; - _observeAction:{MoveActivitySeinesUIAction.ACTION_NAME}; -} \ No newline at end of file +#move { + enabled:{model.isCanMove()}; +} diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/ActivityLonglinesUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/ActivityLonglinesUI.jaxx index b2e3ddb..382c8c4 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/ActivityLonglinesUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/ActivityLonglinesUI.jaxx @@ -28,15 +28,24 @@ <import> fr.ird.observe.services.dto.longline.ActivityLonglineDto fr.ird.observe.services.dto.longline.TripLonglineDto + fr.ird.observe.application.swing.ui.actions.content.CloseAndCreateUIAction fr.ird.observe.application.swing.ui.actions.content.CloseOpenUIAction - fr.ird.observe.application.swing.ui.actions.shared.SelectOpenNodeUIAction + fr.ird.observe.application.swing.ui.actions.content.CreateOpenUIAction fr.ird.observe.application.swing.ui.actions.content.MoveActivityLonglinesUIAction + fr.ird.observe.application.swing.ui.actions.content.ReOpenUIAction + fr.ird.observe.application.swing.ui.actions.shared.SelectNodeUIAction + fr.ird.observe.application.swing.ui.actions.shared.SelectOpenNodeUIAction static org.nuiton.i18n.I18n.n + static org.nuiton.i18n.I18n.t </import> - <style source="CommonListUI.jcss"/> + <style source="../CommonListUI.jcss"/> + + <script> + public JButton getCreate() { return closeAndCreate; } + </script> <!-- handler --> <ActivityLonglinesUIHandler id='handler' constructorParams='this'/> @@ -47,19 +56,28 @@ <!-- edit bean --> <TripLonglineDto id='bean'/> - <!-- override generic actions --> - <JButton id='gotoSelectedChild'/> - <JButton id='reopenChild'/> - <JButton id='closeChild'/> - <JButton id='gotoOpenChild' styleClass='gotoOpenActivity'/> - <JButton id='gotoOpenChild2' styleClass='gotoOpenActivity2'/> - <JButton id='createChild'/> - <JButton id='moveSelectedChildren'/> - - <!-- extra actions --> - <Table id='extraActions' fill="both" weightx="1" insets='2'> + <Table id="actions" fill='both' weightx='1' insets='0'> + <row> + <cell fill='both'> + <JButton id='gotoSelected'/> + </cell> + <cell> + <JButton id='gotoOpen'/> + </cell> + </row> <row> - <cell weightx="0.5"> + <cell fill='both'> + <JButton id='reopen'/> + </cell> + <cell fill='both'> + <JButton id='close'/> + </cell> + </row> + <row> + <cell fill='both'> + <JButton id='move'/> + </cell> + <cell> <JButton id='closeAndCreate'/> </cell> </row> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/ActivityLonglinesUI.jcss b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/ActivityLonglinesUI.jcss index ed15846..7e61ef6 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/ActivityLonglinesUI.jcss +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/ActivityLonglinesUI.jcss @@ -20,37 +20,33 @@ * #L% */ -#gotoSelectedChild { +#gotoSelected { _text:{t("observe.content.action.goto.selected.activity")}; _toolTipText:{t("observe.content.action.goto.selected.activity.tip")}; } -#reopenChild { - _text:{t("observe.content.action.reopen.selected.activity")}; - _toolTipText:{t("observe.content.action.reopen.selected.activity.tip")}; -} - -#createChild { - _text:{t("observe.content.action.activity")}; - _toolTipText:{t("observe.content.action.activity.tip")}; +#gotoOpen { + _type:{ActivityLonglineDto.class}; + _text:{t("observe.content.action.goto.open.activity")}; + _toolTipText:{t("observe.content.action.goto.open.activity.tip")}; } -#extraActions { - visible:{model.isUpdatingMode() && getDataContext().isOpenActivity()}; +#reopen { + _text:{t("observe.content.action.reopen.selected.activity")}; + _toolTipText:{t("observe.content.action.reopen.selected.activity.tip")}; } -#closeChild { +#close { _toolTipText:{t("observe.action.close.activity.tip")}; } #closeAndCreate { - _observeAction:{CloseAndCreateUIAction.ACTION_NAME}; _text:{t("observe.content.action.closeAndCreate.activity")}; _toolTipText:{t("observe.content.action.closeAndCreate.activity.tip")}; } -#moveSelectedChildren { - text:"observe.content.action.move.activities.longline"; - toolTipText:"observe.content.action.move.activities.longline.tip"; +#move { + _text:{t("observe.content.action.move.activities.longline")}; + _toolTipText:{t("observe.content.action.move.activities.longline.tip")}; _observeAction:{MoveActivityLonglinesUIAction.ACTION_NAME}; } \ No newline at end of file diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/ActivityLonglinesUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/ActivityLonglinesUIHandler.java index 726e92b..773f5f1 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/ActivityLonglinesUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/ActivityLonglinesUIHandler.java @@ -22,10 +22,12 @@ package fr.ird.observe.application.swing.ui.content.list.impl.longline; * #L% */ +import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.db.DataContext; import fr.ird.observe.application.swing.db.constants.DataContextType; import fr.ird.observe.application.swing.ui.content.ContentMode; import fr.ird.observe.application.swing.ui.content.list.ContentListUIHandler; +import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.longline.ActivityLonglineDto; import fr.ird.observe.services.dto.longline.TripLonglineDto; @@ -44,8 +46,26 @@ public class ActivityLonglinesUIHandler extends ContentListUIHandler<TripLonglin } @Override - public boolean isCanCloseChild() { - return true; + protected boolean computeCanGotoOpen() { + // il faut que l'activité ouverte soit dans cette marée + boolean result = ObserveSwingApplicationContext.get().getDataContext().isOpenActivityLongline(); + if (result) { + + String id = ObserveSwingApplicationContext.get().getDataContext().getOpenActivityLonglineId(); + result = false; + for (DataReference<ActivityLonglineDto> reference : ui.getModel().getData()) { + if (id.equals(reference.getId())) { + result = true; + break; + } + } + } + return result; + } + + @Override + protected boolean computeCanClose() { + return computeCanGotoOpen(); } @Override diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/CommonListUI.jcss b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/CommonListUI.jcss deleted file mode 100644 index bfd407c..0000000 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/CommonListUI.jcss +++ /dev/null @@ -1,64 +0,0 @@ -/* - * #%L - * ObServe :: Swing - * %% - * Copyright (C) 2008 - 2010 IRD, Codelutin, Tony Chemit - * %% - * 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 - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -JButton { - _protectFocus:true; -} - -#model { - enabled: true; -} - -.gotoOpenTrip { - visible:{model.isUpdatingMode() && dataContext.isOpenTrip()}; - _observeAction:{SelectOpenNodeUIAction.ACTION_NAME}; - _type:{TripLonglineDto.class}; - _text:{t("observe.content.action.goto.open.maree")}; - _toolTipText:{t("observe.content.action.goto.open.trip.tip")}; -} - -.gotoOpenTrip2 { - visible:{model.isReadingMode() && dataContext.isOpenTrip()}; - _observeAction:{SelectOpenNodeUIAction.ACTION_NAME}; - _type:{TripLonglineDto.class}; - _actionIcon:{"go-jump"}; - _text:{t("observe.content.action.goto.open.other.maree")}; - _toolTipText:{t("observe.content.action.goto.open.other.maree.tip")}; -} - -.gotoOpenActivity { - visible:{model.isUpdatingMode() && dataContext.isOpenActivity()}; - _observeAction:{SelectOpenNodeUIAction.ACTION_NAME}; - _type:{ActivityLonglineDto.class}; - _text:{t("observe.content.action.goto.open.activity")}; - _toolTipText:{t("observe.content.action.goto.open.activity.tip")}; -} - -.gotoOpenActivity2 { - visible:{model.isReadingMode() && dataContext.isOpenActivityLongline()}; - _observeAction:{SelectOpenNodeUIAction.ACTION_NAME}; - _type:{ActivityLonglineDto.class}; - _actionIcon:{"go-jump"}; - _text:{t("observe.content.action.goto.open.other.activityLongline")}; - _toolTipText:{t("observe.content.action.goto.open.other.activityLongline.tip")}; -} - diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/TripLonglinesUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/TripLonglinesUI.jaxx index 0fbb378..2528813 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/TripLonglinesUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/TripLonglinesUI.jaxx @@ -27,6 +27,10 @@ fr.ird.observe.services.dto.longline.ActivityLonglineDto fr.ird.observe.services.dto.longline.TripLonglineDto fr.ird.observe.services.dto.referential.ProgramDto + fr.ird.observe.application.swing.ui.actions.content.CloseOpenUIAction + fr.ird.observe.application.swing.ui.actions.content.CreateOpenUIAction + fr.ird.observe.application.swing.ui.actions.content.ReOpenUIAction + fr.ird.observe.application.swing.ui.actions.shared.SelectNodeUIAction fr.ird.observe.application.swing.ui.actions.shared.SelectOpenNodeUIAction fr.ird.observe.application.swing.ui.actions.content.MoveTripLonglinesUIAction @@ -34,7 +38,7 @@ static org.nuiton.i18n.I18n.t </import> - <style source="CommonListUI.jcss"/> + <style source="../CommonListUI.jcss"/> <!-- handler --> <TripLonglinesUIHandler id='handler' constructorParams='this'/> @@ -45,23 +49,29 @@ <!-- edit bean --> <ProgramDto id='bean'/> - <!-- override generic actions --> - <JButton id='gotoSelectedChild'/> - <JButton id='reopenChild'/> - <JButton id='closeChild'/> - <JButton id='gotoOpenChild' styleClass='gotoOpenTrip'/> - <JButton id='gotoOpenChild2' styleClass='gotoOpenTrip2'/> - <JButton id='createChild'/> - <JButton id='moveSelectedChildren'/> - - <!-- extra actions --> - <Table id="extraActions" fill='both' weightx='1' weighty='1' insets='2'> - <row weighty="1" weightx="1"> + <Table id="actions" fill='both' weightx='1' insets='0'> + <row> + <cell> + <JButton id='gotoSelected'/> + </cell> <cell> - <JButton id='gotoOpenActivity' styleClass='gotoOpenActivity'/> + <JButton id='gotoOpen'/> + </cell> + </row> + <row> + <cell fill='both'> + <JButton id='reopen'/> + </cell> + <cell fill='both'> + <JButton id='close'/> + </cell> + </row> + <row> + <cell fill='both'> + <JButton id='move'/> </cell> <cell> - <JButton id='gotoOpenActivity2' styleClass='gotoOpenActivity2'/> + <JButton id='create'/> </cell> </row> </Table> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/TripLonglinesUI.jcss b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/TripLonglinesUI.jcss index eb85cca..573c2db 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/TripLonglinesUI.jcss +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/TripLonglinesUI.jcss @@ -20,22 +20,28 @@ * #L% */ -#gotoSelectedChild { +#gotoSelected { _text:{t("observe.content.action.goto.selected.maree")}; _toolTipText:{t("observe.content.action.goto.selected.maree.tip")}; } -#reopenChild { +#gotoOpen { + _type:{TripLonglineDto.class}; + _text:{t("observe.content.action.goto.open.maree")}; + _toolTipText:{t("observe.content.action.goto.open.trip.tip")}; +} + +#reopen { _text:{t("observe.content.action.reopen.selected.maree")}; _toolTipText:{t("observe.content.action.reopen.selected.maree.tip")}; } -#createChild { +#create { _text:{t("observe.content.action.trip")}; _toolTipText:{t("observe.content.action.trip.tip")}; } -#moveSelectedChildren { +#move { _text:{t("observe.content.action.move.trips")}; _toolTipText:{t("observe.content.action.move.trips.tip")}; _observeAction:{MoveTripLonglinesUIAction.ACTION_NAME}; diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/TripLonglinesUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/TripLonglinesUIHandler.java index c4a8f92..437a7fe 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/TripLonglinesUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/TripLonglinesUIHandler.java @@ -29,6 +29,7 @@ import fr.ird.observe.application.swing.ui.content.ContentMode; import fr.ird.observe.application.swing.ui.content.list.ContentListUIHandler; import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTree; import fr.ird.observe.application.swing.ui.tree.navigation.nodes.longline.ProgramLonglineNavigationTreeNode; +import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.longline.TripLonglineDto; import fr.ird.observe.services.dto.referential.ProgramDto; import fr.ird.observe.services.dto.referential.ReferentialReference; @@ -80,17 +81,49 @@ public class TripLonglinesUIHandler extends ContentListUIHandler<ProgramDto, Tri } @Override - public boolean isCanCloseChild() { - return !getModel().isCanReopen() && !ObserveSwingApplicationContext.get().getDataContext().isOpenActivityLongline(); - } - - @Override protected void finalizeOpenUI() { NavigationTree treeHelper = getTreeHelper(ui); ProgramLonglineNavigationTreeNode selectedNode = (ProgramLonglineNavigationTreeNode) treeHelper.getSelectedNode(); ReferentialReference<ProgramDto> data = selectedNode.getData(); String title = getDecoratorService().getReferentialReferenceDecorator(ProgramDto.class).toString(data); - getUi().setContentTitle(title); + TripLonglinesUI ui = getUi(); + ui.setContentTitle(title); + + TripLonglinesUIModel model = ui.getModel(); + + model.addPropertyChangeListener(e -> { + + }); + + } + + protected boolean computeCanReopen() { + return ui.getModel().isOneSelectedData() && !ObserveSwingApplicationContext.get().getDataContext().isOpenTrip(); + } + + @Override + protected boolean computeCanGotoOpen() { + + // il faut que la marée ouverte soit dans ce programme + boolean result = ObserveSwingApplicationContext.get().getDataContext().isOpenTripLongline(); + if (result) { + + String id = ObserveSwingApplicationContext.get().getDataContext().getOpenTripLonglineId(); + result = false; + for (DataReference<TripLonglineDto> reference : ui.getModel().getData()) { + if (id.equals(reference.getId())) { + result = true; + break; + } + } + } + return result; + } + + @Override + protected boolean computeCanClose() { + // il faut que la marée ouverte soit dans ce programme et qu'il n'y a pas d'activité ouverte + return computeCanGotoOpen() && !ObserveSwingApplicationContext.get().getDataContext().isOpenActivityLongline(); } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/TripLonglinesUIModel.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/TripLonglinesUIModel.java index 7681459..f8e5e57 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/TripLonglinesUIModel.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/longline/TripLonglinesUIModel.java @@ -22,10 +22,10 @@ package fr.ird.observe.application.swing.ui.content.list.impl.longline; * #L% */ +import fr.ird.observe.application.swing.ui.content.list.ContentListUIModel; import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.longline.TripLonglineDto; import fr.ird.observe.services.dto.referential.ProgramDto; -import fr.ird.observe.application.swing.ui.content.list.ContentListUIModel; import java.util.List; @@ -39,6 +39,7 @@ public class TripLonglinesUIModel extends ContentListUIModel<ProgramDto, TripLon private static final long serialVersionUID = 1L; + public TripLonglinesUIModel() { super(ProgramDto.class, TripLonglineDto.class); } @@ -48,4 +49,5 @@ public class TripLonglinesUIModel extends ContentListUIModel<ProgramDto, TripLon super.setData(data); setSelectedDatas(null); } + } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/ActivitySeinesUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/ActivitySeinesUI.jaxx index e81401b..435d66d 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/ActivitySeinesUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/ActivitySeinesUI.jaxx @@ -30,13 +30,20 @@ fr.ird.observe.services.dto.seine.RouteDto fr.ird.observe.application.swing.ui.actions.content.CloseAndCreateUIAction fr.ird.observe.application.swing.ui.actions.content.CloseOpenUIAction - fr.ird.observe.application.swing.ui.actions.shared.SelectOpenNodeUIAction fr.ird.observe.application.swing.ui.actions.content.MoveActivitySeinesUIAction + fr.ird.observe.application.swing.ui.actions.content.ReOpenUIAction + fr.ird.observe.application.swing.ui.actions.shared.SelectNodeUIAction + fr.ird.observe.application.swing.ui.actions.shared.SelectOpenNodeUIAction static org.nuiton.i18n.I18n.n + static org.nuiton.i18n.I18n.t </import> - <style source="CommonListUI.jcss"/> + <style source="../CommonListUI.jcss"/> + + <script> + public JButton getCreate() { return closeAndCreate; } + </script> <!-- handler --> <ActivitySeinesUIHandler id='handler' constructorParams='this'/> @@ -47,25 +54,30 @@ <!-- edit bean --> <RouteDto id='bean'/> - <!-- override generic actions --> - <JButton id='gotoSelectedChild'/> - <JButton id='reopenChild'/> - <JButton id='closeChild'/> - <JButton id='gotoOpenChild' styleClass='gotoOpenActivity'/> - <JButton id='gotoOpenChild2' styleClass='gotoOpenActivity2'/> - <JButton id='createChild'/> - <JButton id='moveSelectedChildren'/> - - <!-- extra actions --> - <Table id='extraActions' fill="both" weightx="1" insets='2'> + <Table id="actions" fill='both' weightx='1' insets='0'> <row> - <cell weightx="0.5" fill="both"> + <cell> + <JButton id='gotoSelected'/> + </cell> + <cell> + <JButton id='gotoOpen'/> + </cell> + </row> + <row> + <cell fill='both'> + <JButton id='reopen'/> + </cell> + <cell fill='both'> <JButton id='close'/> </cell> - <cell weightx="0.5"> + </row> + <row> + <cell fill='both'> + <JButton id='move'/> + </cell> + <cell> <JButton id='closeAndCreate'/> </cell> </row> </Table> - </fr.ird.observe.application.swing.ui.content.list.ContentListUI> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/ActivitySeinesUI.jcss b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/ActivitySeinesUI.jcss index 2fede4f..d700602 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/ActivitySeinesUI.jcss +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/ActivitySeinesUI.jcss @@ -20,38 +20,33 @@ * #L% */ -#gotoSelectedChild { +#gotoSelected { _text:{t("observe.content.action.goto.selected.activity")}; _toolTipText:{t("observe.content.action.goto.selected.activity.tip")}; } -#reopenChild { - _text:{t("observe.content.action.reopen.selected.activity")}; - _toolTipText:{t("observe.content.action.reopen.selected.activity.tip")}; -} - -#createChild { - text:"observe.content.action.activity"; - toolTipText:"observe.content.action.activity.tip"; +#gotoOpen { + _type:{ActivitySeineDto.class}; + _text:{t("observe.content.action.goto.open.activity")}; + _toolTipText:{t("observe.content.action.goto.open.activity.tip")}; } -#extraActions { - visible:{model.isUpdatingMode() && getDataContext().isOpenActivity()}; +#reopen { + _text:{t("observe.content.action.reopen.selected.activity")}; + _toolTipText:{t("observe.content.action.reopen.selected.activity.tip")}; } #close { - _observeAction:{CloseOpenUIAction.ACTION_NAME}; _toolTipText:{t("observe.action.close.activity.tip")}; } #closeAndCreate { - _observeAction:{CloseAndCreateUIAction.ACTION_NAME}; _text:{t("observe.content.action.closeAndCreate.activity")}; _toolTipText:{t("observe.content.action.closeAndCreate.activity.tip")}; } -#moveSelectedChildren { - text:"observe.content.action.move.activities.seine"; - toolTipText:"observe.content.action.move.activities.seine.tip"; +#move { + _text:{t("observe.content.action.move.activities.seine")}; + _toolTipText:{t("observe.content.action.move.activities.seine.tip")}; _observeAction:{MoveActivitySeinesUIAction.ACTION_NAME}; } \ No newline at end of file diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/ActivitySeinesUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/ActivitySeinesUIHandler.java index e796f5b..ca536e9 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/ActivitySeinesUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/ActivitySeinesUIHandler.java @@ -21,10 +21,13 @@ */ package fr.ird.observe.application.swing.ui.content.list.impl.seine; +import fr.ird.observe.application.swing.ObserveSwingApplicationContext; import fr.ird.observe.application.swing.db.DataContext; import fr.ird.observe.application.swing.db.constants.DataContextType; import fr.ird.observe.application.swing.ui.content.ContentMode; import fr.ird.observe.application.swing.ui.content.list.ContentListUIHandler; +import fr.ird.observe.services.dto.DataReference; +import fr.ird.observe.services.dto.longline.ActivityLonglineDto; import fr.ird.observe.services.dto.seine.ActivitySeineDto; import fr.ird.observe.services.dto.seine.RouteDto; @@ -41,8 +44,26 @@ public class ActivitySeinesUIHandler extends ContentListUIHandler<RouteDto, Acti } @Override - public boolean isCanCloseChild() { - return true; + protected boolean computeCanGotoOpen() { + // il faut que l'activité ouverte soit dans cette route + boolean result = ObserveSwingApplicationContext.get().getDataContext().isOpenActivitySeine(); + if (result) { + + String id = ObserveSwingApplicationContext.get().getDataContext().getOpenActivitySeineId(); + result = false; + for (DataReference<ActivitySeineDto> reference : ui.getModel().getData()) { + if (id.equals(reference.getId())) { + result = true; + break; + } + } + } + return result; + } + + @Override + protected boolean computeCanClose() { + return computeCanGotoOpen(); } @Override diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/CommonListUI.jcss b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/CommonListUI.jcss deleted file mode 100644 index fe34dfb..0000000 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/CommonListUI.jcss +++ /dev/null @@ -1,81 +0,0 @@ -/* - * #%L - * ObServe :: Swing - * %% - * Copyright (C) 2008 - 2010 IRD, Codelutin, Tony Chemit - * %% - * 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 - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -#model { - enabled: true; -} - -JButton { - _protectFocus:true; -} - -.gotoOpenTrip { - visible:{model.isUpdatingMode() && dataContext.isOpenTrip()}; - _observeAction:{SelectOpenNodeUIAction.ACTION_NAME}; - _type:{TripSeineDto.class}; - _text:{t("observe.content.action.goto.open.maree")}; - _toolTipText:{t("observe.content.action.goto.open.trip.tip")}; -} - -.gotoOpenTrip2 { - visible:{model.isReadingMode() && dataContext.isOpenTrip()}; - _observeAction:{SelectOpenNodeUIAction.ACTION_NAME}; - _type:{TripSeineDto.class}; - _actionIcon:{"go-jump"}; - _text:{t("observe.content.action.goto.open.other.maree")}; - _toolTipText:{t("observe.content.action.goto.open.other.maree.tip")}; -} - -.gotoOpenRoute { - visible:{model.isUpdatingMode() && dataContext.isOpenRoute()}; - _observeAction:{SelectOpenNodeUIAction.ACTION_NAME}; - _type:{RouteDto.class}; - _text:{t("observe.content.action.goto.open.route")}; - _toolTipText:{t("observe.content.action.goto.open.route.tip")}; -} - -.gotoOpenRoute2 { - visible:{model.isReadingMode() && dataContext.isOpenRoute()}; - _observeAction:{SelectOpenNodeUIAction.ACTION_NAME}; - _type:{RouteDto.class}; - _actionIcon:{"go-jump"}; - _text:{t("observe.content.action.goto.open.other.route")}; - _toolTipText:{t("observe.content.action.goto.open.other.route.tip")}; -} - -.gotoOpenActivity { - visible:{model.isUpdatingMode() && dataContext.isOpenActivity()}; - _observeAction:{SelectOpenNodeUIAction.ACTION_NAME}; - _type:{ActivitySeineDto.class}; - _text:{t("observe.content.action.goto.open.activity")}; - _toolTipText:{t("observe.content.action.goto.open.activity.tip")}; -} - -.gotoOpenActivity2 { - visible:{model.isReadingMode() && dataContext.isOpenActivitySeine()}; - _observeAction:{SelectOpenNodeUIAction.ACTION_NAME}; - _type:{ActivitySeineDto.class}; - _actionIcon:{"go-jump"}; - _text:{t("observe.content.action.goto.open.other.activitySeine")}; - _toolTipText:{t("observe.content.action.goto.open.other.activitySeine.tip")}; -} - diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/RoutesUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/RoutesUI.jaxx index 4a44aa8..34a76e6 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/RoutesUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/RoutesUI.jaxx @@ -29,13 +29,18 @@ fr.ird.observe.services.dto.seine.ActivitySeineDto fr.ird.observe.services.dto.seine.TripSeineDto fr.ird.observe.services.dto.seine.RouteDto - fr.ird.observe.application.swing.ui.actions.shared.SelectOpenNodeUIAction + fr.ird.observe.application.swing.ui.actions.content.CloseOpenUIAction + fr.ird.observe.application.swing.ui.actions.content.CreateOpenUIAction fr.ird.observe.application.swing.ui.actions.content.MoveRoutesUIAction + fr.ird.observe.application.swing.ui.actions.content.ReOpenUIAction + fr.ird.observe.application.swing.ui.actions.shared.SelectNodeUIAction + fr.ird.observe.application.swing.ui.actions.shared.SelectOpenNodeUIAction static org.nuiton.i18n.I18n.n + static org.nuiton.i18n.I18n.t </import> - <style source="CommonListUI.jcss"/> + <style source="../CommonListUI.jcss"/> <!-- handler --> <RoutesUIHandler id='handler' constructorParams='this'/> @@ -46,23 +51,29 @@ <!-- edit bean --> <TripSeineDto id='bean'/> - <!-- override generic actions --> - <JButton id='gotoSelectedChild'/> - <JButton id='reopenChild'/> - <JButton id='closeChild'/> - <JButton id='gotoOpenChild' styleClass='gotoOpenRoute'/> - <JButton id='gotoOpenChild2' styleClass='gotoOpenRoute2'/> - <JButton id='createChild'/> - <JButton id='moveSelectedChildren'/> - - <!-- extra actions --> - <Table id='extraActions' fill="both" weightx="1" insets='2'> - <row weighty="1" weightx="1"> + <Table id="actions" fill='both' weightx='1' insets='0'> + <row> + <cell> + <JButton id='gotoSelected'/> + </cell> <cell> - <JButton id='gotoOpenActivity' styleClass='gotoOpenActivity'/> + <JButton id='gotoOpen'/> + </cell> + </row> + <row> + <cell fill='both'> + <JButton id='reopen'/> + </cell> + <cell fill='both'> + <JButton id='close'/> + </cell> + </row> + <row> + <cell fill='both'> + <JButton id='move'/> </cell> <cell> - <JButton id='gotoOpenActivity2' styleClass='gotoOpenActivity2'/> + <JButton id='create'/> </cell> </row> </Table> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/RoutesUI.jcss b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/RoutesUI.jcss index 32e16fc..636e69c 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/RoutesUI.jcss +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/RoutesUI.jcss @@ -19,24 +19,30 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ -#gotoSelectedChild { + +#gotoSelected { _text:{t("observe.content.action.goto.selected.route")}; _toolTipText:{t("observe.content.action.goto.selected.route.tip")}; } -#reopenChild { +#gotoOpen { + _type:{RouteDto.class}; + _text:{t("observe.content.action.goto.open.route")}; + _toolTipText:{t("observe.content.action.goto.open.route.tip")}; +} + +#reopen { _text:{t("observe.content.action.reopen.selected.route")}; _toolTipText:{t("observe.content.action.reopen.selected.route.tip")}; } -#createChild { - text:"observe.content.action.create.route"; - toolTipText:"observe.content.action.create.route.tip"; +#create { + _text:{t("observe.content.action.create.route")}; + _toolTipText:{t("observe.content.action.create.route.tip")}; } -#moveSelectedChildren { - text:"observe.content.action.move.routes"; - toolTipText:"observe.content.action.move.routes.tip"; +#move { + _text:{t("observe.content.action.move.routes")}; + _toolTipText:{t("observe.content.action.move.routes.tip")}; _observeAction:{MoveRoutesUIAction.ACTION_NAME}; } - diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/RoutesUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/RoutesUIHandler.java index d2f3d5b..baeaf6e 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/RoutesUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/RoutesUIHandler.java @@ -26,6 +26,7 @@ import fr.ird.observe.application.swing.db.DataContext; import fr.ird.observe.application.swing.db.constants.DataContextType; import fr.ird.observe.application.swing.ui.content.ContentMode; import fr.ird.observe.application.swing.ui.content.list.ContentListUIHandler; +import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.seine.RouteDto; import fr.ird.observe.services.dto.seine.TripSeineDto; @@ -42,8 +43,31 @@ public class RoutesUIHandler extends ContentListUIHandler<TripSeineDto, RouteDto } @Override - public boolean isCanCloseChild() { - return !getModel().isCanReopen() && !ObserveSwingApplicationContext.get().getDataContext().isOpenActivitySeine(); + protected boolean computeCanGotoOpen() { + // il faut que la route ouverte soit dans cette marée + boolean result = ObserveSwingApplicationContext.get().getDataContext().isOpenRoute(); + if (result) { + + String id = ObserveSwingApplicationContext.get().getDataContext().getOpenRouteId(); + result = false; + for (DataReference<RouteDto> reference : ui.getModel().getData()) { + if (id.equals(reference.getId())) { + result = true; + break; + } + } + } + return result; + } + + protected boolean computeCanReopen() { + return ui.getModel().isOneSelectedData() && !ObserveSwingApplicationContext.get().getDataContext().isOpenRoute(); + } + + @Override + protected boolean computeCanClose() { + // il faut que la route ouverte soit dans cette marée et qu'il n'y a pas d'activité ouverte + return computeCanGotoOpen() && !ObserveSwingApplicationContext.get().getDataContext().isOpenActivitySeine(); } @Override diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/TripSeinesUI.jaxx b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/TripSeinesUI.jaxx index f7e9a4f..5f2cdee 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/TripSeinesUI.jaxx +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/TripSeinesUI.jaxx @@ -28,14 +28,18 @@ fr.ird.observe.services.dto.seine.TripSeineDto fr.ird.observe.services.dto.seine.RouteDto fr.ird.observe.services.dto.referential.ProgramDto - fr.ird.observe.application.swing.ui.actions.shared.SelectOpenNodeUIAction + fr.ird.observe.application.swing.ui.actions.content.CloseOpenUIAction + fr.ird.observe.application.swing.ui.actions.content.CreateOpenUIAction fr.ird.observe.application.swing.ui.actions.content.MoveTripSeinesUIAction + fr.ird.observe.application.swing.ui.actions.content.ReOpenUIAction + fr.ird.observe.application.swing.ui.actions.shared.SelectNodeUIAction + fr.ird.observe.application.swing.ui.actions.shared.SelectOpenNodeUIAction static org.nuiton.i18n.I18n.n static org.nuiton.i18n.I18n.t </import> - <style source="CommonListUI.jcss"/> + <style source="../CommonListUI.jcss"/> <!-- handler --> <TripSeinesUIHandler id='handler' constructorParams='this'/> @@ -46,31 +50,29 @@ <!-- edit bean --> <ProgramDto id='bean'/> - <!-- override generic actions --> - <JButton id='gotoSelectedChild'/> - <JButton id='reopenChild'/> - <JButton id='closeChild'/> - <JButton id='gotoOpenChild' styleClass='gotoOpenTrip'/> - <JButton id='gotoOpenChild2' styleClass='gotoOpenTrip2'/> - <JButton id='createChild'/> - <JButton id='moveSelectedChildren'/> - - <!-- extra actions --> - <Table id="extraActions" fill='both' weightx='1' weighty='1' insets='2'> - <row weighty="1" weightx="1"> + <Table id="actions" fill='both' weightx='1' insets='0'> + <row> <cell> - <JButton id='gotoOpenRoute' styleClass='gotoOpenRoute'/> + <JButton id='gotoSelected'/> </cell> <cell> - <JButton id='gotoOpenRoute2' styleClass='gotoOpenRoute2'/> + <JButton id='gotoOpen'/> </cell> </row> - <row weighty="1" weightx="1"> - <cell> - <JButton id='gotoOpenActivity' styleClass='gotoOpenActivity'/> + <row> + <cell fill='both'> + <JButton id='reopen'/> + </cell> + <cell fill='both'> + <JButton id='close'/> + </cell> + </row> + <row> + <cell fill='both'> + <JButton id='move'/> </cell> <cell> - <JButton id='gotoOpenActivity2' styleClass='gotoOpenActivity2'/> + <JButton id='create'/> </cell> </row> </Table> diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/TripSeinesUI.jcss b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/TripSeinesUI.jcss index 8083de7..286faa4 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/TripSeinesUI.jcss +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/TripSeinesUI.jcss @@ -20,24 +20,29 @@ * #L% */ -#gotoSelectedChild { +#gotoSelected { _text:{t("observe.content.action.goto.selected.maree")}; _toolTipText:{t("observe.content.action.goto.selected.maree.tip")}; } -#reopenChild { +#gotoOpen { + _type:{TripSeineDto.class}; + _text:{t("observe.content.action.goto.open.maree")}; + _toolTipText:{t("observe.content.action.goto.open.trip.tip")}; +} + +#reopen { _text:{t("observe.content.action.reopen.selected.maree")}; _toolTipText:{t("observe.content.action.reopen.selected.maree.tip")}; } -#createChild { +#create { _text:{t("observe.content.action.trip")}; _toolTipText:{t("observe.content.action.trip.tip")}; } -#moveSelectedChildren { +#move { _text:{t("observe.content.action.move.trips")}; _toolTipText:{t("observe.content.action.move.trips.tip")}; _observeAction:{MoveTripSeinesUIAction.ACTION_NAME}; } - diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/TripSeinesUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/TripSeinesUIHandler.java index b6ac39c..743a93b 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/TripSeinesUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/list/impl/seine/TripSeinesUIHandler.java @@ -28,6 +28,7 @@ import fr.ird.observe.application.swing.ui.content.ContentMode; import fr.ird.observe.application.swing.ui.content.list.ContentListUIHandler; import fr.ird.observe.application.swing.ui.tree.navigation.NavigationTree; import fr.ird.observe.application.swing.ui.tree.navigation.nodes.seine.ProgramSeineNavigationTreeNode; +import fr.ird.observe.services.dto.DataReference; import fr.ird.observe.services.dto.referential.ProgramDto; import fr.ird.observe.services.dto.referential.ReferentialReference; import fr.ird.observe.services.dto.seine.TripSeineDto; @@ -85,9 +86,32 @@ public class TripSeinesUIHandler extends ContentListUIHandler<ProgramDto, TripSe getUi().setContentTitle(title); } + protected boolean computeCanReopen() { + return ui.getModel().isOneSelectedData() && !ObserveSwingApplicationContext.get().getDataContext().isOpenTrip(); + } + + @Override + protected boolean computeCanGotoOpen() { + // il faut que la marée ouverte soit dans ce programme + boolean result = ObserveSwingApplicationContext.get().getDataContext().isOpenTripSeine(); + if (result) { + + String id = ObserveSwingApplicationContext.get().getDataContext().getOpenTripSeineId(); + result = false; + for (DataReference<TripSeineDto> reference : ui.getModel().getData()) { + if (id.equals(reference.getId())) { + result = true; + break; + } + } + } + return result; + } + @Override - public boolean isCanCloseChild() { - return !getModel().isCanReopen() && !ObserveSwingApplicationContext.get().getDataContext().isOpenRoute(); + protected boolean computeCanClose() { + // il faut que la marée ouverte soit dans ce programme et qu'il n'y a pas de route ouverte + return computeCanGotoOpen() && !ObserveSwingApplicationContext.get().getDataContext().isOpenRoute(); } } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/longline/TripLonglineUI.jcss b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/longline/TripLonglineUI.jcss index 3ba29c5..6159bf7 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/longline/TripLonglineUI.jcss +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/content/open/impl/longline/TripLonglineUI.jcss @@ -178,19 +178,23 @@ NumberEditor { #reopen { _toolTipText:{t("observe.content.action.reopen.maree.tip")}; + _globalAction:{"openCloseDataGlobal"}; } #close { enabled:{!model.isModified() && (model.isHistoricalData() || model.isValid()) && !dataContext.isOpenActivity()}; _toolTipText:{t("observe.action.close.maree.tip")}; + _globalAction:{"openCloseDataGlobal"}; } #closeAndCreate { enabled:{!model.isModified() && (model.isHistoricalData() || model.isValid()) && !dataContext.isOpenActivity()}; _text:{t("observe.content.action.closeAndCreate.maree")}; _toolTipText:{t("observe.content.action.closeAndCreate.maree.tip")}; + _globalAction:{"newNextGlobal"}; } #delete { _toolTipText:{t("observe.action.delete.maree.tip")}; + _globalAction:{"deleteDataGlobal"}; } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.