r420 - in trunk/sammoa-ui-swing/src/main: java/fr/ulr/sammoa/ui/swing java/fr/ulr/sammoa/ui/swing/action java/fr/ulr/sammoa/ui/swing/campaign java/fr/ulr/sammoa/ui/swing/flight java/fr/ulr/sammoa/ui/swing/flight/layer java/fr/ulr/sammoa/ui/swing/home java/fr/ulr/sammoa/ui/swing/io java/fr/ulr/sammoa/ui/swing/io/input java/fr/ulr/sammoa/ui/swing/io/input/sammoa java/fr/ulr/sammoa/ui/swing/io/output/map java/fr/ulr/sammoa/ui/swing/io/output/sammoa java/fr/ulr/sammoa/ui/swing/observations java
Author: tchemit Date: 2012-08-14 15:09:01 +0200 (Tue, 14 Aug 2012) New Revision: 420 Url: http://forge.codelutin.com/repositories/revision/sammoa/420 Log: Clean code :( please stop creating public api where nobody needs it :( If a field of a class has no public behaviour do not create a getter on it just to be called in the class. Sammoa is not a library but a final application, keep it this way. Still some work to do on the flight package. #refs #1202: Import format application (begin of skeleton) Added: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/java-info.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUI.css trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUI.jaxx trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUIHandler.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUIModel.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/java-info.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/java-info.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/java-info.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/java-info.java Removed: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/BaseHandler.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/BaseModel.java Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/BetaLayerUI.java 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/MainUIHandler.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaColors.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaDecoratorProvider.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaScreen.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaUI.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaUIContext.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/StartApp.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/ValidationTable.css trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/ValidationTable.jaxx trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/ValidationTableHandler.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/AddAction.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/BeginAction.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/CenterObservationAction.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/CircleBackAction.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/CloseAction.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/EndAction.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/LeftObservationAction.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/NextAction.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/NextTransectAction.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/ObservationAction.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/RightObservationAction.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/SammoaAction.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/StartAction.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/StopAction.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/campaign/CampaignUI.css trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/campaign/CampaignUI.jaxx trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/campaign/CampaignUIHandler.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/campaign/CampaignUIModel.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/CurrentTransectHighlightPredicate.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/DeviceStateLED.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightBar.css trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightBar.jaxx trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightBarHandler.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightBarModel.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUI.css trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUI.jaxx 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/FlightUIModel.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/NextTransectHighlightPredicate.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/ObserverListCellRenderer.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/ObserverListSelectorModel.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/ObserverTableCellEditor.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/StrateModel.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectCrossingNumberCellRenderer.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectFlightModel.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectListCellRenderer.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectListModel.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectModel.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectTable.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectTableHandler.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectTableModel.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/layer/BaseGeoPointLayer.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/layer/LineGeoPointLayer.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/layer/SimpleGeoPointLayer.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/layer/TransectLayer.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUI.css trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUI.jaxx trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUIHandler.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUIModel.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/UIImporter.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/ExportMapLauncherUI.jaxx trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/ExportMapUI.css trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/ExportMapUI.jaxx trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/ExportMapUIHandler.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUI.css trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUIHandler.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanel.css trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanelHandler.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/ForceSelectionSelectionModel.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/ObservationTableModel.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/RouteTableModel.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/SpeciesCodeValidator.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/action/MoveToNextEditableCellAction.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/action/MoveToNextRowEditableAction.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/action/MoveToPreviousRowEditableAction.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/region/RegionUI.css trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/region/RegionUI.jaxx trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/region/RegionUIHandler.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/region/RegionUIModel.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/transect/TransectUI.css trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/transect/TransectUI.jaxx trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/transect/TransectUIHandler.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/transect/TransectUIModel.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/util/AbstractRowHighlightPredicate.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/util/ColorTableCellRenderer.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/util/LogFileInitializer.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/util/SammoaUtil.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/util/TableDataChangeListener.java trunk/sammoa-ui-swing/src/main/resources/i18n/sammoa-ui-swing_en_GB.properties Deleted: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/BaseHandler.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/BaseHandler.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/BaseHandler.java 2012-08-14 13:09:01 UTC (rev 420) @@ -1,61 +0,0 @@ -/* - * #%L - * SAMMOA :: UI Swing - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2012 UMS 3462, Code Lutin - * %% - * 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% - */ -package fr.ulr.sammoa.ui.swing; - -import fr.ulr.sammoa.application.SammoaContext; -import fr.ulr.sammoa.application.flightController.FlightController; -import fr.ulr.sammoa.ui.swing.flight.FlightUIModel; - -/** - * @author sletellier <letellier@codelutin.com> - */ -@Deprecated -public abstract class BaseHandler { - - @Deprecated - public SammoaUIContext getUIContext() { - return SammoaUIContext.getUIContext(); - } - - @Deprecated - public SammoaContext getContext() { - return getUIContext().getAppContext(); - } - - @Deprecated - public FlightController getFlightController() { - return getUIContext().getFlightUIHandler().getFlightController(); - } - - @Deprecated - public FlightUIModel getFlightUIModel() { - return getUIContext().getFlightUIHandler().getModel(); - } - - @Deprecated - public SammoaDecoratorProvider getDecoratorProvider() { - return getUIContext().getDecoratorProvider(); - } -} Deleted: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/BaseModel.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/BaseModel.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/BaseModel.java 2012-08-14 13:09:01 UTC (rev 420) @@ -1,63 +0,0 @@ -/* - * #%L - * SAMMOA :: UI Swing - * - * $Id$ - * $HeadURL$ - * %% - * Copyright (C) 2012 UMS 3462, Code Lutin - * %% - * 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% - */ -package fr.ulr.sammoa.ui.swing; - -import java.beans.PropertyChangeListener; -import java.beans.PropertyChangeSupport; -import java.io.Serializable; - -/** - * Created: 11/06/12 - * - * @author fdesbois <desbois@codelutin.com> - */ -public abstract class BaseModel implements Serializable { - - protected final PropertyChangeSupport pcs = new PropertyChangeSupport(this); - - public void addPropertyChangeListener(PropertyChangeListener listener) { - pcs.addPropertyChangeListener(listener); - } - - public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) { - pcs.addPropertyChangeListener(propertyName, listener); - } - - public void removePropertyChangeListener(PropertyChangeListener listener) { - pcs.removePropertyChangeListener(listener); - } - - public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener) { - pcs.removePropertyChangeListener(propertyName, listener); - } - - protected void firePropertyChange(String propertyName, Object oldValue, Object newValue) { - pcs.firePropertyChange(propertyName, oldValue, newValue); - } - - protected void fireIndexedPropertyChange(String propertyName, int index, Object oldValue, Object newValue) { - pcs.fireIndexedPropertyChange(propertyName, index, oldValue, newValue); - } -} Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/BetaLayerUI.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/BetaLayerUI.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/BetaLayerUI.java 2012-08-14 13:09:01 UTC (rev 420) @@ -35,12 +35,12 @@ /** * Layer qui affiche "beta version". - * + * * @author chatellier * @version $Revision$ - * - * Last update : $Date$ - * By : $Author$ + * <p/> + * Last update : $Date$ + * By : $Author$ */ public class BetaLayerUI extends AbstractLayerUI<JComponent> { @@ -63,6 +63,6 @@ g2.translate(35, 20); g2.setFont(new Font("Dialog", Font.BOLD, 16)); g2.setColor(Color.BLACK); - g2.drawString("Beta version",10,10); + g2.drawString("Beta version", 10, 10); } } 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-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/MainUI.css 2012-08-14 13:09:01 UTC (rev 420) @@ -26,6 +26,7 @@ title:SAMMOA; defaultCloseOperation:{JFrame.DO_NOTHING_ON_CLOSE}; } + #menuFile { text:"sammoa.menu.file"; toolTipText:"sammoa.menu.file.tip"; @@ -56,21 +57,25 @@ text:"sammoa.menu.showLogs"; toolTipText:"sammoa.menu.showLogs.tip"; } + #menuShowValidation { text:"sammoa.menu.showValidation"; toolTipText:"sammoa.menu.showValidation.tip"; } + #menuHelp { text:"sammoa.menu.help"; toolTipText:"sammoa.menu.help.tip"; mnemonic:E; } + #menuHelpSite { text:"sammoa.action.site"; toolTipText:"sammoa.action.site.tip"; actionIcon:"site"; mnemonic:S; } + #menuHelpAbout { text:"sammoa.action.about"; toolTipText:"sammoa.action.about.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-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/MainUI.jaxx 2012-08-14 13:09:01 UTC (rev 420) @@ -29,11 +29,8 @@ <import> java.awt.BorderLayout - java.awt.Dimension - java.util.Locale javax.swing.JFrame org.jdesktop.swingx.JXTitledPanel - fr.ulr.sammoa.ui.swing.flight.FlightUI </import> <MainUIHandler id='handler' Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/MainUIHandler.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/MainUIHandler.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/MainUIHandler.java 2012-08-14 13:09:01 UTC (rev 420) @@ -35,8 +35,9 @@ import fr.ulr.sammoa.ui.swing.flight.FlightUI; import fr.ulr.sammoa.ui.swing.flight.FlightUIHandler; import fr.ulr.sammoa.ui.swing.home.HomeUI; +import fr.ulr.sammoa.ui.swing.io.input.sammoa.ImportApplicationUI; +import fr.ulr.sammoa.ui.swing.io.output.map.ExportMapUI; import fr.ulr.sammoa.ui.swing.io.output.sammoa.ExportApplicationUI; -import fr.ulr.sammoa.ui.swing.io.output.map.ExportMapUI; import fr.ulr.sammoa.ui.swing.util.SammoaUtil; import jaxx.runtime.SwingUtil; import jaxx.runtime.swing.AboutPanel; @@ -47,8 +48,11 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.swing.*; -import java.awt.*; +import javax.swing.JComponent; +import javax.swing.JOptionPane; +import javax.swing.UIManager; +import java.awt.BorderLayout; +import java.awt.Desktop; import java.io.File; import java.net.URL; @@ -63,13 +67,13 @@ public class MainUIHandler implements SammoaUIHandler { private static final Logger logger = LoggerFactory.getLogger(MainUIHandler.class); - + protected SammoaUIContext context; protected MainUI ui; protected JComponent currentBody; - + protected MainUIHandler(SammoaUIContext context, MainUI ui) { this.context = context; @@ -126,7 +130,7 @@ } public void setScreen(SammoaScreen screen) { - + if (screen.equals(ui.getScreen())) { // do nothing @@ -190,6 +194,12 @@ ui.getBody().setTitle(_("sammoa.title.exportApplication")); ui.getBody().add(currentBody); break; + case IMPORT_APPLICATION: + currentBody = new ImportApplicationUI(context); + context.getSwingSession().add(currentBody); + ui.getBody().setTitle(_("sammoa.title.importApplication")); + ui.getBody().add(currentBody); + break; } ui.setScreen(screen); @@ -249,7 +259,7 @@ // categorie applications helper.addCategory(n_("sammoa.config.category.applications"), - n_("sammoa.config.category.applications.description")); + n_("sammoa.config.category.applications.description")); helper.addOption(SammoaConfig.SammoaConfigOption.SYSTEM_ID); helper.addOption(SammoaConfig.SammoaConfigOption.DATA_DIRECTORY); @@ -269,18 +279,18 @@ // helper.setOptionCallBack("ui"); helper.registerCallBack("actions", - n_("sammoa.action.reload.actions"), - SwingUtil.createActionIcon("config"), - new Runnable() { + n_("sammoa.action.reload.actions"), + SwingUtil.createActionIcon("config"), + new Runnable() { - @Override - public void run() { - context.getFlightUIHandler().initActions(); - } - }); + @Override + public void run() { + context.getFlightUIHandler().initActions(); + } + }); // categorie raccourcis helper.addCategory(n_("sammoa.config.category.shortcuts"), - n_("sammoa.config.category.shortcuts.description")); + n_("sammoa.config.category.shortcuts.description")); helper.addOption(SammoaConfig.SammoaConfigOption.KEY_START); helper.setOptionCallBack("actions"); helper.addOption(SammoaConfig.SammoaConfigOption.KEY_STOP); @@ -304,24 +314,24 @@ // gps helper.registerCallBack("gps", - n_("sammoa.action.reload.gps"), - SwingUtil.createActionIcon("config"), - new Runnable() { + n_("sammoa.action.reload.gps"), + SwingUtil.createActionIcon("config"), + new Runnable() { - @Override - public void run() { - FlightUIHandler flightUIHandler = context.getFlightUIHandler(); - if (flightUIHandler != null) { - GpsConfig gpsConfig = context.getConfig().getGpsConfig(); - try { - flightUIHandler.getFlightController().openGpsDevice(gpsConfig); - } catch (DeviceTechnicalException ex) { - logger.error("Error on new GpsHandler", ex); - SammoaUtil.showErrorMessage(ui, ex.getMessageWithCause()); - } - } - } - }); + @Override + public void run() { + FlightUIHandler flightUIHandler = context.getFlightUIHandler(); + if (flightUIHandler != null) { + GpsConfig gpsConfig = context.getConfig().getGpsConfig(); + try { + flightUIHandler.getFlightController().openGpsDevice(gpsConfig); + } catch (DeviceTechnicalException ex) { + logger.error("Error on new GpsHandler", ex); + SammoaUtil.showErrorMessage(ui, ex.getMessageWithCause()); + } + } + } + }); helper.addCategory(n_("sammoa.config.category.gps"), n_("sammoa.config.category.gps.description")); helper.addOption(GpsConfig.GpsConfigOption.GPS_HANDLER, @@ -352,7 +362,7 @@ helper.displayUI(ui, false); } - public void showHome() { + public void showHome() { if (checkCurrentFlight(_("sammoa.confirmDialog.flightInProgress.message.showHome"))) { setScreen(SammoaScreen.HOME); } @@ -363,7 +373,7 @@ ApplicationConfig applicationConfig = context.getConfig().getApplicationConfig(); String iconPath = applicationConfig.getOption("application.icon.path"); - String name="sammoa-ui-swing"; + String name = "sammoa-ui-swing"; String licensePath = "META-INF/" + name + "-LICENSE.txt"; String thirdPartyPath = "META-INF/" + name + "-THIRD-PARTY.txt"; @@ -419,7 +429,7 @@ * progress. In this case, a confirm dialog is opened to display the * given {@code message} at warning level. If the user accept, the * response will be true. - * + * * @param message String message to display to user when flight is in progress * @return true if the confirmation is Ok or no flight is in progress */ Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaColors.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaColors.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaColors.java 2012-08-14 13:09:01 UTC (rev 420) @@ -23,7 +23,7 @@ * #L% */ -import java.awt.*; +import java.awt.Color; /** * Created: 16/07/12 @@ -31,13 +31,13 @@ * @author fdesbois <desbois@codelutin.com> */ public final class SammoaColors { - + private SammoaColors() { // class with statics doesn't need constructor } - + public static final Color ON_EFFORT_BACKGROUND_COLOR = Color.YELLOW; - + public static final Color OBSERVER_PILOT_BACKGROUND_COLOR = Color.CYAN; public static final Color CURRENT_TRANSECT_ROW_COLOR = Color.YELLOW; @@ -46,18 +46,18 @@ public static final Color POSITION_RIGHT_COLOR = Color.GREEN; - public static final Color NEXT_TRANSECT_ROW_COLOR = new Color(233,255,235); + public static final Color NEXT_TRANSECT_ROW_COLOR = new Color(233, 255, 235); - public static final Color OBSERVATION_FOR_ROUTE_ROW_COLOR = new Color(233,255,235); + public static final Color OBSERVATION_FOR_ROUTE_ROW_COLOR = new Color(233, 255, 235); - public static final Color ROUTE_NO_MODIFICATION_ROW_COLOR = new Color(255,233,233); + public static final Color ROUTE_NO_MODIFICATION_ROW_COLOR = new Color(255, 233, 233); public static final Color FLIGHT_TRACKING_LINE_COLOR = Color.RED; - + public static final Color TRANSECT_LINE_COLOR = new Color(102, 0, 255); public static final Color TRANSECT_SELECT_LINE_COLOR = new Color(255, 126, 0); - public static final Color TRANSECT_WITHOUT_GRAPHIC_BACKGROUND_COLOR = new Color(255,233,233); - + public static final Color TRANSECT_WITHOUT_GRAPHIC_BACKGROUND_COLOR = new Color(255, 233, 233); + } Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaDecoratorProvider.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaDecoratorProvider.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaDecoratorProvider.java 2012-08-14 13:09:01 UTC (rev 420) @@ -112,7 +112,7 @@ } else { result += " - " + _("sammoa.flight.decorator.notEnded"); } - + } else { result += " - " + _("sammoa.flight.decorator.notStarted"); } Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaScreen.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaScreen.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaScreen.java 2012-08-14 13:09:01 UTC (rev 420) @@ -36,7 +36,11 @@ FLIGHT, + IMPORT_APPLICATION, + EXPORT_APPLICATION, - EXPORT_MAP + EXPORT_MAP, + + VALIDATION } Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaUI.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaUI.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaUI.java 2012-08-14 13:09:01 UTC (rev 420) @@ -2,8 +2,8 @@ /* * #%L * SAMMOA :: UI Swing - * $Id:$ - * $HeadURL:$ + * $Id$ + * $HeadURL$ * %% * Copyright (C) 2012 UMS 3462, Code Lutin * %% @@ -31,6 +31,6 @@ * @author fdesbois <desbois@codelutin.com> */ public interface SammoaUI<H extends SammoaUIHandler> extends JAXXObject { - + H getHandler(); } Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaUIContext.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaUIContext.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaUIContext.java 2012-08-14 13:09:01 UTC (rev 420) @@ -27,7 +27,10 @@ import com.google.common.base.Preconditions; import fr.ulr.sammoa.application.SammoaConfig; import fr.ulr.sammoa.application.SammoaContext; +import fr.ulr.sammoa.application.SammoaService; import fr.ulr.sammoa.application.flightController.FlightController; +import fr.ulr.sammoa.persistence.Campaign; +import fr.ulr.sammoa.persistence.Flight; import fr.ulr.sammoa.ui.swing.flight.FlightUIHandler; import fr.ulr.sammoa.ui.swing.flight.FlightUIModel; import org.nuiton.widget.SwingSession; @@ -77,6 +80,10 @@ return context; } + public <S extends SammoaService> S newService(Class<S> serviceType) { + return getAppContext().newService(serviceType); + } + public SammoaConfig getConfig() { return context.getConfig(); } @@ -128,31 +135,23 @@ return flightId; } - public void setFlightScreen(String flightId) { - this.flightId = flightId; - mainUIHandler.setScreen(SammoaScreen.FLIGHT); + public void changeScreen(SammoaScreen newScreen) { + changeScreen(newScreen, null, null); } - public void setCampaignScreen(String campaignId) { - this.campaignId = campaignId; - mainUIHandler.setScreen(SammoaScreen.CAMPAIGN); + public void changeScreen(SammoaScreen newScreen, + Campaign campaign, + Flight flight) { + if (campaign != null) { + this.campaignId = campaign.getTopiaId(); + } + if (flight != null) { + this.flightId = flight.getTopiaId(); + this.campaignId = flight.getCampaign().getTopiaId(); + } + mainUIHandler.setScreen(newScreen); } - public void setHomeScreen() { - mainUIHandler.setScreen(SammoaScreen.HOME); - } - - public void setExportMapScreen(String campaignId) { - this.campaignId = campaignId; - mainUIHandler.setScreen(SammoaScreen.EXPORT_MAP); - } - - public void setExportApplicationScreen(String campaignId, String flightId) { - this.campaignId = campaignId; - this.flightId = flightId; - mainUIHandler.setScreen(SammoaScreen.EXPORT_APPLICATION); - } - public void setStatusMessage(String message) { mainUIHandler.getUI().getStatus().setStatus(message); } Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/StartApp.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/StartApp.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/StartApp.java 2012-08-14 13:09:01 UTC (rev 420) @@ -45,7 +45,7 @@ private static final Logger logger = LoggerFactory.getLogger(StartApp.class); - public static void main(String[] args) { + public static void main(String... args) { // Initialization of SammoaContext with configuration from sammoa.properties SammoaConfig config = new SammoaConfig("sammoa.properties", args); Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/ValidationTable.css =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/ValidationTable.css 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/ValidationTable.css 2012-08-14 13:09:01 UTC (rev 420) @@ -24,6 +24,7 @@ #scrollPanel { columnHeaderView:{errorTable.getTableHeader()}; } + #errorTable { rowSelectionAllowed:true; autoCreateRowSorter:true; Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/ValidationTable.jaxx =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/ValidationTable.jaxx 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/ValidationTable.jaxx 2012-08-14 13:09:01 UTC (rev 420) @@ -27,11 +27,7 @@ <JScrollPane id='scrollPanel' constraints='BorderLayout.CENTER'> <import> - - jaxx.runtime.validator.swing.SwingValidatorUtil - jaxx.runtime.validator.swing.SwingValidatorMessageTableRenderer jaxx.runtime.validator.swing.SwingValidatorMessageTableModel - </import> <ValidationTableHandler id='handler' constructorParams='this'/> Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/ValidationTableHandler.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/ValidationTableHandler.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/ValidationTableHandler.java 2012-08-14 13:09:01 UTC (rev 420) @@ -31,8 +31,14 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.swing.*; -import java.awt.*; +import javax.swing.AbstractAction; +import javax.swing.Action; +import javax.swing.JComponent; +import javax.swing.JDialog; +import javax.swing.JRootPane; +import javax.swing.KeyStroke; +import java.awt.Component; +import java.awt.Frame; import java.awt.event.ActionEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/AddAction.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/AddAction.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/AddAction.java 2012-08-14 13:09:01 UTC (rev 420) @@ -27,7 +27,7 @@ import fr.ulr.sammoa.ui.swing.SammoaUIContext; import org.nuiton.util.Resource; -import javax.swing.*; +import javax.swing.Action; import java.awt.event.ActionEvent; import static org.nuiton.i18n.I18n._; Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/BeginAction.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/BeginAction.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/BeginAction.java 2012-08-14 13:09:01 UTC (rev 420) @@ -28,7 +28,7 @@ import fr.ulr.sammoa.ui.swing.SammoaUIContext; import org.nuiton.util.Resource; -import javax.swing.*; +import javax.swing.Action; import java.awt.event.ActionEvent; import static org.nuiton.i18n.I18n._; Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/CenterObservationAction.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/CenterObservationAction.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/CenterObservationAction.java 2012-08-14 13:09:01 UTC (rev 420) @@ -26,7 +26,7 @@ import fr.ulr.sammoa.persistence.Position; import fr.ulr.sammoa.ui.swing.SammoaUIContext; -import javax.swing.*; +import javax.swing.Action; import static org.nuiton.i18n.I18n._; Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/CircleBackAction.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/CircleBackAction.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/CircleBackAction.java 2012-08-14 13:09:01 UTC (rev 420) @@ -30,7 +30,9 @@ import fr.ulr.sammoa.ui.swing.SammoaUIContext; import org.nuiton.util.Resource; -import javax.swing.*; +import javax.swing.Action; +import javax.swing.ImageIcon; +import javax.swing.JComponent; import java.awt.event.ActionEvent; import java.util.List; @@ -60,8 +62,8 @@ Observation observation = null; Object source = e.getSource(); if (source instanceof JComponent) { - JComponent comp = (JComponent)source; - observation = (Observation)comp.getClientProperty(CLIENT_PROPERTY_OBSERVATION); + JComponent comp = (JComponent) source; + observation = (Observation) comp.getClientProperty(CLIENT_PROPERTY_OBSERVATION); } if (observation == null) { Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/CloseAction.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/CloseAction.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/CloseAction.java 2012-08-14 13:09:01 UTC (rev 420) @@ -42,7 +42,7 @@ public class CloseAction extends AbstractAction { private static final long serialVersionUID = 1L; - + protected JComponent ui; public CloseAction(JComponent ui) { Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/EndAction.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/EndAction.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/EndAction.java 2012-08-14 13:09:01 UTC (rev 420) @@ -27,7 +27,7 @@ import fr.ulr.sammoa.ui.swing.SammoaUIContext; import org.nuiton.util.Resource; -import javax.swing.*; +import javax.swing.Action; import java.awt.event.ActionEvent; import static org.nuiton.i18n.I18n._; Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/LeftObservationAction.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/LeftObservationAction.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/LeftObservationAction.java 2012-08-14 13:09:01 UTC (rev 420) @@ -26,7 +26,7 @@ import fr.ulr.sammoa.persistence.Position; import fr.ulr.sammoa.ui.swing.SammoaUIContext; -import javax.swing.*; +import javax.swing.Action; import static org.nuiton.i18n.I18n._; Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/NextAction.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/NextAction.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/NextAction.java 2012-08-14 13:09:01 UTC (rev 420) @@ -27,7 +27,7 @@ import fr.ulr.sammoa.ui.swing.SammoaUIContext; import org.nuiton.util.Resource; -import javax.swing.*; +import javax.swing.Action; import java.awt.event.ActionEvent; import static org.nuiton.i18n.I18n._; Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/NextTransectAction.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/NextTransectAction.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/NextTransectAction.java 2012-08-14 13:09:01 UTC (rev 420) @@ -27,7 +27,8 @@ import fr.ulr.sammoa.ui.swing.SammoaUIContext; import org.nuiton.util.Resource; -import javax.swing.*; +import javax.swing.Action; +import javax.swing.JComponent; import java.awt.event.ActionEvent; import static org.nuiton.i18n.I18n._; Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/ObservationAction.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/ObservationAction.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/ObservationAction.java 2012-08-14 13:09:01 UTC (rev 420) @@ -39,7 +39,7 @@ private static final long serialVersionUID = 1L; protected Position position; - + public ObservationAction(String name, SammoaUIContext context, Position position) { super(name, context); this.position = position; Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/RightObservationAction.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/RightObservationAction.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/RightObservationAction.java 2012-08-14 13:09:01 UTC (rev 420) @@ -26,7 +26,7 @@ import fr.ulr.sammoa.persistence.Position; import fr.ulr.sammoa.ui.swing.SammoaUIContext; -import javax.swing.*; +import javax.swing.Action; import static org.nuiton.i18n.I18n._; Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/SammoaAction.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/SammoaAction.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/SammoaAction.java 2012-08-14 13:09:01 UTC (rev 420) @@ -31,7 +31,8 @@ import fr.ulr.sammoa.ui.swing.SammoaUIContext; import fr.ulr.sammoa.ui.swing.flight.FlightUIModel; -import javax.swing.*; +import javax.swing.AbstractAction; +import javax.swing.Icon; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; @@ -74,7 +75,7 @@ protected FlightUIModel getModel() { return context.getFlightUIHandler().getModel(); } - + protected FlightState getFlightState() { return getModel().getFlightState(); } Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/StartAction.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/StartAction.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/StartAction.java 2012-08-14 13:09:01 UTC (rev 420) @@ -27,7 +27,7 @@ import fr.ulr.sammoa.ui.swing.SammoaUIContext; import org.nuiton.util.Resource; -import javax.swing.*; +import javax.swing.Action; import java.awt.event.ActionEvent; import static org.nuiton.i18n.I18n._; Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/StopAction.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/StopAction.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/action/StopAction.java 2012-08-14 13:09:01 UTC (rev 420) @@ -27,7 +27,7 @@ import fr.ulr.sammoa.ui.swing.SammoaUIContext; import org.nuiton.util.Resource; -import javax.swing.*; +import javax.swing.Action; import java.awt.event.ActionEvent; import static org.nuiton.i18n.I18n._; Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/campaign/CampaignUI.css =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/campaign/CampaignUI.css 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/campaign/CampaignUI.css 2012-08-14 13:09:01 UTC (rev 420) @@ -24,25 +24,30 @@ */ FileEditor { - acceptAllFileFilterUsed:false; + acceptAllFileFilterUsed:false; + directoryEnabled:false; } #campaignRegionLabel { text:"sammoa.label.campaign.region"; } + #regionListModel{ elements:{getModel().getRegionReferential()}; selectedItem:{getModel().getRegion()}; } + #regionComboBox{ model:{regionListModel}; enabled:{!getModel().isUpdate()}; renderer:{new DecoratorProviderListCellRenderer(getHandler().getDecoratorProvider())}; } + #editRegionButton { enabled:{getModel().getRegion() != null}; text:"sammoa.action.edit"; } + #newRegionButton { enabled:{!getModel().isUpdate()}; text:"sammoa.action.new"; @@ -51,6 +56,7 @@ #campaignCodeLabel { text:"sammoa.label.campaign.code"; } + #campaignCodeField { enabled:{!getModel().isUpdate()}; text:{getModel().getCode()}; @@ -59,6 +65,7 @@ #campaignNameLabel { text:"sammoa.label.campaign.name"; } + #campaignNameField { text:{getModel().getName()}; } @@ -66,16 +73,20 @@ #campaignPeriodLabel { text:"sammoa.label.campaign.period"; } + #campaignBeginDateLabel { text:"sammoa.label.campaign.beginDate"; } + #beginDatePicker { patternLayout:{_("sammoa.datePattern")}; date:{getModel().getBeginDate()}; } + #campaignEndDateLabel { text:"sammoa.label.campaign.endDate"; } + #endDatePicker { patternLayout:{_("sammoa.datePattern")}; date:{getModel().getEndDate()}; @@ -84,37 +95,38 @@ #campaignStrateLabel { text:"sammoa.label.campaign.strate"; } + #strateFileEditor { title:"sammoa.dialog.title.strateFile"; exts:"shp"; extsDescription:"Shape files"; - directoryEnabled:{false}; } #campaignTransectLabel { text:"sammoa.label.campaign.transect"; } + #transectFileEditor { title:"sammoa.dialog.title.transectFile"; exts:"shp"; extsDescription:"Shape files"; - directoryEnabled:{false}; } #campaignObserverLabel { text:"sammoa.label.campaign.observer"; } + #observerFileEditor { title:"sammoa.dialog.title.observerFile"; exts:"csv"; extsDescription:"CSV files"; - directoryEnabled:{false}; } #saveButton { text:"sammoa.action.save"; enabled:{validator.isValid()}; } + #cancelButton { text:"sammoa.action.cancel"; } @@ -124,6 +136,7 @@ height:200; width:500; } + #errorTable { rowSelectionAllowed:true; autoCreateRowSorter:true; Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/campaign/CampaignUI.jaxx =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/campaign/CampaignUI.jaxx 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/campaign/CampaignUI.jaxx 2012-08-14 13:09:01 UTC (rev 420) @@ -26,9 +26,7 @@ implements='fr.ulr.sammoa.ui.swing.SammoaUI<CampaignUIHandler>'> <import> - fr.ulr.sammoa.application.flightController.FlightState fr.ulr.sammoa.persistence.Region - fr.ulr.sammoa.persistence.Campaign fr.ulr.sammoa.ui.swing.SammoaUIContext jaxx.runtime.swing.JAXXDatePicker @@ -36,7 +34,6 @@ jaxx.runtime.swing.renderer.DecoratorProviderListCellRenderer jaxx.runtime.swing.editor.FileEditor jaxx.runtime.validator.swing.SwingValidatorUtil - jaxx.runtime.validator.swing.SwingValidatorMessageTableRenderer jaxx.runtime.validator.swing.SwingValidatorMessageTableModel static org.nuiton.i18n.I18n._ Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/campaign/CampaignUIHandler.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/campaign/CampaignUIHandler.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/campaign/CampaignUIHandler.java 2012-08-14 13:09:01 UTC (rev 420) @@ -36,17 +36,17 @@ import fr.ulr.sammoa.persistence.Strate; import fr.ulr.sammoa.persistence.Transect; import fr.ulr.sammoa.ui.swing.SammoaDecoratorProvider; +import fr.ulr.sammoa.ui.swing.SammoaScreen; import fr.ulr.sammoa.ui.swing.SammoaUIContext; import fr.ulr.sammoa.ui.swing.SammoaUIHandler; +import fr.ulr.sammoa.ui.swing.io.input.CsvImporter; +import fr.ulr.sammoa.ui.swing.io.input.UIImporter; import fr.ulr.sammoa.ui.swing.region.RegionUI; import fr.ulr.sammoa.ui.swing.region.RegionUIModel; -import fr.ulr.sammoa.ui.swing.io.input.CsvImporter; import fr.ulr.sammoa.ui.swing.util.SammoaUtil; -import fr.ulr.sammoa.ui.swing.io.input.UIImporter; import jaxx.runtime.swing.ErrorDialogUI; import jaxx.runtime.validator.swing.SwingValidatorMessageTableRenderer; import jaxx.runtime.validator.swing.SwingValidatorUtil; -import org.nuiton.util.csv.ImportModel; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -76,11 +76,18 @@ protected final UIImporter uiImporter; + protected final ImportMapService importMapService; + + protected final ImportCsvService importCsvService; + public CampaignUIHandler(SammoaUIContext context, CampaignUI ui) { this.context = context; this.ui = ui; this.uiImporter = new UIImporter(this.ui); + + importMapService = context.newService(ImportMapService.class); + importCsvService = context.newService(ImportCsvService.class); } public SammoaUIContext getContext() { @@ -194,7 +201,7 @@ ); } - success &= uiImporter.importShape(strateImporter, strateFile, campaignStorage); + success &= uiImporter.importShape(strateImporter, campaignStorage, strateFile); } File transectFile = ui.getTransectFileEditor().getSelectedFile(); @@ -207,8 +214,8 @@ } success &= uiImporter.importShape(transectImporter, - transectFile, - campaignStorage); + campaignStorage, transectFile + ); } final File observerFile = ui.getObserverFileEditor().getSelectedFile(); @@ -236,7 +243,7 @@ } public void close() { - context.setHomeScreen(); + context.changeScreen(SammoaScreen.HOME); } protected ComponentListener regionUIListener = new ComponentListener() { @@ -292,51 +299,28 @@ @Override public String importCsvFile(File file) throws IOException { - ImportCsvService service = new ImportCsvService(context.getAppContext()); - int nbImported = service.importObservers(getModel().getId(), file); + int nbImported = importCsvService.importObservers(getModel().getId(), file); return _("sammoa.messageDialog.observers.import.success", nbImported); } }; - protected ShpImporter<Strate> strateImporter = new ShpImporter<Strate>() { + protected ShpImporter<Strate> strateImporter = new ShpImporter<Strate>(new StrateImportModel(), "strates") { protected String onDbfLoaded(Iterable<Strate> elements, CampaignStorage storage) { - ImportMapService service = new ImportMapService(context.getAppContext()); - int nbImported = service.importStrates(storage.getCampaignId(), elements); + int nbImported = importMapService.importStrates(storage.getCampaignId(), elements); return _("sammoa.messageDialog.strates.import.success", nbImported); } - @Override - protected ImportModel<Strate> getModel() { - return new StrateImportModel(); - } - - @Override - protected String getCopyFileName() { - return "strates"; - } - }; - protected ShpImporter<Transect> transectImporter = new ShpImporter<Transect>() { + protected ShpImporter<Transect> transectImporter = new ShpImporter<Transect>(new TransectImportModel(), "transects") { @Override protected String onDbfLoaded(Iterable<Transect> elements, CampaignStorage storage) { - ImportMapService service = new ImportMapService(context.getAppContext()); - int nbImported = service.importTransects(storage.getCampaignId(), elements); + int nbImported = importMapService.importTransects(storage.getCampaignId(), elements); return _("sammoa.messageDialog.transects.import.success", nbImported); } - @Override - protected ImportModel<Transect> getModel() { - return new TransectImportModel(); - } - - @Override - protected String getCopyFileName() { - return "transects"; - } - }; } Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/campaign/CampaignUIModel.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/campaign/CampaignUIModel.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/campaign/CampaignUIModel.java 2012-08-14 13:09:01 UTC (rev 420) @@ -27,7 +27,7 @@ import fr.ulr.sammoa.persistence.Campaign; import fr.ulr.sammoa.persistence.CampaignImpl; import fr.ulr.sammoa.persistence.Region; -import fr.ulr.sammoa.ui.swing.BaseModel; +import org.jdesktop.beans.AbstractSerializableBean; import java.util.Date; import java.util.List; @@ -37,8 +37,8 @@ * * @author fdesbois <desbois@codelutin.com> */ -public class CampaignUIModel extends BaseModel { - +public class CampaignUIModel extends AbstractSerializableBean { + public static final String PROPERTY_CAMPAIGN_REFERENTIAL = "campaignReferential"; public static final String PROPERTY_REGION_REFERENTIAL = "regionReferential"; @@ -56,21 +56,23 @@ public static final String PROPERTY_END_DATE = "endDate"; public static final String PROPERTY_UPDATE = "update"; - + + private static final long serialVersionUID = 1L; + protected List<Campaign> campaignReferential; protected List<Region> regionReferential; - + protected String id; - + protected String code; - + protected String name; - + protected Region region; - + protected Date beginDate; - + protected Date endDate; protected boolean update; Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/CurrentTransectHighlightPredicate.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/CurrentTransectHighlightPredicate.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/CurrentTransectHighlightPredicate.java 2012-08-14 13:09:01 UTC (rev 420) @@ -26,9 +26,7 @@ import fr.ulr.sammoa.persistence.TransectFlight; import fr.ulr.sammoa.ui.swing.util.AbstractRowHighlightPredicate; -/** - * @author sletellier <letellier@codelutin.com> - */ +/** @author sletellier <letellier@codelutin.com> */ public class CurrentTransectHighlightPredicate extends AbstractRowHighlightPredicate { protected TransectTableModel model; Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/DeviceStateLED.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/DeviceStateLED.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/DeviceStateLED.java 2012-08-14 13:09:01 UTC (rev 420) @@ -31,12 +31,13 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.swing.*; +import javax.swing.ImageIcon; +import javax.swing.JLabel; /** * Panel qui écoute l'état du peripherique pour afficher à l'utilsateur un voyant * lunineux dépendant de l'état du peripherique. - * + * <p/> * Indicateurs pour l'état du peripherique * <ul> * <li>voyant gris : pas de peripherique @@ -44,7 +45,7 @@ * <li>voyant vert : enregistrement en cours * <li>voyant rouge clignotant : enregistrement mais pas de données * </ul> - * + * * @author chatellier */ public class DeviceStateLED extends JLabel implements DeviceStateListener { @@ -57,8 +58,11 @@ protected DeviceState state; protected static final ImageIcon NO_DEVICE_ICON = Resource.getIcon("/icons/device/nodevice.png"); + protected static final ImageIcon READY_ICON = Resource.getIcon("/icons/device/ready.png"); + protected static final ImageIcon RECORDING_ICON = Resource.getIcon("/icons/device/recording.png"); + protected static final ImageIcon NO_DATA_ICON = Resource.getIcon("/icons/device/nodata.gif"); @Override @@ -73,7 +77,7 @@ if (oldValue != state) { logger.debug("[{}] Update LED status: {}", - getClass().getSimpleName(), state); + getClass().getSimpleName(), state); switch (state) { case NO_DEVICE: Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightBar.css =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightBar.css 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightBar.css 2012-08-14 13:09:01 UTC (rev 420) @@ -22,49 +22,64 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ + #lblTime { delay:1000; pattern:"dd/MM/yyyy HH:mm:ss"; } + #beginButton { _actionName: {"begin"}; } + #endButton { _actionName: {"end"}; } + #nextButton { _actionName: {"next"}; } + #effortButtonPanel { background:{model.getEffortPanelColor()}; } + #statusPanel { background:{model.getEffortPanelColor()}; } + #lblEffort { text:{flightUIModel.getFlightState().name()}; } + #lblTransect { text:{flightUIModel.getCurrentRoute().getTransectFlight().getTransect().getName()}; } + #lblStatus { text:{flightUIModel.getCurrentRoute().getRouteType().name()}; } + #cbPanel { background:{model.getEffortPanelColor()}; } + #gpsLED { text:"sammoa.statusBar.gps"; } + #audioLED { text:"sammoa.statusBar.audio"; } + #indicatorPanel { background:{model.getEffortPanelColor()}; } + #lblAlt { text:{model.getAlt()}; } + #lblSpeed { text:{model.getSpeed()}; } Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightBar.jaxx =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightBar.jaxx 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightBar.jaxx 2012-08-14 13:09:01 UTC (rev 420) @@ -28,7 +28,6 @@ javax.swing.BoxLayout javax.swing.SwingConstants jaxx.runtime.swing.ClockWidget - fr.ulr.sammoa.application.flightController.FlightState </import> <script><![CDATA[ Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightBarHandler.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightBarHandler.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightBarHandler.java 2012-08-14 13:09:01 UTC (rev 420) @@ -26,20 +26,19 @@ import fr.ulr.sammoa.application.device.audio.AudioRecorder; import fr.ulr.sammoa.application.device.gps.GpsHandler; +import fr.ulr.sammoa.application.flightController.FlightController; import fr.ulr.sammoa.application.flightController.FlightState; import fr.ulr.sammoa.persistence.Route; -import fr.ulr.sammoa.ui.swing.BaseHandler; import fr.ulr.sammoa.ui.swing.SammoaColors; +import fr.ulr.sammoa.ui.swing.SammoaUIContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; -/** - * @author sletellier <letellier@codelutin.com> - */ -public class FlightBarHandler extends BaseHandler implements PropertyChangeListener { +/** @author sletellier <letellier@codelutin.com> */ +public class FlightBarHandler implements PropertyChangeListener { private static final Logger logger = LoggerFactory.getLogger(FlightBarHandler.class); @@ -53,6 +52,16 @@ return view.getModel(); } + @Deprecated + public FlightUIModel getFlightUIModel() { + return SammoaUIContext.getUIContext().getFlightUIHandler().getModel(); + } + + @Deprecated + public FlightController getFlightController() { + return SammoaUIContext.getUIContext().getFlightUIHandler().getFlightController(); + } + public void init() { getFlightUIModel().addPropertyChangeListener(this); @@ -80,7 +89,7 @@ // si l'etat du vol passe en off effort // affiche à l'utilisateur - FlightState newState = (FlightState)evt.getNewValue(); + FlightState newState = (FlightState) evt.getNewValue(); if (FlightState.OFF_EFFORT.equals(newState)) { getModel().setEffortPanelColor(SammoaColors.ON_EFFORT_BACKGROUND_COLOR); @@ -93,7 +102,7 @@ Route route = (Route) evt.getNewValue(); logger.debug("New value received for current route {}", route); - + if (route == null || route.getTransectFlight() == null) { // set null will hide label view.getLblTransect().setText(null); Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightBarModel.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightBarModel.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightBarModel.java 2012-08-14 13:09:01 UTC (rev 420) @@ -27,21 +27,21 @@ import fr.ulr.sammoa.application.device.gps.GpsLocationEvent; import fr.ulr.sammoa.application.device.gps.GpsLocationListener; import fr.ulr.sammoa.persistence.GeoPoint; -import fr.ulr.sammoa.ui.swing.BaseModel; +import org.jdesktop.beans.AbstractSerializableBean; -import java.awt.*; +import java.awt.Color; import static org.nuiton.i18n.I18n._; -/** - * @author sletellier <letellier@codelutin.com> - */ -public class FlightBarModel extends BaseModel implements GpsLocationListener { +/** @author sletellier <letellier@codelutin.com> */ +public class FlightBarModel extends AbstractSerializableBean implements GpsLocationListener { private static final long serialVersionUID = 1L; public static final String PROPERTY_ALT = "alt"; + public static final String PROPERTY_SPEED = "speed"; + public static final String PROPERTY_EFFORT_PANEL_COLOR = "effortPanelColor"; protected float alt; Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUI.css =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUI.css 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUI.css 2012-08-14 13:09:01 UTC (rev 420) @@ -22,23 +22,28 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ + JSplitPane { oneTouchExpandable: true; continuousLayout: true; dividerSize: 12; } + #mainSplitPane { orientation:{JSplitPane.VERTICAL_SPLIT}; resizeWeight:0.5; } + #mapPanel { minimumSize:{new Dimension(0,0)}; preferredSize:{new Dimension(0,0)}; } + #effortSplitPane { orientation:{JSplitPane.VERTICAL_SPLIT}; resizeWeight:0.8; } + #effortPanel { minimumSize:{new Dimension(0,0)}; preferredSize:{new Dimension(0,0)}; @@ -52,6 +57,7 @@ #flightImmatriculationLabel { text:"sammoa.label.flight.immatriculation"; } + #flightImmatriculationField { text:{bean.getImmatriculation()}; } @@ -63,6 +69,7 @@ #flightCommentLabel { text:"sammoa.label.flight.comment"; } + #flightCommentArea { text:{bean.getComment()}; } @@ -70,9 +77,11 @@ #flightPeriodLabel { text:"sammoa.label.flight.period"; } + #flightBeginDateLabel { text:"sammoa.label.flight.beginDate"; } + #beginDatePicker { patternLayout:{_("sammoa.dateTimePattern")}; showPopupButton:false; @@ -83,6 +92,7 @@ #flightEndDateLabel { text:"sammoa.label.flight.endDate"; } + #endDatePicker { patternLayout:{_("sammoa.dateTimePattern")}; showPopupButton:false; @@ -93,9 +103,11 @@ #observerLabel { text:"sammoa.label.observers"; } + #observerListSelectorModel { bean:{bean}; } + #observerSelector { enabled:{model.getFlightState() == FlightState.WAITING}; renderer:{new ObserverListCellRenderer(listCellRenderer)}; @@ -105,24 +117,30 @@ #strateCombobox { renderer:{new DecoratorProviderListCellRenderer(handler.getDecoratorProvider())} } + #transectLabel { text:"sammoa.label.transects"; } + #transectSelectionModel { selectionMode:{ListSelectionModel.MULTIPLE_INTERVAL_SELECTION}; } + #transectList { model:{transectListModel}; selectionModel:{transectSelectionModel}; cellRenderer:{new TransectListCellRenderer(listCellRenderer)}; } + #transectNewButton { text:"sammoa.action.new"; } + #transectAddButton { actionIcon:"add"; enabled:{model.isTransectSelectionExists()} } + #transectTable { selectionModel:{transectFlightSelectionModel}; } @@ -130,6 +148,7 @@ #startButton { _actionName: {"start"}; } + #stopButton { _actionName: {"stop"}; } Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUI.jaxx =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUI.jaxx 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUI.jaxx 2012-08-14 13:09:01 UTC (rev 420) @@ -28,8 +28,6 @@ <import> java.awt.BorderLayout java.awt.Dimension - java.util.Locale - javax.swing.JFrame javax.swing.ListSelectionModel javax.swing.DefaultListSelectionModel @@ -39,10 +37,8 @@ fr.ulr.sammoa.persistence.Flight fr.ulr.sammoa.persistence.Observer - fr.ulr.sammoa.persistence.Strate fr.ulr.sammoa.application.flightController.FlightState fr.ulr.sammoa.ui.swing.SammoaUIContext - fr.ulr.sammoa.ui.swing.ValidationTable fr.ulr.sammoa.ui.swing.observations.EffortPanel </import> 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-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUIHandler.java 2012-08-14 13:09:01 UTC (rev 420) @@ -24,7 +24,11 @@ */ package fr.ulr.sammoa.ui.swing.flight; -import com.bbn.openmap.*; +import com.bbn.openmap.InformationDelegator; +import com.bbn.openmap.LayerHandler; +import com.bbn.openmap.MapBean; +import com.bbn.openmap.MapHandler; +import com.bbn.openmap.MouseDelegator; import com.bbn.openmap.event.OMMouseMode; import com.bbn.openmap.gui.EmbeddedNavPanel; import com.bbn.openmap.gui.EmbeddedScaleDisplayPanel; @@ -39,24 +43,54 @@ import com.google.common.base.Objects; import com.google.common.base.Preconditions; import com.google.common.base.Strings; -import com.google.common.collect.*; +import com.google.common.collect.FluentIterable; +import com.google.common.collect.Iterables; +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; +import com.google.common.collect.Ordering; import fr.ulr.sammoa.application.FlightService; import fr.ulr.sammoa.application.ReferentialService; import fr.ulr.sammoa.application.SammoaConfig; -import fr.ulr.sammoa.application.SammoaContext; import fr.ulr.sammoa.application.device.DeviceState; import fr.ulr.sammoa.application.device.DeviceStateEvent; import fr.ulr.sammoa.application.device.DeviceStateListener; import fr.ulr.sammoa.application.device.DeviceTechnicalException; import fr.ulr.sammoa.application.device.gps.GpsLocationEvent; import fr.ulr.sammoa.application.device.gps.GpsLocationListener; -import fr.ulr.sammoa.application.flightController.*; -import fr.ulr.sammoa.persistence.*; +import fr.ulr.sammoa.application.flightController.FlightController; +import fr.ulr.sammoa.application.flightController.FlightControllerDefault; +import fr.ulr.sammoa.application.flightController.FlightControllerListener; +import fr.ulr.sammoa.application.flightController.FlightState; +import fr.ulr.sammoa.application.flightController.ObservationEvent; +import fr.ulr.sammoa.application.io.CampaignStorage; +import fr.ulr.sammoa.application.io.CampaignStorages; +import fr.ulr.sammoa.persistence.Campaign; +import fr.ulr.sammoa.persistence.Flight; +import fr.ulr.sammoa.persistence.GeoPoint; +import fr.ulr.sammoa.persistence.GeoPoints; +import fr.ulr.sammoa.persistence.Observation; +import fr.ulr.sammoa.persistence.Observations; +import fr.ulr.sammoa.persistence.Observer; +import fr.ulr.sammoa.persistence.Route; +import fr.ulr.sammoa.persistence.Strate; +import fr.ulr.sammoa.persistence.Transect; +import fr.ulr.sammoa.persistence.TransectFlight; +import fr.ulr.sammoa.persistence.TransectFlights; import fr.ulr.sammoa.ui.swing.SammoaColors; import fr.ulr.sammoa.ui.swing.SammoaDecoratorProvider; import fr.ulr.sammoa.ui.swing.SammoaUIContext; import fr.ulr.sammoa.ui.swing.SammoaUIHandler; -import fr.ulr.sammoa.ui.swing.action.*; +import fr.ulr.sammoa.ui.swing.action.AddAction; +import fr.ulr.sammoa.ui.swing.action.BeginAction; +import fr.ulr.sammoa.ui.swing.action.CenterObservationAction; +import fr.ulr.sammoa.ui.swing.action.CircleBackAction; +import fr.ulr.sammoa.ui.swing.action.EndAction; +import fr.ulr.sammoa.ui.swing.action.LeftObservationAction; +import fr.ulr.sammoa.ui.swing.action.NextAction; +import fr.ulr.sammoa.ui.swing.action.NextTransectAction; +import fr.ulr.sammoa.ui.swing.action.RightObservationAction; +import fr.ulr.sammoa.ui.swing.action.StartAction; +import fr.ulr.sammoa.ui.swing.action.StopAction; import fr.ulr.sammoa.ui.swing.flight.layer.BaseGeoPointLayer; import fr.ulr.sammoa.ui.swing.flight.layer.LineGeoPointLayer; import fr.ulr.sammoa.ui.swing.flight.layer.SimpleGeoPointLayer; @@ -70,7 +104,15 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.swing.*; +import javax.swing.AbstractButton; +import javax.swing.Action; +import javax.swing.ActionMap; +import javax.swing.InputMap; +import javax.swing.JButton; +import javax.swing.JCheckBox; +import javax.swing.JComponent; +import javax.swing.KeyStroke; +import javax.swing.ListSelectionModel; import javax.swing.event.ListSelectionEvent; import java.awt.event.ComponentEvent; import java.awt.event.ComponentListener; @@ -94,7 +136,7 @@ public class FlightUIHandler implements SammoaUIHandler, FlightControllerListener { private static final Logger logger = LoggerFactory.getLogger(FlightUIHandler.class); - + private static final TimeLog timeLog = new TimeLog(FlightUIHandler.class); protected SammoaUIContext context; @@ -111,37 +153,24 @@ protected BaseGeoPointLayer flightLayer; - public FlightUIHandler(SammoaUIContext context, - FlightUI ui) { + protected final FlightService flightService; + + protected final ReferentialService referentialService; + + public FlightUIHandler(SammoaUIContext context, FlightUI ui) { this.context = context; this.context.setFlightUIHandler(this); this.ui = ui; - } + ui.setContextValue(context); - public SammoaConfig getConfig() { - return context.getConfig(); + flightService = context.newService(FlightService.class); + referentialService = context.newService(ReferentialService.class); } - public SammoaContext getAppContext() { - return context.getAppContext(); - } - - public FlightUI getUI() { - return ui; - } - public FlightController getFlightController() { return flightController; } - protected FlightService getFlightService() { - return context.getAppContext().getFlightService(); - } - - protected ReferentialService getReferentialService() { - return context.getAppContext().getReferentialService(); - } - public FlightUIModel getModel() { return ui.getModel(); } @@ -150,48 +179,40 @@ return context.getDecoratorProvider(); } - public OverlayMapPanel getOverlayMapPanel() { - return ui.getMapPanel(); - } - - public TransectUI getTransectUI() { - return transectUi; - } - @Override public void beforeInitUI() { - + long startTime = TimeLog.getTime(); - + String flightId = context.getFlightId(); // TODO-fdesbois-2012-07-19 : load all this data in the same transaction // TODO-fdesbois-2012-07-19 : to avoid separated instances of same entities // TODO-fdesbois-2012-07-19 : like ObserverPosition or use proper Model like TransectModel - Flight flight = getFlightService().getFlight(flightId); + Flight flight = flightService.getFlight(flightId); Preconditions.checkNotNull(flight); Campaign campaign = flight.getCampaign(); List<Observer> referentialObservers = - getReferentialService().getAllObservers(campaign); - List<Observer> observers = getFlightService().getFlightObserverForPositions(flight); - List<Observation> observations = getFlightService().getObservations(flight); - List<Route> routes = getFlightService().getRoutes(flight); + referentialService.getAllObservers(campaign); + List<Observer> observers = flightService.getFlightObserverForPositions(flight); + List<Observation> observations = flightService.getObservations(flight); + List<Route> routes = flightService.getRoutes(flight); List<GeoPoint> geoPoints = - GeoPoints.retainsValidCoordinates(getFlightService().getFlightGeoPoints(flight)); + GeoPoints.retainsValidCoordinates(flightService.getFlightGeoPoints(flight)); if (logger.isTraceEnabled()) { for (GeoPoint geoPoint : geoPoints) { logger.trace(String.format("GeoPoint={%1$tH:%1$tM:%1$tS,%2$f,%3$f}", - geoPoint.getRecordTime(), - geoPoint.getLatitude(), - geoPoint.getLongitude()) + geoPoint.getRecordTime(), + geoPoint.getLatitude(), + geoPoint.getLongitude()) ); } } - -// List<Strate> strates = getReferentialService().getAllStrates(campaign); - List<Transect> transects = getReferentialService().getAllTransects(campaign); +// List<Strate> strates = referentialService.getAllStrates(campaign); + List<Transect> transects = referentialService.getAllTransects(campaign); + if (logger.isInfoEnabled()) { logger.info(String.format("Init view with flight number '%d' [%s]", flight.getFlightNumber(), @@ -201,10 +222,10 @@ startTime = timeLog.log(startTime, "beforeInitUI", "entities are loaded"); - flightController = new FlightControllerDefault(getAppContext(), flight); + flightController = new FlightControllerDefault(context.getAppContext(), flight); try { - flightController.openGpsDevice(getConfig().getGpsConfig()); + flightController.openGpsDevice(context.getConfig().getGpsConfig()); } catch (DeviceTechnicalException ex) { logger.error("Error on GPS init", ex); SammoaUtil.showErrorMessage(ui, ex.getMessageWithCause()); @@ -234,9 +255,9 @@ model.setObservations(observations); model.setRoutes(routes); model.setGeoPoints(geoPoints); - + model.setStrates(prepareStrates(transects)); - + model.setTransectFlights(prepareTransectFlights(model, flight.getTransectFlight())); model.setFlightState(flightController.getState()); @@ -249,7 +270,7 @@ uiStartTime = TimeLog.getTime(); } - + protected List<StrateModel> prepareStrates(List<Transect> transects) { long startTime = TimeLog.getTime(); @@ -274,13 +295,13 @@ List<StrateModel> result = Ordering.natural().sortedCopy(strateMap.values()); - + result.add(0, strateAll); - + timeLog.log(startTime, "prepareStrates"); return result; } - + protected List<TransectFlightModel> prepareTransectFlights(FlightUIModel model, List<TransectFlight> transectFlights) { long startTime = TimeLog.getTime(); @@ -288,15 +309,15 @@ Map<Transect, TransectModel> transectMap = Maps.uniqueIndex(model.getTransects(), TransectModel.toTransect()); - + List<TransectFlightModel> result = Lists.newArrayList(); for (TransectFlight transectFlight : transectFlights) { Transect transect = transectFlight.getTransect(); TransectModel transectModel = transectMap.get(transect); - + transectModel.setInFlight(true); - + TransectFlightModel instance = new TransectFlightModel(model, transectFlight, transectModel); instance.addPropertyChangeListener(transectFlightListener); @@ -313,12 +334,12 @@ .toImmutableList(); Map<Transect, Long> transectRealNbTimes = - getFlightService().getTransectRealNbTimes(transects); - + flightService.getTransectRealNbTimes(transects); + for (Map.Entry<Transect, Long> entry : transectRealNbTimes.entrySet()) { int realNbTimes = Objects.firstNonNull(entry.getValue(), 0).intValue(); - + TransectModel transectModel = transectMap.get(entry.getKey()); transectModel.setRealNbTimes(realNbTimes); } @@ -346,11 +367,10 @@ @Override public void propertyChange(PropertyChangeEvent evt) { Flight flight = (Flight) evt.getSource(); - FlightService flightService = getAppContext().getFlightService(); List<Observer> observers = flightService.getFlightObserverForPositions(flight); getModel().setFlightObserverForPositions(observers); } - }); + }); // Strate ComboBox StrateModel strateAll = getModel().getStrateAll(); @@ -372,21 +392,19 @@ transectUi = new TransectUI(context); - getTransectUI().addComponentListener(transectUIListener); + transectUi.addComponentListener(transectUIListener); startTime = timeLog.log(startTime, "afterInitUI", "other simple stuff"); - initMapBean(); + initMap(); - initMapHandler(); - timeLog.log(startTime, "afterInitUI", "map is initialized"); } @Override public void onCloseUI() { flightController.close(); - getTransectUI().removeComponentListener(transectUIListener); + transectUi.removeComponentListener(transectUIListener); } public ActionMap getActionMap() { @@ -438,19 +456,19 @@ } StrateModel oldSelection = getModel().getCurrentStrate(); - + if (oldSelection != null) { for (TransectModel transect : oldSelection.getTransects()) { transect.setInCurrentStrate(false); } } - - for (TransectModel transect : strate.getTransects()) { + + for (TransectModel transect : strate.getTransects()) { transect.setInCurrentStrate(true); } getModel().setCurrentStrate(strate); - + ui.getTransectListModel().setStrateModel(strate); } @@ -465,16 +483,16 @@ // We keep currentStrate only if there is a defined source strate StrateModel currentStrate; - if (getModel().getCurrentStrate().getSource() != null) { + if (getModel().getCurrentStrate().getSource() != null) { currentStrate = getModel().getCurrentStrate(); } else { currentStrate = null; } - getTransectUI().getModel().prepareCreate(referential, currentStrate); + transectUi.getModel().prepareCreate(referential, currentStrate); - getTransectUI().getHandler().openUI(); + transectUi.getHandler().openUI(); } /** @@ -526,20 +544,20 @@ if (fromIndex == -1) { // Add after the last row fromIndex = table.getRowCount(); - + } else { // Add after the selection fromIndex++; } - + List<Transect> entities = FluentIterable.from(transects) .transform(TransectModel.toTransect()) .toImmutableList(); // Execute add transects to create the new transectFlights List<TransectFlight> transectFlights = - getFlightService().addTransects(getModel().getFlight(), fromIndex, entities); - + flightService.addTransects(getModel().getFlight(), fromIndex, entities); + List<TransectFlightModel> newTransectFlights = prepareTransectFlights(getModel(), transectFlights); @@ -548,11 +566,10 @@ int toIndex = fromIndex + newTransectFlights.size() - 1; ui.getTransectTableModel().fireTableRowsInserted(fromIndex, toIndex); - - + // // Retrieve real nbTimes for each new transect // Map<Transect, Long> transectRealNbTimes = -// getFlightService().getTransectRealNbTimes(Lists.newArrayList(transects)); +// flightService.getTransectRealNbTimes(Lists.newArrayList(transects)); // getModel().putAllTransectRealNbTimes(transectRealNbTimes); // Display the transects if flight is started @@ -561,7 +578,7 @@ // } } } - + public void selectTransects(ListSelectionEvent event) { ListSelectionModel selectionModel = (ListSelectionModel) event.getSource(); @@ -573,28 +590,28 @@ ? "all" : strateModel.getSource().getCode()) ); } - - for (int i = event.getFirstIndex() ; i <= event.getLastIndex() && i < strateModel.getTransects().size(); i++) { + + for (int i = event.getFirstIndex(); i <= event.getLastIndex() && i < strateModel.getTransects().size(); i++) { TransectModel model = strateModel.getTransects().get(i); boolean selected = selectionModel.isSelectedIndex(i); model.setSelectedInCurrentStrate(selected); } getModel().setTransectSelectionExists(!selectionModel.isSelectionEmpty()); } - + public void selectTransectFlights(ListSelectionEvent event) { ListSelectionModel selectionModel = (ListSelectionModel) event.getSource(); if (logger.isDebugEnabled()) { - logger.debug(String.format("Select transectFlights", - event.getFirstIndex()) - ); + logger.debug("Select transectFlights {}", event.getFirstIndex()); } - - for (int i = event.getFirstIndex(); i <= event.getLastIndex() && i < getModel().getTransectFlights().size(); i++) { - + + for (int i = event.getFirstIndex(), + transectFlightsize = getModel().getTransectFlights().size(); + i <= event.getLastIndex() && i < transectFlightsize; i++) { + TransectFlightModel model = getModel().getTransectFlights().get(i); - + boolean selected = selectionModel.isSelectedIndex(i); model.getTransect().setSelectedInFlight(selected); } @@ -636,7 +653,7 @@ */ public static void initActions(ActionMap actionMap, JAXXObject jaxxObject, InputMap inputMap) { for (Object object : jaxxObject.get$objectMap().values()) { - if (jaxxObject!= object && object instanceof JAXXObject) { + if (jaxxObject != object && object instanceof JAXXObject) { initActions(actionMap, (JAXXObject) object, inputMap); } if (object instanceof AbstractButton) { @@ -666,10 +683,12 @@ return action; } - protected void initMapBean() { + protected void initMap() { - MapBean mapBean = getOverlayMapPanel().getMapBean(); + OverlayMapPanel overlayMapPanel = ui.getMapPanel(); + MapBean mapBean = overlayMapPanel.getMapBean(); + // Set background color to blue // mapBean.setBackgroundColor(new Color(0x99b3cc)); @@ -680,12 +699,9 @@ // Set the map's scale mapBean.setScale(20000000f); - } - protected void initMapHandler() { + MapHandler mapHandler = overlayMapPanel.getMapHandler(); - MapHandler mapHandler = getOverlayMapPanel().getMapHandler(); - // Boilerplate code pour avoir, sur la carte, la barre d'outil // la barre de zoom, le déplacement par la souris... mapHandler.add(new LayerHandler()); @@ -696,8 +712,9 @@ mapHandler.add(new ToolPanel()); // BackgroundLayer + SammoaConfig config = context.getConfig(); { - File backgroundShapeFile = getConfig().getBackgroundShapeFile(); + File backgroundShapeFile = config.getBackgroundShapeFile(); if (backgroundShapeFile != null && backgroundShapeFile.exists()) { Properties properties = new Properties(); @@ -715,11 +732,12 @@ } String campaignId = getModel().getFlight().getCampaign().getTopiaId(); - File mapDirectory = new File(new File(new File(getConfig().getDataDirectory(), "campaign"), campaignId), "map"); + CampaignStorage campaignStorage = CampaignStorages.getStorage( + config, campaignId); // StrateLayer { - File file = new File(mapDirectory, "strates.shp"); + File file = campaignStorage.getMapFile("strates.shp"); if (file.exists()) { Properties properties = new Properties(); @@ -746,7 +764,7 @@ // TransectLayer { - File file = new File(mapDirectory, "transects.shp"); + File file = campaignStorage.getMapFile("transects.shp"); if (file.exists()) { Properties properties = new Properties(); @@ -826,7 +844,7 @@ @Override public void propertyChange(PropertyChangeEvent evt) { - + String propertyName = evt.getPropertyName(); // Listen index to fire the table @@ -876,7 +894,7 @@ // Center the map on the location if mapFollow is activated if (getModel() != null && getModel().isMapFollow()) { - MapBean mapBean = getOverlayMapPanel().getMapBean(); + MapBean mapBean = ui.getMapPanel().getMapBean(); LatLonPoint center = new LatLonPoint.Double( location.getLatitude(), location.getLongitude()); mapBean.setCenter(center); @@ -907,7 +925,7 @@ // On hide : retrieve the region saved and reset the region combo - String transectId = getTransectUI().getModel().getId(); + String transectId = transectUi.getModel().getId(); if (transectId == null) { // nothing to do, no creation is done @@ -918,7 +936,7 @@ logger.info(String.format("Retrieve from TransectUI the id = %s", transectId)); } - Transect transectBean = getReferentialService().getTransect(transectId); + Transect transectBean = referentialService.getTransect(transectId); StrateModel strate = Iterables.find(getModel().getStrates(), StrateModel.withStrate(transectBean.getStrate())); Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUIModel.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUIModel.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/FlightUIModel.java 2012-08-14 13:09:01 UTC (rev 420) @@ -34,10 +34,10 @@ import fr.ulr.sammoa.persistence.Observer; import fr.ulr.sammoa.persistence.Route; import fr.ulr.sammoa.persistence.TransectFlight; -import fr.ulr.sammoa.ui.swing.BaseModel; import jaxx.runtime.validator.swing.SwingValidatorMessageTableModel; +import org.jdesktop.beans.AbstractSerializableBean; -import javax.swing.*; +import javax.swing.ActionMap; import java.util.Collections; import java.util.List; @@ -46,7 +46,7 @@ * * @author fdesbois <desbois@codelutin.com> */ -public class FlightUIModel extends BaseModel { +public class FlightUIModel extends AbstractSerializableBean { private static final long serialVersionUID = 1L; @@ -123,13 +123,13 @@ /** * La liste des observateurs du vol, sans les pilotes avec l'observateur null - * - * @since 0.3 + * + * @since 0.3 */ protected List<Observer> flightObserverForPositions; - + // protected List<Transect> transects; - + protected List<StrateModel> strates; protected boolean transectSelectionExists; @@ -137,7 +137,7 @@ protected StrateModel currentStrate; protected boolean mapFollow; - + protected List<TransectFlightModel> transectFlights; protected List<GeoPoint> geoPoints; @@ -214,7 +214,7 @@ } return observations; } - + public int indexOfObservations(Observation observation) { return getObservations().indexOf(observation); } @@ -231,24 +231,24 @@ setObservationEditBean(observation); fireIndexedPropertyChange(PROPERTY_OBSERVATIONS, index, null, observation); } - + public List<Observation> getObservationsForRoute(Route route) { - + List<Observation> result; if (route == null) { result = Collections.emptyList(); - + } else { - + Route nextRoute = getNextRoute(route); - + result = FluentIterable.from(getObservations()) .filter(Observations.inRoute(route, nextRoute)) .toImmutableList(); } return result; } - + public Route getNextRoute(Route route) { int routeIndex = indexOfRoutes(route); @@ -262,7 +262,7 @@ } else { result = null; } - + return result; } @@ -384,7 +384,7 @@ this.strates = strates; firePropertyChange(PROPERTY_STRATES, oldValue, strates); } - + public List<TransectModel> getTransects() { return getStrates().isEmpty() ? Lists.<TransectModel>newArrayList() Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/NextTransectHighlightPredicate.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/NextTransectHighlightPredicate.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/NextTransectHighlightPredicate.java 2012-08-14 13:09:01 UTC (rev 420) @@ -26,9 +26,7 @@ import fr.ulr.sammoa.persistence.TransectFlight; import fr.ulr.sammoa.ui.swing.util.AbstractRowHighlightPredicate; -/** - * @author sletellier <letellier@codelutin.com> - */ +/** @author sletellier <letellier@codelutin.com> */ public class NextTransectHighlightPredicate extends AbstractRowHighlightPredicate { protected TransectTableModel model; Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/ObserverListCellRenderer.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/ObserverListCellRenderer.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/ObserverListCellRenderer.java 2012-08-14 13:09:01 UTC (rev 420) @@ -2,8 +2,8 @@ /* * #%L * SAMMOA :: UI Swing - * $Id:$ - * $HeadURL:$ + * $Id$ + * $HeadURL$ * %% * Copyright (C) 2012 UMS 3462, Code Lutin * %% @@ -37,7 +37,7 @@ * @author fdesbois <desbois@codelutin.com> */ public class ObserverListCellRenderer implements ListCellRenderer { - + protected ListCellRenderer delegate; public ObserverListCellRenderer(ListCellRenderer delegate) { Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/ObserverListSelectorModel.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/ObserverListSelectorModel.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/ObserverListSelectorModel.java 2012-08-14 13:09:01 UTC (rev 420) @@ -31,13 +31,13 @@ import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; -/** - * @author sletellier <letellier@codelutin.com> - */ +/** @author sletellier <letellier@codelutin.com> */ public class ObserverListSelectorModel extends ListSelectorModel<Observer> { public static final String PROPERTY_BEAN = "bean"; + protected FlightUIModel flightUIModel; + protected Flight bean; public ObserverListSelectorModel(FlightUIModel flightUIModel) { @@ -53,14 +53,14 @@ this.bean = bean; if (bean != null) { flightUIModel.addPropertyChangeListener(FlightUIModel.PROPERTY_OBSERVERS, - new PropertyChangeListener() { + new PropertyChangeListener() { - @Override - public void propertyChange(PropertyChangeEvent evt) { - setValues(flightUIModel.getObservers()); - setSelectedValues(Lists.newArrayList(getBean().getObserver())); - } - }); + @Override + public void propertyChange(PropertyChangeEvent evt) { + setValues(flightUIModel.getObservers()); + setSelectedValues(Lists.newArrayList(getBean().getObserver())); + } + }); firePropertyChange(PROPERTY_BEAN, oldValue, bean); setValues(flightUIModel.getObservers()); setSelectedValues(bean.getObserver()); @@ -78,7 +78,7 @@ // TODO sletellier 29062012 : genererate removeAll in topia for (Object o : toModel.getSelectedValues()) { - Observer observer = (Observer)o; + Observer observer = (Observer) o; if (bean.getObserver().contains(observer)) { bean.removeObserver(observer); } Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/ObserverTableCellEditor.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/ObserverTableCellEditor.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/ObserverTableCellEditor.java 2012-08-14 13:09:01 UTC (rev 420) @@ -41,13 +41,14 @@ import java.beans.PropertyChangeListener; import java.util.List; -/** - * @author sletellier <letellier@codelutin.com> - */ +/** @author sletellier <letellier@codelutin.com> */ public class ObserverTableCellEditor extends AbstractCellEditor - implements TableCellEditor, FocusListener { + implements TableCellEditor, FocusListener { + private static final long serialVersionUID = 1L; + protected DecoratorProviderListCellRenderer decoratorProviderListCellRenderer; + protected GenericListModel<Observer> model; public ObserverTableCellEditor(FlightUIModel flightUIModel) { Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/StrateModel.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/StrateModel.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/StrateModel.java 2012-08-14 13:09:01 UTC (rev 420) @@ -27,7 +27,7 @@ import com.google.common.collect.Lists; import fr.ulr.sammoa.persistence.Strate; import fr.ulr.sammoa.persistence.Strates; -import fr.ulr.sammoa.ui.swing.BaseModel; +import org.jdesktop.beans.AbstractSerializableBean; import java.util.List; @@ -36,7 +36,7 @@ * * @author fdesbois <desbois@codelutin.com> */ -public class StrateModel extends BaseModel implements Comparable<StrateModel> { +public class StrateModel extends AbstractSerializableBean implements Comparable<StrateModel> { private static final long serialVersionUID = 1L; @@ -45,7 +45,7 @@ public static final String PROPERTY_TRANSECTS = "transects"; protected Strate source; - + protected List<TransectModel> transects; public StrateModel(Strate source) { Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectCrossingNumberCellRenderer.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectCrossingNumberCellRenderer.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectCrossingNumberCellRenderer.java 2012-08-14 13:09:01 UTC (rev 420) @@ -2,8 +2,8 @@ /* * #%L * SAMMOA :: UI Swing - * $Id:$ - * $HeadURL:$ + * $Id$ + * $HeadURL$ * %% * Copyright (C) 2012 UMS 3462, Code Lutin * %% @@ -23,9 +23,9 @@ * #L% */ -import javax.swing.*; +import javax.swing.JTable; import javax.swing.table.TableCellRenderer; -import java.awt.*; +import java.awt.Component; /** * Created: 18/07/12 @@ -33,9 +33,9 @@ * @author fdesbois <desbois@codelutin.com> */ public class TransectCrossingNumberCellRenderer implements TableCellRenderer { - + protected TableCellRenderer delegate; - + protected TransectTableModel model; public TransectCrossingNumberCellRenderer(TableCellRenderer delegate, @@ -53,8 +53,8 @@ int crossingNumber = transectFlight.getCrossingNumber(); int realNbTimes = transect.getRealNbTimes(); - String newValue = crossingNumber + " (" + realNbTimes +")"; - + String newValue = crossingNumber + " (" + realNbTimes + ")"; + return delegate.getTableCellRendererComponent(table, newValue, isSelected, hasFocus, row, column); } } Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectFlightModel.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectFlightModel.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectFlightModel.java 2012-08-14 13:09:01 UTC (rev 420) @@ -31,14 +31,14 @@ import fr.ulr.sammoa.persistence.ObserverPosition; import fr.ulr.sammoa.persistence.Position; import fr.ulr.sammoa.persistence.TransectFlight; -import fr.ulr.sammoa.ui.swing.BaseModel; +import org.jdesktop.beans.AbstractSerializableBean; /** * Created: 27/07/12 * * @author fdesbois <desbois@codelutin.com> */ -public class TransectFlightModel extends BaseModel { +public class TransectFlightModel extends AbstractSerializableBean { private static final long serialVersionUID = 1L; @@ -51,17 +51,17 @@ public static final String PROPERTY_INDEX = "index"; public static final String PROPERTY_CROSSING_NUMBER = "crossingNumber"; - + protected FlightUIModel flightModel; - + protected TransectFlight source; - + protected TransectModel transect; public TransectFlightModel(FlightUIModel flightModel, - TransectFlight source, + TransectFlight source, TransectModel transect) { - + Preconditions.checkNotNull(flightModel); Preconditions.checkNotNull(source); Preconditions.checkNotNull(transect); @@ -105,22 +105,22 @@ } public void setIndex(int index) { - + int oldValue = getIndex(); // Manage maxBound to avoid IndexOutOfBoundsException if (index >= getFlight().getTransectFlight().size()) { index = getFlight().getTransectFlight().size() - 1; } - + getFlight().getTransectFlight().remove(getSource()); // Use add on Flight to fire change getFlight().addTransectFlight(index, getSource()); flightModel.getTransectFlights().remove(this); - + flightModel.getTransectFlights().add(index, this); firePropertyChange(PROPERTY_INDEX, oldValue, index); Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectListCellRenderer.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectListCellRenderer.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectListCellRenderer.java 2012-08-14 13:09:01 UTC (rev 420) @@ -26,8 +26,9 @@ import com.google.common.base.Preconditions; import fr.ulr.sammoa.ui.swing.SammoaColors; -import javax.swing.*; -import java.awt.*; +import javax.swing.JList; +import javax.swing.ListCellRenderer; +import java.awt.Component; /** * Created: 11/07/12 Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectListModel.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectListModel.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectListModel.java 2012-08-14 13:09:01 UTC (rev 420) @@ -24,17 +24,9 @@ */ package fr.ulr.sammoa.ui.swing.flight; -import com.google.common.base.Function; -import com.google.common.base.Predicate; -import com.google.common.collect.FluentIterable; import com.google.common.collect.Iterables; -import fr.ulr.sammoa.persistence.Transect; import javax.swing.AbstractListModel; -import javax.swing.DefaultListSelectionModel; -import javax.swing.ListSelectionModel; -import javax.swing.event.ListSelectionEvent; -import javax.swing.event.ListSelectionListener; /** * Created: 12/06/12 @@ -70,7 +62,7 @@ public Iterable<TransectModel> getSelectedTransects() { return Iterables.filter(getStrateModel().getTransects(), TransectModel.selectedInCurrentStrate()); } - + @Override public int getSize() { return strateModel != null ? strateModel.getTransects().size() : 0; Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectModel.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectModel.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectModel.java 2012-08-14 13:09:01 UTC (rev 420) @@ -27,19 +27,19 @@ import com.google.common.base.Preconditions; import com.google.common.base.Predicate; import fr.ulr.sammoa.persistence.Transect; -import fr.ulr.sammoa.ui.swing.BaseModel; +import org.jdesktop.beans.AbstractSerializableBean; /** * Created: 26/07/12 * * @author fdesbois <desbois@codelutin.com> */ -public class TransectModel extends BaseModel { +public class TransectModel extends AbstractSerializableBean { private static final long serialVersionUID = 1L; - + public static final String PROPERTY_SOURCE = "source"; - + public static final String PROPERTY_IN_CURRENT_STRATE = "inCurrentStrate"; public static final String PROPERTY_SELECTED_IN_CURRENT_STRATE = "selectedInCurrentStrate"; @@ -47,19 +47,19 @@ public static final String PROPERTY_IN_FLIGHT = "inFlight"; public static final String PROPERTY_SELECTED_IN_FLIGHT = "selectedInFlight"; - + public static final String PROPERTY_REAL_NB_TIMES = "realNbTimes"; protected Transect source; protected boolean inCurrentStrate; - + protected boolean selectedInCurrentStrate; - + protected boolean inFlight; - + protected boolean selectedInFlight; - + protected int realNbTimes; public TransectModel(Transect source) { @@ -140,10 +140,10 @@ } }; } - + public static Function<TransectModel, Transect> toTransect() { return new Function<TransectModel, Transect>() { - + @Override public Transect apply(TransectModel input) { return input.getSource(); Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectTable.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectTable.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectTable.java 2012-08-14 13:09:01 UTC (rev 420) @@ -24,8 +24,12 @@ package fr.ulr.sammoa.ui.swing.flight; import com.google.common.collect.Lists; +import fr.ulr.sammoa.persistence.Flight; import fr.ulr.sammoa.persistence.Observer; +import fr.ulr.sammoa.persistence.Route; +import fr.ulr.sammoa.persistence.TransectFlight; import fr.ulr.sammoa.ui.swing.SammoaColors; +import fr.ulr.sammoa.ui.swing.SammoaUIContext; import fr.ulr.sammoa.ui.swing.action.NextTransectAction; import fr.ulr.sammoa.ui.swing.util.ColorTableCellRenderer; import fr.ulr.sammoa.ui.swing.util.SammoaUtil; @@ -35,30 +39,41 @@ import jaxx.runtime.swing.renderer.DecoratorProviderTableCellRenderer; import org.jdesktop.swingx.JXTable; import org.nuiton.util.decorator.DecoratorProvider; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import javax.swing.*; +import javax.swing.AbstractCellEditor; +import javax.swing.Action; +import javax.swing.ActionMap; +import javax.swing.JButton; +import javax.swing.JComponent; +import javax.swing.JTable; import javax.swing.event.TableModelEvent; import javax.swing.table.TableCellEditor; import javax.swing.table.TableCellRenderer; import javax.swing.table.TableColumn; -import java.awt.*; +import java.awt.Component; +import java.beans.IndexedPropertyChangeEvent; +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; import java.util.List; /** - * Created: 15/06/12 + * Created: 15/06/12. + * <p/> + * TODO tchemit-2012-08-14 Remove this object, use a simple JTXTable and put + * TODO tchemit-2012-08-14 all the init code in handler. * * @author fdesbois <desbois@codelutin.com> */ public class TransectTable extends JXTable { - private static final Logger logger = LoggerFactory.getLogger(TransectTable.class); + private static final long serialVersionUID = 1L; +// private static final Logger logger = LoggerFactory.getLogger(TransectTable.class); + // protected static final ImageIcon ACTION_ICON = Resource.getIcon("/icons/action-next-transect.png"); - - protected TransectTableHandler handler; +// protected TransectTableHandler handler; + protected List<JButton> actionButtons; public TransectTable(TransectTableModel model, @@ -77,7 +92,7 @@ SammoaColors.NEXT_TRANSECT_ROW_COLOR) ); - this.handler = new TransectTableHandler(this); +// this.handler = new TransectTableHandler(this); setSortable(false); @@ -111,20 +126,57 @@ addActionButton(i); } - handler.init(); +// handler.init(); + + PropertyChangeListener propertyChangeListener = new PropertyChangeListener() { + @Override + public void propertyChange(PropertyChangeEvent evt) { + String propertyName = evt.getPropertyName(); + + if (FlightUIModel.PROPERTY_CURRENT_ROUTE.equals(propertyName)) { + + onCurrentRouteChanged( + (Route) evt.getOldValue(), (Route) evt.getNewValue()); + + } else if (FlightUIModel.PROPERTY_NEXT_TRANSECT.equals(propertyName)) { + + onNextTransectChanged( + (TransectFlight) evt.getOldValue(), (TransectFlight) evt.getNewValue()); + +// } else if (Flight.PROPERTY_TRANSECT_FLIGHT.equals(propertyName)) { +// +// IndexedPropertyChangeEvent indexedEvent = (IndexedPropertyChangeEvent) evt; +// onFlightTransectsAdded(indexedEvent); + + } else if (Flight.PROPERTY_OBSERVER.equals(propertyName)) { + + IndexedPropertyChangeEvent indexedEvent = (IndexedPropertyChangeEvent) evt; + onFlightObserversChanged(indexedEvent); + } + } + }; + + Flight flight = getModel().getFlight(); + if (flight != null) { + + flight.addPropertyChangeListener(Flight.PROPERTY_TRANSECT_FLIGHT, propertyChangeListener); + flight.addPropertyChangeListener(Flight.PROPERTY_OBSERVER, propertyChangeListener); + } + + SammoaUIContext.getUIContext().getFlightUIHandler().getModel().addPropertyChangeListener(propertyChangeListener); } - - public TransectTableHandler getHandler() { - return handler; - } - + +// public TransectTableHandler getHandler() { +// return handler; +// } + public List<JButton> getActionButtons() { if (actionButtons == null) { actionButtons = Lists.newArrayList(); } return actionButtons; } - + public int getLastSelectedRow() { int result; int nbRows = getSelectedRows().length; @@ -137,7 +189,7 @@ } return result; } - + @Override public TransectTableModel getModel() { return (TransectTableModel) super.getModel(); @@ -156,9 +208,9 @@ super.tableChanged(e); } - + public JButton addActionButton(int index) { - + JButton result = new JButton(); // use client property used in Action to retrieve the correct transect @@ -208,11 +260,13 @@ TableColumn column = getColumn(TransectTableModel.TransectColumn.POSITION_RIGHT.ordinal()); column.setHeaderRenderer(new ColorTableCellRenderer(defaultRenderer, SammoaColors.POSITION_RIGHT_COLOR)); } - } + } public class TransectBooleanTableCell extends AbstractCellEditor implements TableCellRenderer, TableCellEditor { + private static final long serialVersionUID = 1L; + protected BooleanCellEditor delegateEditor; public TransectBooleanTableCell(TableCellRenderer cellRenderer) { @@ -227,25 +281,26 @@ int row, int column) { - TransectTableModel.TransectColumn transectColumn = + TransectTableModel.TransectColumn transectColumn = TransectTableModel.TransectColumn.valueOf(column); + Component result = null; switch (transectColumn) { case DELETED: JComponent render = (JComponent) delegateEditor.getTableCellRendererComponent( table, value, isSelected, hasFocus, row, column); - return render; - + result = render; + break; case ACTION: JButton button = getActionButtons().get(row); button.setEnabled((Boolean) value); - return button; + result = button; default: } - return null; + return result; } @@ -255,20 +310,21 @@ TransectTableModel.TransectColumn transectColumn = TransectTableModel.TransectColumn.valueOf(column); + Component result = null; switch (transectColumn) { case DELETED: - return delegateEditor.getTableCellEditorComponent( + result = delegateEditor.getTableCellEditorComponent( table, value, isSelected, row, column); - + break; case ACTION: JButton button = getActionButtons().get(row); button.setEnabled((Boolean) value); - return button; + result = button; default: } - return null; + return result; } @Override @@ -276,4 +332,57 @@ return delegateEditor.getCellEditorValue(); } } + + public void onCurrentRouteChanged(Route oldValue, Route newValue) { + + // Change of flight route status : begin, add, cb, end + + if (oldValue != null) { + TransectFlight transect = oldValue.getTransectFlight(); + if (transect != null) { + updateTransectRow(transect); + } + } + if (newValue != null) { + TransectFlight transect = newValue.getTransectFlight(); + if (transect != null) { + updateTransectRow(transect); + } + } + } + + public void onNextTransectChanged(TransectFlight oldValue, TransectFlight newValue) { + + if (oldValue != null) { + updateTransectRow(oldValue); + } + if (newValue != null) { + updateTransectRow(newValue); + } + } + +// public void onFlightTransectsAdded(IndexedPropertyChangeEvent evt) { +// +// int index = evt.getIndex(); +// +// getModel().fireTableRowsInserted(index, index); +// } + + public void onFlightObserversChanged(IndexedPropertyChangeEvent evt) { + + // Refresh all the table if some observer is removed (index = old collection size) + int oldSize = evt.getIndex(); + int currentSize = getModel().getFlight().sizeObserver(); + + if (currentSize < oldSize) { + getModel().fireTableDataChanged(); + } + } + + protected void updateTransectRow(TransectFlight transectFlight) { + + int index = getModel().getTransectFlightModel(transectFlight).getIndex(); + + getModel().fireTableRowsUpdated(index, index); + } } Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectTableHandler.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectTableHandler.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectTableHandler.java 2012-08-14 13:09:01 UTC (rev 420) @@ -26,7 +26,7 @@ import fr.ulr.sammoa.persistence.Flight; import fr.ulr.sammoa.persistence.Route; import fr.ulr.sammoa.persistence.TransectFlight; -import fr.ulr.sammoa.ui.swing.BaseHandler; +import fr.ulr.sammoa.ui.swing.SammoaUIContext; import java.beans.IndexedPropertyChangeEvent; import java.beans.PropertyChangeEvent; @@ -34,17 +34,25 @@ /** * Created: 18/06/12 + * FIXME tchemit-2012-08-14 Remove this handler * * @author fdesbois <desbois@codelutin.com> + * @deprecated I will remove this before release 0.6 */ -public class TransectTableHandler extends BaseHandler implements PropertyChangeListener { - +@Deprecated +public class TransectTableHandler implements PropertyChangeListener { + protected TransectTable view; public TransectTableHandler(TransectTable view) { this.view = view; } - + + @Deprecated + public FlightUIModel getFlightUIModel() { + return SammoaUIContext.getUIContext().getFlightUIHandler().getModel(); + } + public void init() { getFlightUIModel().addPropertyChangeListener(this); @@ -54,14 +62,14 @@ flight.addPropertyChangeListener(Flight.PROPERTY_OBSERVER, this); } } - + public TransectTableModel getModel() { return view.getModel(); } @Override public void propertyChange(PropertyChangeEvent evt) { - + String propertyName = evt.getPropertyName(); if (FlightUIModel.PROPERTY_CURRENT_ROUTE.equals(propertyName)) { @@ -96,7 +104,7 @@ // // getModel().fireTableDataChanged(); // } - + public void onCurrentRouteChanged(Route oldValue, Route newValue) { // Change of flight route status : begin, add, cb, end Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectTableModel.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectTableModel.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectTableModel.java 2012-08-14 13:09:01 UTC (rev 420) @@ -36,19 +36,17 @@ import fr.ulr.sammoa.persistence.TransectFlight; import fr.ulr.sammoa.ui.swing.util.SammoaUtil; -import javax.swing.*; +import javax.swing.SwingUtilities; import javax.swing.table.AbstractTableModel; import java.util.List; import static org.nuiton.i18n.I18n._; -/** - * @author sletellier <letellier@codelutin.com> - */ +/** @author sletellier <letellier@codelutin.com> */ public class TransectTableModel extends AbstractTableModel { private static final long serialVersionUID = 1L; - + protected FlightUIModel reference; public TransectTableModel(FlightUIModel reference) { @@ -71,16 +69,16 @@ public TransectFlight getNextTransect() { return reference.getNextTransect(); } - + @Deprecated public TransectFlightModel getTransectFlightModel(final TransectFlight transectFlight) { TransectFlightModel result = Iterables.find(getTransectFlights(), new Predicate<TransectFlightModel>() { - + @Override public boolean apply(TransectFlightModel input) { return input.getSource().equals(transectFlight); } - }); + }); return result; } @@ -91,7 +89,7 @@ public TransectFlightModel getRow(int index) { return getTransectFlights().get(index); } - + // public int getRowIndex(TransectFlightModel transectFlight) { // return Iterables.indexOf(getTransectFlights(), Predicates.equalTo(transectFlight)); // } @@ -142,6 +140,7 @@ static class UpdateRowRunnable implements Runnable { protected int rowIndex; + protected TransectTableModel model; UpdateRowRunnable(TransectTableModel model, int rowIndex) { @@ -163,7 +162,7 @@ Integer.class, TransectFlightModel.PROPERTY_INDEX ) { - + // @Override // public Object getValue(int index, TransectFlightModel bean) { // return index; @@ -200,7 +199,7 @@ public void setValue(TransectFlightModel bean, Object value, TransectTableModel model) { bean.setObserverByPosition(Position.NAVIGATOR, (Observer) value); } - + @Override public Object getValue(int index, TransectFlightModel bean) { ObserverPosition position = @@ -265,7 +264,7 @@ int.class, TransectFlightModel.PROPERTY_CROSSING_NUMBER ), -// NB_TIMES( + // NB_TIMES( // _("sammoa.flightPanel.table.column.nbTimes"), // true, // Integer.class, @@ -284,7 +283,6 @@ true, Boolean.class ) { - @Override public Object getValue(int index, TransectFlightModel bean) { // Action is available if bean is not deleted @@ -311,9 +309,9 @@ } private TransectColumn(String label, - boolean editable, - Class<?> type, - String... beanProperties) { + boolean editable, + Class<?> type, + String... beanProperties) { this.label = label; this.editable = editable; this.type = type; Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/layer/BaseGeoPointLayer.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/layer/BaseGeoPointLayer.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/layer/BaseGeoPointLayer.java 2012-08-14 13:09:01 UTC (rev 420) @@ -2,8 +2,8 @@ /* * #%L * SAMMOA :: UI Swing - * $Id:$ - * $HeadURL:$ + * $Id$ + * $HeadURL$ * %% * Copyright (C) 2012 UMS 3462, Code Lutin * %% @@ -39,6 +39,8 @@ */ public abstract class BaseGeoPointLayer extends OMGraphicHandlerLayer { + private static final long serialVersionUID = 1L; + protected DrawingAttributes drawingAttributes = DrawingAttributes.getDefaultClone(); public void setGeoPoints(List<GeoPoint> geoPoints) { Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/layer/LineGeoPointLayer.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/layer/LineGeoPointLayer.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/layer/LineGeoPointLayer.java 2012-08-14 13:09:01 UTC (rev 420) @@ -2,8 +2,8 @@ /* * #%L * SAMMOA :: UI Swing - * $Id:$ - * $HeadURL:$ + * $Id$ + * $HeadURL$ * %% * Copyright (C) 2012 UMS 3462, Code Lutin * %% @@ -37,6 +37,8 @@ */ public class LineGeoPointLayer extends BaseGeoPointLayer { + private static final long serialVersionUID = 1L; + @Override protected OMGraphic newGraphic(GeoPoint geoPoint) { Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/layer/SimpleGeoPointLayer.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/layer/SimpleGeoPointLayer.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/layer/SimpleGeoPointLayer.java 2012-08-14 13:09:01 UTC (rev 420) @@ -2,8 +2,8 @@ /* * #%L * SAMMOA :: UI Swing - * $Id:$ - * $HeadURL:$ + * $Id$ + * $HeadURL$ * %% * Copyright (C) 2012 UMS 3462, Code Lutin * %% @@ -33,6 +33,8 @@ */ public class SimpleGeoPointLayer extends BaseGeoPointLayer { + private static final long serialVersionUID = 1L; + @Override protected OMPoint newGraphic(GeoPoint geoPoint) { OMPoint result = new OMPoint(geoPoint.getLatitude(), geoPoint.getLongitude()); Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/layer/TransectLayer.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/layer/TransectLayer.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/layer/TransectLayer.java 2012-08-14 13:09:01 UTC (rev 420) @@ -36,7 +36,7 @@ import fr.ulr.sammoa.ui.swing.flight.FlightUIModel; import fr.ulr.sammoa.ui.swing.flight.TransectModel; -import java.awt.*; +import java.awt.Color; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; @@ -47,6 +47,8 @@ */ public class TransectLayer extends PlugInLayer implements PropertyChangeListener { + private static final long serialVersionUID = 1L; + protected FlightUIModel model; public void init(FlightUIModel model) { @@ -89,11 +91,11 @@ } @Override - public void propertyChange(PropertyChangeEvent evt) { - + public void propertyChange(PropertyChangeEvent evt) { + String propertyName = evt.getPropertyName(); - if (TransectModel.PROPERTY_IN_CURRENT_STRATE.equals(propertyName) + if (TransectModel.PROPERTY_IN_CURRENT_STRATE.equals(propertyName) || TransectModel.PROPERTY_IN_FLIGHT.equals(propertyName)) { TransectModel transect = (TransectModel) evt.getSource(); @@ -117,7 +119,7 @@ Integer graphicIndex = transect.getSource().getGraphicIndex(); if (graphicIndex != null) { - + OMGraphic graphic = getEsriGraphicList().get(graphicIndex); boolean visible = checkVisible(transect, getModel().getFlightState(), graphic); @@ -137,9 +139,9 @@ graphic.regenerate(getProjection()); repaint(); } - - } else if (TransectModel.PROPERTY_SELECTED_IN_FLIGHT.equals(propertyName)) { + } else if (TransectModel.PROPERTY_SELECTED_IN_FLIGHT.equals(propertyName)) { + TransectModel transect = (TransectModel) evt.getSource(); Integer graphicIndex = transect.getSource().getGraphicIndex(); @@ -154,22 +156,22 @@ graphic.regenerate(getProjection()); repaint(); } - + } else if (FlightUIModel.PROPERTY_FLIGHT_STATE.equals(propertyName)) { FlightState oldState = (FlightState) evt.getOldValue(); FlightState newState = (FlightState) evt.getNewValue(); - + if (oldState == FlightState.WAITING || newState == FlightState.WAITING) { ensureVisible(); } - + } else if (FlightUIModel.PROPERTY_CURRENT_ROUTE.equals(propertyName)) { Route oldValue = (Route) evt.getOldValue(); Route newValue = (Route) evt.getNewValue(); - + if (oldValue != null && oldValue.getTransectFlight() != null) { updateLineColor(oldValue.getTransectFlight().getTransect(), null); } @@ -192,18 +194,18 @@ repaint(); } } - + protected boolean checkVisible(TransectModel transect, FlightState flightState, OMGraphic graphic) { - boolean result = transect.isInFlight() - || transect.isSelectedInCurrentStrate() - || (transect.isInCurrentStrate() && flightState == FlightState.WAITING); - + boolean result = transect.isInFlight() + || transect.isSelectedInCurrentStrate() + || (transect.isInCurrentStrate() && flightState == FlightState.WAITING); + graphic.setVisible(result); - + return result; } - + protected void updateLineColor(Transect transect, Color colorChanged) { Integer graphicIndex = transect.getGraphicIndex(); Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUI.css =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUI.css 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUI.css 2012-08-14 13:09:01 UTC (rev 420) @@ -26,6 +26,7 @@ #campaignLabel { text: "sammoa.label.campaign"; } + #campaignCombobox { model: {campaignListModel}; renderer: {new DecoratorProviderListCellRenderer(getHandler().getDecoratorProvider())}; @@ -34,6 +35,7 @@ #systemIdLabel { text: "sammoa.label.systemId"; } + #systemIdCombobox { enabled: {getModel().getCampaign() != null}; model: {systemIdListModel}; @@ -42,6 +44,7 @@ #flightLabel { text: "sammoa.label.flight"; } + #flightCombobox { enabled: {getModel().getCampaign() != null}; model: {flightListModel}; @@ -52,13 +55,13 @@ enabled: {getModel().getCampaign() != null}; text: "sammoa.action.edit"; } + #newCampaignButton { text: "sammoa.action.new"; } -#importButton { - enabled:false; - text: "sammoa.action.import"; +#importApplicationButton { + text: "sammoa.action.importApplication"; } #exportMapButton { Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUI.jaxx =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUI.jaxx 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUI.jaxx 2012-08-14 13:09:01 UTC (rev 420) @@ -54,14 +54,11 @@ <HomeUIModel id='model'/> - <GenericListModel id='campaignListModel' - genericType='Campaign'/> + <GenericListModel id='campaignListModel' genericType='Campaign'/> - <GenericListModel id='systemIdListModel' - genericType='String'/> + <GenericListModel id='systemIdListModel' genericType='String'/> - <GenericListModel id='flightListModel' - genericType='Flight'/> + <GenericListModel id='flightListModel' genericType='Flight'/> <Table fill='both' constraints='BorderLayout.CENTER'> <row> @@ -102,8 +99,8 @@ <row> <cell fill='both' columns='3'> <JPanel layout='{new GridLayout(1,0,0,0)}'> - <JButton id='importButton' - onActionPerformed='getHandler().showImport()'/> + <JButton id='importApplicationButton' + onActionPerformed='getHandler().showImportApplication()'/> <JButton id='exportMapButton' onActionPerformed='getHandler().showExportMap()'/> <JButton id='exportApplicationButton' Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUIHandler.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUIHandler.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUIHandler.java 2012-08-14 13:09:01 UTC (rev 420) @@ -35,6 +35,7 @@ import fr.ulr.sammoa.persistence.Flights; import fr.ulr.sammoa.persistence.HasTopiaIdPredicate; import fr.ulr.sammoa.ui.swing.SammoaDecoratorProvider; +import fr.ulr.sammoa.ui.swing.SammoaScreen; import fr.ulr.sammoa.ui.swing.SammoaUIContext; import fr.ulr.sammoa.ui.swing.SammoaUIHandler; import org.slf4j.Logger; @@ -252,33 +253,26 @@ public void showSelectedCampaign() { Campaign campaign = getModel().getCampaign(); - - context.setCampaignScreen(campaign.getTopiaId()); + context.changeScreen(SammoaScreen.CAMPAIGN, campaign, null); } public void showNewCampaign() { - - context.setCampaignScreen(null); + context.changeScreen(SammoaScreen.CAMPAIGN); } - public void showImport() { - + public void showImportApplication() { + context.changeScreen(SammoaScreen.IMPORT_APPLICATION); } public void showExportMap() { - Campaign campaign = getModel().getCampaign(); - String campaignId = campaign == null ? null : campaign.getTopiaId(); - context.setExportMapScreen(campaignId); + context.changeScreen(SammoaScreen.EXPORT_MAP, campaign, null); } public void showExportApplication() { - Campaign campaign = getModel().getCampaign(); - String campaignId = campaign == null ? null : campaign.getTopiaId(); Flight flight = getModel().getFlight(); - String flightId = flight == null ? null : flight.getTopiaId(); - context.setExportApplicationScreen(campaignId, flightId); + context.changeScreen(SammoaScreen.EXPORT_APPLICATION, campaign, flight); } public void showOnBoard() { @@ -290,17 +284,18 @@ Flight flight = getModel().getFlight(); - // Create a new Flight for the selected Campaign if (flight == null) { + // Create a new Flight for the selected Campaign flight = getFlightService().createFlight(campaign); } - - context.setFlightScreen(flight.getTopiaId()); + context.changeScreen(SammoaScreen.FLIGHT, campaign, flight); } public void showValidation() { - + Campaign campaign = getModel().getCampaign(); + Flight flight = getModel().getFlight(); + context.changeScreen(SammoaScreen.VALIDATION, campaign, flight); } protected Flight getFirstFlight(List<Flight> flights) { Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUIModel.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUIModel.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUIModel.java 2012-08-14 13:09:01 UTC (rev 420) @@ -2,8 +2,8 @@ /* * #%L * SAMMOA :: UI Swing - * $Id:$ - * $HeadURL:$ + * $Id$ + * $HeadURL$ * %% * Copyright (C) 2012 UMS 3462, Code Lutin * %% @@ -25,15 +25,17 @@ import fr.ulr.sammoa.persistence.Campaign; import fr.ulr.sammoa.persistence.Flight; -import fr.ulr.sammoa.ui.swing.BaseModel; +import org.jdesktop.beans.AbstractSerializableBean; /** * Created: 19/07/12 * * @author fdesbois <desbois@codelutin.com> */ -public class HomeUIModel extends BaseModel { - +public class HomeUIModel extends AbstractSerializableBean { + + private static final long serialVersionUID = 1L; + public static final String PROPERTY_CAMPAIGN = "campaign"; public static final String PROPERTY_SYSTEM_ID = "systemId"; @@ -41,13 +43,13 @@ public static final String PROPERTY_FLIGHT = "flight"; public static final String PROPERTY_FLIGHT_ENDED = "flightEnded"; - + protected Campaign campaign; - + protected String systemId; - + protected Flight flight; - + protected boolean flightEnded; public Campaign getCampaign() { Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/UIImporter.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/UIImporter.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/UIImporter.java 2012-08-14 13:09:01 UTC (rev 420) @@ -54,7 +54,9 @@ this.ui = ui; } - public boolean importShape(ShpImporter<?> importer, File file, CampaignStorage storage) { + public boolean importShape(ShpImporter<?> importer, + CampaignStorage storage, + File file) { boolean result = false; try { Added: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/java-info.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/java-info.java (rev 0) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/java-info.java 2012-08-14 13:09:01 UTC (rev 420) @@ -0,0 +1,5 @@ +/** + * Base package for all input operations (says all imports). + * @since 0.6 + */ +package fr.ulr.sammoa.ui.swing.io.input; \ No newline at end of file Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/java-info.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Added: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUI.css =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUI.css (rev 0) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUI.css 2012-08-14 13:09:01 UTC (rev 420) @@ -0,0 +1,19 @@ +#importFileLbl { + text: "sammoa.label.importApplicationFile"; +} + +#importFileEditor { + title: "sammoa.dialog.title.importSammoaFile"; + exts: "sammoa"; + extsDescription: "Sammoa files"; + directoryEnabled:false; + acceptAllFileFilterUsed:false; +} + +#quitButton { + text: "sammoa.action.quitImportApplication"; +} + +#importButton { + text: "sammoa.action.importApplication"; +} \ No newline at end of file Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUI.css ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Added: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUI.jaxx =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUI.jaxx (rev 0) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUI.jaxx 2012-08-14 13:09:01 UTC (rev 420) @@ -0,0 +1,81 @@ +<!-- + #%L + SAMMOA :: UI Swing + $Id: ExportApplicationUI.jaxx 414 2012-08-13 22:12:51Z tchemit $ + $HeadURL: http://svn.forge.codelutin.com/svn/sammoa/trunk/sammoa-ui-swing/src/main/jav... $ + %% + Copyright (C) 2012 UMS 3462, Code Lutin + %% + 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% + --> +<JPanel id='importApplicationUI' layout='{new BorderLayout()}' + implements='fr.ulr.sammoa.ui.swing.SammoaUI<ImportApplicationUIHandler>'> + + <import> + fr.ulr.sammoa.persistence.Campaign + fr.ulr.sammoa.persistence.Flight + fr.ulr.sammoa.ui.swing.SammoaUIContext + + jaxx.runtime.swing.editor.FileEditor + + java.awt.BorderLayout + + static org.nuiton.i18n.I18n._ + </import> + + <script><![CDATA[ + + public ImportApplicationUI(SammoaUIContext context) { + ImportApplicationUIHandler handler = + new ImportApplicationUIHandler(context, this); + setContextValue(handler); + handler.beforeInitUI(); + } + + protected void $afterCompleteSetup() { + getHandler().afterInitUI(); + } + ]]></script> + + <ImportApplicationUIModel id='model' + initializer='getContextValue(ImportApplicationUIModel.class)'/> + + <ImportApplicationUIHandler id='handler' + initializer='getContextValue(ImportApplicationUIHandler.class)'/> + + <Table fill='both' constraints='BorderLayout.CENTER'> + <!-- import file --> + <row> + <cell anchor='west'> + <JLabel id='importFileLbl'/> + </cell> + <cell fill='horizontal' weightx='1.0' columns='2'> + <FileEditor id='importFileEditor' + onActionPerformed='getModel().setImportFile(importFileEditor.getSelectedFile())'/> + </cell> + </row> + <!--import actions--> + <row> + <cell columns='5' fill="both"> + <JPanel layout='{new GridLayout(1,2,0,0)}'> + <JButton id='quitButton' onActionPerformed='getHandler().close()'/> + <JButton id='importButton' + onActionPerformed='getHandler().importApplication()'/> + </JPanel> + </cell> + </row> + </Table> +</JPanel> \ No newline at end of file Added: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUIHandler.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUIHandler.java (rev 0) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUIHandler.java 2012-08-14 13:09:01 UTC (rev 420) @@ -0,0 +1,113 @@ +package fr.ulr.sammoa.ui.swing.io.input.sammoa; + +import fr.ulr.sammoa.application.FlightService; +import fr.ulr.sammoa.application.ReferentialService; +import fr.ulr.sammoa.application.SammoaContext; +import fr.ulr.sammoa.application.io.input.sammoa.ImportApplicationModel; +import fr.ulr.sammoa.application.io.input.sammoa.ImportApplicationService; +import fr.ulr.sammoa.ui.swing.SammoaDecoratorProvider; +import fr.ulr.sammoa.ui.swing.SammoaScreen; +import fr.ulr.sammoa.ui.swing.SammoaUIContext; +import fr.ulr.sammoa.ui.swing.SammoaUIHandler; +import fr.ulr.sammoa.ui.swing.util.SammoaUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.swing.JFrame; + +/** + * UI Handler fo {@link ImportApplicationUI}. + * + * @author tchemit <chemit@codelutin.com> + * @since 0.6 + */ +public class ImportApplicationUIHandler implements SammoaUIHandler { + + private static final Logger logger = + LoggerFactory.getLogger(ImportApplicationUIHandler.class); + + private final ImportApplicationUI ui; + + protected SammoaUIContext context; + + protected final ImportApplicationService importService; + + + protected final ReferentialService referentialService; + + protected final FlightService flightService; + + protected final SammoaDecoratorProvider decoratorProvider; + + public ImportApplicationUIHandler(SammoaUIContext context, + ImportApplicationUI ui) { + this.context = context; + this.ui = ui; + SammoaContext appContext = context.getAppContext(); + + this.importService = context.newService(ImportApplicationService.class); + this.flightService = appContext.getFlightService(); + this.referentialService = appContext.getReferentialService(); + this.decoratorProvider = context.getDecoratorProvider(); + } + + @Override + public void beforeInitUI() { + + //-- create model --// + + ImportApplicationUIModel model = new ImportApplicationUIModel(); + + //-- share model and handler in jaxx context --// + ui.setContextValue(this); + ui.setContextValue(model); + +// model.addPropertyChangeListener(new PropertyChangeListener() { +// @Override +// public void propertyChange(PropertyChangeEvent evt) { +// +// if (ExportApplicationUIModel.PROPERTY_SELECTED_CAMPAIGN.equals(evt.getPropertyName())) { +// Campaign newValue = (Campaign) evt.getNewValue(); +// onSelectedCampaignChanged(newValue); +// } else if (ExportApplicationUIModel.PROPERTY_FLIGHTS.equals(evt.getPropertyName())) { +// Collection<Flight> newValue = (Collection<Flight>) evt.getNewValue(); +// onFlightsChanged(newValue); +// } else if (ExportApplicationUIModel.PROPERTY_SELECTED_FLIGHT.equals(evt.getPropertyName())) { +// Flight newValue = (Flight) evt.getNewValue(); +// onSelectedFlightChanged(newValue); +// } +// } +// }); + } + + @Override + public void afterInitUI() { + } + + @Override + public void onCloseUI() { + } + + public void importApplication() { + + JFrame frame = ui.getParentContainer(JFrame.class); + SammoaUtil.updateBusyState(frame, true); + + try { + ImportApplicationModel dataModel = getModel().toModel(); + importService.importApplication(dataModel); + + } finally { + SammoaUtil.updateBusyState(frame, false); + } + } + + public void close() { + context.changeScreen(SammoaScreen.HOME); + } + + protected ImportApplicationUIModel getModel() { + return ui.getModel(); + } + +} Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUIHandler.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Added: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUIModel.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUIModel.java (rev 0) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUIModel.java 2012-08-14 13:09:01 UTC (rev 420) @@ -0,0 +1,145 @@ +package fr.ulr.sammoa.ui.swing.io.input.sammoa; +/* + * #%L + * SAMMOA :: UI Swing + * $Id$ + * $HeadURL:$ + * %% + * Copyright (C) 2012 UMS 3462, Code Lutin + * %% + * 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% + */ + +import com.google.common.collect.Lists; +import fr.ulr.sammoa.application.io.input.sammoa.ImportApplicationModel; +import fr.ulr.sammoa.persistence.Campaign; +import fr.ulr.sammoa.persistence.Flight; +import org.jdesktop.beans.AbstractSerializableBean; + +import java.io.File; +import java.util.List; + +/** + * Model for sammoa import. + * + * @author tchemit <chemit@codelutin.com> + * @since 0.6 + */ +public class ImportApplicationUIModel extends AbstractSerializableBean { + + private static final long serialVersionUID = 1L; + + public static final String PROPERTY_EXISTING_CAMPAIGN = "existingCampaign"; + + public static final String PROPERTY_EXISTING_FLIGHTS = "existingFlights"; + + public static final String PROPERTY_NEW_CAMPAIGN = "newCampaign"; + + public static final String PROPERTY_NEW_FLIGHTS = "newFlights"; + + public static final String PROPERTY_SELECTED_FLIGHT_IDS = "selectedFlightIds"; + + public static final String PROPERTY_IMPORT_FILE = "importFile"; + + /** File to import. */ + protected File importFile; + + /** Existing campaign. */ + protected Campaign existingCampaign; + + /** existing existingFlights on db. */ + protected List<Flight> existingFlights; + + /** New campaign to import (read from the import file). */ + protected Campaign newCampaign; + + /** New existingFlights to import (read from the import file). */ + protected List<Flight> newFlights; + + /** Selected flight ids to imports. */ + protected List<String> selectedFlightIds; + + public File getImportFile() { + return importFile; + } + + public void setImportFile(File importFile) { + File oldValue = this.importFile; + this.importFile = importFile; + firePropertyChange(PROPERTY_IMPORT_FILE, oldValue, importFile); + } + + public Campaign getExistingCampaign() { + return existingCampaign; + } + + public void setExistingCampaign(Campaign existingCampaign) { + Campaign oldValue = this.existingCampaign; + this.existingCampaign = existingCampaign; + firePropertyChange(PROPERTY_EXISTING_CAMPAIGN, oldValue, existingCampaign); + } + + public List<Flight> getExistingFlights() { + if (existingFlights == null) { + existingFlights = Lists.newArrayList(); + } + return existingFlights; + } + + public void setExistingFlights(List<Flight> existingFlights) { + List<Flight> oldValue = this.existingFlights; + this.existingFlights = existingFlights; + firePropertyChange(PROPERTY_EXISTING_FLIGHTS, oldValue, existingFlights); + } + + public List<Flight> getNewFlights() { + return newFlights; + } + + public void setNewFlights(List<Flight> newFlights) { + List<Flight> oldValue = this.newFlights; + this.newFlights = newFlights; + firePropertyChange(PROPERTY_NEW_FLIGHTS, oldValue, newFlights); + } + + public Campaign getNewCampaign() { + return newCampaign; + } + + public void setNewCampaign(Campaign newCampaign) { + Campaign oldValue = this.newCampaign; + this.newCampaign = newCampaign; + firePropertyChange(PROPERTY_NEW_CAMPAIGN, oldValue, newCampaign); + } + + public List<String> getSelectedFlightIds() { + return selectedFlightIds; + } + + public void setSelectedFlightIds(List<String> selectedFlightIds) { + List<String> oldValue = this.selectedFlightIds; + this.selectedFlightIds = selectedFlightIds; + firePropertyChange(PROPERTY_SELECTED_FLIGHT_IDS, oldValue, selectedFlightIds); + } + + public ImportApplicationModel toModel() { + ImportApplicationModel result = ImportApplicationModel.newModel( + getImportFile(), + getSelectedFlightIds() + ); + return result; + } +} \ No newline at end of file Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/ImportApplicationUIModel.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Added: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/java-info.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/java-info.java (rev 0) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/java-info.java 2012-08-14 13:09:01 UTC (rev 420) @@ -0,0 +1,6 @@ +/** + * Base package for sammoa application import. + * + * @since 0.6 + */ +package fr.ulr.sammoa.ui.swing.io.input.sammoa; \ No newline at end of file Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/input/sammoa/java-info.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Added: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/java-info.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/java-info.java (rev 0) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/java-info.java 2012-08-14 13:09:01 UTC (rev 420) @@ -0,0 +1,7 @@ +/** + * Base package for all io operations (says all imports ({@code input} package) + * and all exports ({@code output} package). + * + * @since 0.6 + */ +package fr.ulr.sammoa.ui.swing.io; \ No newline at end of file Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/java-info.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/ExportMapLauncherUI.jaxx =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/ExportMapLauncherUI.jaxx 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/ExportMapLauncherUI.jaxx 2012-08-14 13:09:01 UTC (rev 420) @@ -24,12 +24,9 @@ <JPanel layout='{new BorderLayout()}'> <import> - java.awt.BorderLayout java.io.File - jaxx.runtime.swing.BlockingLayerUI - static org.nuiton.i18n.I18n._ </import> Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/ExportMapUI.css =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/ExportMapUI.css 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/ExportMapUI.css 2012-08-14 13:09:01 UTC (rev 420) @@ -21,6 +21,7 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ + BeanListHeader { i18nPrefix: "sammoa.common."; } @@ -94,6 +95,7 @@ #exportObservations { text:"sammoa.action.exportObservationsMap"; } + #exportGeoPoints { text:"sammoa.action.exportGeoPointsMap"; } Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/ExportMapUI.jaxx =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/ExportMapUI.jaxx 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/ExportMapUI.jaxx 2012-08-14 13:09:01 UTC (rev 420) @@ -25,7 +25,6 @@ implements='fr.ulr.sammoa.ui.swing.SammoaUI<ExportMapUIHandler>'> <import> - fr.ulr.sammoa.application.flightController.FlightState fr.ulr.sammoa.persistence.Campaign fr.ulr.sammoa.persistence.RouteType fr.ulr.sammoa.persistence.Strate @@ -39,7 +38,6 @@ java.awt.BorderLayout java.awt.event.ItemEvent - java.io.File static org.nuiton.i18n.I18n._ </import> Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/ExportMapUIHandler.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/ExportMapUIHandler.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/ExportMapUIHandler.java 2012-08-14 13:09:01 UTC (rev 420) @@ -26,6 +26,7 @@ import com.google.common.base.Preconditions; import com.google.common.collect.Lists; import fr.ulr.sammoa.application.ReferentialService; +import fr.ulr.sammoa.application.SammoaContext; import fr.ulr.sammoa.application.io.output.map.ExportMapModel; import fr.ulr.sammoa.application.io.output.map.ExportMapService; import fr.ulr.sammoa.persistence.Campaign; @@ -36,6 +37,7 @@ import fr.ulr.sammoa.persistence.StringRef; import fr.ulr.sammoa.persistence.StringRefs; import fr.ulr.sammoa.ui.swing.SammoaDecoratorProvider; +import fr.ulr.sammoa.ui.swing.SammoaScreen; import fr.ulr.sammoa.ui.swing.SammoaUIContext; import fr.ulr.sammoa.ui.swing.SammoaUIHandler; import fr.ulr.sammoa.ui.swing.util.SammoaUtil; @@ -80,22 +82,24 @@ protected SammoaUIContext context; + protected final ExportMapService exportService; + + protected final ReferentialService referentialService; + + protected final SammoaDecoratorProvider decoratorProvider; + public ExportMapUIHandler(SammoaUIContext context, ExportMapUI ui) { this.context = context; this.ui = ui; + SammoaContext appContext = context.getAppContext(); + this.referentialService = appContext.getReferentialService(); + this.exportService = context.newService(ExportMapService.class); + this.decoratorProvider = context.getDecoratorProvider(); } - protected ReferentialService getReferentialService() { - return context.getAppContext().getReferentialService(); - } - - protected ExportMapService getExportMapService() { - return context.getAppContext().getExportMapService(); - } - public SammoaDecoratorProvider getDecoratorProvider() { - return context.getDecoratorProvider(); + return decoratorProvider; } @Override @@ -105,7 +109,7 @@ ExportMapUIModel model = new ExportMapUIModel(); - List<Campaign> campaigns = getReferentialService().getCampaigns(); + List<Campaign> campaigns = referentialService.getCampaigns(); //TODO-tchemit-2012-08-03 add an null campaign (for test purpose, should be removed...) campaigns.add(0, null); model.setCampaigns(campaigns); @@ -115,7 +119,7 @@ if (campaignId != null) { - Campaign campaign = getReferentialService().getCampaign(campaignId); + Campaign campaign = referentialService.getCampaign(campaignId); // selected cam model.setSelectedCampaign(campaign); @@ -201,8 +205,10 @@ // reset strates,... if (logger.isInfoEnabled()) { - Decorator<Campaign> decorator = getDecoratorProvider().getDecoratorByType(Campaign.class); - logger.info("New selected campain: {}", decorator.toString(newCampaign)); + Decorator<Campaign> decorator = + decoratorProvider.getDecoratorByType(Campaign.class); + logger.info("New selected campain: {}", + decorator.toString(newCampaign)); } ExportMapUIModel model = getModel(); @@ -215,7 +221,7 @@ if (newCampaign == null) { strates = Collections.emptyList(); } else { - strates = getReferentialService().getAllStrates(newCampaign); + strates = referentialService.getAllStrates(newCampaign); } if (logger.isDebugEnabled()) { logger.debug("New strates: {}", strates.size()); @@ -230,7 +236,7 @@ speciesTypes = Collections.emptyList(); } else { - species = getReferentialService().getAllSpecies(newCampaign); + species = referentialService.getAllSpecies(newCampaign); speciesTypes = StringRefs.toRefs(Species2.toSpeciesTypes(species)); } model.setSpecies(species); @@ -238,7 +244,7 @@ } public void close() { - context.setHomeScreen(); + context.changeScreen(SammoaScreen.HOME); } @Override @@ -281,7 +287,7 @@ model.toModel(model.getExportEffortsFilename()); // launch export - getExportMapService().exportEffortsMap(dataModel); + exportService.exportEffortsMap(dataModel); } finally { @@ -325,7 +331,7 @@ model.toModel(model.getExportObservationsFilename()); // launch export - getExportMapService().exportObservationsMap(dataModel); + exportService.exportObservationsMap(dataModel); } finally { @@ -345,7 +351,6 @@ public void exportGeoPoints() { - Action startAction = new AbstractAction( _("sammoa.action.startExport"), SwingUtil.createActionIcon("accept")) { @@ -372,7 +377,7 @@ model.toModel(model.getExportGeoPointsFilename()); // launch export - getExportMapService().exportGeoPointsMap(dataModel); + exportService.exportGeoPointsMap(dataModel); } finally { @@ -441,8 +446,9 @@ OneClicListSelectionModel.installModel(jList); // init list - Decorator<E> decorator = getDecoratorProvider().getDecoratorByType(beanType); - Preconditions.checkNotNull(decorator, "No decorator found for type " + beanType); + Decorator<E> decorator = decoratorProvider.getDecoratorByType(beanType); + Preconditions.checkNotNull(decorator, + "No decorator found for type " + beanType); if (logger.isDebugEnabled()) { logger.debug("Will use decorator " + decorator); } Added: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/java-info.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/java-info.java (rev 0) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/java-info.java 2012-08-14 13:09:01 UTC (rev 420) @@ -0,0 +1,6 @@ +/** + * Base package for map export operations. + * + * @since 0.6 + */ +package fr.ulr.sammoa.ui.swing.io.output.map; \ No newline at end of file Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/map/java-info.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUI.css =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUI.css 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUI.css 2012-08-14 13:09:01 UTC (rev 420) @@ -21,6 +21,7 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ + #campaignLabel { text: "sammoa.label.campaign"; } Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUIHandler.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUIHandler.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/ExportApplicationUIHandler.java 2012-08-14 13:09:01 UTC (rev 420) @@ -25,13 +25,14 @@ import fr.ulr.sammoa.application.FlightService; import fr.ulr.sammoa.application.ReferentialService; +import fr.ulr.sammoa.application.SammoaContext; import fr.ulr.sammoa.application.io.output.sammoa.ExportApplicationCallbackMode; import fr.ulr.sammoa.application.io.output.sammoa.ExportApplicationModel; import fr.ulr.sammoa.application.io.output.sammoa.ExportApplicationService; -import fr.ulr.sammoa.application.io.output.map.ExportMapService; import fr.ulr.sammoa.persistence.Campaign; import fr.ulr.sammoa.persistence.Flight; import fr.ulr.sammoa.ui.swing.SammoaDecoratorProvider; +import fr.ulr.sammoa.ui.swing.SammoaScreen; import fr.ulr.sammoa.ui.swing.SammoaUIContext; import fr.ulr.sammoa.ui.swing.SammoaUIHandler; import fr.ulr.sammoa.ui.swing.util.SammoaUtil; @@ -42,7 +43,6 @@ import org.slf4j.LoggerFactory; import javax.swing.JFrame; -import javax.swing.SwingUtilities; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.io.File; @@ -65,28 +65,29 @@ private final ExportApplicationUI ui; - protected SammoaUIContext context; + protected final SammoaUIContext context; + protected final ExportApplicationService exportService; + + protected final ReferentialService referentialService; + + protected final FlightService flightService; + + protected final SammoaDecoratorProvider decoratorProvider; + public ExportApplicationUIHandler(SammoaUIContext context, ExportApplicationUI ui) { this.context = context; this.ui = ui; + SammoaContext appContext = context.getAppContext(); + this.flightService = appContext.getFlightService(); + this.referentialService = appContext.getReferentialService(); + this.exportService = context.newService(ExportApplicationService.class); + this.decoratorProvider = context.getDecoratorProvider(); } - protected ReferentialService getReferentialService() { - return context.getAppContext().getReferentialService(); - } - - protected FlightService getFlightService() { - return context.getAppContext().getFlightService(); - } - - protected ExportMapService getExportMapService() { - return context.getAppContext().getExportMapService(); - } - public SammoaDecoratorProvider getDecoratorProvider() { - return context.getDecoratorProvider(); + return decoratorProvider; } @Override @@ -96,7 +97,7 @@ ExportApplicationUIModel model = new ExportApplicationUIModel(); - List<Campaign> campaigns = getReferentialService().getCampaigns(); + List<Campaign> campaigns = referentialService.getCampaigns(); //TODO-tchemit-2012-08-03 add an null campaign (for test purpose, should be removed...) campaigns.add(0, null); model.setCampaigns(campaigns); @@ -105,7 +106,7 @@ if (campaignId != null) { - Campaign campaign = getReferentialService().getCampaign(campaignId); + Campaign campaign = referentialService.getCampaign(campaignId); // selected cam model.setSelectedCampaign(campaign); @@ -115,7 +116,7 @@ if (flightId != null) { - Flight flight = getFlightService().getFlight(flightId); + Flight flight = flightService.getFlight(flightId); // selected cam model.setSelectedFlight(flight); @@ -168,36 +169,51 @@ onSelectedFlightChanged(selectedFlight); } + @Override + public void onCloseUI() { + } + public void exportApplication() { JFrame frame = ui.getParentContainer(JFrame.class); SammoaUtil.updateBusyState(frame, true); try { - SwingUtilities.invokeLater( - new Runnable() { - @Override - public void run() { - ExportApplicationModel dataModel = getModel().toModel(); + ExportApplicationModel dataModel = getModel().toModel(); + exportService.exportApplication(dataModel); - ExportApplicationService service = - context.getAppContext().newExportApplicationService(); - service.exportApplication(dataModel); - } - } - ); - } finally { SammoaUtil.updateBusyState(frame, false); } } + public void close() { + context.changeScreen(SammoaScreen.HOME); + } + + public void chooseExportDirectory() { + File f = SammoaUtil.chooseDirectory( + ui, + _("sammoa.title.choose.export.directory"), + _("sammoa.action.choose.export.directory"), + ui.getModel().getExportDirectory() + ); + ui.getModel().setExportDirectory(f); + } + + + protected ExportApplicationUIModel getModel() { + return ui.getModel(); + } + protected void onSelectedCampaignChanged(Campaign newCampaign) { // reset flights,... if (logger.isInfoEnabled()) { - Decorator<Campaign> decorator = getDecoratorProvider().getDecoratorByType(Campaign.class); - logger.info("New selected campain: {}", decorator.toString(newCampaign)); + Decorator<Campaign> decorator = + decoratorProvider.getDecoratorByType(Campaign.class); + logger.info("New selected campain: {}", + decorator.toString(newCampaign)); } ExportApplicationUIModel model = getModel(); @@ -208,7 +224,7 @@ flights = Collections.emptyList(); filename = ""; } else { - flights = getFlightService().getFlights(newCampaign); + flights = flightService.getFlights(newCampaign); filename = String.format("campaign-%s.sammoa", newCampaign.getCode()); } if (logger.isDebugEnabled()) { @@ -236,35 +252,14 @@ // reset flights,... if (logger.isInfoEnabled()) { - Decorator<Flight> decorator = getDecoratorProvider().getDecoratorByType(Flight.class); - logger.info("New selected flight: {}", decorator.toString(newCampaign)); + Decorator<Flight> decorator = + decoratorProvider.getDecoratorByType(Flight.class); + logger.info("New selected flight: {}", + decorator.toString(newCampaign)); } ExportApplicationUIModel model = getModel(); } - public void close() { - context.setHomeScreen(); - } - @Override - public void onCloseUI() { - } - - public void chooseExportDirectory() { - File f = SammoaUtil.chooseDirectory( - ui, - _("sammoa.title.choose.export.directory"), - _("sammoa.action.choose.export.directory"), - ui.getModel().getExportDirectory() - ); - ui.getModel().setExportDirectory(f); - } - - - public ExportApplicationUIModel getModel() { - return ui.getModel(); - } - - } Added: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/java-info.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/java-info.java (rev 0) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/java-info.java 2012-08-14 13:09:01 UTC (rev 420) @@ -0,0 +1,6 @@ +/** + * Package for the sammoa application export. + * + * @since 0.6 + */ +package fr.ulr.sammoa.ui.swing.io.output.sammoa; \ No newline at end of file Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/output/sammoa/java-info.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanel.css =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanel.css 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanel.css 2012-08-14 13:09:01 UTC (rev 420) @@ -40,7 +40,6 @@ model:{errorTableModel}; } - #transecLbl { text: "sammoa.observation.observationCondition.transec"; } Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanelHandler.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanelHandler.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanelHandler.java 2012-08-14 13:09:01 UTC (rev 420) @@ -67,7 +67,15 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.swing.*; +import javax.swing.AbstractCellEditor; +import javax.swing.Action; +import javax.swing.DefaultCellEditor; +import javax.swing.JButton; +import javax.swing.JComboBox; +import javax.swing.JTable; +import javax.swing.JTextField; +import javax.swing.ListSelectionModel; +import javax.swing.SwingUtilities; import javax.swing.border.LineBorder; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; @@ -77,7 +85,9 @@ import javax.swing.table.TableCellRenderer; import javax.swing.table.TableColumn; import javax.swing.table.TableModel; -import java.awt.*; +import java.awt.Color; +import java.awt.Component; +import java.awt.Rectangle; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/ForceSelectionSelectionModel.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/ForceSelectionSelectionModel.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/ForceSelectionSelectionModel.java 2012-08-14 13:09:01 UTC (rev 420) @@ -33,7 +33,7 @@ /** * Surcharge de modele de selection par default pour empecher la deselection * de la dernière ligne et pour qu'il y est toujours une ligne selectionnée. - * + * * @author echatellier */ public class ForceSelectionSelectionModel extends DefaultListSelectionModel { Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/ObservationTableModel.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/ObservationTableModel.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/ObservationTableModel.java 2012-08-14 13:09:01 UTC (rev 420) @@ -130,7 +130,7 @@ OBSERVATION_NUMBER(false, String.class, Observation.PROPERTY_OBSERVATION_NUMBER), OBSERVATION_TIME(false, Date.class, Observation.PROPERTY_OBSERVATION_TIME), - OBSERVER(false,String.class, + OBSERVER(false, String.class, Observation.PROPERTY_OBSERVER_POSITION, ObserverPosition.PROPERTY_OBSERVER, Observer.PROPERTY_INITIALS Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/RouteTableModel.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/RouteTableModel.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/RouteTableModel.java 2012-08-14 13:09:01 UTC (rev 420) @@ -130,7 +130,7 @@ EFFORT_NUMBER(false, String.class, Route.PROPERTY_EFFORT_NUMBER), BEGIN_TIME(false, Date.class, Route.PROPERTY_BEGIN_TIME), ROUTE_TYPE(false, String.class, Route.PROPERTY_ROUTE_TYPE), - TRANSECT(false,String.class, + TRANSECT(false, String.class, Route.PROPERTY_TRANSECT_FLIGHT, TransectFlight.PROPERTY_TRANSECT, Transect.PROPERTY_NAME @@ -200,7 +200,7 @@ } public void setValue(Route bean, Object value) { - if (type.isPrimitive() && value==null) { + if (type.isPrimitive() && value == null) { // can not set a null value to a primitive field } else { SammoaUtil.setPropertyValue(bean, value, beanProperties); Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/SpeciesCodeValidator.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/SpeciesCodeValidator.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/SpeciesCodeValidator.java 2012-08-14 13:09:01 UTC (rev 420) @@ -23,13 +23,12 @@ * #L% */ +import com.opensymphony.xwork2.validator.ValidationException; import fr.ulr.sammoa.application.SammoaContext; import fr.ulr.sammoa.persistence.Species; import fr.ulr.sammoa.ui.swing.SammoaUIContext; import org.nuiton.validator.xwork2.field.CollectionFieldExpressionValidator; -import org.nuiton.validator.xwork2.field.CollectionUniqueKeyValidator; -import com.opensymphony.xwork2.validator.ValidationException; import java.util.Collection; /** @@ -44,7 +43,7 @@ @Override protected Collection<?> getCollection(Object object) throws ValidationException { - if (species==null) { + if (species == null) { SammoaContext appContext = SammoaUIContext.getUIContext().getAppContext(); species = appContext.getReferentialService().getAllValidSpecies(); } Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/action/MoveToNextEditableCellAction.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/action/MoveToNextEditableCellAction.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/action/MoveToNextEditableCellAction.java 2012-08-14 13:09:01 UTC (rev 420) @@ -31,11 +31,11 @@ import java.awt.event.ActionEvent; /** -* Action to edit next editable cell from selected cell. + * Action to edit next editable cell from selected cell. * * @author tchemit <chemit@codelutin.com> * @since 0.5 -*/ + */ public class MoveToNextEditableCellAction extends AbstractAction { private static final long serialVersionUID = 1L; Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/action/MoveToNextRowEditableAction.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/action/MoveToNextRowEditableAction.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/action/MoveToNextRowEditableAction.java 2012-08-14 13:09:01 UTC (rev 420) @@ -31,11 +31,11 @@ import java.awt.event.ActionEvent; /** -* Action to edit next row only if selected cell is editable. -* -* @author tchemit <chemit@codelutin.com> -* @since 0.5 -*/ + * Action to edit next row only if selected cell is editable. + * + * @author tchemit <chemit@codelutin.com> + * @since 0.5 + */ public class MoveToNextRowEditableAction extends AbstractAction { private static final long serialVersionUID = 1L; Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/action/MoveToPreviousRowEditableAction.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/action/MoveToPreviousRowEditableAction.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/action/MoveToPreviousRowEditableAction.java 2012-08-14 13:09:01 UTC (rev 420) @@ -31,11 +31,11 @@ import java.awt.event.ActionEvent; /** -* Action to edit previous row only if selected cell is editable. + * Action to edit previous row only if selected cell is editable. * * @author tchemit <chemit@codelutin.com> * @since 0.5 -*/ + */ public class MoveToPreviousRowEditableAction extends AbstractAction { private static final long serialVersionUID = 1L; Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/region/RegionUI.css =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/region/RegionUI.css 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/region/RegionUI.css 2012-08-14 13:09:01 UTC (rev 420) @@ -23,13 +23,10 @@ * #L% */ -FileEditor { - acceptAllFileFilterUsed:false; -} - #regionCodeLabel { text:"sammoa.label.region.code"; } + #regionCodeField { enabled:{!getModel().isUpdate()}; text:{getModel().getCode()}; @@ -38,6 +35,7 @@ #regionNameLabel { text:"sammoa.label.region.name"; } + #regionNameField { text:{getModel().getName()}; } @@ -45,17 +43,20 @@ #regionSpeciesLabel { text:"sammoa.label.region.species"; } + #speciesFileEditor { title:"sammoa.dialog.title.speciesFile"; exts:"csv"; extsDescription:"CSV files"; - directoryEnabled:{false}; + directoryEnabled:false; + acceptAllFileFilterUsed:false; } #saveButton { text:"sammoa.action.save"; enabled:{validator.isValid()}; } + #closeButton { action:{closeAction}; } @@ -65,6 +66,7 @@ height:200; width:500; } + #errorTable { rowSelectionAllowed:true; autoCreateRowSorter:true; Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/region/RegionUI.jaxx =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/region/RegionUI.jaxx 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/region/RegionUI.jaxx 2012-08-14 13:09:01 UTC (rev 420) @@ -27,13 +27,11 @@ implements='fr.ulr.sammoa.ui.swing.SammoaUI<RegionUIHandler>'> <import> - fr.ulr.sammoa.persistence.Region fr.ulr.sammoa.ui.swing.action.CloseAction fr.ulr.sammoa.ui.swing.SammoaUIContext jaxx.runtime.swing.editor.FileEditor jaxx.runtime.validator.swing.SwingValidatorUtil - jaxx.runtime.validator.swing.SwingValidatorMessageTableRenderer jaxx.runtime.validator.swing.SwingValidatorMessageTableModel static org.nuiton.i18n.I18n._ Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/region/RegionUIHandler.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/region/RegionUIHandler.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/region/RegionUIHandler.java 2012-08-14 13:09:01 UTC (rev 420) @@ -31,8 +31,8 @@ import fr.ulr.sammoa.ui.swing.SammoaUIContext; import fr.ulr.sammoa.ui.swing.SammoaUIHandler; import fr.ulr.sammoa.ui.swing.io.input.CsvImporter; -import fr.ulr.sammoa.ui.swing.util.SammoaUtil; import fr.ulr.sammoa.ui.swing.io.input.UIImporter; +import fr.ulr.sammoa.ui.swing.util.SammoaUtil; import jaxx.runtime.swing.ErrorDialogUI; import jaxx.runtime.validator.swing.SwingValidatorMessageTableRenderer; import jaxx.runtime.validator.swing.SwingValidatorUtil; @@ -56,35 +56,33 @@ private static final Logger logger = LoggerFactory.getLogger(RegionUIHandler.class); - protected SammoaUIContext context; +// protected SammoaUIContext context; protected RegionUI ui; protected final UIImporter uiImporter; + private final ImportCsvService importCsvService; + private final ReferentialService referentialService; + public RegionUIHandler(SammoaUIContext context, RegionUI ui) { - this.context = context; +// this.context = context; this.ui = ui; this.uiImporter = new UIImporter(ui); - } + this.importCsvService = context.newService(ImportCsvService.class); - public SammoaContext getAppContext() { - return context.getAppContext(); + referentialService = context.getAppContext().getReferentialService(); } public RegionUIModel getModel() { return ui.getModel(); } - public SammoaDecoratorProvider getDecoratorProvider() { - return context.getDecoratorProvider(); - } +// public SammoaDecoratorProvider getDecoratorProvider() { +// return context.getDecoratorProvider(); +// } - protected ReferentialService getReferentialService() { - return getAppContext().getReferentialService(); - } - @Override public void beforeInitUI() { @@ -128,7 +126,7 @@ SammoaUtil.updateBusyState(ui, true); // Save the entity - String regionId = getReferentialService().saveRegion(region); + String regionId = referentialService.saveRegion(region); getModel().setId(regionId); // Import species if necessary @@ -156,12 +154,13 @@ } } - protected CsvImporter speciesImporter = new CsvImporter() { + + protected final CsvImporter speciesImporter = new CsvImporter() { + @Override public String importCsvFile(File file) throws IOException { - ImportCsvService service = new ImportCsvService(getAppContext()); - int nbImported = service.importSpecies(getModel().getId(), file); + int nbImported = importCsvService.importSpecies(getModel().getId(), file); return _("sammoa.messageDialog.species.import.success", nbImported); } }; Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/region/RegionUIModel.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/region/RegionUIModel.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/region/RegionUIModel.java 2012-08-14 13:09:01 UTC (rev 420) @@ -2,8 +2,8 @@ /* * #%L * SAMMOA :: UI Swing - * $Id:$ - * $HeadURL:$ + * $Id$ + * $HeadURL$ * %% * Copyright (C) 2012 UMS 3462, Code Lutin * %% @@ -26,7 +26,7 @@ import com.google.common.collect.Lists; import fr.ulr.sammoa.persistence.Region; import fr.ulr.sammoa.persistence.RegionImpl; -import fr.ulr.sammoa.ui.swing.BaseModel; +import org.jdesktop.beans.AbstractSerializableBean; import java.util.List; @@ -35,31 +35,33 @@ * * @author fdesbois <desbois@codelutin.com> */ -public class RegionUIModel extends BaseModel { +public class RegionUIModel extends AbstractSerializableBean { public static final String PROPERTY_REGION_REFERENTIAL = "regionReferential"; public static final String PROPERTY_ID = "id"; - + public static final String PROPERTY_CODE = "code"; public static final String PROPERTY_NAME = "name"; public static final String PROPERTY_UPDATE = "update"; + private static final long serialVersionUID = 1L; + protected List<Region> regionReferential; - + protected String id; - + protected String code; - + protected String name; - + protected boolean update; /** * Prepare create using {@code regionReferential} to check unicity - * + * * @param regionReferential List of Region as referential */ public void prepareCreate(List<Region> regionReferential) { @@ -85,7 +87,7 @@ * Instanciate a new {@link Region} bean with values from this model. * Note that the {@code code} property is mandatory (check in validation) * otherwise an exception will occurs. - * + * * @return a new {@link Region} bean */ public Region newBean() { Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/transect/TransectUI.css =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/transect/TransectUI.css 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/transect/TransectUI.css 2012-08-14 13:09:01 UTC (rev 420) @@ -22,9 +22,11 @@ * <http://www.gnu.org/licenses/gpl-3.0.html>. * #L% */ + #transectStrateLabel { text:"sammoa.label.transect.strate"; } + #transectStrateComboBox { renderer:{new DecoratorProviderListCellRenderer(handler.getDecoratorProvider())} } @@ -32,6 +34,7 @@ #transectNameLabel { text:"sammoa.label.transect.name"; } + #transectNameField { text:{getModel().getName()}; } @@ -40,6 +43,7 @@ text:"sammoa.action.create"; enabled:{validator.isValid()}; } + #closeButton { action:{closeAction}; } @@ -49,6 +53,7 @@ height:100; width:500; } + #errorTable { rowSelectionAllowed:true; autoCreateRowSorter:true; Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/transect/TransectUI.jaxx =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/transect/TransectUI.jaxx 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/transect/TransectUI.jaxx 2012-08-14 13:09:01 UTC (rev 420) @@ -28,13 +28,11 @@ <import> fr.ulr.sammoa.ui.swing.flight.StrateModel - fr.ulr.sammoa.ui.swing.flight.TransectModel fr.ulr.sammoa.ui.swing.action.CloseAction fr.ulr.sammoa.ui.swing.SammoaUIContext jaxx.runtime.swing.renderer.DecoratorProviderListCellRenderer jaxx.runtime.validator.swing.SwingValidatorUtil - jaxx.runtime.validator.swing.SwingValidatorMessageTableRenderer jaxx.runtime.validator.swing.SwingValidatorMessageTableModel static org.nuiton.i18n.I18n._ Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/transect/TransectUIHandler.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/transect/TransectUIHandler.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/transect/TransectUIHandler.java 2012-08-14 13:09:01 UTC (rev 420) @@ -41,7 +41,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.swing.*; +import javax.swing.JFrame; import java.util.List; import static org.nuiton.i18n.I18n._; @@ -56,11 +56,11 @@ private static final Logger logger = LoggerFactory.getLogger(TransectUIHandler.class); - + protected SammoaUIContext context; protected TransectUI ui; - + public TransectUIHandler(SammoaUIContext context, TransectUI ui) { this.context = context; @@ -70,7 +70,7 @@ public SammoaContext getAppContext() { return context.getAppContext(); } - + public TransectUIModel getModel() { return ui.getModel(); } @@ -102,7 +102,7 @@ ui.setVisible(false); // context.getSwingSession().save(); } - + public void openUI() { if (logger.isInfoEnabled()) { @@ -162,7 +162,7 @@ } public void createTransect() { - + try { boolean success = true; @@ -177,7 +177,7 @@ if (success) { ui.getCloseButton().doClick(); } - + } catch (IllegalArgumentException e) { ErrorDialogUI.showError(e); } Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/transect/TransectUIModel.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/transect/TransectUIModel.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/transect/TransectUIModel.java 2012-08-14 13:09:01 UTC (rev 420) @@ -26,8 +26,8 @@ import com.google.common.collect.Lists; import fr.ulr.sammoa.persistence.Transect; import fr.ulr.sammoa.persistence.TransectImpl; -import fr.ulr.sammoa.ui.swing.BaseModel; import fr.ulr.sammoa.ui.swing.flight.StrateModel; +import org.jdesktop.beans.AbstractSerializableBean; import java.util.List; @@ -36,8 +36,10 @@ * * @author fdesbois <desbois@codelutin.com> */ -public class TransectUIModel extends BaseModel { +public class TransectUIModel extends AbstractSerializableBean { + private static final long serialVersionUID = 1L; + public static final String PROPERTY_TRANSECT_REFERENTIAL = "transectReferential"; public static final String PROPERTY_STRATE_REFERENTIAL = "strateReferential"; @@ -55,14 +57,14 @@ protected String id; protected StrateModel strate; - + protected String name; /** * Prepare create using {@code transectReferential} to check unicity * * @param strateReferential List of Strate as referential - * @param currentStrate Set the current strate + * @param currentStrate Set the current strate */ public void prepareCreate(List<StrateModel> strateReferential, StrateModel currentStrate) { Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/util/AbstractRowHighlightPredicate.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/util/AbstractRowHighlightPredicate.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/util/AbstractRowHighlightPredicate.java 2012-08-14 13:09:01 UTC (rev 420) @@ -2,8 +2,8 @@ /* * #%L * SAMMOA :: UI Swing - * $Id:$ - * $HeadURL:$ + * $Id$ + * $HeadURL$ * %% * Copyright (C) 2012 UMS 3462, Code Lutin * %% @@ -39,7 +39,7 @@ * @author fdesbois <desbois@codelutin.com> */ public abstract class AbstractRowHighlightPredicate implements HighlightPredicate { - + protected Map<Object, Boolean> objects; public AbstractRowHighlightPredicate() { @@ -48,7 +48,7 @@ @Override public boolean isHighlighted(Component renderer, ComponentAdapter adapter) { - + int columnIndex = adapter.column; int rowIndex = adapter.row; Object object = getValueAt(rowIndex); @@ -63,7 +63,7 @@ } return result; } - + protected abstract boolean isHighlighted(int rowIndex); protected abstract Object getValueAt(int rowIndex); Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/util/ColorTableCellRenderer.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/util/ColorTableCellRenderer.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/util/ColorTableCellRenderer.java 2012-08-14 13:09:01 UTC (rev 420) @@ -34,9 +34,9 @@ * @author fdesbois <desbois@codelutin.com> */ public class ColorTableCellRenderer implements TableCellRenderer { - + protected TableCellRenderer delegate; - + protected Color backgroundColor; public ColorTableCellRenderer(TableCellRenderer delegate, Color backgroundColor) { Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/util/LogFileInitializer.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/util/LogFileInitializer.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/util/LogFileInitializer.java 2012-08-14 13:09:01 UTC (rev 420) @@ -49,9 +49,9 @@ public class LogFileInitializer { private static final Logger rootLogger = (Logger) LoggerFactory.getLogger("ROOT"); - + private static final String LOG_PATTERN = "%date %level [%thread] %logger [:%line] : %msg%n"; - + private File file; public LogFileInitializer(File file) { @@ -71,21 +71,21 @@ } protected Encoder<ILoggingEvent> getEncoder() { - + PatternLayoutEncoder result = new PatternLayoutEncoder(); result.setContext(getContext()); result.setPattern(LOG_PATTERN); - + result.start(); return result; } - + protected RollingPolicy newRollingPolicy() { TimeBasedRollingPolicy result = new TimeBasedRollingPolicy(); result.setContext(getContext()); result.setMaxHistory(10); - + Pair<String, String> filePathAndExtension = getFilePathAndExtension(); result.setFileNamePattern(filePathAndExtension.getLeft() + @@ -95,7 +95,7 @@ return result; } - + protected FileAppender<ILoggingEvent> newFileAppender(String name) { RollingFileAppender<ILoggingEvent> result = new RollingFileAppender<ILoggingEvent>(); @@ -113,7 +113,7 @@ result.start(); return result; } - + protected Pair<String, String> getFilePathAndExtension() { String filePath = file.getAbsolutePath(); @@ -124,7 +124,7 @@ } else { filePath = filePath.replace("." + ext, ""); } - + Pair<String, String> result = new ImmutablePair<String, String>(filePath, ext); return result; } Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/util/SammoaUtil.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/util/SammoaUtil.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/util/SammoaUtil.java 2012-08-14 13:09:01 UTC (rev 420) @@ -36,8 +36,18 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.swing.*; -import java.awt.*; +import javax.swing.Action; +import javax.swing.JComponent; +import javax.swing.JDialog; +import javax.swing.JFrame; +import javax.swing.JOptionPane; +import javax.swing.JRootPane; +import javax.swing.KeyStroke; +import javax.swing.UIManager; +import java.awt.Color; +import java.awt.Component; +import java.awt.Cursor; +import java.awt.Dimension; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.File; @@ -223,7 +233,7 @@ } } - public static void showErrorMessage(Component ui, String message) { + public static void showErrorMessage(Component ui, String message) { JOptionPane.showMessageDialog( ui, message, Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/util/TableDataChangeListener.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/util/TableDataChangeListener.java 2012-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/util/TableDataChangeListener.java 2012-08-14 13:09:01 UTC (rev 420) @@ -2,8 +2,8 @@ /* * #%L * SAMMOA :: UI Swing - * $Id:$ - * $HeadURL:$ + * $Id$ + * $HeadURL$ * %% * Copyright (C) 2012 UMS 3462, Code Lutin * %% @@ -36,11 +36,11 @@ * @author fdesbois <desbois@codelutin.com> */ public class TableDataChangeListener implements PropertyChangeListener { - + public static final int NO_COLUMN_INDEX_TO_EDIT_ON_INSERT = -1; - + protected JXTable table; - + protected AbstractTableModel tableModel; public TableDataChangeListener(JXTable table, @@ -53,7 +53,7 @@ public void propertyChange(PropertyChangeEvent evt) { if (evt instanceof IndexedPropertyChangeEvent) { - int rowIndex = ((IndexedPropertyChangeEvent)evt).getIndex(); + int rowIndex = ((IndexedPropertyChangeEvent) evt).getIndex(); Object oldValue = evt.getOldValue(); Object newValue = evt.getNewValue(); @@ -78,7 +78,7 @@ tableModel.fireTableDataChanged(); } } - + protected int getFirstEditableColumn(int rowIndex) { for (int columnIndex = 0; columnIndex < tableModel.getColumnCount(); columnIndex++) { 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-08-14 13:04:50 UTC (rev 419) +++ trunk/sammoa-ui-swing/src/main/resources/i18n/sammoa-ui-swing_en_GB.properties 2012-08-14 13:09:01 UTC (rev 420) @@ -27,6 +27,7 @@ sammoa.action.home=Home sammoa.action.home.tip=Home sammoa.action.import=Import +sammoa.action.importApplication=Import sammoa.action.left.tip=LEFT \: create a new Observation for the observer on the left side sammoa.action.locale.fr=fr sammoa.action.locale.fr.tip=French @@ -37,6 +38,7 @@ sammoa.action.nextTransect.tip=NEXT TRANSECT \: choose this transect to be the next one sammoa.action.onBoard=On Board sammoa.action.quitExportMaps=Quit +sammoa.action.quitImportApplication= sammoa.action.reload.actions=Reload actions sammoa.action.reload.gps=Reload GPS sammoa.action.reload.ui=Reload sammoa ui @@ -64,6 +66,7 @@ sammoa.copyright.text=Version %1$s UMS 3462, Codelutin @ 2012 sammoa.datePattern=dd/MM/yyyy sammoa.dateTimePattern=dd/MM/yyyy HH\:mm\:ss +sammoa.dialog.title.importSammoaFile= sammoa.dialog.title.observerFile=Choose a csv file for observers sammoa.dialog.title.region=Region sammoa.dialog.title.speciesFile=Choose a csv file for species @@ -114,6 +117,7 @@ sammoa.label.flight.immatriculation=Plane imma.\: sammoa.label.flight.period=Time\: sammoa.label.flight.platformType=Type\: +sammoa.label.importApplicationFile= sammoa.label.observers=Observers\: sammoa.label.region.code=Code\: sammoa.label.region.name=Name\: @@ -228,6 +232,7 @@ sammoa.title.exportshape=Export Maps sammoa.title.flight=System %1$s - Campaign %2$s - Region %3$s - Flight n°%4$d sammoa.title.home=Home +sammoa.title.importApplication= sammoa.title.validation= sammoa.validator.campaign.beginDate.required=The begin date must be defined sammoa.validator.campaign.code.required=The campaign code must be defined
participants (1)
-
tchemit@users.forge.codelutin.com