r343 - in trunk: . sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/util sammoa-ui-swing/src/main/resources/i18n sammoa-ui-swing/src/main/resources/icons sammoa-ui-swing/src/test sammoa-ui-swing/src/
Author: tchemit Date: 2012-08-01 18:35:52 +0200 (Wed, 01 Aug 2012) New Revision: 343 Url: http://forge.codelutin.com/repositories/revision/sammoa/343 Log: refs #1203: Export SHP (add ui parts) + persistence Added: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/RouteType.java trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/StringRef.java trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/StringRefs.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportApplication/ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUI.css trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUI.jaxx trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUIHandler.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUIModel.java trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/importApplication/ trunk/sammoa-ui-swing/src/main/resources/icons/action-fileChooser.png trunk/sammoa-ui-swing/src/test/resources/ trunk/sammoa-ui-swing/src/test/resources/logback-test.xml Modified: trunk/pom.xml 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/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/SammoaUIContext.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/util/SammoaUtil.java 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_fr_FR.properties Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2012-08-01 16:34:48 UTC (rev 342) +++ trunk/pom.xml 2012-08-01 16:35:52 UTC (rev 343) @@ -121,7 +121,7 @@ <h2Version>1.3.167</h2Version> <postgresqlVersion>9.1-901-1.jdbc4</postgresqlVersion> - <jaxxVersion>2.5.3</jaxxVersion> + <jaxxVersion>2.5.4-SNAPSHOT</jaxxVersion> <swingXVersion>1.6.3</swingXVersion> <xworkVersion>2.3.4</xworkVersion> Added: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/RouteType.java =================================================================== --- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/RouteType.java (rev 0) +++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/RouteType.java 2012-08-01 16:35:52 UTC (rev 343) @@ -0,0 +1,11 @@ +package fr.ulr.sammoa.persistence; + +public enum RouteType { + TRANSIT, + LEG, + CIRCLE_BACK; + + public String getName() { + return name(); + } +} //RouteType Property changes on: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/RouteType.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Added: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/StringRef.java =================================================================== --- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/StringRef.java (rev 0) +++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/StringRef.java 2012-08-01 16:35:52 UTC (rev 343) @@ -0,0 +1,24 @@ +package fr.ulr.sammoa.persistence; + +import java.io.Serializable; + +/** + * To be able to use String inside decorators. + * + * @author tchemit <chemit@codelutin.com> + * @since 0.5 + */ +public class StringRef implements Serializable { + + private static final long serialVersionUID = 1L; + + private final String value; + + public StringRef(String value) { + this.value = value; + } + + public String getValue() { + return value; + } +} Property changes on: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/StringRef.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Added: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/StringRefs.java =================================================================== --- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/StringRefs.java (rev 0) +++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/StringRefs.java 2012-08-01 16:35:52 UTC (rev 343) @@ -0,0 +1,42 @@ +package fr.ulr.sammoa.persistence; + +import com.google.common.base.Function; +import com.google.common.collect.Iterables; +import com.google.common.collect.Lists; + +import java.util.List; + +/** + * Usefulmethod aroun {@link StringRef}. + * + * @author tchemit <chemit@codelutin.com> + * @since 0.5 + */ +public class StringRefs { + + + public static List<StringRef> toRefs(List<String> strings) { + + List<StringRef> result = + Lists.newArrayList(Iterables.transform(strings, TO_STRING_REF_FUNCTION)); + return result; + } + + protected static Function<String, StringRef> TO_STRING_REF_FUNCTION = + new Function<String, StringRef>() { + + @Override + public StringRef apply(String input) { + return new StringRef(input); + } + }; + + protected static Function<StringRef, String> TO_STRING_FUNCTION = + new Function<StringRef, String>() { + + @Override + public String apply(StringRef input) { + return input.getValue(); + } + }; +} Property changes on: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/StringRefs.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/MainUIHandler.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/MainUIHandler.java 2012-08-01 16:34:48 UTC (rev 342) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/MainUIHandler.java 2012-08-01 16:35:52 UTC (rev 343) @@ -33,6 +33,7 @@ import fr.ulr.sammoa.ui.swing.campaign.CampaignUI; import fr.ulr.sammoa.ui.swing.flight.FlightUI; import fr.ulr.sammoa.ui.swing.home.HomeUI; +import fr.ulr.sammoa.ui.swing.io.exportMap.ExportMapUI; import jaxx.runtime.SwingUtil; import jaxx.runtime.swing.AboutPanel; import jaxx.runtime.swing.ErrorDialogUI; @@ -42,8 +43,10 @@ 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.Desktop; import java.io.File; import java.net.URL; import java.util.Locale; @@ -165,6 +168,14 @@ ui.getBody().setTitle(_("sammoa.title.campaign")); ui.getBody().add(currentBody); break; + + case EXPORT_MAP: + currentBody = new ExportMapUI(context); + context.getSwingSession().add(currentBody); + ui.getBody().setTitle(_("sammoa.title.exportshape")); + ui.getBody().add(currentBody); + break; + } ui.setScreen(screen); } 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-01 16:34:48 UTC (rev 342) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaDecoratorProvider.java 2012-08-01 16:35:52 UTC (rev 343) @@ -30,8 +30,11 @@ import fr.ulr.sammoa.persistence.Observer; import fr.ulr.sammoa.persistence.Region; import fr.ulr.sammoa.persistence.Route; +import fr.ulr.sammoa.persistence.RouteType; import fr.ulr.sammoa.persistence.Sector; +import fr.ulr.sammoa.persistence.Species; import fr.ulr.sammoa.persistence.Strate; +import fr.ulr.sammoa.persistence.StringRef; import fr.ulr.sammoa.persistence.Transect; import fr.ulr.sammoa.ui.swing.flight.StrateModel; import fr.ulr.sammoa.ui.swing.flight.TransectModel; @@ -57,7 +60,11 @@ registerJXPathDecorator(Observation.class, "${observationNumber}$s ${observationTime}$tH:%2$tM:%2$tS"); registerJXPathDecorator(Transect.class, "${name}$s"); registerJXPathDecorator(Observer.class, "${initials}$s"); -// registerJXPathDecorator(Strate.class, "${code}$s"); + registerMultiJXPathDecorator(Strate.class, "${code}$s##${name}$s", "##", " - "); + registerMultiJXPathDecorator(RouteType.class, "${name}$s", "##", " - "); + registerMultiJXPathDecorator(Species.class, "${code}$s##${commonName}$s", "##", " - "); + registerMultiJXPathDecorator(StringRef.class, "${value}$s", "##", " - "); + registerJXPathDecorator(TransectModel.class, "${source/name}$s"); registerJXPathDecorator(Sector.class, "${name}$s"); registerJXPathDecorator(Region.class, "${code}$s"); 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-01 16:34:48 UTC (rev 342) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaScreen.java 2012-08-01 16:35:52 UTC (rev 343) @@ -2,8 +2,8 @@ /* * #%L * SAMMOA :: UI Swing - * $Id:$ - * $HeadURL:$ + * $Id$ + * $HeadURL$ * %% * Copyright (C) 2012 UMS 3462, Code Lutin * %% @@ -34,5 +34,7 @@ CAMPAIGN, - FLIGHT; + FLIGHT, + + EXPORT_MAP } 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-01 16:34:48 UTC (rev 342) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/SammoaUIContext.java 2012-08-01 16:35:52 UTC (rev 343) @@ -185,6 +185,11 @@ mainUIHandler.setScreen(SammoaScreen.HOME); } + public void setExportMapScreen(String campaignId) { + this.campaignId = campaignId; + mainUIHandler.setScreen(SammoaScreen.EXPORT_MAP); + } + public void open() { context.open(); } 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-01 16:34:48 UTC (rev 342) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUI.css 2012-08-01 16:35:52 UTC (rev 343) @@ -57,10 +57,16 @@ } #importButton { + enabled:false; text: "sammoa.action.import"; } +#exportMapButton { + text: "sammoa.action.exportMap"; +} + #exportButton { + enabled:false; text: "sammoa.action.export"; } 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-01 16:34:48 UTC (rev 342) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUI.jaxx 2012-08-01 16:35:52 UTC (rev 343) @@ -101,9 +101,11 @@ </row> <row> <cell fill='both' columns='3'> - <JPanel layout='{new GridLayout(1,4,0,0)}'> + <JPanel layout='{new GridLayout(1,0,0,0)}'> <JButton id='importButton' onActionPerformed='getHandler().showImport()'/> + <JButton id='exportMapButton' + onActionPerformed='getHandler().showExportMap()'/> <JButton id='exportButton' onActionPerformed='getHandler().showExport()'/> <JButton id='onBoardButton' 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-01 16:34:48 UTC (rev 342) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/home/HomeUIHandler.java 2012-08-01 16:35:52 UTC (rev 343) @@ -2,8 +2,8 @@ /* * #%L * SAMMOA :: UI Swing - * $Id:$ - * $HeadURL:$ + * $Id$ + * $HeadURL$ * %% * Copyright (C) 2012 UMS 3462, Code Lutin * %% @@ -275,8 +275,15 @@ } + public void showExportMap() { + + Campaign campaign = getModel().getCampaign(); + String campaignId = campaign==null?null:campaign.getTopiaId(); + context.setExportMapScreen(campaignId); + } + public void showExport() { - + } public void showOnBoard() { Added: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUI.css =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUI.css (rev 0) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUI.css 2012-08-01 16:35:52 UTC (rev 343) @@ -0,0 +1,89 @@ +BeanListHeader { + i18nPrefix: "sammoa.common."; +} + +#campaignLabel { + text: "sammoa.label.campaign"; +} + +#campaignCombobox { + renderer: {new DecoratorProviderListCellRenderer(getHandler().getDecoratorProvider())}; +} + +#campainPeriodFilter { + border:{new TitledBorder(_("sammoa.label.campaign.period.filter"))}; +} + +#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()}; +} + +#strateFilterListHeader { + beanType:{Strate.class}; + showReset:true; + list:{strateFilter}; + labelText:{_("sammoa.label.strateFilter")}; +} + +#routeTypeFilterListHeader { + beanType:{RouteType.class}; + showReset:true; + list:{routeTypeFilter}; + labelText:{_("sammoa.label.routeTypeFilter")}; +} + +#speciesTypeFilterListHeader { + beanType:{StringRef.class}; + showReset:true; + list:{speciesTypeFilter}; + labelText:{_("sammoa.label.speciesTypeFilter")}; +} + +#speciesFilterListHeader { + beanType:{Species.class}; + showReset:true; + list:{speciesFilter}; + labelText:{_("sammoa.label.speciesFilter")}; +} + +#quitButton { + text:"sammoa.action.quitExportMaps"; +} + +#exportEfforts { + text:"sammoa.action.exportEffortsMap"; +} + +#exportObservations { + text:"sammoa.action.exportObservationsMap"; +} + +#exportDirectoryFileChooseAction { + actionIcon:"fileChooser"; +} + +#exportEffortsFilenameLbl { + text:"sammoa.label.exportEffortsFilename"; +} + +#exportDirectoryLbl { + text:"sammoa.label.exportDirectory"; +} + +#exportObservationsFilenameLbl { + text:"sammoa.label.exportObservationsFilename"; +} \ No newline at end of file Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUI.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/exportMap/ExportMapUI.jaxx =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUI.jaxx (rev 0) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUI.jaxx 2012-08-01 16:35:52 UTC (rev 343) @@ -0,0 +1,163 @@ +<JPanel id='campaignUI' layout='{new BorderLayout()}' + implements='fr.ulr.sammoa.ui.swing.SammoaUI<ExportMapUIHandler>'> + + <import> + fr.ulr.sammoa.application.FlightState + fr.ulr.sammoa.persistence.Campaign + fr.ulr.sammoa.persistence.RouteType + fr.ulr.sammoa.persistence.Strate + fr.ulr.sammoa.persistence.Species + fr.ulr.sammoa.persistence.StringRef + fr.ulr.sammoa.ui.swing.SammoaUIContext + + jaxx.runtime.swing.editor.bean.BeanListHeader + jaxx.runtime.swing.JAXXDatePicker + jaxx.runtime.swing.renderer.DecoratorProviderListCellRenderer + + java.awt.BorderLayout + java.awt.event.ItemEvent + java.io.File + + static org.nuiton.i18n.I18n._ + </import> + + <script><![CDATA[ + + public ExportMapUI(SammoaUIContext context) { + ExportMapUIHandler handler = new ExportMapUIHandler(context, this); + setContextValue(handler); + handler.beforeInitUI(); + } + + protected void $afterCompleteSetup() { + getHandler().afterInitUI(); + } + ]]></script> + + <ExportMapUIModel id='model' + initializer='getContextValue(ExportMapUIModel.class)'/> + + <ExportMapUIHandler id='handler' + initializer='getContextValue(ExportMapUIHandler.class)'/> + + <Table fill='both' constraints='BorderLayout.CENTER'> + <!-- export directory--> + <row> + <cell anchor='west'> + <JLabel id='exportDirectoryLbl'/> + </cell> + <cell weightx='1' fill="horizontal"> + <JTextField id='exportDirectory' text='{model.getExportDirectory().getAbsolutePath()}' + onKeyReleased='getModel().setExportDirectory(new File(((JTextField)event.getSource()).getText()))'/> + </cell> + <cell anchor="east"> + <JButton id="exportDirectoryFileChooseAction" + onActionPerformed="getHandler().chooseEffortDirectory()"/> + </cell> + + </row> + <!-- Campaign filter --> + <row> + <cell anchor='west'> + <JLabel id='campaignLabel'/> + </cell> + <cell fill='horizontal' weightx='1.0'> + <JComboBox id='campaignCombobox' + onItemStateChanged='if (ItemEvent.SELECTED == event.getStateChange()) { getModel().setSelectedCampaign((Campaign)event.getItem()); } else { getModel().setSelectedCampaign(null); }'/> + </cell> + </row> + <!-- Campaign Period filter --> + <row> + <cell weightx='1.0' columns='5'> + <JPanel id='campainPeriodFilter' layout='{new GridLayout(1,0)}'> + <JAXXDatePicker id='beginDatePicker' + onActionPerformed='getModel().setBeginDate(beginDatePicker.getDate())'/> + <JAXXDatePicker id='endDatePicker' + onActionPerformed='getModel().setEndDate(endDatePicker.getDate())'/> + </JPanel> + </cell> + </row> + <!-- Strate filter (Multi-selection)--> + <row> + <cell fill='both' weightx='1.0' weighty='1.0' columns='5'> + <JScrollPane id='strateFilterScrollPane' + columnHeaderView='{strateFilterListHeader}'> + <JList id='strateFilter' /> + <BeanListHeader id='strateFilterListHeader' genericType='Strate'/> + </JScrollPane> + </cell> + </row> + <!-- Status filter (Multi-selection)--> + <row> + <cell fill='both' weightx='1.0' weighty='1.0' columns='5'> + <JScrollPane id='routeTypeFilterScrollPane' + columnHeaderView='{routeTypeFilterListHeader}'> + <JList id='routeTypeFilter' /> + <BeanListHeader id='routeTypeFilterListHeader' genericType='RouteType'/> + </JScrollPane> + </cell> + </row> + + <!-- export efforts filename--> + <row> + <cell anchor='west'> + <JLabel id='exportEffortsFilenameLbl'/> + </cell> + <cell fill='horizontal' weightx='1.0'> + <JTextField id='exportEffortsFilename' text='{model.getExportEffortsFilename()}' + onKeyReleased='model.setExportEffortsFilename(((JTextField)event.getSource()).getText())'/> + </cell> + </row> + + <!-- export efforts --> + <row> + <cell columns='5' fill="both"> + <JPanel layout='{new BorderLayout()}'> + <JButton id='exportEfforts' constraints='BorderLayout.CENTER' + onActionPerformed='getHandler().exportEfforts()'/> + </JPanel> + </cell> + </row> + + <!-- Species type filter (Multi-selection)--> + <row> + <cell fill='both' weightx='1.0' weighty='1.0' columns='5'> + <JScrollPane id='speciesTypeFilterScrollPane' + columnHeaderView='{speciesTypeFilterListHeader}'> + <JList id='speciesTypeFilter'/> + <BeanListHeader id='speciesTypeFilterListHeader' genericType='StringRef'/> + </JScrollPane> + </cell> + </row> + <!-- Species filter (Multi-selection)--> + <row> + <cell fill='both' weightx='1.0' weighty='1.0' columns='5'> + <JScrollPane id='speciesFilterScrollPane' + columnHeaderView='{speciesFilterListHeader}'> + <JList id='speciesFilter'/> + <BeanListHeader id='speciesFilterListHeader' genericType='Species'/> + </JScrollPane> + </cell> + </row> + <!-- export observations filename--> + <row> + <cell anchor='west'> + <JLabel id='exportObservationsFilenameLbl'/> + </cell> + <cell fill='horizontal' weightx='1.0'> + <JTextField id='exportObservationsFilename' text='{model.getExportObservationsFilename()}' + onKeyReleased='model.setExportObservationsFilename(((JTextField)event.getSource()).getText())'/> + </cell> + </row> + <!--export observations --> + <row> + <cell columns='5' fill="both"> + <JPanel layout='{new GridLayout(1,2,0,0)}'> + <JButton id='quitButton' onActionPerformed='getHandler().close()'/> + <JButton id='exportObservations' + onActionPerformed='getHandler().exportObservations()'/> + </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/exportMap/ExportMapUIHandler.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUIHandler.java (rev 0) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUIHandler.java 2012-08-01 16:35:52 UTC (rev 343) @@ -0,0 +1,251 @@ +package fr.ulr.sammoa.ui.swing.io.exportMap; + +import com.google.common.base.Preconditions; +import com.google.common.collect.Lists; +import fr.ulr.sammoa.application.ReferentialService; +import fr.ulr.sammoa.application.map.ExportMapModel; +import fr.ulr.sammoa.application.map.ExportMapService; +import fr.ulr.sammoa.persistence.Campaign; +import fr.ulr.sammoa.persistence.RouteType; +import fr.ulr.sammoa.persistence.Species; +import fr.ulr.sammoa.persistence.Strate; +import fr.ulr.sammoa.persistence.StringRefs; +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.util.SammoaUtil; +import jaxx.runtime.SwingUtil; +import jaxx.runtime.swing.OneClicListSelectionModel; +import jaxx.runtime.swing.editor.bean.BeanListHeader; +import org.nuiton.util.FileUtil; +import org.nuiton.util.decorator.Decorator; +import org.nuiton.util.decorator.DecoratorUtil; +import org.nuiton.util.decorator.JXPathDecorator; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import javax.swing.JList; +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; +import java.io.File; +import java.util.Collections; +import java.util.List; + +import static org.nuiton.i18n.I18n._; + +/** + * Handler of {@link ExportMapUI}. + * + * @author tchemit <chemit@codelutin.com> + * @since 0.5 + */ +public class ExportMapUIHandler implements SammoaUIHandler { + + private static final Logger logger = + LoggerFactory.getLogger(ExportMapUIHandler.class); + + private final ExportMapUI ui; + + protected SammoaUIContext context; + + public ExportMapUIHandler(SammoaUIContext context, + ExportMapUI ui) { + this.context = context; + this.ui = ui; + } + + protected ReferentialService getReferentialService() { + return context.getAppContext().getReferentialService(); + } + + protected ExportMapService getExportMapService() { + return context.getAppContext().getExportMapService(); + } + + public SammoaDecoratorProvider getDecoratorProvider() { + return context.getDecoratorProvider(); + } + + @Override + public void beforeInitUI() { + + //-- create model --// + + ExportMapUIModel model = new ExportMapUIModel(); + + List<Campaign> campaigns = getReferentialService().getCampaigns(); + campaigns.add(0, null); + model.setCampaigns(campaigns); + + List<String> speciesTypes = getReferentialService().getAllSpeciesTypes(); + model.setSpeciesTypes(StringRefs.toRefs(speciesTypes)); + + List<Species> species = getReferentialService().getAllSpecies(); + model.setSpecies(species); + + model.setRouteTypes(Lists.newArrayList(RouteType.values())); + + String campaignId = context.getCampaignId(); + + if (campaignId != null) { + + Campaign campaign = getReferentialService().getCampaign(campaignId); + + // selected cam + model.setSelectedCampaign(campaign); + } + + //-- share model and handler in jaxx context --// + ui.setContextValue(this); + ui.setContextValue(model); + + model.addPropertyChangeListener(new PropertyChangeListener() { + @Override + public void propertyChange(PropertyChangeEvent evt) { + + if (ExportMapUIModel.PROPERTY_SELECTED_CAMPAIGN.equals(evt.getPropertyName())) { + Campaign newValue = (Campaign) evt.getNewValue(); + onSelectedCampaignChanged(newValue); + } else if (ExportMapUIModel.PROPERTY_STRATES.equals(evt.getPropertyName())) { + + List<Strate> newValue = (List<Strate>) evt.getNewValue(); + onStratesChanged(newValue); + } + } + }); + } + + @Override + public void afterInitUI() { + ExportMapUIModel model = ui.getModel(); + + model.setExportEffortsFilename("Efforts"); + model.setExportObservationsFilename("Observations"); + model.setExportDirectory(FileUtil.getCurrentDirectory().getAbsoluteFile()); + + SwingUtil.fillComboBox(ui.getCampaignCombobox(), + model.getCampaigns(), + model.getSelectedCampaign()); + + prepareList(ui.getStrateFilterListHeader(), model.getStrates()); + prepareList(ui.getRouteTypeFilterListHeader(), model.getRouteTypes()); + prepareList(ui.getSpeciesTypeFilterListHeader(), model.getSpeciesTypes()); + prepareList(ui.getSpeciesFilterListHeader(), model.getSpecies()); + + onSelectedCampaignChanged(model.getSelectedCampaign()); + } + + protected void onStratesChanged(List<Strate> newValue) { + if (logger.isInfoEnabled()) { + logger.info("New strates to use: {}", newValue.size()); + } + ui.getStrateFilterListHeader().setData(newValue); + } + + protected void onSelectedCampaignChanged(Campaign newCampaign) { + + // reset strates,... + if (logger.isInfoEnabled()) { + Decorator<Campaign> decorator = getDecoratorProvider().getDecoratorByType(Campaign.class); + logger.info("New selected campain: {}", decorator.toString(newCampaign)); + } + + ExportMapUIModel model = ui.getModel(); + + model.setSelectedStrates(Collections.<Strate>emptyList()); + + List<Strate> strates; + if (newCampaign == null) { + strates = Collections.emptyList(); + } else { + strates = getReferentialService().getAllStrates(newCampaign); + } + if (logger.isDebugEnabled()) { + logger.debug("New strates: {}", strates.size()); + } + model.setStrates(strates); + } + + public void close() { + context.setHomeScreen(); + } + + @Override + public void onCloseUI() { + } + + public void chooseEffortDirectory() { + File f = SammoaUtil.chooseDirectory( + ui, + _("sammoa.title.choose.export.directory"), + _("sammoa.action.choose.export.directory"), + ui.getModel().getExportDirectory() + ); + ui.getModel().setExportDirectory(f); + } + + public void exportEfforts() { + + ExportMapUIModel model = ui.getModel(); + + ExportMapModel dataModel = + model.toModel(model.getExportEffortsFilename()); + + getExportMapService().exportEffortsMap(dataModel); + } + + public void exportObservations() { + + ExportMapUIModel model = ui.getModel(); + + ExportMapModel dataModel = + model.toModel(model.getExportObservationsFilename()); + + getExportMapService().exportObservationsMap(dataModel); + } + + + /** + * Remplit le modèle d'une liste graphique avec la liste des entités d'un + * type donné sur un service de persistance donné. + * + * @param list le component graphique à initialiser + * @param incomingData les données à mettre dans la liste + * @since 0.5 + */ + public <E> void prepareList(BeanListHeader<E> list, List<E> incomingData) { + + Class<E> beanType = list.getBeanType(); + + JList jList = list.getList(); + + //FIXME-tchemit 2012-08-01 Fix selection model which bugs when deselect + OneClicListSelectionModel.installModel(jList); + + // init list + Decorator<E> decorator = getDecoratorProvider().getDecoratorByType(beanType); + Preconditions.checkNotNull(decorator, "No decorator found for type " + beanType); + if (logger.isDebugEnabled()) { + logger.debug("Will use decorator " + decorator); + } + + list.putClientProperty("decorator", decorator); + List<E> data = Lists.newArrayList(incomingData); + + // sort data from first decorator context + DecoratorUtil.sort((JXPathDecorator<E>) decorator, data, 0); + + // set datas to list and init renderer + list.init((JXPathDecorator<E>) decorator, data); + +// // get the renderer initialized +// ListCellRenderer renderer = list.getList().getCellRenderer(); +// +// // add the specific renderer +// list.getList().setCellRenderer(new ReferentielListCellRenderer(renderer)); + + list.putClientProperty("data", data); + } + + +} Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUIHandler.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/exportMap/ExportMapUIModel.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUIModel.java (rev 0) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUIModel.java 2012-08-01 16:35:52 UTC (rev 343) @@ -0,0 +1,277 @@ +package fr.ulr.sammoa.ui.swing.io.exportMap; + +import com.google.common.collect.Lists; +import fr.ulr.sammoa.application.map.ExportMapModel; +import fr.ulr.sammoa.persistence.Campaign; +import fr.ulr.sammoa.persistence.RouteType; +import fr.ulr.sammoa.persistence.Species; +import fr.ulr.sammoa.persistence.Strate; +import fr.ulr.sammoa.persistence.StringRef; +import org.jdesktop.beans.AbstractSerializableBean; + +import java.io.File; +import java.util.Date; +import java.util.List; + +/** + * Model of export map UI. + * + * @author tchemit <chemit@codelutin.com> + * @since 0.5 + */ +public class ExportMapUIModel extends AbstractSerializableBean { + + private static final long serialVersionUID = 1L; + + public static final String PROPERTY_CAMPAIGNS = "campaigns"; + + public static final String PROPERTY_SELECTED_CAMPAIGN = "selectedCampaign"; + + public static final String PROPERTY_BEGIN_DATE = "beginDate"; + + public static final String PROPERTY_END_DATE = "endDate"; + + public static final String PROPERTY_STRATES = "strates"; + + public static final String PROPERTY_SELECTED_STRATES = "selectedStrates"; + + public static final String PROPERTY_ROUTE_TYPES = "routeTypes"; + + public static final String PROPERTY_SELECTED_ROUTE_TYPES = "selectedRouteTypes"; + + public static final String PROPERTY_SPECIES = "species"; + + public static final String PROPERTY_SELECTED_SPECIES = "selectedSpecies"; + + public static final String PROPERTY_SPECIES_TYPES = "speciesTypes"; + + public static final String PROPERTY_SELECTED_SPECIES_TYPES = "selectedSpeciesTypes"; + + public static final String PROPERTY_EXPORT_DIRECTORY = "exportDirectory"; + + public static final String PROPERTY_EXPORT_EFFORTS_FILENAME = "exportEffortsFilename"; + + public static final String PROPERTY_EXPORT_OBSERVATIONS_FILENAME = "exportObservationsFilename"; + + protected List<Campaign> campaigns; + + protected Campaign selectedCampaign; + + protected Date beginDate; + + protected Date endDate; + + protected List<Strate> strates; + + protected List<Strate> selectedStrates; + + protected List<RouteType> routeTypes; + + protected List<RouteType> selectedRouteTypes; + + protected List<Species> species; + + protected List<Species> selectedSpecies; + + protected List<StringRef> selectedSpeciesTypes; + + protected List<StringRef> speciesTypes; + + protected File exportDirectory; + + protected String exportEffortsFilename; + + protected String exportObservationsFilename; + + public File getExportDirectory() { + return exportDirectory; + } + + public void setExportDirectory(File exportDirectory) { + File oldValue = this.exportDirectory; + this.exportDirectory = exportDirectory; + firePropertyChange(PROPERTY_EXPORT_DIRECTORY, oldValue, exportDirectory); + } + + public String getExportEffortsFilename() { + return exportEffortsFilename; + } + + public void setExportEffortsFilename(String exportEffortsFilename) { + String oldValue = this.exportEffortsFilename; + this.exportEffortsFilename = exportEffortsFilename; + firePropertyChange(PROPERTY_EXPORT_EFFORTS_FILENAME, oldValue, exportEffortsFilename); + } + + public String getExportObservationsFilename() { + return exportObservationsFilename; + } + + public void setExportObservationsFilename(String exportObservationsFilename) { + String oldValue = this.exportObservationsFilename; + this.exportObservationsFilename = exportObservationsFilename; + firePropertyChange(PROPERTY_EXPORT_OBSERVATIONS_FILENAME, oldValue, exportObservationsFilename); + } + + public List<Campaign> getCampaigns() { + if (campaigns == null) { + campaigns = Lists.newArrayList(); + } + return campaigns; + } + + public void setCampaigns(List<Campaign> campaigns) { + List<Campaign> oldValue = this.campaigns; + this.campaigns = campaigns; + firePropertyChange(PROPERTY_CAMPAIGNS, oldValue, campaigns); + } + + public Campaign getSelectedCampaign() { + return selectedCampaign; + } + + public void setSelectedCampaign(Campaign selectedCampaign) { + Campaign oldValue = this.selectedCampaign; + this.selectedCampaign = selectedCampaign; + firePropertyChange(PROPERTY_SELECTED_CAMPAIGN, oldValue, selectedCampaign); + } + + public Date getBeginDate() { + return beginDate; + } + + public void setBeginDate(Date beginDate) { + Date oldValue = this.beginDate; + this.beginDate = beginDate; + firePropertyChange(PROPERTY_BEGIN_DATE, oldValue, beginDate); + } + + public Date getEndDate() { + return endDate; + } + + public void setEndDate(Date endDate) { + Date oldValue = this.endDate; + this.endDate = endDate; + firePropertyChange(PROPERTY_END_DATE, oldValue, endDate); + } + + public List<Strate> getStrates() { + if (strates == null) { + strates = Lists.newArrayList(); + } + return strates; + } + + public void setStrates(List<Strate> strates) { + List<Strate> oldValue = this.strates; + this.strates = strates; + firePropertyChange(PROPERTY_STRATES, oldValue, strates); + } + + public List<Strate> getSelectedStrates() { + if (selectedStrates == null) { + selectedStrates = Lists.newArrayList(); + } + return selectedStrates; + } + + public void setSelectedStrates(List<Strate> selectedStrates) { + List<Strate> oldValue = this.selectedStrates; + this.selectedStrates = selectedStrates; + firePropertyChange(PROPERTY_SELECTED_STRATES, oldValue, selectedStrates); + } + + public List<RouteType> getRouteTypes() { + if (routeTypes == null) { + routeTypes = Lists.newArrayList(); + } + return routeTypes; + } + + public void setRouteTypes(List<RouteType> routeTypes) { + List<RouteType> oldValue = this.routeTypes; + this.routeTypes = routeTypes; + firePropertyChange(PROPERTY_ROUTE_TYPES, oldValue, routeTypes); + } + + public List<RouteType> getSelectedRouteTypes() { + if (selectedRouteTypes == null) { + selectedRouteTypes = Lists.newArrayList(); + } + return selectedRouteTypes; + } + + public void setSelectedRouteTypes(List<RouteType> selectedRouteTypes) { + List<RouteType> oldValue = this.selectedRouteTypes; + this.selectedRouteTypes = selectedRouteTypes; + firePropertyChange(PROPERTY_SELECTED_ROUTE_TYPES, oldValue, selectedRouteTypes); + } + + public List<Species> getSpecies() { + if (species == null) { + species = Lists.newArrayList(); + } + return species; + } + + public void setSpecies(List<Species> species) { + List<Species> oldValue = this.species; + this.species = species; + firePropertyChange(PROPERTY_SPECIES, oldValue, species); + } + + public List<Species> getSelectedSpecies() { + if (selectedSpecies == null) { + selectedSpecies = Lists.newArrayList(); + } + return selectedSpecies; + } + + public void setSelectedSpecies(List<Species> selectedSpecies) { + List<Species> oldValue = this.selectedSpecies; + this.selectedSpecies = selectedSpecies; + firePropertyChange(PROPERTY_SELECTED_SPECIES, oldValue, selectedSpecies); + } + + public List<StringRef> getSpeciesTypes() { + if (speciesTypes == null) { + speciesTypes = Lists.newArrayList(); + } + return speciesTypes; + } + + public void setSpeciesTypes(List<StringRef> speciesTypes) { + List<StringRef> oldValue = this.speciesTypes; + this.speciesTypes = speciesTypes; + firePropertyChange(PROPERTY_SPECIES_TYPES, oldValue, speciesTypes); + } + + public List<StringRef> getSelectedSpeciesTypes() { + if (selectedSpeciesTypes == null) { + selectedSpeciesTypes = Lists.newArrayList(); + } + return selectedSpeciesTypes; + } + + public void setSelectedSpeciesTypes(List<StringRef> selectedSpeciesTypes) { + List<StringRef> oldValue = this.selectedSpeciesTypes; + this.selectedSpeciesTypes = selectedSpeciesTypes; + firePropertyChange(PROPERTY_SELECTED_SPECIES_TYPES, oldValue, selectedSpeciesTypes); + } + + public ExportMapModel toModel(String filename) { + ExportMapModel result = ExportMapModel.newModel( + getExportDirectory(), + filename, + getSelectedCampaign(), + getBeginDate(), + getEndDate(), + getSelectedStrates(), + getSelectedRouteTypes(), + getSelectedSpecies(), + getSelectedSpeciesTypes() + ); + return result; + } +} Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/io/exportMap/ExportMapUIModel.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/util/SammoaUtil.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/util/SammoaUtil.java 2012-08-01 16:34:48 UTC (rev 342) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/util/SammoaUtil.java 2012-08-01 16:35:52 UTC (rev 343) @@ -32,6 +32,7 @@ import org.apache.commons.beanutils.PropertyUtils; import org.jdesktop.swingx.decorator.HighlightPredicate; import org.jdesktop.swingx.decorator.Highlighter; +import org.nuiton.util.FileUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -39,6 +40,7 @@ import java.awt.*; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; +import java.io.File; import java.lang.reflect.InvocationTargetException; /** @@ -115,4 +117,76 @@ result.setVisible(true); return result; } + + /** + * Choisir un fichier via un sélecteur graphique de fichiers. + * + * @param parent le component swing appelant le controle + * @param title le titre du dialogue de sélection + * @param buttonLabel le label du boutton d'acceptation + * @param incoming le fichier de base à utilier + * @param filters les filtres + descriptions sur le sélecteur de + * fichiers + * @return le fichier choisi ou le fichier incoming si l'opération a été + * annulée + */ + public static File chooseFile(Component parent, + String title, + String buttonLabel, + File incoming, + String... filters) { + File oldBasedir = FileUtil.getCurrentDirectory(); + if (incoming != null) { + File basedir; + if (incoming.isFile()) { + basedir = incoming.getParentFile(); + } else { + basedir = incoming; + } + if (basedir.exists()) { + FileUtil.setCurrentDirectory(basedir); + } + } + File file = FileUtil.getFile(title, buttonLabel, parent, filters); + if (logger.isDebugEnabled()) { + logger.debug(title + " : " + file); + } + FileUtil.setCurrentDirectory(oldBasedir); + File result = file == null ? incoming : file; + return result; + } + + /** + * Choisir un répertoire via un sélecteur graphique de fichiers. + * + * @param parent le component swing appelant le controle + * @param title le titre de la boite de dialogue de sléection + * @param buttonLabel le label de l'action d'acceptation + * @param incoming le fichier de base à utiliser + * @return le répertoire choisi ou le répertoire incoming si l'opération a + * été annulée + */ + public static File chooseDirectory(Component parent, + String title, + String buttonLabel, + File incoming) { + File oldBasedir = FileUtil.getCurrentDirectory(); + if (incoming != null) { + File basedir; + if (incoming.isFile()) { + basedir = incoming.getParentFile(); + } else { + basedir = incoming; + } + if (basedir.exists()) { + FileUtil.setCurrentDirectory(basedir); + } + } + String file = FileUtil.getDirectory(parent, title, buttonLabel); + if (logger.isDebugEnabled()) { + logger.debug(title + " : " + file); + } + FileUtil.setCurrentDirectory(oldBasedir); + return file == null ? incoming : new File(file); + } } 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-01 16:34:48 UTC (rev 342) +++ trunk/sammoa-ui-swing/src/main/resources/i18n/sammoa-ui-swing_en_GB.properties 2012-08-01 16:35:52 UTC (rev 343) @@ -5,6 +5,7 @@ sammoa.action.about.tip=About sammoa.action.break.tip=Break sammoa.action.cancel=Cancel +sammoa.action.choose.export.directory= sammoa.action.circleback.tip=Circle Back sammoa.action.close=Close sammoa.action.configuration=Configuration @@ -12,6 +13,9 @@ sammoa.action.create=Create sammoa.action.edit=Edit sammoa.action.export=Export +sammoa.action.exportEffortsMap=Export Efforts +sammoa.action.exportMap=Export Maps +sammoa.action.exportObservationsMap=Export Observations sammoa.action.home=Home sammoa.action.home.tip=Home sammoa.action.import=Import @@ -23,6 +27,7 @@ sammoa.action.next.tip=Next sammoa.action.onBoard=On Board sammoa.action.play.tip=Play +sammoa.action.quitExportMaps=Quit sammoa.action.reload.actions=Reload actions sammoa.action.reload.ui=Reload sammoa ui sammoa.action.save=Save @@ -74,9 +79,13 @@ sammoa.label.campaign.name=Name\: sammoa.label.campaign.observer=Observers\: sammoa.label.campaign.period=Period\: +sammoa.label.campaign.period.filter=Period filter sammoa.label.campaign.region=Region\: sammoa.label.campaign.strate=Strates\: sammoa.label.campaign.transect=Transects\: +sammoa.label.exportDirectory=Export directory +sammoa.label.exportEffortsFilename=Export filename (Efforts) +sammoa.label.exportObservationsFilename=Export filename (Observations) sammoa.label.flight=Flight\: sammoa.label.flight.beginDate=Start sammoa.label.flight.comment=Comment\: @@ -88,6 +97,10 @@ sammoa.label.region.code=Code\: sammoa.label.region.name=Name\: sammoa.label.region.species=Species\: +sammoa.label.routeTypeFilter=Route type filter +sammoa.label.speciesFilter=Species filter +sammoa.label.speciesTypeFilter=Species type filter +sammoa.label.strateFilter=Strate filter sammoa.label.systemId=System Id\: sammoa.label.transect.name=Name\: sammoa.label.transect.strate=Strate\: @@ -186,6 +199,8 @@ sammoa.timePattern=HH\:mm\:ss sammoa.title.about=About Sammoa sammoa.title.campaign=Campaign +sammoa.title.choose.export.directory= +sammoa.title.exportshape= sammoa.title.flight=System %1$s - Campaign %2$s - Region %3$s - Flight n°%4$d sammoa.title.home=Home sammoa.title.validation= Modified: trunk/sammoa-ui-swing/src/main/resources/i18n/sammoa-ui-swing_fr_FR.properties =================================================================== --- trunk/sammoa-ui-swing/src/main/resources/i18n/sammoa-ui-swing_fr_FR.properties 2012-08-01 16:34:48 UTC (rev 342) +++ trunk/sammoa-ui-swing/src/main/resources/i18n/sammoa-ui-swing_fr_FR.properties 2012-08-01 16:35:52 UTC (rev 343) @@ -5,6 +5,7 @@ sammoa.action.about.tip=About sammoa.action.break.tip=Break sammoa.action.cancel=Cancel +sammoa.action.choose.export.directory= sammoa.action.circleback.tip=Circle Back sammoa.action.close=Close sammoa.action.configuration=Configuration @@ -12,6 +13,9 @@ sammoa.action.create=Create sammoa.action.edit=Edit sammoa.action.export=Export +sammoa.action.exportEffortsMap=Export des efforts +sammoa.action.exportMap=Export Cartes +sammoa.action.exportObservationsMap=Export des Observations sammoa.action.home=Home sammoa.action.home.tip=Home sammoa.action.import=Import @@ -23,6 +27,7 @@ sammoa.action.next.tip=Next sammoa.action.onBoard=On Board sammoa.action.play.tip=Play +sammoa.action.quitExportMaps=Quitter sammoa.action.reload.actions=Reload actions sammoa.action.reload.ui=Reload sammoa ui sammoa.action.save=Save @@ -74,9 +79,13 @@ sammoa.label.campaign.name=Name\: sammoa.label.campaign.observer=Observers\: sammoa.label.campaign.period=Period\: +sammoa.label.campaign.period.filter=Period filter sammoa.label.campaign.region=Region\: sammoa.label.campaign.strate=Strates\: sammoa.label.campaign.transect=Transects\: +sammoa.label.exportDirectory=Répertoire d'export +sammoa.label.exportEffortsFilename=Nom du fichier (Effort) +sammoa.label.exportObservationsFilename=Nom du fichier (Observations) sammoa.label.flight=Flight\: sammoa.label.flight.beginDate=Start sammoa.label.flight.comment=Comment\: @@ -88,6 +97,10 @@ sammoa.label.region.code=Code\: sammoa.label.region.name=Name\: sammoa.label.region.species=Species\: +sammoa.label.routeTypeFilter=Route type filter +sammoa.label.speciesFilter=Species filter +sammoa.label.speciesTypeFilter=Species type filter +sammoa.label.strateFilter=Strate filter sammoa.label.systemId=System Id\: sammoa.label.transect.name=Name\: sammoa.label.transect.strate=Strate\: @@ -186,6 +199,8 @@ sammoa.timePattern=HH\:mm\:ss sammoa.title.about=About Sammoa sammoa.title.campaign=Campaign +sammoa.title.choose.export.directory= +sammoa.title.exportshape= sammoa.title.flight=System %1$s - Campaign %2$s - Region %3$s - Flight n°%4$d sammoa.title.home=Home sammoa.title.validation= Added: trunk/sammoa-ui-swing/src/main/resources/icons/action-fileChooser.png =================================================================== (Binary files differ) Property changes on: trunk/sammoa-ui-swing/src/main/resources/icons/action-fileChooser.png ___________________________________________________________________ Added: svn:executable + * Added: svn:mime-type + image/png Added: trunk/sammoa-ui-swing/src/test/resources/logback-test.xml =================================================================== --- trunk/sammoa-ui-swing/src/test/resources/logback-test.xml (rev 0) +++ trunk/sammoa-ui-swing/src/test/resources/logback-test.xml 2012-08-01 16:35:52 UTC (rev 343) @@ -0,0 +1,57 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + #%L + SAMMOA :: Application + + $Id$ + $HeadURL: http://svn.forge.codelutin.com/svn/sammoa/trunk/sammoa-ui-swing/src/main/res... $ + %% + 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% + --> + +<configuration> + + <contextName>SAMMOA</contextName> + + <property name="sammoa.log.pattern" value="%date %level [%thread] %logger [:%line] : %msg%n"/> + + <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> + <encoder> + <pattern>${sammoa.log.pattern}</pattern> + </encoder> + </appender> + + <!--<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">--> + <!--<file>${sammoa.log.file}</file>--> + <!--<encoder>--> + <!--<pattern>${sammoa.log.pattern}</pattern>--> + <!--</encoder>--> + <!--<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">--> + <!--<fileNamePattern>${sammoa.log.file}-%d{yyyy-MM-dd}.log</fileNamePattern>--> + <!--<maxHistory>10</maxHistory>--> + <!--</rollingPolicy>--> + <!--</appender>--> + + <logger name="fr.ulr.sammoa" level="INFO"/> + + <root level="ERROR"> + <!--<appender-ref ref="FILE"/>--> + <appender-ref ref="CONSOLE"/> + </root> + +</configuration> Property changes on: trunk/sammoa-ui-swing/src/test/resources/logback-test.xml ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native
participants (1)
-
tchemit@users.forge.codelutin.com