r562 - in trunk/sammoa-ui-swing/src/main: java/fr/ulr/sammoa/ui/swing java/fr/ulr/sammoa/ui/swing/flight resources/i18n
Author: fdesbois Date: 2012-09-10 12:05:12 +0200 (Mon, 10 Sep 2012) New Revision: 562 Url: http://forge.codelutin.com/repositories/revision/sammoa/562 Log: fixes #1467 : add menu for flight actions Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/MainUI.css trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/MainUI.jaxx trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUIHandler.java trunk/sammoa-ui-swing/src/main/resources/i18n/sammoa-ui-swing_en_GB.properties Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/MainUI.css =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/MainUI.css 2012-09-10 10:03:43 UTC (rev 561) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/MainUI.css 2012-09-10 10:05:12 UTC (rev 562) @@ -51,7 +51,7 @@ text:"sammoa.action.audioCheck"; toolTipText:"sammoa.action.audioCheck.tip"; actionIcon:"sound"; - mnemonic:A; + mnemonic:S; } #exit { @@ -70,6 +70,59 @@ toolTipText:"sammoa.menu.showValidation.tip"; } +#menuActions { + enabled:{getScreen() == SammoaScreen.FLIGHT || getScreen() == SammoaScreen.VALIDATION}; + text:"sammoa.menu.actions"; + toolTipText:"sammoa.menu.actions.tip"; + mnemonic:A; +} + +#menuActionStartFlight { + _actionName: {"start"}; + _actionKeepButtonDecoration: {true}; + icon: {null}; + text: "sammoa.action.start"; +} +#menuActionStopFlight { + _actionName: {"stop"}; + _actionKeepButtonDecoration: {true}; + icon: {null}; + text: "sammoa.action.stop"; +} +#menuActionBeginEffort { + _actionName: {"begin"}; +} +#menuActionEndEffort { + _actionName: {"end"}; +} +#menuActionNextEffort { + _actionName: {"next"}; +} +#menuActionAddEffort { + _actionName: {"add"}; + _actionKeepButtonDecoration: {true}; + icon: {null}; + text: "sammoa.action.add"; +} +#menuActionLeftObservation { + _actionName: {"leftObservation"}; +} +#menuActionCenterObservation { + _actionName: {"centerObservation"}; +} +#menuActionRightObservation { + _actionName: {"rightObservation"}; +} +#menuActionValidTransect { + _actionName: {"validTransect"}; +} +#menuActionValidRoute { + _actionName: {"validRoute"}; +} +#menuActionValidObservation { + _actionName: {"validObservation"}; +} + #menuHelp { text:"sammoa.menu.help"; toolTipText:"sammoa.menu.help.tip"; Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/MainUI.jaxx =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/MainUI.jaxx 2012-09-10 10:03:43 UTC (rev 561) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/MainUI.jaxx 2012-09-10 10:05:12 UTC (rev 562) @@ -66,6 +66,20 @@ <JMenuItem id='exit' onActionPerformed='getHandler().closeSammoa()'/> </JMenu> + <JMenu id='menuActions'> + <JMenuItem id='menuActionStartFlight'/> + <JMenuItem id='menuActionStopFlight'/> + <JMenuItem id='menuActionBeginEffort'/> + <JMenuItem id='menuActionEndEffort'/> + <JMenuItem id='menuActionNextEffort'/> + <JMenuItem id='menuActionAddEffort'/> + <JMenuItem id='menuActionLeftObservation'/> + <JMenuItem id='menuActionCenterObservation'/> + <JMenuItem id='menuActionRightObservation'/> + <JMenuItem id='menuActionValidTransect'/> + <JMenuItem id='menuActionValidRoute'/> + <JMenuItem id='menuActionValidObservation'/> + </JMenu> <JMenu id='menuHelp'> <JMenuItem id='menuShowLogs' onActionPerformed='getHandler().showLogs()'/> Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUIHandler.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUIHandler.java 2012-09-10 10:03:43 UTC (rev 561) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUIHandler.java 2012-09-10 10:05:12 UTC (rev 562) @@ -123,6 +123,7 @@ import jaxx.runtime.SwingUtil; import jaxx.runtime.swing.JAXXWidgetUtil; import jaxx.runtime.swing.editor.cell.NumberCellEditor; +import org.apache.commons.lang3.BooleanUtils; import org.jdesktop.swingx.JXTable; import org.nuiton.util.ApplicationConfig; import org.nuiton.util.TimeLog; @@ -133,6 +134,7 @@ import javax.swing.Action; import javax.swing.ActionMap; import javax.swing.DefaultCellEditor; +import javax.swing.Icon; import javax.swing.InputMap; import javax.swing.JButton; import javax.swing.JCheckBox; @@ -891,6 +893,10 @@ getModel().setActionMap(getActionMap()); + // Init actions from MainUI for menu + initActions(context.getMainUIHandler().getUI()); + + // Init actions from ui initActions(ui); } @@ -916,17 +922,41 @@ if (!Strings.isNullOrEmpty(actionName)) { if (logger.isDebugEnabled()) { - logger.debug("attach action '" + actionName + "' to button " + abstractButton); + logger.debug("attach action '{}' to button {}", actionName, abstractButton); } Action action = getActionMap().get(actionName); - Preconditions.checkNotNull(action, - "action '" + actionName + "' is not " + - "declared. Declared actions: " - + Arrays.toString(getActionMap().keys())); + if (action == null) { + abstractButton.setEnabled(false); - abstractButton.setAction(action); + if (logger.isDebugEnabled()) { + logger.debug("action '{}' is not declared, the " + + "button is disabled. Declared actions: {}", + actionName, + Arrays.toString(getActionMap().keys())); + } + + } else { + + Icon icon = abstractButton.getIcon(); + String text = abstractButton.getText(); + + abstractButton.setAction(action); + + // keep button decoration for text and icon + Boolean actionKeepButtonDecoration = + (Boolean) abstractButton.getClientProperty("actionKeepButtonDecoration"); + if (BooleanUtils.isTrue(actionKeepButtonDecoration)) { + + if (logger.isDebugEnabled()) { + logger.debug("Keep button definition. Icon={}, Text={}", icon, text); + } + + abstractButton.setIcon(icon); + abstractButton.setText(text); + } + } } } } Modified: trunk/sammoa-ui-swing/src/main/resources/i18n/sammoa-ui-swing_en_GB.properties =================================================================== --- trunk/sammoa-ui-swing/src/main/resources/i18n/sammoa-ui-swing_en_GB.properties 2012-09-10 10:03:43 UTC (rev 561) +++ trunk/sammoa-ui-swing/src/main/resources/i18n/sammoa-ui-swing_en_GB.properties 2012-09-10 10:05:12 UTC (rev 562) @@ -3,6 +3,7 @@ sammoa.about.message=About Sammoa sammoa.action.about=About sammoa.action.about.tip=About +sammoa.action.add=Add sammoa.action.add.tip=ADD \: create a new LEG route for the current Transect (the observation conditions have changed) sammoa.action.audioCheck=Audio test sammoa.action.audioCheck.tip=Audio test @@ -47,9 +48,11 @@ sammoa.action.save=Save sammoa.action.site=Site sammoa.action.site.tip=Display project site +sammoa.action.start=Start flight sammoa.action.start.tip=START \: start the flight and create a new TRANSIT route sammoa.action.startAudio.tip=Start audio sammoa.action.startExport=Start +sammoa.action.stop=Stop flight sammoa.action.stop.tip=STOP \: stop the flight. No other actions on routes and observations could be done after stop. sammoa.action.stopAudio.tip=Stop audio sammoa.action.validObservation=Observation @@ -154,6 +157,8 @@ sammoa.label.transect.name=Name\: sammoa.label.transect.strate=Strate\: sammoa.map.mapFollow=Follow plane +sammoa.menu.actions=Actions +sammoa.menu.actions.tip=Actions for flight sammoa.menu.exit=Exit sammoa.menu.file=File sammoa.menu.file.tip=File
participants (1)
-
fdesbois@users.forge.codelutin.com