This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See http://git.codelutin.com/observe.git commit c207443a03ad68942fcb91512479f112efc59b31 Author: Kevin Morin <morin@codelutin.com> Date: Fri Nov 6 18:03:03 2015 +0100 ajout des menus contextuels --- .../main/java/fr/ird/observe/ui/ObserveMainUI.css | 16 +++ .../main/java/fr/ird/observe/ui/ObserveMainUI.jaxx | 5 + .../tree/ObserveNavigationTreeShowPopupAction.java | 118 +++++++++++++-------- .../observe-application-swing_en_GB.properties | 4 + .../observe-application-swing_es_ES.properties | 4 + .../observe-application-swing_fr_FR.properties | 4 + 6 files changed, 107 insertions(+), 44 deletions(-) diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/ObserveMainUI.css b/observe-application-swing/src/main/java/fr/ird/observe/ui/ObserveMainUI.css index 736d57e..023515c 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/ObserveMainUI.css +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/ObserveMainUI.css @@ -52,6 +52,22 @@ JSplitPane { enabled: false; } +#navigationOpenTripAction { + text: "observe.navigationMenu.openTripAction"; + toolTipText: "observe.navigationMenu.openTripAction"; + enabled: {!dataContext.isOpenTrip()}; +} + +#navigationCloseTripAction { + text: "observe.navigationMenu.closeTripAction"; + toolTipText: "observe.navigationMenu.closeTripAction"; +} + +#navigationDeleteTripAction { + text: "observe.navigationMenu.deleteTripAction"; + toolTipText: "observe.navigationMenu.deleteTripAction"; +} + #menuFile { text: "observe.menu.file"; mnemonic: F; diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/ObserveMainUI.jaxx b/observe-application-swing/src/main/java/fr/ird/observe/ui/ObserveMainUI.jaxx index 54f7e60..0d78c74 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/ObserveMainUI.jaxx +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/ObserveMainUI.jaxx @@ -31,6 +31,8 @@ fr.ird.observe.services.dto.referential.ProgramDto fr.ird.observe.services.dto.constants.ReferentialLocale + fr.ird.observe.ui.actions.shared.ReOpenUIAction + fr.ird.observe.ui.admin.AdminStep fr.ird.observe.ui.content.ContentUIManager fr.ird.observe.ui.tree.ObserveTreeHelper @@ -68,6 +70,9 @@ <JPopupMenu id='navigationPopup'> <JMenuItem id="navigationNoAction"/> <JMenu id="navigationMoveTripAction"/> + <JMenuItem id="navigationOpenTripAction"/> + <JMenuItem id="navigationCloseTripAction"/> + <JMenuItem id="navigationDeleteTripAction"/> </JPopupMenu> <ObserveSwingApplicationConfig id='config' initializer='getContextValue(ObserveSwingApplicationConfig.class)'/> diff --git a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ObserveNavigationTreeShowPopupAction.java b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ObserveNavigationTreeShowPopupAction.java index c62b2d4..51b8641 100644 --- a/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ObserveNavigationTreeShowPopupAction.java +++ b/observe-application-swing/src/main/java/fr/ird/observe/ui/tree/ObserveNavigationTreeShowPopupAction.java @@ -66,6 +66,10 @@ public class ObserveNavigationTreeShowPopupAction { private final JMenuItem noAction; + private final JMenuItem openTripAction; + private final JMenuItem closeTripAction; + private final JMenuItem deleteTripAction; + public ObserveNavigationTreeShowPopupAction(ObserveTreeHelper treeHelper, JScrollPane pane, JPopupMenu popup) { this.treeHelper = treeHelper; @@ -75,6 +79,9 @@ public class ObserveNavigationTreeShowPopupAction { JMenuItem moveTripComponent = null; JMenuItem noActionComponent = null; + JMenuItem openTripActionComponent = null; + JMenuItem closeTripActionComponent = null; + JMenuItem deleteTripActionComponent = null; for (MenuElement menuElement : popup.getSubElements()) { @@ -84,10 +91,23 @@ public class ObserveNavigationTreeShowPopupAction { if (menuElement.getComponent().getName().equals("navigationNoAction")) { noActionComponent = (JMenuItem) menuElement.getComponent(); } + if (menuElement.getComponent().getName().equals("navigationOpenTripAction")) { + openTripActionComponent = (JMenuItem) menuElement.getComponent(); + } + if (menuElement.getComponent().getName().equals("navigationCloseTripAction")) { + closeTripActionComponent = (JMenuItem) menuElement.getComponent(); + } + if (menuElement.getComponent().getName().equals("navigationDeleteTripAction")) { + deleteTripActionComponent = (JMenuItem) menuElement.getComponent(); + } } this.moveTripPopup = moveTripComponent; this.noAction = noActionComponent; + this.openTripAction = openTripActionComponent; + this.closeTripAction = closeTripActionComponent; + this.deleteTripAction = deleteTripActionComponent; + KeyAdapter keyAdapter = new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { @@ -197,55 +217,65 @@ public class ObserveNavigationTreeShowPopupAction { // clean popup popup.removeAll(); - if (selectedNode.isTripNode() && selectedNode.isOpen()) { + if (selectedNode.isTripNode()) { if (log.isInfoEnabled()) { log.info("Will load popup for trip node."); } - popup.add(moveTripPopup); - - moveTripPopup.removeAll(); - -// DataService dataService = treeHelper.getDataService(); - ObserveSwingDataSource dataSource = treeHelper.getDataProvider().getDataSource(); - - String tripId = selectedNode.getId(); - - List<ProgramDto> programs; - - //FIXME -// try { -// -// programs = dataService.getPossibleProgramsForTrip(dataSource, tripId); -// ProgramDtos.sort(programs); -// -// } catch (DataSourceException e) { -// throw new ObserveTechnicalException("Can't get possible programs for trip " + tripId, e); -// } -// -// String openProgramId = dataService.getDataContext().getOpenProgramId(); -// -// Decorator<Program> programDecorator = dataService.getDecoratorService().getDecoratorByType(Program.class); -// for (Program program : programs) { -// -// String programId = program.getTopiaId(); -// -// if (!programId.equals(openProgramId)) { -// -// JMenuItem item = new JMenuItem(programDecorator.toString(program)); -// item.setName(programId); -// item.addActionListener(new ChangeTripProgramActionListener(treeHelper, -// dataService, -// dataSource, -// tripId, -// programId)); -// -// moveTripPopup.add(item); -// -// } -// -// } + if (selectedNode.isOpen()) { + popup.add(closeTripAction); + + popup.add(moveTripPopup); + + moveTripPopup.removeAll(); + + // DataService dataService = treeHelper.getDataService(); + ObserveSwingDataSource dataSource = treeHelper.getDataProvider().getDataSource(); + + String tripId = selectedNode.getId(); + + List<ProgramDto> programs; + + //FIXME + // try { + // + // programs = dataService.getPossibleProgramsForTrip(dataSource, tripId); + // ProgramDtos.sort(programs); + // + // } catch (DataSourceException e) { + // throw new ObserveTechnicalException("Can't get possible programs for trip " + tripId, e); + // } + // + // String openProgramId = dataService.getDataContext().getOpenProgramId(); + // + // Decorator<Program> programDecorator = dataService.getDecoratorService().getDecoratorByType(Program.class); + // for (Program program : programs) { + // + // String programId = program.getTopiaId(); + // + // if (!programId.equals(openProgramId)) { + // + // JMenuItem item = new JMenuItem(programDecorator.toString(program)); + // item.setName(programId); + // item.addActionListener(new ChangeTripProgramActionListener(treeHelper, + // dataService, + // dataSource, + // tripId, + // programId)); + // + // moveTripPopup.add(item); + // + // } + // + // } + + } else { + popup.add(openTripAction); + } + + popup.add(deleteTripAction); + deleteTripAction.setEnabled(selectedNode.isOpen()); } else { diff --git a/observe-application-swing/src/main/resources/i18n/observe-application-swing_en_GB.properties b/observe-application-swing/src/main/resources/i18n/observe-application-swing_en_GB.properties index 9817a9b..714463d 100644 --- a/observe-application-swing/src/main/resources/i18n/observe-application-swing_en_GB.properties +++ b/observe-application-swing/src/main/resources/i18n/observe-application-swing_en_GB.properties @@ -1130,6 +1130,7 @@ observe.config.ui.locale=Application's language observe.config.ui.showNumberEditorButton=Flag sets to true to show button to invoke popup on number's editors observe.config.ui.showTimeEditorSlider=Show timer slider observe.config.ui.storeRemoteStorage=Flag sets to true to store in config a remote connexion (except passwords) +observe.config.ui.treeOpenNodes= observe.configuration.description= observe.content.mode.create.tip= observe.content.mode.read.tip= @@ -1545,8 +1546,11 @@ observe.message.validation.start.referentiel= observe.message.validation.use.storage= observe.message.warning.will.be.delete= observe.model.version= +observe.navigationMenu.closeTripAction= +observe.navigationMenu.deleteTripAction= observe.navigationMenu.moveTrip=Change program observe.navigationMenu.noAction=< No action > +observe.navigationMenu.openTripAction= observe.nonTargetCatch.message.table.will.delete.nonTargetSample= observe.nonTargetCatch.table.catchWeight= observe.nonTargetCatch.table.catchWeight.tip= diff --git a/observe-application-swing/src/main/resources/i18n/observe-application-swing_es_ES.properties b/observe-application-swing/src/main/resources/i18n/observe-application-swing_es_ES.properties index a66e9dd..b237af9 100644 --- a/observe-application-swing/src/main/resources/i18n/observe-application-swing_es_ES.properties +++ b/observe-application-swing/src/main/resources/i18n/observe-application-swing_es_ES.properties @@ -1130,6 +1130,7 @@ observe.config.ui.locale=Idioma de la aplicación (fr_FR, en_GB o es_ES) observe.config.ui.showNumberEditorButton=Para mostrar el botón que permite usar el editor numérico a la izquierda de cada campo numérico observe.config.ui.showTimeEditorSlider= observe.config.ui.storeRemoteStorage=Para activar la copia de seguridad de la configuración del origen de datos remota +observe.config.ui.treeOpenNodes= observe.configuration.description= observe.content.mode.create.tip=Objeto en proceso de creación observe.content.mode.read.tip=Objeto no se puede editar @@ -1547,8 +1548,11 @@ observe.message.validation.start.referentiel=Validación del referencial de tipo observe.message.validation.use.storage=Se realizará la validación de %1$s observe.message.warning.will.be.delete=%1$s\n\nAtención, la exportación reemplazará la marea existente. observe.model.version= +observe.navigationMenu.closeTripAction= +observe.navigationMenu.deleteTripAction= observe.navigationMenu.moveTrip= observe.navigationMenu.noAction= +observe.navigationMenu.openTripAction= observe.nonTargetCatch.message.table.will.delete.nonTargetSample=¡Confirmar la eliminación de los objetos de la copia de seguridad.\!\n\n Las especies siguientes no estarán disponibles en los muestreos\:\n%1$s\nComo consecuencia se suprimiràn los muestreos siguientes \:\n%2$s observe.nonTargetCatch.table.catchWeight=Peso observe.nonTargetCatch.table.catchWeight.tip=Peso estimados (en t) diff --git a/observe-application-swing/src/main/resources/i18n/observe-application-swing_fr_FR.properties b/observe-application-swing/src/main/resources/i18n/observe-application-swing_fr_FR.properties index 4a76daf..83e1f91 100644 --- a/observe-application-swing/src/main/resources/i18n/observe-application-swing_fr_FR.properties +++ b/observe-application-swing/src/main/resources/i18n/observe-application-swing_fr_FR.properties @@ -1130,6 +1130,7 @@ observe.config.ui.locale=Langue utilisée par l'application (fr_FR, en_GB ou es_ observe.config.ui.showNumberEditorButton=Pour afficher le bouton qui permet d'utiliser l'éditeur numérique à gauche de chaque champs numérique observe.config.ui.showTimeEditorSlider=Pour afficher la réglette d'édition des heures observe.config.ui.storeRemoteStorage=Pour activer la sauvegarde de la configuration de la source distante +observe.config.ui.treeOpenNodes=Noeuds de l'arbre ouverts lors de la dernière fermeture de la base observe.configuration.description= observe.content.mode.create.tip=L'objet est en cours de création observe.content.mode.read.tip=L'objet n'est pas éditable @@ -1540,8 +1541,11 @@ observe.message.validation.start.referentiel=Validation du référentiel de type observe.message.validation.use.storage=La validation sera effectuée sur %1$s observe.message.warning.will.be.delete=%1$s\n\nAttention, l'export remplacera la marée existante. observe.model.version=Version du modèle de données +observe.navigationMenu.closeTripAction=Clôturer la marée +observe.navigationMenu.deleteTripAction=Supprimer la marée observe.navigationMenu.moveTrip=Réallocation du programme observe.navigationMenu.noAction=< Aucune action définie > +observe.navigationMenu.openTripAction=Réouvrir la marée observe.nonTargetCatch.message.table.will.delete.nonTargetSample=En confirmant la sauvegarde des objets vont être supprimés\!\n\nLes espèces suivantes ne seront plus utilisables dans des échantillonages \:\n%1$s\nCela entrainera la suppression des échantillonages des ces espèces observe.nonTargetCatch.table.catchWeight=Poids observe.nonTargetCatch.table.catchWeight.tip=Poids estimé (en t) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@list.forge.codelutin.com>.