Sammoa-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
August 2012
- 4 participants
- 171 discussions
r340 - in trunk: sammoa-application/src/main/java/fr/ulr/sammoa/application sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence
by tchemit@users.forge.codelutin.com 01 Aug '12
by tchemit@users.forge.codelutin.com 01 Aug '12
01 Aug '12
Author: tchemit
Date: 2012-08-01 18:33:03 +0200 (Wed, 01 Aug 2012)
New Revision: 340
Url: http://forge.codelutin.com/repositories/revision/sammoa/340
Log:
add some methods in Referential servcie
Added:
trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/SpeciesDAOImpl.java
Modified:
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/ReferentialService.java
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/ReferentialService.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/ReferentialService.java 2012-08-01 16:32:14 UTC (rev 339)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/ReferentialService.java 2012-08-01 16:33:03 UTC (rev 340)
@@ -28,7 +28,26 @@
import com.google.common.collect.Maps;
import fr.ulr.sammoa.application.csv.ObserverImportModel;
import fr.ulr.sammoa.application.csv.SpeciesImportModel;
-import fr.ulr.sammoa.persistence.*;
+import fr.ulr.sammoa.persistence.Campaign;
+import fr.ulr.sammoa.persistence.CampaignDAO;
+import fr.ulr.sammoa.persistence.Observer;
+import fr.ulr.sammoa.persistence.ObserverDAO;
+import fr.ulr.sammoa.persistence.Observers;
+import fr.ulr.sammoa.persistence.Region;
+import fr.ulr.sammoa.persistence.RegionDAO;
+import fr.ulr.sammoa.persistence.SammoaDAOHelper;
+import fr.ulr.sammoa.persistence.SammoaPersistence;
+import fr.ulr.sammoa.persistence.Sector;
+import fr.ulr.sammoa.persistence.SectorDAO;
+import fr.ulr.sammoa.persistence.Sectors;
+import fr.ulr.sammoa.persistence.Species;
+import fr.ulr.sammoa.persistence.SpeciesDAO;
+import fr.ulr.sammoa.persistence.Strate;
+import fr.ulr.sammoa.persistence.StrateDAO;
+import fr.ulr.sammoa.persistence.StrateType;
+import fr.ulr.sammoa.persistence.Strates;
+import fr.ulr.sammoa.persistence.Transect;
+import fr.ulr.sammoa.persistence.TransectDAO;
import org.nuiton.topia.TopiaContext;
import org.nuiton.topia.TopiaException;
import org.nuiton.topia.TopiaRuntimeException;
@@ -210,7 +229,7 @@
}
return result;
}
-
+
public String saveCampaign(Campaign campaign) {
Preconditions.checkArgument(campaign != null);
@@ -221,7 +240,7 @@
Preconditions.checkArgument(campaign.getRegion() != null);
String result;
-
+
TopiaContext transaction = persistence.beginTransaction();
try {
@@ -250,9 +269,9 @@
existCampaign.setEndDate(campaign.getEndDate());
dao.update(existCampaign);
}
-
- transaction.commitTransaction();
+ transaction.commitTransaction();
+
} catch (TopiaException e) {
throw new TopiaRuntimeException(e);
@@ -271,7 +290,7 @@
CampaignDAO dao = SammoaDAOHelper.getCampaignDAO(transaction);
result = dao.findByTopiaId(topiaId);
-
+
} catch (TopiaException e) {
throw new TopiaRuntimeException(e);
@@ -283,23 +302,58 @@
public List<Transect> getAllTransects(Campaign campaign) {
- List<Transect> result;
TopiaContext transaction = persistence.beginTransaction();
try {
TransectDAO dao = SammoaDAOHelper.getTransectDAO(transaction);
- result = dao.findAllByCampaignOrderedByName(campaign);
+ List<Transect> result =
+ dao.findAllByCampaignOrderedByName(campaign);
+ return result;
+ } catch (TopiaException e) {
+ throw new TopiaRuntimeException(e);
+ } finally {
+ persistence.endTransaction(transaction);
+ }
+ }
+
+ public List<Strate> getAllStrates(Campaign campaign) {
+ TopiaContext transaction = persistence.beginTransaction();
+ try {
+
+ StrateDAO dao = SammoaDAOHelper.getStrateDAO(transaction);
+
+ List<Strate> result =
+ dao.findAllByCampaignOrderedByCode(campaign);
+ return result;
+
} catch (TopiaException e) {
throw new TopiaRuntimeException(e);
} finally {
persistence.endTransaction(transaction);
}
- return result;
}
+ public List<Species> getAllSpecies(Campaign campaign) {
+ TopiaContext transaction = persistence.beginTransaction();
+ try {
+
+ SpeciesDAO dao = SammoaDAOHelper.getSpeciesDAO(transaction);
+
+ List<Species> result =
+ dao.findAllByRegion(campaign.getRegion());
+ return result;
+
+ } catch (TopiaException e) {
+ throw new TopiaRuntimeException(e);
+
+ } finally {
+ persistence.endTransaction(transaction);
+ }
+ }
+
public int importTransects(String campaignId, Iterable<Transect> transects) {
int result = 0;
@@ -362,7 +416,7 @@
result++;
if (logger.isDebugEnabled()) {
- logger.debug(String.format("Create new transect %1$s"+
+ logger.debug(String.format("Create new transect %1$s" +
"(graphicIndex = %2$d)",
newTransect.getName(),
graphicIndex)
@@ -553,7 +607,42 @@
return result;
}
-
+
+ public List<String> getAllSpeciesTypes() {
+ TopiaContext tx = persistence.beginTransaction();
+ try {
+
+ List<String> result =
+ SammoaDAOHelper.getSpeciesDAO(tx).findAllSpeciesTypes();
+
+ Collections.sort(result);
+
+ return result;
+ } catch (TopiaException e) {
+ throw new TopiaRuntimeException(e);
+
+ } finally {
+ persistence.endTransaction(tx);
+ }
+
+ }
+
+ public List<Species> getAllSpecies() {
+ TopiaContext tx = persistence.beginTransaction();
+ try {
+
+ List<Species> result = SammoaDAOHelper.getSpeciesDAO(tx).findAll();
+ return result;
+
+ } catch (TopiaException e) {
+ throw new TopiaRuntimeException(e);
+
+ } finally {
+ persistence.endTransaction(tx);
+ }
+
+ }
+
public int importObservers(String campaignId, Reader reader) {
TopiaContext transaction = persistence.beginTransaction();
@@ -565,14 +654,14 @@
ObserverDAO observerDAO =
SammoaDAOHelper.getObserverDAO(transaction);
-
+
ObserverImportModel model = new ObserverImportModel(campaign);
Import<Observer> importCsv = Import.newImport(model, reader);
Iterator<Observer> it = importCsv.iterator();
while (it.hasNext()) {
-
+
Observer observer;
observer = it.next();
@@ -602,9 +691,9 @@
}
}
}
-
+
transaction.commitTransaction();
-
+
} catch (TopiaException e) {
throw new TopiaRuntimeException(e);
Added: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/SpeciesDAOImpl.java
===================================================================
--- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/SpeciesDAOImpl.java (rev 0)
+++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/SpeciesDAOImpl.java 2012-08-01 16:33:03 UTC (rev 340)
@@ -0,0 +1,21 @@
+package fr.ulr.sammoa.persistence;
+
+import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
+import org.nuiton.topia.TopiaException;
+
+import java.util.List;
+import java.util.Set;
+
+public class SpeciesDAOImpl<E extends Species> extends SpeciesDAOAbstract<E> {
+
+ public List<String> findAllSpeciesTypes() throws TopiaException {
+ Set<String> result = Sets.newHashSet();
+ List<E> all = findAll();
+ for (E e : all) {
+ result.add(e.getType());
+ }
+ return Lists.newArrayList(result);
+ }
+
+} //SpeciesDAOImpl<E extends Species>
Property changes on: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/SpeciesDAOImpl.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
1
0
r339 - in trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations: . action
by tchemit@users.forge.codelutin.com 01 Aug '12
by tchemit@users.forge.codelutin.com 01 Aug '12
01 Aug '12
Author: tchemit
Date: 2012-08-01 18:32:14 +0200 (Wed, 01 Aug 2012)
New Revision: 339
Url: http://forge.codelutin.com/repositories/revision/sammoa/339
Log:
refacotr and clean observatiosn package
Added:
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/action/
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/MoveToPreviousEditableCellAction.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/action/MoveToPreviousRowEditableAction.java
Removed:
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/ObservationForSelectedRouteHighlightPredicate.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/ObservationRouteTable.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/ObservationTableListSelectionListener.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/RouteNoModificationHighlightPredicate.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/RouteTableListSelectionListener.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/RouteTableModel.java
Modified:
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanel.jaxx
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanelHandler.java
Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanel.jaxx
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanel.jaxx 2012-08-01 15:26:31 UTC (rev 338)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanel.jaxx 2012-08-01 16:32:14 UTC (rev 339)
@@ -36,6 +36,7 @@
fr.ulr.sammoa.ui.swing.flight.FlightUIModel
org.nuiton.validator.bean.list.BeanListValidator
+ org.jdesktop.swingx.JXTable
jaxx.runtime.swing.renderer.DecoratorProviderListCellRenderer
jaxx.runtime.swing.model.GenericListModel
@@ -63,14 +64,14 @@
<RouteTableModel id='routeTableModel'
initializer='new RouteTableModel(flightUIModel)'/>
- <RouteTableListSelectionListener id='routeSelectionModel'
- constructorParams='flightUIModel'/>
+ <!--RouteTableListSelectionListener id='routeSelectionModel'
+ constructorParams='flightUIModel'/-->
<ObservationTableModel id='observationTableModel'
constructorParams='flightUIModel'/>
- <ObservationTableListSelectionListener id='observationSelectionModel'
- constructorParams='flightUIModel'/>
+ <!--ObservationTableListSelectionListener id='observationSelectionModel'
+ constructorParams='flightUIModel'/-->
<!-- validator -->
<BeanListValidator id='routeValidator' genericType='Route'
@@ -131,8 +132,7 @@
<row>
<cell fill='both' weightx='1.0' weighty='1.0' columns='10'>
<JScrollPane id='routeTableScroll'>
- <ObservationRouteTable id='routeTable'
- constructorParams='_("sammoa.timePattern"), routeSelectionModel'/>
+ <JXTable id='routeTable'/>
</JScrollPane>
</cell>
</row>
@@ -161,8 +161,7 @@
<row>
<cell fill='both' weightx='1.0' weighty='1.0' columns='4'>
<JScrollPane id='observationTableScroll'>
- <ObservationRouteTable id='observationTable'
- constructorParams='_("sammoa.timePattern"), observationSelectionModel'/>
+ <JXTable id='observationTable' />
</JScrollPane>
</cell>
</row>
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-01 15:26:31 UTC (rev 338)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanelHandler.java 2012-08-01 16:32:14 UTC (rev 339)
@@ -31,19 +31,29 @@
import fr.ulr.sammoa.persistence.GeoPoint;
import fr.ulr.sammoa.persistence.Observation;
import fr.ulr.sammoa.persistence.ObservationStatus;
+import fr.ulr.sammoa.persistence.Observations;
import fr.ulr.sammoa.persistence.Observer;
import fr.ulr.sammoa.persistence.ObserverPosition;
import fr.ulr.sammoa.persistence.Position;
import fr.ulr.sammoa.persistence.Route;
+import fr.ulr.sammoa.persistence.Routes;
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.action.CircleBackAction;
+import fr.ulr.sammoa.ui.swing.observations.action.MoveToNextEditableCellAction;
+import fr.ulr.sammoa.ui.swing.observations.action.MoveToNextRowEditableAction;
+import fr.ulr.sammoa.ui.swing.observations.action.MoveToPreviousEditableCellAction;
+import fr.ulr.sammoa.ui.swing.observations.action.MoveToPreviousRowEditableAction;
import fr.ulr.sammoa.ui.swing.flight.FlightUIHandler;
import fr.ulr.sammoa.ui.swing.flight.FlightUIModel;
+import fr.ulr.sammoa.ui.swing.util.AbstractRowHighlightPredicate;
import fr.ulr.sammoa.ui.swing.util.SammoaUtil;
import fr.ulr.sammoa.ui.swing.util.TableDataChangeListener;
+import fr.ulr.sammoa.ui.swing.util.TextCellEditor;
import jaxx.runtime.SwingUtil;
+import jaxx.runtime.swing.JAXXWidgetUtil;
+import jaxx.runtime.swing.editor.cell.NumberCellEditor;
import jaxx.runtime.validator.swing.SwingListValidatorDataLocator;
import jaxx.runtime.validator.swing.SwingListValidatorHighlightPredicate;
import jaxx.runtime.validator.swing.SwingListValidatorMessageTableModel;
@@ -64,16 +74,29 @@
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JTable;
+import javax.swing.JTextField;
+import javax.swing.ListSelectionModel;
+import javax.swing.border.LineBorder;
+import javax.swing.event.ListSelectionEvent;
+import javax.swing.event.ListSelectionListener;
+import javax.swing.event.TableModelEvent;
+import javax.swing.event.TableModelListener;
import javax.swing.table.TableCellEditor;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumn;
import javax.swing.table.TableModel;
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;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
+import java.util.Date;
import java.util.List;
+import static org.nuiton.i18n.I18n._;
import static org.nuiton.i18n.I18n.n_;
/**
@@ -136,6 +159,53 @@
JXTable dataTable = ui.getRouteTable();
+ init(dataTable, new ListSelectionListener() {
+ @Override
+ public void valueChanged(ListSelectionEvent e) {
+
+ if (!e.getValueIsAdjusting()) {
+
+ ListSelectionModel listSelectionModel =
+ (ListSelectionModel) e.getSource();
+ int firstIndex = e.getFirstIndex();
+ int lastIndex = e.getLastIndex();
+ Integer newSelectedRow = null;
+
+ if (listSelectionModel.isSelectionEmpty()) {
+
+ // no selection
+ } else if (listSelectionModel.isSelectedIndex(firstIndex)) {
+
+ // use first index
+ newSelectedRow = firstIndex;
+ } else if (listSelectionModel.isSelectedIndex(lastIndex)) {
+
+ // use last index
+ newSelectedRow = lastIndex;
+ }
+ FlightUIModel flightUIModel = ui.getFlightUIModel();
+ List<Route> routes = flightUIModel.getRoutes();
+ Route route = null;
+
+ if (newSelectedRow != null &&
+ newSelectedRow < routes.size()) {
+ route = routes.get(newSelectedRow);
+
+ if (logger.isInfoEnabled()) {
+ logger.info("Select route from index {}", newSelectedRow);
+ }
+ } else {
+ if (logger.isInfoEnabled()) {
+ logger.info("No route selected");
+ }
+ }
+
+ // set new route in model to validate
+ flightUIModel.setRouteEditBean(route);
+ }
+ }
+ });
+
SwingUtil.setI18nTableHeaderRenderer(
dataTable,
n_("sammoa.observations.routeTable.column.effortNumber"),
@@ -307,6 +377,55 @@
n_("sammoa.observations.observationTable.column.circleback.tip")
);
+// init(dataTable, new ObservationTableListSelectionListener(ui.getFlightUIModel()));
+ init(dataTable, new ListSelectionListener() {
+ @Override
+ public void valueChanged(ListSelectionEvent e) {
+
+ FlightUIModel flightUIModel = ui.getFlightUIModel();
+
+ if (!e.getValueIsAdjusting()) {
+
+ ListSelectionModel listSelectionModel =
+ (ListSelectionModel) e.getSource();
+ int firstIndex = e.getFirstIndex();
+ int lastIndex = e.getLastIndex();
+ Integer newSelectedRow = null;
+
+ if (listSelectionModel.isSelectionEmpty()) {
+
+ // no selection
+ } else if (listSelectionModel.isSelectedIndex(firstIndex)) {
+
+ // use first index
+ newSelectedRow = firstIndex;
+ } else if (listSelectionModel.isSelectedIndex(lastIndex)) {
+
+ // use last index
+ newSelectedRow = lastIndex;
+ }
+ List<Observation> observations = flightUIModel.getObservations();
+ Observation observation = null;
+
+ if (newSelectedRow != null &&
+ newSelectedRow < observations.size()) {
+ observation = observations.get(newSelectedRow);
+
+ if (logger.isInfoEnabled()) {
+ logger.info("Select observation from index {}", newSelectedRow);
+ }
+ } else {
+ if (logger.isInfoEnabled()) {
+ logger.info("No observation selected");
+ }
+ }
+
+ // set new observation in model to validate
+ flightUIModel.setObservationEditBean(observation);
+ }
+ }
+ });
+
// set renderer and editor as button for circle back action
int circleBack = ObservationTableModel.ObservationColumn.CIRCLE_BACK.ordinal();
CircleBackEditorRenderer editorRenderer = new CircleBackEditorRenderer(getFlightUIModel());
@@ -451,6 +570,112 @@
return SammoaUIContext.getUIContext().getDecoratorProvider();
}
+
+ public static void init(final JXTable table,
+ ListSelectionListener selectionListener) {
+
+ // make tab key to focus only next editable cell
+ table.setSelectionModel(new ForceSelectionSelectionModel());
+
+ table.setSortable(false);
+
+ table.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);
+
+ final Action moveToNextEditableCell = new MoveToNextEditableCellAction(table);
+ final Action moveToPreviousEditableCell = new MoveToPreviousEditableCellAction(table);
+ final Action moveToPreviousRowEditableCell = new MoveToPreviousRowEditableAction(table);
+ final Action moveToNextRowEditableCell = new MoveToNextRowEditableAction(table);
+
+ // redéfini les comportements par defaut de la table par les notres
+ table.getActionMap().put("selectNextRowCell", moveToNextEditableCell);
+ table.getActionMap().put("selectNextColumnCell", moveToNextEditableCell);
+ table.getActionMap().put("selectNextColumn", moveToNextEditableCell);
+ table.getActionMap().put("selectPreviousColumn", moveToPreviousEditableCell);
+
+ // Key adapter à ajouter sur les éditeurs où l'on souhaite gérer les
+ // touches "entrer", "gauche", "doite" de facon personnalisée.
+ KeyListener goNextCellAdapter = new KeyAdapter() {
+ @Override
+ public void keyPressed(KeyEvent e) {
+ if (e.getKeyCode() == KeyEvent.VK_ENTER ||
+ e.getKeyCode() == KeyEvent.VK_RIGHT) {
+ e.consume();
+ moveToNextEditableCell.actionPerformed(null);
+ } else if (e.getKeyCode() == KeyEvent.VK_LEFT) {
+ e.consume();
+ moveToPreviousEditableCell.actionPerformed(null);
+ } else if (e.getKeyCode() == KeyEvent.VK_UP) {
+ e.consume();
+ moveToPreviousRowEditableCell.actionPerformed(null);
+ } else if (e.getKeyCode() == KeyEvent.VK_DOWN) {
+ e.consume();
+ moveToNextRowEditableCell.actionPerformed(null);
+ }
+ }
+ };
+
+ // TextCellEditor
+ {
+ TextCellEditor editor = new TextCellEditor();
+ JTextField textField = editor.getComponent();
+ textField.addKeyListener(goNextCellAdapter);
+ textField.setBorder(new LineBorder(Color.GRAY, 2));
+// textField.setBorder(BasicBorders.getTextFieldBorder());
+ table.setDefaultEditor(String.class, editor);
+ }
+ // NumberCellEditor
+ {
+ NumberCellEditor<Integer> editor = JAXXWidgetUtil.newNumberTableCellEditor(Integer.class, false);
+ editor.getNumberEditor().setSelectAllTextOnError(true);
+ JTextField textField = editor.getNumberEditor().getTextField();
+ textField.addKeyListener(goNextCellAdapter);
+ textField.setBorder(new LineBorder(Color.GRAY, 2));
+// textField.setBorder(BasicBorders.getTextFieldBorder());
+ table.setDefaultEditor(int.class, editor);
+ table.setDefaultEditor(Integer.class, editor);
+ }
+
+ // Boolean editor
+ {
+ TableCellEditor editor = table.getDefaultEditor(Boolean.class);
+ table.setDefaultEditor(boolean.class, editor);
+ TableCellRenderer renderer = table.getDefaultRenderer(Boolean.class);
+ table.setDefaultRenderer(boolean.class, renderer);
+ }
+
+ // Renderers
+ TableCellRenderer defaultDateCellRenderer = table.getDefaultRenderer(Date.class);
+ table.setDefaultRenderer(Date.class, JAXXWidgetUtil.newDateTableCellRenderer(defaultDateCellRenderer, _("sammoa.timePattern")));
+
+ table.getSelectionModel().addListSelectionListener(selectionListener);
+
+ SwingUtil.scrollToTableSelection(table);
+
+ table.getModel().addTableModelListener(new TableModelListener() {
+ @Override
+ public void tableChanged(TableModelEvent e) {
+ switch (e.getType()) {
+ case TableModelEvent.INSERT:
+
+ // auto select new added line
+ table.getSelectionModel().setSelectionInterval(e.getFirstRow(), e.getFirstRow());
+ Rectangle rect = table.getCellRect(e.getFirstRow(), 0, true);
+ table.scrollRectToVisible(rect);
+ break;
+
+ case TableModelEvent.DELETE:
+ case TableModelEvent.UPDATE:
+
+ // auto select first line ?
+ if (table.getSelectedRow() < 0 && table.getRowCount() > 0) {
+ table.getSelectionModel().setSelectionInterval(0, 0);
+ }
+ break;
+ }
+ }
+ });
+ }
+
private static class RouteValidatorDataLocator implements SwingListValidatorDataLocator<Route> {
@Override
@@ -558,4 +783,74 @@
}
}
+ public static class ObservationForSelectedRouteHighlightPredicate extends AbstractRowHighlightPredicate {
+
+ protected FlightUIModel UIModel;
+
+ public ObservationForSelectedRouteHighlightPredicate(FlightUIModel UIModel) {
+ this.UIModel = UIModel;
+ }
+
+ @Override
+ protected boolean isHighlighted(int rowIndex) {
+
+ Route selectedRoute = UIModel.getRouteEditBean();
+
+ boolean result;
+ if (selectedRoute != null) {
+
+ Route nextRoute = UIModel.getNextRoute(selectedRoute);
+
+ Observation observation = getValueAt(rowIndex);
+
+ result = Observations.inRoute(observation, selectedRoute, nextRoute);
+
+ } else {
+ result = false;
+ }
+ return result;
+ }
+
+ @Override
+ protected Observation getValueAt(int rowIndex) {
+ return UIModel.getObservations().get(rowIndex);
+ }
+ }
+
+ public class RouteNoModificationHighlightPredicate extends AbstractRowHighlightPredicate {
+
+ protected RouteTableModel model;
+
+ public RouteNoModificationHighlightPredicate(RouteTableModel model) {
+ this.model = model;
+ }
+
+ @Override
+ protected boolean isHighlighted(int rowIndex) {
+
+ Route route = getValueAt(rowIndex);
+
+ boolean result = false;
+
+ if (route.isDeleted()) {
+ // do nothing
+
+ } else {
+
+ int previousRouteIndex = rowIndex - 1;
+ if (previousRouteIndex >= 0) {
+
+ Route previousRoute = getValueAt(previousRouteIndex);
+
+ result = Routes.equal(route, previousRoute);
+ }
+ }
+ return result;
+ }
+
+ @Override
+ protected Route getValueAt(int rowIndex) {
+ return model.getRow(rowIndex);
+ }
+ }
}
Deleted: 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-01 15:26:31 UTC (rev 338)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/ForceSelectionSelectionModel.java 2012-08-01 16:32:14 UTC (rev 339)
@@ -1,59 +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.observations;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.swing.DefaultListSelectionModel;
-
-/**
- * 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 {
-
- private static final Logger logger =
- LoggerFactory.getLogger(ForceSelectionSelectionModel.class);
-
- private static final long serialVersionUID = 1L;
-
- @Override
- public int getSelectionMode() {
- return SINGLE_SELECTION;
- }
-
- @Override
- public void removeSelectionInterval(int index0, int index1) {
- // don't do anything
- if (logger.isDebugEnabled()) {
- logger.debug("don't remove selection interval ({}, {})",
- index0, index1);
- }
- }
-}
Added: 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 (rev 0)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/ForceSelectionSelectionModel.java 2012-08-01 16:32:14 UTC (rev 339)
@@ -0,0 +1,59 @@
+/*
+ * #%L
+ * SAMMOA :: UI Swing
+ *
+ * $Id$
+ * $HeadURL: http://svn.forge.codelutin.com/svn/sammoa/trunk/sammoa-ui-swing/src/main/ja… $
+ * %%
+ * 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.observations;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.swing.DefaultListSelectionModel;
+
+/**
+ * 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 {
+
+ private static final Logger logger =
+ LoggerFactory.getLogger(ForceSelectionSelectionModel.class);
+
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public int getSelectionMode() {
+ return SINGLE_SELECTION;
+ }
+
+ @Override
+ public void removeSelectionInterval(int index0, int index1) {
+ // don't do anything
+ if (logger.isDebugEnabled()) {
+ logger.debug("don't remove selection interval ({}, {})",
+ index0, index1);
+ }
+ }
+}
Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/ForceSelectionSelectionModel.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Deleted: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/ObservationForSelectedRouteHighlightPredicate.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/ObservationForSelectedRouteHighlightPredicate.java 2012-08-01 15:26:31 UTC (rev 338)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/ObservationForSelectedRouteHighlightPredicate.java 2012-08-01 16:32:14 UTC (rev 339)
@@ -1,69 +0,0 @@
-package fr.ulr.sammoa.ui.swing.observations;
-/*
- * #%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 fr.ulr.sammoa.persistence.Observation;
-import fr.ulr.sammoa.persistence.Observations;
-import fr.ulr.sammoa.persistence.Route;
-import fr.ulr.sammoa.ui.swing.flight.FlightUIModel;
-import fr.ulr.sammoa.ui.swing.util.AbstractRowHighlightPredicate;
-
-/**
- * Created: 16/07/12
- *
- * @author fdesbois <desbois(a)codelutin.com>
- */
-public class ObservationForSelectedRouteHighlightPredicate extends AbstractRowHighlightPredicate {
-
- protected FlightUIModel UIModel;
-
- public ObservationForSelectedRouteHighlightPredicate(FlightUIModel UIModel) {
- this.UIModel = UIModel;
- }
-
- @Override
- protected boolean isHighlighted(int rowIndex) {
-
- Route selectedRoute = UIModel.getRouteEditBean();
-
- boolean result;
- if (selectedRoute != null) {
-
- Route nextRoute = UIModel.getNextRoute(selectedRoute);
-
- Observation observation = getValueAt(rowIndex);
-
- result = Observations.inRoute(observation, selectedRoute, nextRoute);
-
- } else {
- result = false;
- }
- return result;
- }
-
- @Override
- protected Observation getValueAt(int rowIndex) {
- return UIModel.getObservations().get(rowIndex);
- }
-}
Deleted: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/ObservationRouteTable.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/ObservationRouteTable.java 2012-08-01 15:26:31 UTC (rev 338)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/ObservationRouteTable.java 2012-08-01 16:32:14 UTC (rev 339)
@@ -1,321 +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.observations;
-
-import fr.ulr.sammoa.ui.swing.util.TextCellEditor;
-import jaxx.runtime.SwingUtil;
-import jaxx.runtime.swing.JAXXWidgetUtil;
-import jaxx.runtime.swing.editor.cell.NumberCellEditor;
-import org.jdesktop.swingx.JXTable;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.swing.AbstractAction;
-import javax.swing.JTextField;
-import javax.swing.border.LineBorder;
-import javax.swing.event.ListSelectionListener;
-import javax.swing.event.TableModelEvent;
-import javax.swing.table.TableCellEditor;
-import javax.swing.table.TableCellRenderer;
-import java.awt.Color;
-import java.awt.Rectangle;
-import java.awt.event.ActionEvent;
-import java.awt.event.KeyAdapter;
-import java.awt.event.KeyEvent;
-import java.awt.event.KeyListener;
-import java.util.Date;
-
-/**
- * Redefinition d'une table pour initialiser la selection par defaut
- * et forcer toujours une selection.
- * <p/>
- * http://www.jroller.com/santhosh/entry/tweaking_jtable_editing
- *
- * @author echatellier
- */
-public class ObservationRouteTable extends JXTable {
-
- private static final Logger logger = LoggerFactory.getLogger(ObservationRouteTable.class);
-
- private static final long serialVersionUID = 1L;
-
- /** Action qui se déplace à la prochaine cellule editable. */
- protected AbstractAction moveToNextEditableCell = new AbstractAction() {
-
- private static final long serialVersionUID = 1L;
-
- @Override
- public void actionPerformed(ActionEvent evt) {
-
- int currentRow = getSelectedRow();
- int currentColumn = getSelectedColumn();
-
- logger.debug("Move to next editable cell, {}, {}", currentRow, currentColumn);
-
- while (currentRow <= getRowCount() || currentColumn <= getColumnCount()) {
-
- // go to next cell
- currentColumn++;
-
- // select next cell
- if (currentColumn >= getColumnCount()) {
- currentColumn = 0;
- currentRow++;
- }
-
- if (isCellEditable(currentRow, currentColumn)) {
- doSelectCell(currentRow, currentColumn);
-// // select cell
-// setColumnSelectionInterval(currentColumn, currentColumn);
-// setRowSelectionInterval(currentRow, currentRow);
-// editCellAt(currentRow, currentColumn);
-// logger.debug("While select cell at {}, {}", currentRow, currentColumn);
- break;
- } else {
- logger.debug("Cell at {}, {} not editable", currentRow, currentColumn);
- }
- }
- }
- };
-
- /** Action qui se déplace à la cellule editable précédente. */
- protected AbstractAction moveToPreviousEditableCell = new AbstractAction() {
-
- private static final long serialVersionUID = 1L;
-
- @Override
- public void actionPerformed(ActionEvent evt) {
-
- int currentRow = getSelectedRow();
- int currentColumn = getSelectedColumn();
-
- logger.debug("Move to previous editable cell, {}, {}", currentRow, currentColumn);
-
-
- while (currentRow > 0 || currentColumn > 0) {
-
- // go to next cell
- currentColumn--;
-
- // select next cell
- if (currentColumn < 0) {
- currentColumn = getColumnCount() - 1;
- currentRow--;
- }
-
- if (isCellEditable(currentRow, currentColumn)) {
- doSelectCell(currentRow, currentColumn);
-// // select cell
-// setColumnSelectionInterval(currentColumn, currentColumn);
-// setRowSelectionInterval(currentRow, currentRow);
-// logger.debug("While select cell at {}, {}", currentRow, currentColumn);
-// editCellAt(currentRow, currentColumn);
- break;
- } else {
- logger.debug("Cell at {}, {} not editable", currentRow, currentColumn);
- }
- }
- }
- };
-
- /** Action qui se déplace à la cellule editable de la ligne du dessus (il faut que la cellule courant soit aussi éditable). */
- protected AbstractAction moveToPreviousRowEditableCell = new AbstractAction() {
-
- private static final long serialVersionUID = 1L;
-
- @Override
- public void actionPerformed(ActionEvent evt) {
-
- int currentRow = getSelectedRow();
- int currentColumn = getSelectedColumn();
-
- if (isCellEditable(currentRow, currentColumn)) {
- logger.debug("Move to previous row editable cell, {}, {}", currentRow, currentColumn);
- currentRow--;
-
- if (currentRow < 0) {
- logger.debug("No previous row");
- } else {
- doSelectCell(currentRow, currentColumn);
- }
- } else {
- logger.debug("Cell at {}, {} not editable", currentRow, currentColumn);
- }
- }
- };
-
- /** Action qui se déplace à la cellule editable de la ligne du dessus (il faut que la cellule courant soit aussi éditable). */
- protected AbstractAction moveToNextRowEditableCell = new AbstractAction() {
-
- private static final long serialVersionUID = 1L;
-
- @Override
- public void actionPerformed(ActionEvent evt) {
-
- int currentRow = getSelectedRow();
- int currentColumn = getSelectedColumn();
-
- if (isCellEditable(currentRow, currentColumn)) {
- logger.debug("Move to next row editable cell, {}, {}", currentRow, currentColumn);
- currentRow++;
-
- if (currentRow >= getRowCount()) {
- logger.debug("No next row");
- } else {
- doSelectCell(currentRow, currentColumn);
- }
- } else {
- logger.debug("Cell at {}, {} not editable", currentRow, currentColumn);
- }
- }
- };
-
- protected void doSelectCell(int currentRow, int currentColumn) {
- setColumnSelectionInterval(currentColumn, currentColumn);
- setRowSelectionInterval(currentRow, currentRow);
- logger.debug("While select cell at {}, {}", currentRow, currentColumn);
- editCellAt(currentRow, currentColumn);
- }
-
- /**
- * Key adapter à ajouter sur les éditeurs où l'on souhaite gérer les
- * touches "entrer", "gauche", "doite" de facon personnalisée.
- */
-// protected KeyListener goNextCellAdapter = new KeyAdapter() {
-// @Override
-// public void keyPressed(KeyEvent e) {
-// if (e.getKeyCode() == KeyEvent.VK_ENTER || e.getKeyCode() == KeyEvent.VK_RIGHT) {
-// e.consume();
-// moveToNextEditableCell.actionPerformed(null);
-// } else if (e.getKeyCode() == KeyEvent.VK_LEFT) {
-// e.consume();
-// moveToPreviousEditableCell.actionPerformed(null);
-// }
-// }
-// };
- public ObservationRouteTable(String datePattern,
- ListSelectionListener selectionListener) {
-
- // make tab key to focus only next editable cell
- setSelectionModel(new ForceSelectionSelectionModel());
-
- setSortable(false);
-
- putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);
-
- // redéfini les comportements par defaut de la table par les notres
- getActionMap().put("selectNextRowCell", moveToNextEditableCell);
- getActionMap().put("selectNextColumnCell", moveToNextEditableCell);
- getActionMap().put("selectNextColumn", moveToNextEditableCell);
- getActionMap().put("selectPreviousColumn", moveToPreviousEditableCell);
-
- // Key adapter à ajouter sur les éditeurs où l'on souhaite gérer les
- // touches "entrer", "gauche", "doite" de facon personnalisée.
- KeyListener goNextCellAdapter = new KeyAdapter() {
- @Override
- public void keyPressed(KeyEvent e) {
- if (e.getKeyCode() == KeyEvent.VK_ENTER ||
- e.getKeyCode() == KeyEvent.VK_RIGHT) {
- e.consume();
- moveToNextEditableCell.actionPerformed(null);
- } else if (e.getKeyCode() == KeyEvent.VK_LEFT) {
- e.consume();
- moveToPreviousEditableCell.actionPerformed(null);
- } else if (e.getKeyCode() == KeyEvent.VK_UP) {
- e.consume();
- moveToPreviousRowEditableCell.actionPerformed(null);
- } else if (e.getKeyCode() == KeyEvent.VK_DOWN) {
- e.consume();
- moveToNextRowEditableCell.actionPerformed(null);
- }
- }
- };
-
- // TextCellEditor
- {
- TextCellEditor editor = new TextCellEditor();
- JTextField textField = editor.getComponent();
- textField.addKeyListener(goNextCellAdapter);
- textField.setBorder(new LineBorder(Color.GRAY, 2));
-// textField.setBorder(BasicBorders.getTextFieldBorder());
- setDefaultEditor(String.class, editor);
- }
- // NumberCellEditor
- {
- NumberCellEditor<Integer> editor = JAXXWidgetUtil.newNumberTableCellEditor(Integer.class, false);
- editor.getNumberEditor().setSelectAllTextOnError(true);
- JTextField textField = editor.getNumberEditor().getTextField();
- textField.addKeyListener(goNextCellAdapter);
- textField.setBorder(new LineBorder(Color.GRAY, 2));
-// textField.setBorder(BasicBorders.getTextFieldBorder());
- setDefaultEditor(int.class, editor);
- setDefaultEditor(Integer.class, editor);
- }
-
- // Boolean editor
- {
- TableCellEditor editor = getDefaultEditor(Boolean.class);
- setDefaultEditor(boolean.class, editor);
- TableCellRenderer renderer = getDefaultRenderer(Boolean.class);
- setDefaultRenderer(boolean.class, renderer);
- }
-
- // Renderers
- TableCellRenderer defaultDateCellRenderer = getDefaultRenderer(Date.class);
- setDefaultRenderer(Date.class, JAXXWidgetUtil.newDateTableCellRenderer(defaultDateCellRenderer, datePattern));
-
- if (selectionListener != null) {
- getSelectionModel().addListSelectionListener(selectionListener);
- }
-
- SwingUtil.scrollToTableSelection(this);
- }
-
- /** Appellé lorsque les données changent. */
- @Override
- public void tableChanged(TableModelEvent e) {
- super.tableChanged(e);
-
- switch (e.getType()) {
- case TableModelEvent.INSERT:
-
- // auto select new added line
- getSelectionModel().setSelectionInterval(e.getFirstRow(), e.getFirstRow());
- Rectangle rect = getCellRect(e.getFirstRow(), 0, true);
- scrollRectToVisible(rect);
- break;
-
- case TableModelEvent.DELETE:
- case TableModelEvent.UPDATE:
-
- // auto select first line ?
- if (getSelectedRow() < 0 && getRowCount() > 0) {
- getSelectionModel().setSelectionInterval(0, 0);
- }
- break;
- }
- }
-}
Deleted: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/ObservationTableListSelectionListener.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/ObservationTableListSelectionListener.java 2012-08-01 15:26:31 UTC (rev 338)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/ObservationTableListSelectionListener.java 2012-08-01 16:32:14 UTC (rev 339)
@@ -1,99 +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.observations;
-
-import com.google.common.base.Preconditions;
-import fr.ulr.sammoa.persistence.Observation;
-import fr.ulr.sammoa.ui.swing.flight.FlightUIModel;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.swing.ListSelectionModel;
-import javax.swing.event.ListSelectionEvent;
-import javax.swing.event.ListSelectionListener;
-import java.util.List;
-
-/**
- * Listen the observation table selection model to set the
- * {@link FlightUIModel#observationEditBean} which isten the validator.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 0.2
- */
-public class ObservationTableListSelectionListener implements ListSelectionListener {
-
- private static final Logger logger =
- LoggerFactory.getLogger(ObservationTableListSelectionListener.class);
-
- protected final FlightUIModel flightUIModel;
-
- public ObservationTableListSelectionListener(FlightUIModel flightUIModel) {
- Preconditions.checkNotNull(flightUIModel);
- this.flightUIModel = flightUIModel;
- }
-
- @Override
- public void valueChanged(ListSelectionEvent e) {
-
- if (!e.getValueIsAdjusting()) {
-
- ListSelectionModel listSelectionModel =
- (ListSelectionModel) e.getSource();
- int firstIndex = e.getFirstIndex();
- int lastIndex = e.getLastIndex();
- Integer newSelectedRow = null;
-
- if (listSelectionModel.isSelectionEmpty()) {
-
- // no selection
- } else if (listSelectionModel.isSelectedIndex(firstIndex)) {
-
- // use first index
- newSelectedRow = firstIndex;
- } else if (listSelectionModel.isSelectedIndex(lastIndex)) {
-
- // use last index
- newSelectedRow = lastIndex;
- }
- List<Observation> observations = flightUIModel.getObservations();
- Observation observation = null;
-
- if (newSelectedRow != null &&
- newSelectedRow < observations.size()) {
- observation = observations.get(newSelectedRow);
-
- if (logger.isInfoEnabled()) {
- logger.info("Select observation from index {}", newSelectedRow);
- }
- } else {
- if (logger.isInfoEnabled()) {
- logger.info("No observation selected");
- }
- }
-
- // set new observation in model to validate
- flightUIModel.setObservationEditBean(observation);
- }
- }
-}
Deleted: 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-01 15:26:31 UTC (rev 338)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/ObservationTableModel.java 2012-08-01 16:32:14 UTC (rev 339)
@@ -1,265 +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.observations;
-
-import com.google.common.base.Strings;
-import fr.ulr.sammoa.persistence.Campaign;
-import fr.ulr.sammoa.persistence.Flight;
-import fr.ulr.sammoa.persistence.Observation;
-import fr.ulr.sammoa.persistence.ObservationStatus;
-import fr.ulr.sammoa.persistence.Observer;
-import fr.ulr.sammoa.persistence.ObserverPosition;
-import fr.ulr.sammoa.persistence.Region;
-import fr.ulr.sammoa.persistence.Species;
-import fr.ulr.sammoa.persistence.SpeciesImpl;
-import fr.ulr.sammoa.ui.swing.flight.FlightUIModel;
-import fr.ulr.sammoa.ui.swing.util.SammoaUtil;
-import jaxx.runtime.SwingUtil;
-import org.apache.commons.lang3.tuple.Pair;
-
-import javax.swing.table.AbstractTableModel;
-import java.util.Date;
-import java.util.List;
-
-/** @author sletellier <letellier(a)codelutin.com> */
-public class ObservationTableModel extends AbstractTableModel {
-
- private static final long serialVersionUID = 1L;
-
- protected FlightUIModel flightUIModel;
-
- public ObservationTableModel(FlightUIModel flightUIModel) {
- this.flightUIModel = flightUIModel;
- }
-
- @Override
- public int getRowCount() {
- return getBean().size();
- }
-
- @Override
- public int getColumnCount() {
- return ObservationColumn.values().length;
- }
-
- @Override
- public String getColumnName(int column) {
- ObservationColumn observationColumn = ObservationColumn.valueOf(column);
- return observationColumn.getColumnName();
- }
-
- @Override
- public Class<?> getColumnClass(int column) {
- ObservationColumn observationColumn = ObservationColumn.valueOf(column);
- return observationColumn.getType();
- }
-
- @Override
- public boolean isCellEditable(int row, int column) {
- ObservationColumn observationColumn = ObservationColumn.valueOf(column);
- boolean result = observationColumn.isEditable();
- return result;
- }
-
- @Override
- public Object getValueAt(int row, int column) {
- Observation observation = getBean(row);
- ObservationColumn observationColumn = ObservationColumn.valueOf(column);
- Object result = observationColumn.getValue(observation);
- return result;
- }
-
- @Override
- public void setValueAt(Object aValue, int row, int column) {
- Observation observation = getBean(row);
- ObservationColumn observationColumn = ObservationColumn.valueOf(column);
- Flight flight = observation.getFlight();
- Campaign campaign = flight.getCampaign();
- Region region = campaign.getRegion();
- observationColumn.setValue(observation, aValue, region);
- fireTableRowsUpdated(row, row);
- }
-
- public int getBeanIndex(Observation bean) {
- int row = getBean().indexOf(bean);
- return row;
- }
-
- public List<Observation> getBean() {
- return flightUIModel.getObservations();
- }
-
- public Observation getBean(int row) {
- SwingUtil.ensureRowIndex(this, row);
- Observation bean = getBean().get(row);
- return bean;
- }
-
- public Pair<Integer, Integer> getCell(Observation bean, String fieldName) {
-
- int row = getBeanIndex(bean);
- int col = ObservationColumn.getValueFromFieldName(fieldName).ordinal();
-
- Pair<Integer, Integer> cell = Pair.of(row, col);
- return cell;
- }
-
- protected enum ObservationColumn {
-
- OBSERVATION_NUMBER(false, Observation.PROPERTY_OBSERVATION_NUMBER),
- OBSERVATION_TIME(false, Date.class, Observation.PROPERTY_OBSERVATION_TIME),
- OBSERVER(false,
- Observation.PROPERTY_OBSERVER_POSITION,
- ObserverPosition.PROPERTY_OBSERVER,
- Observer.PROPERTY_INITIALS
- ),
- POD_SIZE(true, int.class, Observation.PROPERTY_POD_SIZE),
- SPECIES(true, Observation.PROPERTY_SPECIES, Species.PROPERTY_CODE) {
- @Override
- public void setValue(Observation bean, Object value, Region region) {
- String newValue = (String) value;
-
- if (!Strings.isNullOrEmpty(newValue)) {
-
- String oldValue = bean.getSpecies() == null
- ? null : bean.getSpecies().getCode();
-
- if (!newValue.equals(oldValue)) {
-
- // Always use a new instance for different value to
- // fire change on Observation and not on Species
- Species species = new SpeciesImpl((String) value, region);
- bean.setSpecies(species);
- }
-
- } else {
- bean.setSpecies(null);
- }
- }
- },
- AGE(true, Observation.PROPERTY_AGE),
- DEC_ANGLE(true, int.class, Observation.PROPERTY_DEC_ANGLE),
- CUE(true, Observation.PROPERTY_CUE),
- BEHAVIOUR(true, Observation.PROPERTY_BEHAVIOUR) {
- @Override
- public void setValue(Observation bean, Object value, Region region) {
- String newValue = (String) value;
- if (Strings.isNullOrEmpty(newValue)) {
- newValue = null;
- }
- bean.setBehaviour(newValue);
- }
- },
- SWIM_DIR(true, int.class, Observation.PROPERTY_SWIM_DIR),
- CALVES(true, Observation.PROPERTY_CALVES),
- PHOTO(true, boolean.class, Observation.PROPERTY_PHOTO),
- COMMENT(true, Observation.PROPERTY_COMMENT),
- OBSERVATION_STATUS(true, ObservationStatus.class, Observation.PROPERTY_OBSERVATION_STATUS),
- DELETED(true, boolean.class, Observation.PROPERTY_DELETED),
- CIRCLE_BACK(true, Observation.class, "circleBack") {
- @Override
- public Object getValue(Observation bean) {
- return bean;
- }
-
- @Override
- public void setValue(Observation bean, Object value, Region region) {
- }
- };
-
- private boolean editable;
-
- private String[] beanProperties;
-
- private Class<?> type;
-
- private final String columnName;
-
- private ObservationColumn(boolean editable,
- String... beanProperties) {
- this(editable, String.class, beanProperties);
- }
-
- private ObservationColumn(boolean editable,
- Class<?> type,
- String... beanProperties) {
- this.editable = editable;
- this.type = type;
- this.beanProperties = beanProperties;
- this.columnName = beanProperties[0];
- }
-
- public Class<?> getType() {
- return type;
- }
-
- public String getColumnName() {
- return columnName;
- }
-
- public int getColumnIndex() {
- return ordinal();
- }
-
- public Object getValue(Observation bean) {
- Object result = SammoaUtil.getPropertyValue(bean, beanProperties);
- return result;
- }
-
- public void setValue(Observation bean, Object value, Region region) {
- if (type.isPrimitive() && value == null) {
- // can not set a null value to a primitive field
- } else {
- SammoaUtil.setPropertyValue(bean, value, beanProperties);
- }
- }
-
- public boolean isEditable() {
- boolean result = editable;
- return result;
- }
-
- public static ObservationColumn valueOf(int ordinal) {
- for (ObservationColumn value : values()) {
- if (ordinal == value.ordinal()) {
- return value;
- }
- }
- throw new EnumConstantNotPresentException(ObservationColumn.class,
- "ordinal=" + ordinal);
- }
-
- public static ObservationColumn getValueFromFieldName(String fieldName) {
- ObservationColumn result = null;
- for (ObservationColumn value : values()) {
- if (fieldName.equals(value.columnName)) {
- result = value;
- break;
- }
- }
- return result;
- }
- }
-}
Added: 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 (rev 0)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/ObservationTableModel.java 2012-08-01 16:32:14 UTC (rev 339)
@@ -0,0 +1,265 @@
+/*
+ * #%L
+ * SAMMOA :: UI Swing
+ * *
+ * $Id$
+ * $HeadURL: http://svn.forge.codelutin.com/svn/sammoa/trunk/sammoa-ui-swing/src/main/ja… $
+ * %%
+ * 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.observations;
+
+import com.google.common.base.Strings;
+import fr.ulr.sammoa.persistence.Campaign;
+import fr.ulr.sammoa.persistence.Flight;
+import fr.ulr.sammoa.persistence.Observation;
+import fr.ulr.sammoa.persistence.ObservationStatus;
+import fr.ulr.sammoa.persistence.Observer;
+import fr.ulr.sammoa.persistence.ObserverPosition;
+import fr.ulr.sammoa.persistence.Region;
+import fr.ulr.sammoa.persistence.Species;
+import fr.ulr.sammoa.persistence.SpeciesImpl;
+import fr.ulr.sammoa.ui.swing.flight.FlightUIModel;
+import fr.ulr.sammoa.ui.swing.util.SammoaUtil;
+import jaxx.runtime.SwingUtil;
+import org.apache.commons.lang3.tuple.Pair;
+
+import javax.swing.table.AbstractTableModel;
+import java.util.Date;
+import java.util.List;
+
+/** @author sletellier <letellier(a)codelutin.com> */
+public class ObservationTableModel extends AbstractTableModel {
+
+ private static final long serialVersionUID = 1L;
+
+ protected FlightUIModel flightUIModel;
+
+ public ObservationTableModel(FlightUIModel flightUIModel) {
+ this.flightUIModel = flightUIModel;
+ }
+
+ @Override
+ public int getRowCount() {
+ return getBean().size();
+ }
+
+ @Override
+ public int getColumnCount() {
+ return ObservationColumn.values().length;
+ }
+
+ @Override
+ public String getColumnName(int column) {
+ ObservationColumn observationColumn = ObservationColumn.valueOf(column);
+ return observationColumn.getColumnName();
+ }
+
+ @Override
+ public Class<?> getColumnClass(int column) {
+ ObservationColumn observationColumn = ObservationColumn.valueOf(column);
+ return observationColumn.getType();
+ }
+
+ @Override
+ public boolean isCellEditable(int row, int column) {
+ ObservationColumn observationColumn = ObservationColumn.valueOf(column);
+ boolean result = observationColumn.isEditable();
+ return result;
+ }
+
+ @Override
+ public Object getValueAt(int row, int column) {
+ Observation observation = getBean(row);
+ ObservationColumn observationColumn = ObservationColumn.valueOf(column);
+ Object result = observationColumn.getValue(observation);
+ return result;
+ }
+
+ @Override
+ public void setValueAt(Object aValue, int row, int column) {
+ Observation observation = getBean(row);
+ ObservationColumn observationColumn = ObservationColumn.valueOf(column);
+ Flight flight = observation.getFlight();
+ Campaign campaign = flight.getCampaign();
+ Region region = campaign.getRegion();
+ observationColumn.setValue(observation, aValue, region);
+ fireTableRowsUpdated(row, row);
+ }
+
+ public int getBeanIndex(Observation bean) {
+ int row = getBean().indexOf(bean);
+ return row;
+ }
+
+ public List<Observation> getBean() {
+ return flightUIModel.getObservations();
+ }
+
+ public Observation getBean(int row) {
+ SwingUtil.ensureRowIndex(this, row);
+ Observation bean = getBean().get(row);
+ return bean;
+ }
+
+ public Pair<Integer, Integer> getCell(Observation bean, String fieldName) {
+
+ int row = getBeanIndex(bean);
+ int col = ObservationColumn.getValueFromFieldName(fieldName).ordinal();
+
+ Pair<Integer, Integer> cell = Pair.of(row, col);
+ return cell;
+ }
+
+ public enum ObservationColumn {
+
+ OBSERVATION_NUMBER(false, Observation.PROPERTY_OBSERVATION_NUMBER),
+ OBSERVATION_TIME(false, Date.class, Observation.PROPERTY_OBSERVATION_TIME),
+ OBSERVER(false,
+ Observation.PROPERTY_OBSERVER_POSITION,
+ ObserverPosition.PROPERTY_OBSERVER,
+ Observer.PROPERTY_INITIALS
+ ),
+ POD_SIZE(true, int.class, Observation.PROPERTY_POD_SIZE),
+ SPECIES(true, Observation.PROPERTY_SPECIES, Species.PROPERTY_CODE) {
+ @Override
+ public void setValue(Observation bean, Object value, Region region) {
+ String newValue = (String) value;
+
+ if (!Strings.isNullOrEmpty(newValue)) {
+
+ String oldValue = bean.getSpecies() == null
+ ? null : bean.getSpecies().getCode();
+
+ if (!newValue.equals(oldValue)) {
+
+ // Always use a new instance for different value to
+ // fire change on Observation and not on Species
+ Species species = new SpeciesImpl((String) value, region);
+ bean.setSpecies(species);
+ }
+
+ } else {
+ bean.setSpecies(null);
+ }
+ }
+ },
+ AGE(true, Observation.PROPERTY_AGE),
+ DEC_ANGLE(true, int.class, Observation.PROPERTY_DEC_ANGLE),
+ CUE(true, Observation.PROPERTY_CUE),
+ BEHAVIOUR(true, Observation.PROPERTY_BEHAVIOUR) {
+ @Override
+ public void setValue(Observation bean, Object value, Region region) {
+ String newValue = (String) value;
+ if (Strings.isNullOrEmpty(newValue)) {
+ newValue = null;
+ }
+ bean.setBehaviour(newValue);
+ }
+ },
+ SWIM_DIR(true, int.class, Observation.PROPERTY_SWIM_DIR),
+ CALVES(true, Observation.PROPERTY_CALVES),
+ PHOTO(true, boolean.class, Observation.PROPERTY_PHOTO),
+ COMMENT(true, Observation.PROPERTY_COMMENT),
+ OBSERVATION_STATUS(true, ObservationStatus.class, Observation.PROPERTY_OBSERVATION_STATUS),
+ DELETED(true, boolean.class, Observation.PROPERTY_DELETED),
+ CIRCLE_BACK(true, Observation.class, "circleBack") {
+ @Override
+ public Object getValue(Observation bean) {
+ return bean;
+ }
+
+ @Override
+ public void setValue(Observation bean, Object value, Region region) {
+ }
+ };
+
+ private boolean editable;
+
+ private String[] beanProperties;
+
+ private Class<?> type;
+
+ private final String columnName;
+
+ private ObservationColumn(boolean editable,
+ String... beanProperties) {
+ this(editable, String.class, beanProperties);
+ }
+
+ private ObservationColumn(boolean editable,
+ Class<?> type,
+ String... beanProperties) {
+ this.editable = editable;
+ this.type = type;
+ this.beanProperties = beanProperties;
+ this.columnName = beanProperties[0];
+ }
+
+ public Class<?> getType() {
+ return type;
+ }
+
+ public String getColumnName() {
+ return columnName;
+ }
+
+ public int getColumnIndex() {
+ return ordinal();
+ }
+
+ public Object getValue(Observation bean) {
+ Object result = SammoaUtil.getPropertyValue(bean, beanProperties);
+ return result;
+ }
+
+ public void setValue(Observation bean, Object value, Region region) {
+ if (type.isPrimitive() && value == null) {
+ // can not set a null value to a primitive field
+ } else {
+ SammoaUtil.setPropertyValue(bean, value, beanProperties);
+ }
+ }
+
+ public boolean isEditable() {
+ boolean result = editable;
+ return result;
+ }
+
+ public static ObservationColumn valueOf(int ordinal) {
+ for (ObservationColumn value : values()) {
+ if (ordinal == value.ordinal()) {
+ return value;
+ }
+ }
+ throw new EnumConstantNotPresentException(ObservationColumn.class,
+ "ordinal=" + ordinal);
+ }
+
+ public static ObservationColumn getValueFromFieldName(String fieldName) {
+ ObservationColumn result = null;
+ for (ObservationColumn value : values()) {
+ if (fieldName.equals(value.columnName)) {
+ result = value;
+ break;
+ }
+ }
+ return result;
+ }
+ }
+}
Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/ObservationTableModel.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Deleted: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/RouteNoModificationHighlightPredicate.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/RouteNoModificationHighlightPredicate.java 2012-08-01 15:26:31 UTC (rev 338)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/RouteNoModificationHighlightPredicate.java 2012-08-01 16:32:14 UTC (rev 339)
@@ -1,65 +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.observations;
-
-import fr.ulr.sammoa.persistence.Route;
-import fr.ulr.sammoa.persistence.Routes;
-import fr.ulr.sammoa.ui.swing.util.AbstractRowHighlightPredicate;
-
-public class RouteNoModificationHighlightPredicate extends AbstractRowHighlightPredicate {
-
- protected RouteTableModel model;
-
- public RouteNoModificationHighlightPredicate(RouteTableModel model) {
- this.model = model;
- }
-
- @Override
- protected boolean isHighlighted(int rowIndex) {
-
- Route route = getValueAt(rowIndex);
-
- boolean result = false;
-
- if (route.isDeleted()) {
- // do nothing
-
- } else {
-
- int previousRouteIndex = rowIndex - 1;
- if (previousRouteIndex >= 0) {
-
- Route previousRoute = getValueAt(previousRouteIndex);
-
- result = Routes.equal(route, previousRoute);
- }
- }
- return result;
- }
-
- @Override
- protected Route getValueAt(int rowIndex) {
- return model.getRow(rowIndex);
- }
-}
Deleted: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/RouteTableListSelectionListener.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/RouteTableListSelectionListener.java 2012-08-01 15:26:31 UTC (rev 338)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/RouteTableListSelectionListener.java 2012-08-01 16:32:14 UTC (rev 339)
@@ -1,99 +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.observations;
-
-import com.google.common.base.Preconditions;
-import fr.ulr.sammoa.persistence.Route;
-import fr.ulr.sammoa.ui.swing.flight.FlightUIModel;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.swing.ListSelectionModel;
-import javax.swing.event.ListSelectionEvent;
-import javax.swing.event.ListSelectionListener;
-import java.util.List;
-
-/**
- * Listen the route table selection model to set the
- * {@link FlightUIModel#routeEditBean} which isten the validator.
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 0.2
- */
-public class RouteTableListSelectionListener implements ListSelectionListener {
-
- private static final Logger logger =
- LoggerFactory.getLogger(RouteTableListSelectionListener.class);
-
- protected final FlightUIModel flightUIModel;
-
- public RouteTableListSelectionListener(FlightUIModel flightUIModel) {
- Preconditions.checkNotNull(flightUIModel);
- this.flightUIModel = flightUIModel;
- }
-
- @Override
- public void valueChanged(ListSelectionEvent e) {
-
- if (!e.getValueIsAdjusting()) {
-
- ListSelectionModel listSelectionModel =
- (ListSelectionModel) e.getSource();
- int firstIndex = e.getFirstIndex();
- int lastIndex = e.getLastIndex();
- Integer newSelectedRow = null;
-
- if (listSelectionModel.isSelectionEmpty()) {
-
- // no selection
- } else if (listSelectionModel.isSelectedIndex(firstIndex)) {
-
- // use first index
- newSelectedRow = firstIndex;
- } else if (listSelectionModel.isSelectedIndex(lastIndex)) {
-
- // use last index
- newSelectedRow = lastIndex;
- }
- List<Route> routes = flightUIModel.getRoutes();
- Route route = null;
-
- if (newSelectedRow != null &&
- newSelectedRow < routes.size()) {
- route = routes.get(newSelectedRow);
-
- if (logger.isInfoEnabled()) {
- logger.info("Select route from index {}", newSelectedRow);
- }
- } else {
- if (logger.isInfoEnabled()) {
- logger.info("No route selected");
- }
- }
-
- // set new route in model to validate
- flightUIModel.setRouteEditBean(route);
- }
- }
-}
Deleted: 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-01 15:26:31 UTC (rev 338)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/RouteTableModel.java 2012-08-01 16:32:14 UTC (rev 339)
@@ -1,242 +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.observations;
-
-import fr.ulr.sammoa.persistence.Flight;
-import fr.ulr.sammoa.persistence.Route;
-import fr.ulr.sammoa.persistence.Transect;
-import fr.ulr.sammoa.persistence.TransectFlight;
-import fr.ulr.sammoa.ui.swing.flight.FlightUIModel;
-import fr.ulr.sammoa.ui.swing.util.SammoaUtil;
-import jaxx.runtime.SwingUtil;
-import org.apache.commons.lang3.tuple.Pair;
-
-import javax.swing.table.AbstractTableModel;
-import java.util.Date;
-import java.util.List;
-
-/** @author sletellier <letellier(a)codelutin.com> */
-public class RouteTableModel extends AbstractTableModel {
-
- private static final long serialVersionUID = 1L;
-
- protected FlightUIModel flightUIModel;
-
- public RouteTableModel(FlightUIModel flightUIModel) {
- this.flightUIModel = flightUIModel;
- }
-
- @Override
- public Class<?> getColumnClass(int column) {
- RouteColumn routeColumn = RouteColumn.valueOf(column);
- return routeColumn.getType();
- }
-
- @Override
- public int getRowCount() {
- return getBean().size();
- }
-
- public Route getRow(int index) {
- return getBean().get(index);
- }
-
- public List<Route> getBean() {
- return flightUIModel.getRoutes();
- }
-
- @Override
- public int getColumnCount() {
- return RouteColumn.values().length;
- }
-
- @Override
- public String getColumnName(int column) {
- return RouteColumn.valueOf(column).getColumnName();
- }
-
- @Override
- public boolean isCellEditable(int row, int column) {
- Route route = getRow(row);
- RouteColumn routeColumn = RouteColumn.valueOf(column);
- boolean result = routeColumn.isEditable(route);
- return result;
- }
-
- @Override
- public Object getValueAt(int row, int column) {
- Route route = getRow(row);
- RouteColumn routeColumn = RouteColumn.valueOf(column);
- Object result = routeColumn.getValue(route, this);
- return result;
- }
-
- @Override
- public void setValueAt(Object aValue, int row, int column) {
- Route route = getRow(row);
- RouteColumn routeColumn = RouteColumn.valueOf(column);
- routeColumn.setValue(route, aValue);
- fireTableRowsUpdated(row, row);
- }
-
- public int getBeanIndex(Route bean) {
- int row = getBean().indexOf(bean);
- return row;
- }
-
- public Route getBean(int row) {
- SwingUtil.ensureRowIndex(this, row);
- Route bean = getBean().get(row);
- return bean;
- }
-
- public Pair<Integer, Integer> getCell(Route bean, String fieldName) {
-
- int row = getBeanIndex(bean);
- int col = RouteColumn.getValueFromFieldName(fieldName).ordinal();
-
- Pair<Integer, Integer> cell = Pair.of(row, col);
- return cell;
- }
-
- protected Flight getFlight() {
- return flightUIModel.getFlight();
- }
-
- protected enum RouteColumn {
-
- EFFORT_NUMBER(false, Route.PROPERTY_EFFORT_NUMBER),
- BEGIN_TIME(false, Date.class, Route.PROPERTY_BEGIN_TIME),
- ROUTE_TYPE(false, Route.PROPERTY_ROUTE_TYPE),
- TRANSECT(false,
- Route.PROPERTY_TRANSECT_FLIGHT,
- TransectFlight.PROPERTY_TRANSECT,
- Transect.PROPERTY_NAME
- ) {
- @Override
- public Object getValue(Route bean, RouteTableModel model) {
- Object result;
- TransectFlight transectFlight = bean.getTransectFlight();
- if (transectFlight != null) {
-
- Transect transect = transectFlight.getTransect();
-
- // retrieve the index of the transectFlight in the flight
- int index = model.getFlight().getTransectFlightIndex(transectFlight);
-
- result = transect.getName() + " (" + index + ")";
-
- } else {
- result = null;
- }
- return result;
- }
- },
- SEA_STATE(true, int.class, Route.PROPERTY_SEA_STATE),
- SWELL(true, int.class, Route.PROPERTY_SWELL),
- TURBIDITY(true, int.class, Route.PROPERTY_TURBIDITY),
- SKY_GLINT(true, int.class, Route.PROPERTY_SKY_GLINT),
- GLARE_FROM(true, Integer.class, Route.PROPERTY_GLARE_FROM),
- GLARE_TO(true, Integer.class, Route.PROPERTY_GLARE_TO),
- GLARE_SEVERITY(true, int.class, Route.PROPERTY_GLARE_SEVERITY),
- GLARE_UNDER(true, boolean.class, Route.PROPERTY_GLARE_UNDER),
- CLOUD_COVER(true, int.class, Route.PROPERTY_CLOUD_COVER),
- SUBJECTIVE_CONDITIONS(true, Route.PROPERTY_SUBJECTIVE_CONDITIONS),
- UNEXPECTED_LEFT(true, Route.PROPERTY_UNEXPECTED_LEFT),
- UNEXEPECTED_RIGHT(true, Route.PROPERTY_UNEXPECTED_RIGHT),
- COMMENT(true, Route.PROPERTY_COMMENT),
- DELETED(true, boolean.class, Route.PROPERTY_DELETED);
-
- private final boolean editable;
-
- private final String[] beanProperties;
-
- private final Class<?> type;
-
- private final String columnName;
-
-
- private RouteColumn(boolean editable,
- String... beanProperties) {
- this(editable, null, beanProperties);
- }
-
- private RouteColumn(boolean editable,
- Class<?> type,
- String... beanProperties) {
- this.editable = editable;
- this.type = type;
- this.beanProperties = beanProperties;
- this.columnName = beanProperties[0];
- }
-
- public Class<?> getType() {
- return type;
- }
-
- public String getColumnName() {
- return columnName;
- }
-
- public Object getValue(Route bean, RouteTableModel model) {
- Object result = SammoaUtil.getPropertyValue(bean, beanProperties);
- return result;
- }
-
- public void setValue(Route bean, Object value) {
- if (type.isPrimitive() && value==null) {
- // can not set a null value to a primitive field
- } else {
- SammoaUtil.setPropertyValue(bean, value, beanProperties);
- }
- }
-
- public boolean isEditable(Route bean) {
- boolean result = editable;
- return result;
- }
-
- public static RouteColumn valueOf(int ordinal) {
- for (RouteColumn value : values()) {
- if (ordinal == value.ordinal()) {
- return value;
- }
- }
- throw new EnumConstantNotPresentException(RouteColumn.class,
- "ordinal=" + ordinal);
- }
-
- public static RouteColumn getValueFromFieldName(String fieldName) {
- RouteColumn result = null;
- for (RouteColumn value : values()) {
- if (fieldName.equals(value.columnName)) {
- result = value;
- break;
- }
- }
- return result;
- }
- }
-}
Added: 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 (rev 0)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/RouteTableModel.java 2012-08-01 16:32:14 UTC (rev 339)
@@ -0,0 +1,242 @@
+/*
+ * #%L
+ * SAMMOA :: UI Swing
+ * *
+ * $Id$
+ * $HeadURL: http://svn.forge.codelutin.com/svn/sammoa/trunk/sammoa-ui-swing/src/main/ja… $
+ * %%
+ * 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.observations;
+
+import fr.ulr.sammoa.persistence.Flight;
+import fr.ulr.sammoa.persistence.Route;
+import fr.ulr.sammoa.persistence.Transect;
+import fr.ulr.sammoa.persistence.TransectFlight;
+import fr.ulr.sammoa.ui.swing.flight.FlightUIModel;
+import fr.ulr.sammoa.ui.swing.util.SammoaUtil;
+import jaxx.runtime.SwingUtil;
+import org.apache.commons.lang3.tuple.Pair;
+
+import javax.swing.table.AbstractTableModel;
+import java.util.Date;
+import java.util.List;
+
+/** @author sletellier <letellier(a)codelutin.com> */
+public class RouteTableModel extends AbstractTableModel {
+
+ private static final long serialVersionUID = 1L;
+
+ protected FlightUIModel flightUIModel;
+
+ public RouteTableModel(FlightUIModel flightUIModel) {
+ this.flightUIModel = flightUIModel;
+ }
+
+ @Override
+ public Class<?> getColumnClass(int column) {
+ RouteColumn routeColumn = RouteColumn.valueOf(column);
+ return routeColumn.getType();
+ }
+
+ @Override
+ public int getRowCount() {
+ return getBean().size();
+ }
+
+ public Route getRow(int index) {
+ return getBean().get(index);
+ }
+
+ public List<Route> getBean() {
+ return flightUIModel.getRoutes();
+ }
+
+ @Override
+ public int getColumnCount() {
+ return RouteColumn.values().length;
+ }
+
+ @Override
+ public String getColumnName(int column) {
+ return RouteColumn.valueOf(column).getColumnName();
+ }
+
+ @Override
+ public boolean isCellEditable(int row, int column) {
+ Route route = getRow(row);
+ RouteColumn routeColumn = RouteColumn.valueOf(column);
+ boolean result = routeColumn.isEditable(route);
+ return result;
+ }
+
+ @Override
+ public Object getValueAt(int row, int column) {
+ Route route = getRow(row);
+ RouteColumn routeColumn = RouteColumn.valueOf(column);
+ Object result = routeColumn.getValue(route, this);
+ return result;
+ }
+
+ @Override
+ public void setValueAt(Object aValue, int row, int column) {
+ Route route = getRow(row);
+ RouteColumn routeColumn = RouteColumn.valueOf(column);
+ routeColumn.setValue(route, aValue);
+ fireTableRowsUpdated(row, row);
+ }
+
+ public int getBeanIndex(Route bean) {
+ int row = getBean().indexOf(bean);
+ return row;
+ }
+
+ public Route getBean(int row) {
+ SwingUtil.ensureRowIndex(this, row);
+ Route bean = getBean().get(row);
+ return bean;
+ }
+
+ public Pair<Integer, Integer> getCell(Route bean, String fieldName) {
+
+ int row = getBeanIndex(bean);
+ int col = RouteColumn.getValueFromFieldName(fieldName).ordinal();
+
+ Pair<Integer, Integer> cell = Pair.of(row, col);
+ return cell;
+ }
+
+ protected Flight getFlight() {
+ return flightUIModel.getFlight();
+ }
+
+ protected enum RouteColumn {
+
+ EFFORT_NUMBER(false, Route.PROPERTY_EFFORT_NUMBER),
+ BEGIN_TIME(false, Date.class, Route.PROPERTY_BEGIN_TIME),
+ ROUTE_TYPE(false, Route.PROPERTY_ROUTE_TYPE),
+ TRANSECT(false,
+ Route.PROPERTY_TRANSECT_FLIGHT,
+ TransectFlight.PROPERTY_TRANSECT,
+ Transect.PROPERTY_NAME
+ ) {
+ @Override
+ public Object getValue(Route bean, RouteTableModel model) {
+ Object result;
+ TransectFlight transectFlight = bean.getTransectFlight();
+ if (transectFlight != null) {
+
+ Transect transect = transectFlight.getTransect();
+
+ // retrieve the index of the transectFlight in the flight
+ int index = model.getFlight().getTransectFlightIndex(transectFlight);
+
+ result = transect.getName() + " (" + index + ")";
+
+ } else {
+ result = null;
+ }
+ return result;
+ }
+ },
+ SEA_STATE(true, int.class, Route.PROPERTY_SEA_STATE),
+ SWELL(true, int.class, Route.PROPERTY_SWELL),
+ TURBIDITY(true, int.class, Route.PROPERTY_TURBIDITY),
+ SKY_GLINT(true, int.class, Route.PROPERTY_SKY_GLINT),
+ GLARE_FROM(true, Integer.class, Route.PROPERTY_GLARE_FROM),
+ GLARE_TO(true, Integer.class, Route.PROPERTY_GLARE_TO),
+ GLARE_SEVERITY(true, int.class, Route.PROPERTY_GLARE_SEVERITY),
+ GLARE_UNDER(true, boolean.class, Route.PROPERTY_GLARE_UNDER),
+ CLOUD_COVER(true, int.class, Route.PROPERTY_CLOUD_COVER),
+ SUBJECTIVE_CONDITIONS(true, Route.PROPERTY_SUBJECTIVE_CONDITIONS),
+ UNEXPECTED_LEFT(true, Route.PROPERTY_UNEXPECTED_LEFT),
+ UNEXEPECTED_RIGHT(true, Route.PROPERTY_UNEXPECTED_RIGHT),
+ COMMENT(true, Route.PROPERTY_COMMENT),
+ DELETED(true, boolean.class, Route.PROPERTY_DELETED);
+
+ private final boolean editable;
+
+ private final String[] beanProperties;
+
+ private final Class<?> type;
+
+ private final String columnName;
+
+
+ private RouteColumn(boolean editable,
+ String... beanProperties) {
+ this(editable, null, beanProperties);
+ }
+
+ private RouteColumn(boolean editable,
+ Class<?> type,
+ String... beanProperties) {
+ this.editable = editable;
+ this.type = type;
+ this.beanProperties = beanProperties;
+ this.columnName = beanProperties[0];
+ }
+
+ public Class<?> getType() {
+ return type;
+ }
+
+ public String getColumnName() {
+ return columnName;
+ }
+
+ public Object getValue(Route bean, RouteTableModel model) {
+ Object result = SammoaUtil.getPropertyValue(bean, beanProperties);
+ return result;
+ }
+
+ public void setValue(Route bean, Object value) {
+ if (type.isPrimitive() && value==null) {
+ // can not set a null value to a primitive field
+ } else {
+ SammoaUtil.setPropertyValue(bean, value, beanProperties);
+ }
+ }
+
+ public boolean isEditable(Route bean) {
+ boolean result = editable;
+ return result;
+ }
+
+ public static RouteColumn valueOf(int ordinal) {
+ for (RouteColumn value : values()) {
+ if (ordinal == value.ordinal()) {
+ return value;
+ }
+ }
+ throw new EnumConstantNotPresentException(RouteColumn.class,
+ "ordinal=" + ordinal);
+ }
+
+ public static RouteColumn getValueFromFieldName(String fieldName) {
+ RouteColumn result = null;
+ for (RouteColumn value : values()) {
+ if (fieldName.equals(value.columnName)) {
+ result = value;
+ break;
+ }
+ }
+ return result;
+ }
+ }
+}
Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/RouteTableModel.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/observations/action/MoveToNextEditableCellAction.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/action/MoveToNextEditableCellAction.java (rev 0)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/action/MoveToNextEditableCellAction.java 2012-08-01 16:32:14 UTC (rev 339)
@@ -0,0 +1,67 @@
+package fr.ulr.sammoa.ui.swing.observations.action;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.swing.AbstractAction;
+import javax.swing.JTable;
+import java.awt.event.ActionEvent;
+
+/**
+* Action to edit next editable cell from selected cell.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.5
+*/
+public class MoveToNextEditableCellAction extends AbstractAction {
+ private static final long serialVersionUID = 1L;
+
+ private static final Logger logger =
+ LoggerFactory.getLogger(MoveToNextEditableCellAction.class);
+
+ protected final JTable table;
+
+ public MoveToNextEditableCellAction(JTable table) {
+ this.table = table;
+ }
+
+
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ int currentRow = table.getSelectedRow();
+ int currentColumn = table.getSelectedColumn();
+
+ logger.debug("Move to next editable cell, {}, {}", currentRow, currentColumn);
+
+ while (currentRow <= table.getRowCount() || currentColumn <= table.getColumnCount()) {
+
+ // go to next cell
+ currentColumn++;
+
+ // select next cell
+ if (currentColumn >= table.getColumnCount()) {
+ currentColumn = 0;
+ currentRow++;
+ }
+
+ if (table.isCellEditable(currentRow, currentColumn)) {
+ doSelectCell(currentRow, currentColumn);
+// // select cell
+// setColumnSelectionInterval(currentColumn, currentColumn);
+// setRowSelectionInterval(currentRow, currentRow);
+// editCellAt(currentRow, currentColumn);
+// logger.debug("While select cell at {}, {}", currentRow, currentColumn);
+ break;
+ } else {
+ logger.debug("Cell at {}, {} not editable", currentRow, currentColumn);
+ }
+ }
+ }
+
+ protected void doSelectCell(int currentRow, int currentColumn) {
+ table.setColumnSelectionInterval(currentColumn, currentColumn);
+ table.setRowSelectionInterval(currentRow, currentRow);
+ logger.debug("While select cell at {}, {}", currentRow, currentColumn);
+ table.editCellAt(currentRow, currentColumn);
+ }
+}
Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/action/MoveToNextEditableCellAction.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/observations/action/MoveToNextRowEditableAction.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/action/MoveToNextRowEditableAction.java (rev 0)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/action/MoveToNextRowEditableAction.java 2012-08-01 16:32:14 UTC (rev 339)
@@ -0,0 +1,53 @@
+package fr.ulr.sammoa.ui.swing.observations.action;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.swing.AbstractAction;
+import javax.swing.JTable;
+import java.awt.event.ActionEvent;
+
+/**
+* Action to edit next row only if selected cell is editable.
+*
+* @author tchemit <chemit(a)codelutin.com>
+* @since 0.5
+*/
+public class MoveToNextRowEditableAction extends AbstractAction {
+
+ private static final long serialVersionUID = 1L;
+
+ private static final Logger logger = LoggerFactory.getLogger(MoveToNextRowEditableAction.class);
+
+ protected final JTable table;
+
+ public MoveToNextRowEditableAction(JTable table) {
+ this.table = table;
+ }
+
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ int currentRow = table.getSelectedRow();
+ int currentColumn = table.getSelectedColumn();
+
+ if (table.isCellEditable(currentRow, currentColumn)) {
+ logger.debug("Move to next row editable cell, {}, {}", currentRow, currentColumn);
+ currentRow++;
+
+ if (currentRow >= table.getRowCount()) {
+ logger.debug("No next row");
+ } else {
+ doSelectCell(currentRow, currentColumn);
+ }
+ } else {
+ logger.debug("Cell at {}, {} not editable", currentRow, currentColumn);
+ }
+ }
+
+ protected void doSelectCell(int currentRow, int currentColumn) {
+ table.setColumnSelectionInterval(currentColumn, currentColumn);
+ table.setRowSelectionInterval(currentRow, currentRow);
+ logger.debug("While select cell at {}, {}", currentRow, currentColumn);
+ table.editCellAt(currentRow, currentColumn);
+ }
+}
Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/action/MoveToNextRowEditableAction.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/observations/action/MoveToPreviousEditableCellAction.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/action/MoveToPreviousEditableCellAction.java (rev 0)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/action/MoveToPreviousEditableCellAction.java 2012-08-01 16:32:14 UTC (rev 339)
@@ -0,0 +1,66 @@
+package fr.ulr.sammoa.ui.swing.observations.action;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.swing.AbstractAction;
+import javax.swing.JTable;
+import java.awt.event.ActionEvent;
+
+/**
+ * Action to edit previous editable cell from selected cell.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.5
+ */
+public class MoveToPreviousEditableCellAction extends AbstractAction {
+ private static final long serialVersionUID = 1L;
+
+ private static final Logger logger =
+ LoggerFactory.getLogger(MoveToPreviousEditableCellAction.class);
+
+ protected final JTable table;
+
+ public MoveToPreviousEditableCellAction(JTable table) {
+ this.table = table;
+ }
+
+ @Override
+ public void actionPerformed(ActionEvent e) {
+ int currentRow = table.getSelectedRow();
+ int currentColumn = table.getSelectedColumn();
+
+ logger.debug("Move to previous editable cell, {}, {}", currentRow, currentColumn);
+
+ while (currentRow > 0 || currentColumn > 0) {
+
+ // go to next cell
+ currentColumn--;
+
+ // select next cell
+ if (currentColumn < 0) {
+ currentColumn = table.getColumnCount() - 1;
+ currentRow--;
+ }
+
+ if (table.isCellEditable(currentRow, currentColumn)) {
+ doSelectCell(currentRow, currentColumn);
+// // select cell
+// setColumnSelectionInterval(currentColumn, currentColumn);
+// setRowSelectionInterval(currentRow, currentRow);
+// logger.debug("While select cell at {}, {}", currentRow, currentColumn);
+// editCellAt(currentRow, currentColumn);
+ break;
+ } else {
+ logger.debug("Cell at {}, {} not editable", currentRow, currentColumn);
+ }
+ }
+ }
+
+ protected void doSelectCell(int currentRow, int currentColumn) {
+ table.setColumnSelectionInterval(currentColumn, currentColumn);
+ table.setRowSelectionInterval(currentRow, currentRow);
+ logger.debug("While select cell at {}, {}", currentRow, currentColumn);
+ table.editCellAt(currentRow, currentColumn);
+ }
+}
Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/action/MoveToPreviousEditableCellAction.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/observations/action/MoveToPreviousRowEditableAction.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/action/MoveToPreviousRowEditableAction.java (rev 0)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/action/MoveToPreviousRowEditableAction.java 2012-08-01 16:32:14 UTC (rev 339)
@@ -0,0 +1,53 @@
+package fr.ulr.sammoa.ui.swing.observations.action;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.swing.AbstractAction;
+import javax.swing.JTable;
+import java.awt.event.ActionEvent;
+
+/**
+* Action to edit previous row only if selected cell is editable.
+ *
+ * @author tchemit <chemit(a)codelutin.com>
+ * @since 0.5
+*/
+public class MoveToPreviousRowEditableAction extends AbstractAction {
+ private static final long serialVersionUID = 1L;
+
+ private static final Logger logger = LoggerFactory.getLogger(MoveToPreviousRowEditableAction.class);
+
+ protected final JTable table;
+
+ public MoveToPreviousRowEditableAction(JTable table) {
+ this.table = table;
+ }
+
+ @Override
+ public void actionPerformed(ActionEvent e) {
+
+ int currentRow = table.getSelectedRow();
+ int currentColumn = table.getSelectedColumn();
+
+ if (table.isCellEditable(currentRow, currentColumn)) {
+ logger.debug("Move to previous row editable cell, {}, {}", currentRow, currentColumn);
+ currentRow--;
+
+ if (currentRow < 0) {
+ logger.debug("No previous row");
+ } else {
+ doSelectCell(currentRow, currentColumn);
+ }
+ } else {
+ logger.debug("Cell at {}, {} not editable", currentRow, currentColumn);
+ }
+ }
+
+ protected void doSelectCell(int currentRow, int currentColumn) {
+ table.setColumnSelectionInterval(currentColumn, currentColumn);
+ table.setRowSelectionInterval(currentRow, currentRow);
+ logger.debug("While select cell at {}, {}", currentRow, currentColumn);
+ table.editCellAt(currentRow, currentColumn);
+ }
+}
Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/action/MoveToPreviousRowEditableAction.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
1
0
r338 - tags/sammoa-0.4.1/sammoa-application/src/main/java/fr/ulr/sammoa/application
by fdesbois@users.forge.codelutin.com 01 Aug '12
by fdesbois@users.forge.codelutin.com 01 Aug '12
01 Aug '12
Author: fdesbois
Date: 2012-08-01 17:26:31 +0200 (Wed, 01 Aug 2012)
New Revision: 338
Url: http://forge.codelutin.com/repositories/revision/sammoa/338
Log:
refs #1378 : issue with GpsConfig default values
Modified:
tags/sammoa-0.4.1/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaConfig.java
Modified: tags/sammoa-0.4.1/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaConfig.java
===================================================================
--- tags/sammoa-0.4.1/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaConfig.java 2012-08-01 13:38:03 UTC (rev 337)
+++ tags/sammoa-0.4.1/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaConfig.java 2012-08-01 15:26:31 UTC (rev 338)
@@ -26,6 +26,7 @@
import com.google.common.base.Preconditions;
import com.google.common.base.Throwables;
+import fr.ulr.sammoa.application.gps.GpsConfig;
import fr.ulr.sammoa.persistence.AutoSaveListener;
import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
import org.nuiton.util.ApplicationConfig;
@@ -91,6 +92,7 @@
try {
applicationConfig.loadDefaultOptions(SammoaConfigOption.class.getEnumConstants());
+ applicationConfig.loadDefaultOptions(GpsConfig.GpsConfigOption.class.getEnumConstants());
applicationConfig.parse(args);
} catch (ArgumentsParserException e) {
1
0
r337 - trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight
by fdesbois@users.forge.codelutin.com 01 Aug '12
by fdesbois@users.forge.codelutin.com 01 Aug '12
01 Aug '12
Author: fdesbois
Date: 2012-08-01 15:38:03 +0200 (Wed, 01 Aug 2012)
New Revision: 337
Url: http://forge.codelutin.com/repositories/revision/sammoa/337
Log:
fixes #1381 : remove column nbTimes from transect table
Added:
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectCrossingNumberCellRenderer.java
Removed:
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectNbTimesCellRenderer.java
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/TransectTable.java
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectTableModel.java
Copied: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectCrossingNumberCellRenderer.java (from rev 336, trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectNbTimesCellRenderer.java)
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectCrossingNumberCellRenderer.java (rev 0)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectCrossingNumberCellRenderer.java 2012-08-01 13:38:03 UTC (rev 337)
@@ -0,0 +1,60 @@
+package fr.ulr.sammoa.ui.swing.flight;
+/*
+ * #%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 javax.swing.*;
+import javax.swing.table.TableCellRenderer;
+import java.awt.*;
+
+/**
+ * Created: 18/07/12
+ *
+ * @author fdesbois <desbois(a)codelutin.com>
+ */
+public class TransectCrossingNumberCellRenderer implements TableCellRenderer {
+
+ protected TableCellRenderer delegate;
+
+ protected TransectTableModel model;
+
+ public TransectCrossingNumberCellRenderer(TableCellRenderer delegate,
+ TransectTableModel model) {
+ this.delegate = delegate;
+ this.model = model;
+ }
+
+ @Override
+ public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
+
+ TransectFlightModel transectFlight = model.getRow(row);
+ TransectModel transect = transectFlight.getTransect();
+
+ int crossingNumber = transectFlight.getCrossingNumber();
+ int realNbTimes = transect.getRealNbTimes();
+
+ String newValue = crossingNumber + " (" + realNbTimes +")";
+
+ return delegate.getTableCellRendererComponent(table, newValue, isSelected, hasFocus, row, column);
+ }
+}
Property changes on: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectCrossingNumberCellRenderer.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:eol-style
+ native
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-01 13:17:43 UTC (rev 336)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectFlightModel.java 2012-08-01 13:38:03 UTC (rev 337)
@@ -23,23 +23,16 @@
* #L%
*/
-import com.google.common.base.Function;
import com.google.common.base.Preconditions;
import com.google.common.base.Predicates;
import com.google.common.collect.Iterables;
import fr.ulr.sammoa.persistence.Flight;
import fr.ulr.sammoa.persistence.Observer;
import fr.ulr.sammoa.persistence.ObserverPosition;
-import fr.ulr.sammoa.persistence.ObserverPositions;
import fr.ulr.sammoa.persistence.Position;
-import fr.ulr.sammoa.persistence.Transect;
import fr.ulr.sammoa.persistence.TransectFlight;
import fr.ulr.sammoa.ui.swing.BaseModel;
-import javax.annotation.Nullable;
-import java.beans.PropertyChangeListener;
-import java.util.Map;
-
/**
* Created: 27/07/12
*
@@ -56,6 +49,8 @@
public static final String PROPERTY_DELETED = "deleted";
public static final String PROPERTY_INDEX = "index";
+
+ public static final String PROPERTY_CROSSING_NUMBER = "crossingNumber";
protected FlightUIModel flightModel;
@@ -131,6 +126,24 @@
firePropertyChange(PROPERTY_INDEX, oldValue, index);
}
+ public int getCrossingNumber() {
+ return getSource().getCrossingNumber();
+ }
+
+ public void setCrossingNumber(int crossingNumber) {
+ int oldValue = getCrossingNumber();
+ getSource().setCrossingNumber(crossingNumber);
+
+ // We need to update the manual nbTimes from transect to ensure next crossingNumber value
+ // only if the nbTimes is inferior to the new value manually set
+ int nbTimes = getTransect().getSource().getNbTimes();
+ if (crossingNumber > nbTimes) {
+ getTransect().getSource().setNbTimes(crossingNumber);
+ }
+
+ firePropertyChange(PROPERTY_CROSSING_NUMBER, oldValue, crossingNumber);
+ }
+
public ObserverPosition getObserverPositionByPosition(Position position) {
return getSource().getObserverPositionByPosition(position);
}
Deleted: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectNbTimesCellRenderer.java
===================================================================
--- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectNbTimesCellRenderer.java 2012-08-01 13:17:43 UTC (rev 336)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectNbTimesCellRenderer.java 2012-08-01 13:38:03 UTC (rev 337)
@@ -1,63 +0,0 @@
-package fr.ulr.sammoa.ui.swing.flight;
-/*
- * #%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 fr.ulr.sammoa.persistence.Transect;
-import fr.ulr.sammoa.persistence.TransectFlight;
-
-import javax.swing.JTable;
-import javax.swing.table.TableCellRenderer;
-import java.awt.Component;
-
-/**
- * Created: 18/07/12
- *
- * @author fdesbois <desbois(a)codelutin.com>
- */
-public class TransectNbTimesCellRenderer implements TableCellRenderer {
-
- protected TableCellRenderer delegate;
-
- protected TransectTableModel model;
-
- public TransectNbTimesCellRenderer(TableCellRenderer delegate,
- TransectTableModel model) {
- this.delegate = delegate;
- this.model = model;
- }
-
- @Override
- public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
-
- TransectFlightModel transectFlight = model.getRow(row);
- TransectModel transect = transectFlight.getTransect();
-
- int nbTimes = transect.getSource().getNbTimes();
- int realNbTimes = transect.getRealNbTimes();
-
- String newValue = nbTimes + " (" + realNbTimes +")";
-
- return delegate.getTableCellRendererComponent(table, newValue, isSelected, hasFocus, row, column);
- }
-}
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-01 13:17:43 UTC (rev 336)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectTable.java 2012-08-01 13:38:03 UTC (rev 337)
@@ -31,6 +31,7 @@
import fr.ulr.sammoa.ui.swing.util.SammoaUtil;
import jaxx.runtime.swing.JAXXWidgetUtil;
import jaxx.runtime.swing.editor.BooleanCellEditor;
+import jaxx.runtime.swing.editor.cell.NumberCellEditor;
import jaxx.runtime.swing.renderer.DecoratorProviderTableCellRenderer;
import org.jdesktop.swingx.JXTable;
import org.nuiton.util.decorator.DecoratorProvider;
@@ -95,12 +96,15 @@
// Set specific renderer for NbTimes column
TableCellRenderer defaultRenderer = getDefaultRenderer(String.class);
- TransectNbTimesCellRenderer cellRenderer = new TransectNbTimesCellRenderer(defaultRenderer, getModel());
- getColumnModel().getColumn(TransectTableModel.TransectColumn.NB_TIMES.ordinal()).setCellRenderer(cellRenderer);
+ TransectCrossingNumberCellRenderer cellRenderer = new TransectCrossingNumberCellRenderer(defaultRenderer, getModel());
+ getColumnModel().getColumn(TransectTableModel.TransectColumn.CROSSING_NUMBER.ordinal()).setCellRenderer(cellRenderer);
setDefaultEditor(Boolean.class, booleanTableCell);
- setDefaultEditor(Integer.class, JAXXWidgetUtil.newNumberTableCellEditor(Integer.class, false));
+ NumberCellEditor<Integer> numberCellEditor = JAXXWidgetUtil.newNumberTableCellEditor(Integer.class, false);
+ setDefaultEditor(Integer.class, numberCellEditor);
+ setDefaultEditor(int.class, numberCellEditor);
+
initPositionColumnHeaderColors();
for (int i = 0; i < getModel().getRowCount(); i++) {
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-01 13:17:43 UTC (rev 336)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectTableModel.java 2012-08-01 13:38:03 UTC (rev 337)
@@ -25,7 +25,6 @@
package fr.ulr.sammoa.ui.swing.flight;
import com.google.common.base.Predicate;
-import com.google.common.base.Predicates;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import fr.ulr.sammoa.persistence.Flight;
@@ -37,8 +36,7 @@
import fr.ulr.sammoa.persistence.TransectFlight;
import fr.ulr.sammoa.ui.swing.util.SammoaUtil;
-import javax.annotation.Nullable;
-import javax.swing.SwingUtilities;
+import javax.swing.*;
import javax.swing.table.AbstractTableModel;
import java.util.List;
@@ -264,18 +262,17 @@
CROSSING_NUMBER(
_("sammoa.flightPanel.table.column.crossingNumber"),
true,
- Integer.class,
- TransectFlightModel.PROPERTY_SOURCE,
- TransectFlight.PROPERTY_CROSSING_NUMBER
+ int.class,
+ TransectFlightModel.PROPERTY_CROSSING_NUMBER
),
- NB_TIMES(
- _("sammoa.flightPanel.table.column.nbTimes"),
- true,
- Integer.class,
- TransectFlightModel.PROPERTY_TRANSECT,
- TransectModel.PROPERTY_SOURCE,
- Transect.PROPERTY_NB_TIMES
- ),
+// NB_TIMES(
+// _("sammoa.flightPanel.table.column.nbTimes"),
+// true,
+// Integer.class,
+// TransectFlightModel.PROPERTY_TRANSECT,
+// TransectModel.PROPERTY_SOURCE,
+// Transect.PROPERTY_NB_TIMES
+// ),
DELETED(
_("sammoa.flightPanel.table.column.deleted"),
true,
1
0
r336 - trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/gps
by fdesbois@users.forge.codelutin.com 01 Aug '12
by fdesbois@users.forge.codelutin.com 01 Aug '12
01 Aug '12
Author: fdesbois
Date: 2012-08-01 15:17:43 +0200 (Wed, 01 Aug 2012)
New Revision: 336
Url: http://forge.codelutin.com/repositories/revision/sammoa/336
Log:
refs #1378 : issue with GpsConfig default values problem with 0.4.1
Modified:
trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/gps/GpsConfig.java
Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/gps/GpsConfig.java
===================================================================
--- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/gps/GpsConfig.java 2012-08-01 12:37:54 UTC (rev 335)
+++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/gps/GpsConfig.java 2012-08-01 13:17:43 UTC (rev 336)
@@ -40,6 +40,7 @@
public GpsConfig(ApplicationConfig applicationConfig) {
this.applicationConfig = applicationConfig;
+ this.applicationConfig.loadDefaultOptions(GpsConfigOption.values());
}
/**
1
0
r335 - in trunk: sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence sammoa-persistence/src/main/xmi src/site/resources src/site/rst
by fdesbois@users.forge.codelutin.com 01 Aug '12
by fdesbois@users.forge.codelutin.com 01 Aug '12
01 Aug '12
Author: fdesbois
Date: 2012-08-01 14:37:54 +0200 (Wed, 01 Aug 2012)
New Revision: 335
Url: http://forge.codelutin.com/repositories/revision/sammoa/335
Log:
fixes #1380 : rename StrateType PLATEAU to NERITIC and switch code N (NERITIC) and P (SLOPE)
Modified:
trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/StrateType.java
trunk/sammoa-persistence/src/main/xmi/sammoa.zargo
trunk/src/site/resources/ulr-sammoa-echange-data.svg
trunk/src/site/rst/import-export.rst
Modified: trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/StrateType.java
===================================================================
--- trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/StrateType.java 2012-08-01 11:48:58 UTC (rev 334)
+++ trunk/sammoa-persistence/src/main/java/fr/ulr/sammoa/persistence/StrateType.java 2012-08-01 12:37:54 UTC (rev 335)
@@ -29,9 +29,9 @@
COAST('C'),
- PLATEAU('P'),
+ NERITIC('N'),
- SLOPE('N'),
+ SLOPE('P'),
OCEANIC('O');
Modified: trunk/sammoa-persistence/src/main/xmi/sammoa.zargo
===================================================================
--- trunk/sammoa-persistence/src/main/xmi/sammoa.zargo 2012-08-01 11:48:58 UTC (rev 334)
+++ trunk/sammoa-persistence/src/main/xmi/sammoa.zargo 2012-08-01 12:37:54 UTC (rev 335)
@@ -1,139 +1,159 @@
-PK�|�@sammoa.argo�TMo�0��W>�h7ݰ�_�6l�P��@���d�H���Q��IS�[#�{O��H��t���X�ú�X47��B�^��#4 �q�zm������YP剎V�S��|W���hGV�m
-�s4�"Q�1��V[p��&_����C�y���olU~��&��>l���츴PWK0
-��Σ���; ���[�[��E������O���%��<����K����L��g9��=�r����#����Y��Eyўy����h�+�31����dU������v�p�s��oV��.�(�Q�h�cprk(B�v���s�7��ݠ���̼�?Ь�"7�TO��G84�s�K"Me���3\���_�ZIm�fo��f&�n�~�g��ݺ�������_��/��&���MQ��B.�Z`��4��j^�r�|��Q}�����2�/�;%_ ~��F���r&��Ц+��J��Kliöh7���u�@鱤]rN�0/�����8�_��;�v��\-�
-�:��dឬ��-�����,�+5:-�+�=ѩ����hD���94R:1ɨͩ���/PK}=�@�PK�|�@sammoa_Diagrammedeclasses.pgml�]m��8��>��;��#R%�L���2I��ٻ�b1p����V�/��������cGɶ�7IE��eI�M0���X�z��?�1��F��8��y�ΝW�h��Ƴ�7�~��}����w?���ǫ��~��<���zw���U���h9zŮH1�����2}Z<>Ο��(�3�����b9\�[,���j�������j2\,������k�5b�{M�Q��K������:p����{�� �̆��ͫͳ���1yz�x��[v�O��x����v��lo�?��t�s6@&�o�=`D��2\~��x1~�Do���E��bͣx��%��8����c�͇�?��^Ȟ�8\.���2����e=��V-�=�i<���??Ɠx��v����O�k6�������-���?�_�M���|�u��6?}/���n=.���IĽ�������t��7��2p�?�>-���<w�͗h��e�F�� J�+��2;����73ZF,��#a�H���'H�c6n�j܃A2b��O�l���$~�~7^'��7��e���!�����g.�������c�X��Əõ8]E3��|{?����}r�JY,ϳG
-����ĻL�?'�dB�R���L�3�;�d+B����7�{i%����Q���U�X�s��W��Fu�4_�(̿S�^5s�ċ����TeY����l�CͦX��X �Z)��a�$���������v����g��#H���h�-�י���\L�����t�Z�XO+ʅ���(��lK���/��r�p�j�o5����bH���>P(=��߿��QMy,�.�R��'Ba�h�vy=-3ݒ�9�ap�df�̫-����.�{͞�_���*w+��r��ip��/8�q��Kg�f#��
-�]��
-X��#N+'��Y�8[�x�x�~�{?'W�(��!�'�pV�|P���������h�0ϖ�x�x�����Ûd_����F��w�e��
-���Y�L&�t���g���W^=�cn��u��O���5 F0��p��8��Қ�dz{L(�i�
-�MLa��1�|?k`L 1!�)�w����j�c?&���P�����2��Ƅ�l�Ge!d-"��B*��vD�3 OA�#%"ĭOe�6="������#B�D����5�
-��X��nDh�av7ƣ]�0r@H�IL&=�9y� �ă�ϣ��}p<)� o���T�]dz�������{Z*��G���:y��u�
-t� �����[w����);XTA����`��h��l5�,��!����8q��/w�m�?�=�d�n��
-��z���@�- ��b(�z�r�B�łÅ�\d���2r*��K�{&
-e^l�뒼�TBS'(��v�%�$4;V�.�*U֩n�6����.��/��S����R(4���6$��~IL���[�e��*e�ۡ䞠��=0�tjig:��H�Ŋf��t�'p������ߋhq���������_+�v���1�z�y����tS 4�ZG���]��ǫ����ޡ�X#���kĪGkk������:A[Dvii�0�����r�a>\,��q�f��wX��C�j�]ų{��j=�rק]������ۧx�d���d��/2Ŷ��}�!E�=�/�{~ڼ�?"[ES�����͛��'-9���d|b�}Ǟ���7JtE�ٿ{&�=�Ωϥ�q��hne�)�T�|�/����Q"��+��7�_V����m����a~U���<�&��
-��S�7���l/E-z��u�IC�?̂��V2.�@�̽�b~�_�?r
-��d.���΄�VhC=GOl{;�`?�;>œlk|:��4�-㵽�Cy�볣��&�YvU�o`�0*��\X���3���ҽ��F�F�/���!����|�) �<M��3������8�-����1:J$:�0l_�/�(4���DB���k����(��HO$2��[��r����p8������벇��jGE��c��h��5�b�=���sщ�E�5��+*����Gb��~6��lE]����E%��H�Ɋq��8�>��D�C�7
-�h�)k!������!��ω��.���8�=�zܓ���ą��]&���{�8t;�K<�c79)E[[�G�C{=^�;n�nmųn��30��(��d����z������~ؾ��Y6�C�e�u��pȃRȵ��z��Rg����c�9���-s֣�k���kZ� ��Q�����9��
-�/�2f����4}m�Y��:M\0K���k���s�e�,���e��[�1!�5���I��
- �f�\g�5�j���f-g:�
-��\�]�̪yB]k�c��㶕��:�l@)��8Ӡ�9�9�e!�51��!|O�3h9��0�������(��1�� 1|��q+]�j�7�D����Ÿ*��Y��אH�g9��B����\#E�����֧�B-e6�&n%��)1�����w�LL�=�5{B$_���<"�vVs�d|g�G��U-#G�e�d �!0��G8�S����=��A�g�y�����ϥ�}O��+P�
-��P�P�~������7����W����V������������׃̓}yq��u�C�ۮ��N�a˚�c
-���g[����ߴ�#���=���䑸&��V]��� d9a���l�7+�6Fr���wO�"Ap6��d�����ܲ���Rua�����X*�c�����n��U(~M7�*�SE, Ba�J�ɀ���FR��xU���ZsƲw��cRh2 ���%���������<u�I UTq�֟L�Q�KF���������mR�)Uk�z�CK9U��^d/�"�:ʒN"q<��K/l�yt�z�=��y=Tq�ʈSݹ�G\�^�ٙd��>��L��9��Sz�k3:��U'P�������{�{��Cy]-U��
-�~�uV��E�0�*}N��k����B��'_ÁJ����{�y�����x���d+�$[)��"�=�bn[4��F�:m�G[@{���V�_�����
-�t�j╂�.���/���o?OƩ�Z��gQmP�\<�-٩
-x�IT�����ѯ�QZ�j����h���(��$���l=G�j��ϣ��^S����]�5���ET~(զ���+�����Z/?��bM=�<���S<_fe����H]�&m���̏�x5������<[N��̖#9�{�_
-�x�Tg�f
-��V)t��`��Ӌ�!g'j*s�q�8����xC�t�#h����j�k�ݩv8)^&i���g��kd��˼YD�v�@��B�0��nw
-W�WA��ɳ���������:���[/���g��'�,6̀�G��仮�'�W(wX*g:������ǧ��
-��dz��.�;_��I�(�Ϫ�>4�ηK�[k�o���|���.2�NH]�A�@'�hZ^���ϮMZ�V�J��M�ίn�d��n4yu���q�9�%�~�Fs��~N�6��˖�rh��f;��4[\jsP���=�m�7�����4�vsPN�0��4蛃�o�9h��栗��J[���
-��roР�A��P�O���Π��C����rP�ܧ��+>H�����4Ֆ���z�ʷ�V!
-g| vU��y�kv�͏���B
-��@l%�z�������N�ٖ��Ck>� m#���=d�śy'P�$T|���{S���)ͩA*>����k������U�FQW�i�^�Ю~�]R|�]l==�";���v��I�1���J�{�yt����3p��F��P�{W ��1�!� J-*p��PI|W02�1�0O�C��W�����Nʑ4ꑗ�j\�Sk*�j�J������F������L��x�j���n�Ҳ�����F9��uZ���a��ׇ�Ћ��c��E\5)*nȑ����뱩�\.�шW�`�xp%��ڕxp���m�A�L1`�7ՠ ��܃����&.���"�� ���샫�����~��6����i����U �
-HN���`�@�i:!!H�MY���S@pPq9�S���fc^_ڵ1���9�jc^s�[�6fȭȥ��TmL�&��Y��P�mLn�)���[�61��*A�ob���4�ߺ���mb^W��_#�)j�zoc�߀m5��L�C�hL�ZSy@����o~G�1o,�1o��1o���,tc��G11���=jw�¼��b����ݶ0o���Ľ�i�?�������mb�T;ѬgQ1�{��m7��D�Jd#BE^���9=��a&f���u3[M7����'��$C
-'���C��(�{�����ނ�{���&J!WȔ��#AJUV2�4M��#���dJ��#a�0p%U*o�ۭT��A�=���l)��t)�"��6M�m�K�����D%Z�ϫ`q�V��?z�T:di6}����ʚb�O���v��M��<qͼ�d��n�<s�h�h<K�BOP�șS�h�:?�D�����8�ΣB�@��]����w��K��)Ҹi�kZ�#�#����j��r�um*t(w7������7�]^\���ɧ0�$%�O�� ��+��#%�f{�U���G9=AC]�X�6��!�z�h��|O����:����5���]�@��]����p���n���G|��#ݎ��*tVt��
-L0�#xp��s�H�xܮQ���x�����𨯈dz�,�l�#eӒ.���6Ց,���%?��-̜�{0�,���g!x]�0/�5�<� ��븉Y���"
-��}�{�~J��q#�:��V���[�/�c˞��h���CmN�4mN���]����I����%�� c�����K�Tm�b��Bu�o�O�0s�����
- ����b���5f��;&[�E)ӌZc���&7{v�f�4UE���+AT�p!~�b��4�[w�t6��l����3ͨ�4�7�Md�Q�L�T��e�����Ff�ɢIt�9u�y�J%*Ff�՞���#0s>�\]|����M9�*\3k(���X���j��r�= �(��`Q�r�}��������>*P�$�$/+�(��*�om���]j�)�#2�O�ʰm�/7@�x�t�����0���N�=<Xo�|s4hn��T���x�ך�����tܕ�"��������֩}~�����Q�}j��]
-�M��fE�����Ծ�˱ie!�bǮš�D`0 �m�w*ʱ��ŗn�a*�r�=H�4B�\
-���
-CW>�j�a��q���5V����ő����u..��K��Oi�4�!e�!���n�b^������)�)�B�5j�{�n�v�#�a:�A���i��~�b�.��������t0fC���x�eB��2�*q����㣪X��N�G-�(��1�'��~��[=��n�:.G�ul��n� ��N�)�n��9�8���'��pr5��=��x
-g��(ӓvQ�(4�F�V�z�]�%�f��;�]T��RI���˭��������6�zym�a��9JX/s��a=�&��M�߰�a=�?z�m�����o��#%�mz��tk
-������U$�ݎ���"{�y�J⯙8&o����߆�8_��8��u��eH�@�X_�mvzO��}� |g��?�nA\��^���Z����N�>�$�3`)&�p���r=����2S>{��Vv��#�E���*7�q�;��ğ�z<Qx�>��N�uv�"ȭ��p���ۄ������@c7�k��*��
-�C������ņ��a��RR����r��T�����1/a�DNF��ˏ�I�q ��|��䔱�#a�Hy�)���GT�*������T,a��:bt��Q)P���&i�6�T�NٚNO*ۅT��O*�u��@R�UR�F�x[RYB(猪�Ie�X�"X*���>Xe�L�x&��7�g�%�0�S
-:�����
-�����Y���V��e�E�MA'�������z8�����+q��{��G��xb�8�@����
-��U=�~�`zbgI�/�I��If��'K�#�7�td�,�>!���m>�\aU}�lW���"mp�Vm�6���H\3���6�5b���o������6���fFYŰCx3x�iAuɥ�F�pM0�i`��?�ST�]�m���i��m��G|��~�9P�n<S�����"��cjh/G����{X�S�F������Q��c�
-���;B���4h��S�����eL���
-A��?��1Vׅ�^��A�ۢ`� �����.ۢ|(�r����ۢp�-'�1�n����ej-K��=dh��c<���a�^�y;ڡ��y;4{#vhvO��"�Co+U�kX}���Nۡ%h��%�j?�%��'`�i;��D�n�" ��k{!�%
-��O�NQ�tS�h�CS\��&�t��l��)����Ri71{��&{FU�ښ�ażg�yB��[�y���e[��&No��5OH^s��<Z?��]�9�?�RiTU*�容&=����7%��xS�����e�<s;�%���V6&�k;ͦ��=$�yB���n�l�V��\�WttU��Yk�H�[,���s�<%g��<�x���Z�7[ �|t?N3y��
-*g�{Jʚ��^ZF�
-�I<{/W��Q�b�j��r���A�]��/
-1'�C�Hw���s�s]g��[w�
-��K���C,D>yG�=9��B����Z��@ݻ�l!ʩ;� z��ѓhލ�<��n�x���b�N�l�R�l(�
-V6��K�27�K<�"�� R�'ȵ�d���$����B�T�
-�ɮt�m���n��!BY���|�H���/�h�^x�3ε>w���s�Q=��( ��{��C��]��/��r~�y�@�:� ��=���
-//\Q�B�|0
-I�L�Fu��Y;U�.�`U��+�AF�n������d����de?fK�1CJ؏h�~��2iWdH47%S��+q6�\ԙdۄ#J��m�h��܌{�L�ľ`�4������u%�џ�/����,�ii����w�wO������6�3��Q��/l������ο㞓���r��y~�(��r7�.6���9�[�Xt$9�:1���*�\E@��M�1Q�*�
-�(�������lr���>��9J=Z�� ||J6#L������Q�U6���� �\�Мz�b�s$���ȑ2�֣�{��Ѣ4�o��9J�) ��r�u��4j��=Α�P��h��Ѫ=�w�N_�v�����\Vي)݄�K�{�o�L���ѶY�ȁ}U,��-�Z�Vmr��L:[C�1A�s���U����ՀO��̠,���\����Y {�7E�T��W�B=��
-Q�*P���.��JIZz�o��?
-���7���W@�7�M\ Z�!�"��"�����s�U2��\�T����"�͢�" (�����:�r����m����� y~�����e;���Z)D��5�P�p�c�n���
-[Ws��BS>�����Bi,��~ͅ��5l��2b�~K.��1��_�+l{����.�6�����o?I�_��'����{#~�+��ڑ��F{6hB�p��A�cg�/4�g���`yL��h���F��_~�9
-�g89D��g����rVh�����* ����g�#;�� ���q+�~��O��q?���N�Y�q4��8�m$���
-�ʲ�$ �&pT���� ����[��Jխ�(���1���Y��)C��l�~���`��gh�J;t����>�#���*A#�0��o4�G;�ad~�,�$�Lz�(�>��<�ux�ѤS�-"W`/�����!�~H�����rرƍ������=|�����刻��q�^kE�h`�=�8��{R9�Gr���{jT��=�l������E�Y�c�`�"���َ��c�@�9��������R4x�5?'}��iy�Q��I&�s��o�����a��Ek�5峷0 C��a�ZY��8 ü�q@���2�[��kAn=袶G��o9袦��@��7&�6��9���ݽ�;�C��x[
-�>�.�j��%&�qB�"�� ��4m�}r���\��F�s�}���,4�?����Hc�����w;� �kPg��[h^��3�0�o]��ݹM�m��ov��W�E��H4�_u��o�r�8������SD}7]mC�A��Awk�~�9:�a�k�^�"Q��0C��mas��L���tmgs��X��}ӵ���-�o�/����5��"�����n~ۆk�{��;LzE�%Qϻ5.G����)�ìV�V��>
-Җd[��._���G�K7�����.�����1]"�_0P�?�9�j��������.0|�#W20�Z�j8}���4��X˽`/"�KT���D��R��ŭQe�6�@f:dk:}�̝�/��~!)mWͿ8~!��ͿXk7M�H�Ly��Vk9CKW����c��L'R�_��nA/x}�p\�.���|���V�˽����dz��+��k�9��܃Z-��<����*���H�[%Pb&�yF��B���7��m����l��(��R�`�
-�By=��B�q�=�,[�<$T�)��?M�!���L����ݫ��Ż�D�쮊���x�զ|����%�E����<>�7�����ɭ�
-�Qr��Q�Z�H����^���V�G>P }*c8c6��6}]����"�!V0�����-�`OC�n������(�_F�F����lC�b�v7��ƪ\��BJ�>��ڦBh�
-<q�2r"������3��4�M���kH�2� b/�ͻ�N@��6�B�5�[��
-lS%���t���N�m*�e��+K�ʮV�v=��n`{�e|o�e�Y5#G�U��5.K�\:&�{ mS%���L:�2mS%��jbP=�5C�T m+�k�=�R��_�I�o��9�rR����C.C>��r�r���\mϞ͖9��\G��a�e:ü`�C�r�G Y実�He�[���r�7V�-� �2�@G]P�86�G�[(G� PM(���B<mU���#�DYSv�0�>��"��w�G��R��8������9`��u��q��1*C�=s�f�30���8v���>�t$�e���ÈBݣ#ٜ\�$+6�U��ro6'.殖���
-�9�.ۜ�b+�mΠ�6�E%��mΠ�9
-�ns�9/���u�3�mN�mWu
-�nebO�����@oem5R�����U���dzJa���σ�_�?m��r��IF�xW�����V�Q:0��J�с)�R��[�aǭ��@�@�����ۥ�7`�.
-�n�z��)�M\��oi�w��d�!+�~�U<Mi����b���1=�hUhܢ�G݈�t
-�4��v
-��lT�9%�3E!g*Af��7��
-�����&K=rj.�ʤ����ƌ
-�k9~���p��̣{�r9���d��>b�|�oE�ըM�
-X2���
-�c���n���^->�W{�7U�/�P��h+y��9�o�T��7�+�{�Q��9�?֘�� ��.A)����V����ڕ�s�!�)|]6�̼��#�F��v&y��r��՜��v�ZΣA���h9x�Ws6����|0{�O��wI��`1dk.L��U4���eƑa����f�}�-�:�`C;��[��x�N��xw
-U��|=̪�_+����G�1��#���M��]P�,���sBA+T���W<�Ɂ_,�H�{�}���Pk,3�y_BjL���N��mQkHf������/�������%��Zc�(BZ� �-w���9�q�>���_��&�$�yg����R��jxy�C#հ�i��f��n2������
-<���q���Q��V�?�={1sv3���md��ʲr[�$��q���8���
-ò��4ZM���r[��v,�E\���/�)#W}ސr[�o��B(��6��S<��3Y(+�E\kE�����(J{JUݪ#JUy�q:|�m���*�&�B�-�5�tS�R'��5hͭ��Ӏ��[��S��q��[��J�D��V�VS��[��Vblwh>��k���5�4P�f]#�R��j*�脓80��Gݭt"UZ:p��6h�v�ݻ_>��)�Ғ"�+�֕��!
-���:��?�z)"
-Q�|mIqS%���m�6�ZmSg���k��Ym˥Yd e�i�Y�a��=��(�8@:�a��F��@Q�5F%�$q��*����A*r�TB��:B&!}T
-����vT��o=;��>(��r!MC!�(q�o�\�rq��BேE���>��6�6lKO t�h[z\E�Cٖe����%4ϕ��s`���|�g[��q`i,�ܾm��N�6�n[��Q`��q��e��ڄ߶m�����%%E�S.V�q=r�2h����Z�a�A�J-��!MS�h�==E(�.�<<\Z��<��UP���\[���q�~��l5�Z����m�����_k�5�?��р�%�E�۷`i�-X��[7aiM�Z�F��mX�v�*���X�t#V_ݏPR`bj����{�<}���t����PK��27*��PK�|�@&sammoa_Diagrammedecasdutilisation.pgmlMN=o�0��+�7�ٵAuM 0�1Q�d`���aY"qd'U~|������ݻw��Os'���m�q ���P�G��l7��eޕ���l:�\/��D`$���c�:����|�L�d�8m�n�����Xu��"����1���4TrR*�����M��9U�����o�� �n��gV��I�������л��z�Y��:��d�PKǒV9�PK�|�@sammoa.todoeO�j�0<�_��.YnkW6�M��{��Xk#P�ERL?�5%Ѕeg��aV�/�,`�ƙ�H�3��Tz���ٝ�HɾI����Н?�ģBҞ���J�H��*%a%�u�|��
+PK��@sammoa.argo�TM��0�ﯰr����B�K�Z��ʍ��Hv����zƱ�8�v%�RT�{��a�L�M���E=��Es�X-t��;BB���f�
+��ʌ��Q��hE>Eh��w���dEN�m
+�s,�"Q]0\&V[p��&_����C�y��졤�WL<`{}�j)B-��qi���`z�G)Aiw.��#�V�8ŋ>����5�ڣ�-Jt�<����K����B��g9��=�r����#����Y�㢼hϼu`@G4�Ù�^�Kn�*p�����G;N���Ї
+�7����(�Q�h�cprk(B�v���s�7M�#ݠ���̼���<���d,S=�������.�4c����p��Lk%�X���f��|Bh\�i�����v�����/��?7���
+VMjK��F��\V��%iL�/Լ*,��&)ʓ2����K�me`_>7vJ��|'ҍ��'��L�U�MW��,×�҆m�n,uC뼁�cI�dN�0/�����8�_��;�v��\-�
+�:��laM���-o����,�5:-�+�=ѩ����hD���)��d��TVs�PK��,�=�PK��@sammoa_Diagrammedeclasses.pgml�]ms�8��>�B�[wU����L�e;�\�2I*�����֔,юv%ѥ���������cR�7�
+�(��Mj,���ht?��ӟ��M_��r�_�@A4�������_�o_/~��O������_?����
+w����e�"��b��`W��G��b�J�/�.���x�.J��'ç�pv�\
+W��o��b=Z���zr��/ﯧ������A��B��<'B����E��C�ë�q��x��w��3�/�ϚElX�Q��h��7욟���y{������X�)���{��r0aS��#�����L���i��q8]F?.W�"�Wߞ��L��_;?���b����݅��я��j1yX�"��l�_�#{ou��<N�S���Q<��_`�`J�?ٯټ�F�
+�o��<L��&�z��������pm�^�q��"���iĽ�������t��7��2pw?�>��������K4y��b#G����OO��~r������?V���0p$�*G�� �혍۩�`��X��c<_�b3��v�MV��d��E�lw_>�ӱ�U������������d4܈�u4g�~��7���|���O�'wn����"{�(�I�ˤk�s�H&�(J�e��߹'["�uU�1�K+yoo������V���
+_p���B�5�[��:Ea��2���k&^�^�Ϧ*��@�f�k6����J�^K%�-�?MW?&ط�շ?=���A2�OE�M����F_�bR��%����X�zZQ.$��D�\f[�u<{.V3��N�x�N�P�UC*U����b�T��e��j�c�v!��<6�Vh����*�- ��wLf�O�J��+���r����i��!�6^��B%�n�a�#^�8;
+.V�G��#��b�,��|l�7���E=ހ�W8�^��5+g+�o�o��5+�ƣ��z��c�?��4�+�*���ݳ����d-������wb}x�������|��@7_EO��𬟁���1�d�Ig}�mp���y�ճ>F����QW��^�Q#��&�N����SZ3�x�� ���8�gB�ifL(��BBL�a��.@�`�Z�؏ !!&��8p���1��[�QYDY�����$��L�s��H�q�SY�M�!%"��l���>!$D�$m�r�9V"��h�ݭ��^W5�Rd���I
+<'"��xP�yt���!%������
+��x��R������Q<֯t���;X��o���u�l�Nߺ���N���
+"���8K.F�8Xn���v �
+�
+��lj�%`��po����&v3��l����e����[��oI���CY�C8P��{..l�"�w��{�Ȼ�q�g�P�u�ּ.ɫH%4u�z��.�$��fNJۅ_��:խ�&�]��w�g:���{jy_��}�u7BJ�Fwن�u�/� �۠y+r�l�Ye�l|;��3T6�F�N-�L'�� )�Xq��1����?^�ݗz��{��#��@�@������u%�n�:�\5�����n*�&U@�r:�����x}s�A\�k�wh)�H��5������"���E,�����]Z)��q>�\{����x4I�Lv��*{�2^/F�u<����L����9��}��|t{��vs�/VA�����E��6��o>��H���Ev�O���C�Gd�h���S��ysT��%6��,�O���s?��F��(~ ��a�d#�g�9��?.�}-�,4�
+=�O��]���2J��L�
+�qC�e=]M���;Y};�ו���B07��m(�⼙�/��x%j��O��O��q��j%�z�Q`�9m(��_���#�p�K��O�;�L��a�6�S�ȶ��K�#��S<�`q�F����l����*�ث8���9;
++l:�g7x
+>�
+�B�u�k�tv�)-���44��~�f�H��cH�HH�i�Wδ4��dǗ��mit4�ܞ�Q"�хa�ʰ}y�F�Qu�g����_�ߔ�F�EFz"�i��b`��{�?ਾ������.x���澫u���
+�a�ל�iH��\�n��E'"�WԞ&_QQ��v>�L��o���o
+vT��DtA=m��F14�r� (����M�8Zt�ZEb����a={���s�ᣋ��:Nt���$�?)q!e�ia���"�T��a�a��w��"'�hkK��hsh���e���থpk+��psp�� ED)M$��-vփ�'��
+������u�z�9��/ï�x��C�B�-u�CΗ:�}2{;���a)��2g=ڼ6N��������|m��p���b`h
+x�A�����I���c��K�����Y�8��W���/=\�eB[�8�F��r�kV�u�]�����h�k�r���A���5�UϬ��,�!Ե�8Fh>n[YήC^<��r����9Η9�e!�
+1��!|*�����a��G�K�k
+������çB�u�0n��P����a�I�S��TE�>{
+�dR˹͗��.��):�6�J�[��
+��٬���hUb��'
+��=����k�B$_���<"j;�9U2���#B骖����`2�����d"�O�p~�y@�mP0b���_��|y��s�q�*|j]�j���?�����<��*a{k]�k���~��j�I9غz}=�<�W���[״j�v]�vB
+[�^9��La�{�uX_�M�;Lm�3+��A�k��m�5��B����Ζ}��jc$g����q��*/�&�'�\\7���\x���K�G��z�?�a�)�w�ݭ�@�k��Uy̜*O�ǒ ƭԛ�<�n$U}���
+><k�X�yL
+MĢ3ּ��Iշ�8c��)/O�mRB��8c�O�Ϩ�'������������mzvS�6�%�[�CK9U�^d/�"�:ʒN"q<��)^����.��!z���z<�+#���=��j��$�Q���W���dȱƟ�C^���)�Yq5X:�x)�P9-��j=�uI���U������<�㙙W��s\���ȇ�
+F>�|P
+�6f���Z/&cv$[yJ���.r�.�E�)lT~����{����`je�5)�;NY��L7OM�R�ׅ�{�������$5�A��,�
+����Gû;�C/?�j#�=�<�O��"�u>N��@-uT~
+�~��~�dѾ����hQ�y�y4��k�1W0���F�����ڔ�u��E<3Y���@W��G�G=z|���,��i��ۤ
+�t6�y4������� ʳ�Āh�l9B��&�ɔ����FI�R蜗����/:Z�����̩S�U�#T#�D��CM�8R�r��?�'���$
+��� ���]~�7�h ���vX(��\��N�f:t���L��g�<;,/%��u�aw�g�)^- �Ͼ5�N�Y� m�o�rw�w]9N��P�T�"t4g���9�;_��՟LO�ۇr��;Ic%�Y��Ǧ��v)w�B��v���q~�Ef�)�+<����cM�����ڤ�m���Y�^���-�����M^�%G�|�'kzŵߴ��ꆟӾ�A��e�����N$7���T���EvOy����A�}��7
+����"̭7
+����nt�9��m����!�{����4hzoP�1��=���w�_�^��a��6��OiW|��M]�i�-��~�oS
+�B
+��@�$�:�������Y�4���JT����nU!��&�-����|�A�F4��Sd�͛ygP�$T|���{S���)ͩA*>����k������U�FQW�i�^�Ю~�]R|�]l=?�";���v��I�)���J�{�yt����3pg�ư�P�{W ��1�!� L-*p��PI|W02�1�0��fC��G�i�[�j'��k[���u5�nRk*�j�J������F������M����������"�eE5F9O�r�*�kr<� �:l6���zrv,w�`���&E��4�ݲ��zj�5��}2��unX!\}��%\�g�x�3S��M5���0��$(��K�B8�80� �4��$.z(�ü���M?`�w�p��cȁp��g XPr�NA��$�9zN����A�Υp2��]��5?�}m̷�ֲ�r+r�7>US�Io|V("�a�[k��`�V�x�M̷ו��71Qob�o��D�61�V��_!�)���Ƅ��6&j������ј�ڵ6����#�6f����Ƽ��Ǽ��Ǽ9��Ѝ����,�bf�T�!�a�ڋyw�¼9����C�'�yS�D��E�0�
+L8��
+L�x)��*�b����)\31sM�On��|=ے2��#�P��)�Tw���ʢ����v3�{�m���(�\!S�ϗIJUV2�4M��#���dJ��#a�0p%U
++�!��*�6�grP�-����.�^D"�t���V��-��� �!AT�E�|�vq�V��?y�T:di6}����ʚb�O���v��M���<qͼ�d��m�<s�h�h��~�g�h��)E4u�t�I���C$N��P1�yt�f����ݻ�R~}�4.E��5���~�s5�n9ʺ6:����p������߮.���t��S�
+���AZMWH�G�����V��3���Eu
+c�bش��\롓��n�=�J��V(�o��6װ��w�Q�w�rRx�MB/����K:��U����p<���mP :a�&��<8��9b��<n�(��~��<�m�H�x��h��YP�������a�;�Mu"�Ҳ�y��io3����,�B(�0�Y���e��A�9!\�ӎ��չ.�@v�ozoc�_�oB��72�s?�`�� 轕i�([���Dcd�\js��9�z�3��j�ˍ�rO�-�J�o�A�0s�&3̮�R�
+��o��9�%>!����E�Θl�H8n�a֒֘�o�l���L3��%5��{��4㥩*�Ո_ �R��s�%����c��A�fӷ�ܟi� L3Q{�D��g�i�*�wL3wV��L3Y4��0�N4�Q�D��L����ڠbf����O��~�)gAy
+�L�J��.�n��e�e
+�u叿,jR��Q�Ծ��]��� �>�" 3��Q�Uj�� C�Ծs�Gdj�"�!�a�8j_n��*�z�p�/,^�aN{^���{x�����h��8���7�w7�ʯ5�s8j���+/�E��/���aW��S��NG]�]�r��>���o���7=̊BW��Ծ��Qh7-��Z�I�`x���Z|���!�R���QB��*�j�$�W���V�T�C�߾��@����/�<TF^�sq���$Xz��xJ#���){
+�T�v{�R�P~<�� PB��
+U֨��ź�� `J�t��IkO�H���ٻ�㣲�3d����
+�j㭖 �V�X��q�ZF���b;E��G�H�O�8�t��E�b�n����)�uױ�;�u�'x�:馀��c`�h�8^k�ƣ��z�z?��4�MwQ>�'��.QhF��E��6��K��.j+�w����S��@��6.��[�'�q�W����^^��zX/{���+jXO�I�EvS��7�pX���+v�V((��Gp{���)Yo;�X,ՠ[k���L^��� �8�vd���|�/B�S�D�1y}��6l�������HhZT?"}7$� �X_�mv�Gw��>[�3����nA��A�D���?�p�D}nI
+6g�RLN���=�z��W}�e�|�#í�T_G�0wT"n���w��������+��Vv���cAn�F�[ߧ�&��E��}�M������0��6�ћ���N!�Mî���2����8�, G$��c^¢��2�N͏�I�q ��|��䔱�#a�Hy�)�
+��GT�*������T,a��:bt��Q)PE�x��H�N*K��lM�'��C*c�'��:�6�TƆl�T�U2tG*K��22�LK^K�;0�<�,�I��Ϥ����|�b���qJA��{=�����b��f�����@fYwQg�@S�I�z=�<�l��'��c�A����#��|��h6�L
+�*w���qsU�_=���Y���d�j���+�������<Y%oNG�G �p�G2WXF���éH\�U���1����h��|��6�*�{�����$��QVA1����e�FP]r���6\�{�?����U�i���u��ip��.�S����gjx�>(a05��#����)VQ;r�}*s����0GC@�i��N�i:�'
+�f�Th-���hSl��B�8��O1��l���uᬗ�d���(~�E=x@�mQ>U�}[��mQ8����
+�DzLY��ֲ4�\��vh�4Nf��55lء�Bvޞv�lu��ވ���S��H����J�
+V:��EƤ�v�e ��CIo��rISx�L:m�^��ם�A�s
+b/��D�/Q��)J�n�msh��a�+��_�-�5���+u�����k�7�3���6�+�%8{�
+�kn����˶0yM��kTH^s�<Z?�3�]�9�?�RiTU*�容&=����7%�� xSTI]s��2Z�����d�՟�I��^�i#��kTH\s��-���jޚ+����*9kMIp�e�<z�Ur�j�Èg�E {�/���4��-[A�{���)��et�0����j=N �kv`��-� ��:��sR�9��tw1N�1���:[�ݺ�U�/��h�b!��;��H�@|�j�Nj!RDAݻ�l!ʩ;� R]��Y4��B�K}7b<��{1['��r�zl�x�*X�j/����.����'� >A�&[4&I�0�d�I�����J��n�H�v/?D(b5yZL�����y-�Ouƅ���v�C� �'%���r��<4��%��r��
+/�Ǟ�t����<���?���"��*D�����$ʔiT7ɜ�SU�V���d�烈��ڟL'�o�MV�c���3�������Ǯ.��xE�DsS2���p%�F��:�l�pDi��M�,����o.׃Y��L���`�����TB�i�/\ϣA��L�~9����1^��.�9�G���r�V�ϟ����;�9��� w
+]��2�*w��cS���%�EG����"�U���%��l��_��D��m69GI@��圤�K�(G��f����~3ʷ�&֣{�#���+{�S�V�q���>9RF��z�w��h-KC�����ğ��*G[G�Σ���I~�6����|����h���=�e����M(�d���V�.�m����W�\���h�&�{̤�5�F�Z�S�o����|6��eQ�.�
+�}u�Jؓо)���Bg��n�:�@Z����ת�(%iU�~;���q8�L��v�r��v�m�J�9�\�\��f����Y6�"츠B�m>�lEH@Ql�%�!�+.�DnK�T\�?N���W\�?,�(���l�J!�,�������SvSEnnغ�u��9\�5�Hc��k.�m��`~X�#�[Xr�ΎQ����_a�.�v鯰��.M~�I��RZ���^�����P�jO~F@��K/!i���A�cgl.4�g��a����7>��q��_nNC�N�1��#�3����OI�p��܇`g�ۓ��ƍ�q�¸��y��Z�u�gBθ_�K��o�ɬ�8Q[
+�6�L|neمZ�u8�K�xn�Q�M��Sy����
+Gq�AMg�,�Ɣ�Q{6
+p?�gh�W�34D�:J�Ui��Fl���j����z��02?C�IL&)0
+svF:�r���q4�u��X���d��a={��R�%=�v�qc���e�)�n9�&��C�8�����4ZE�CvO>�'힞�#T9:l���{o�Vc{�����緗Agi���}��j��/Qy�=V�a��*Y����!%1@����<-/�`;
+�;��0`�sP���M�o�_�;�]Ժ(`���|d��0XK �@�d��<hہ@��v�"ȭG]��H�U�-�]��P`(����
+�/G�i�u�`�ν!}| �a�!p�G��C�Y
+?��?N�T�70������/Cn=�7��hw�y���|g^���yi,�ܾu��n�6���P`���:{F����ַ;� �m����Ӿ㪹�w��f��à���[�9N`h��9:}���嶺m�B?�5�na�����4G?�p��S$J��fH���-l�^c�)�Ù��l�^C�0�o���9�E���E����~Q��}õ���-�o�pm|ot}�IZdX��[�rT�s
+uՔ��aV�a+����ҖdW��._���ȡ�����
+]��q�
+/OP�%B�u�S�C��_hj
+�;^Z-��!��Bq�JFW�c^g�C���^k��E�rIA�1k��Y�hH �h[�UVi�d��A�����+�����v�����q������q��D˔7�l���0�tu�:�<e��t"�<�����L���/z�y���j�)�n�܋p���i2O��B�����
+�)�j�,��|l�8�@�V"�n�@@ML�����fb9��L��S�5C
+��j3Q�!R�2���t��zV���+�6{HY��yH�TS�-��C�G�V�#W
+��w �D�]�ں�x�զ|�m����"�_y�E(|o�5y-�[}֣䴍Q�Z�H�����ar��#��
+��>�1��
+�Ӧ��C_�fg���v���*_m[j����� jc��QR�����Mm�}�ݼ�c�r�:�u6�#�QC۞�v*��UFN�w#��9zb_��=k�m�R�L�&��l�.���%xJ`�[��խ�F�=%���t���^�mOl�*�W<��]���z,=�������N�8��jF�l�r�k\�Z�tL0�����3�l� ��)�m�P������ж����.5}�e�D���Ӫ!'���=�2��? ���=�bh{�d�̽
+�u�]�0��9�*�y�U�����QV�U��*w�pk�����Q.�Tq��Պc�x��r2Մ2x�(���W*��+<�L�5eGs��*L~�y�$�����NQ���[g�g��2��3�gv�1sc(q�o:q�cG�>��W�A�R���a���щlN�\���Ҫ�yu0�sWKlN\�]�ڜA�mN@��6g�q��t�6g�ۜ�[�9��ۜW�zƺ��6����:M�21��S�����V#5�>!;�Y��}:�� �<H�%���)���dT�w�ʨ
+�l���S�q�����*5�ߺUv�*���
+��h� �]
+��Ұ�v)էM���̂�qX�--��׃�R"d��O��g)����P���1�^�I�*4nѐznDp�����P�q~6*ɜ��ș"��3� �������P�}��95ne���Z�bcF�ҵ�<-&�D�.�ђ��T�\hELGK�؉�QT�S}+
+�Fm*n����
+��W��`�7ps�_�j�9��#������"�E+X���ͱ�J'�9\��
+���I���4�N0��t J���/vJ��
+�Ԯĝ;�N��9e�4i6�\v3ɣh�7��e��d�7��j
+�D��s�^��ƣF����~2���%Ys�吭�h0��є��G�M�����S�!�dxh[�8�9�0N��n���F8i|#T��5DZo/=̪>\+����G�(��c���M��]P�,���sBA+T��W<�+��X�"1��)��6B��̔O�} =c"���D����d��A�/��"��j�._�ή�5��"�1���`�r��M����#��%�o�J�w6��\�ә����14R
+[��n���6��o� ���06�6��ي�'�g/f�n����L�UYVnk�$8��a�(�cWr�=Ò^ay��]J`N��T�()���o�r[��m����ȑ2r��
+)�U<��:.�r[l#X=Ƌ�=����[ĵVt+y�����TUѭ:�T�w�����&�*�B�`".T�R�QsK7u+q�� [Ӂ���{:
+��/����=�
+oW(�%+oO���Q�ժ�j�?q��JL���'�ou��nu
+)
+T�Y�ȅ�T��4�et�I�p��V:�*-��^K��P;���/��ߔViI��H��B�Wii�o?�z%"
+Q�|mIq{J����jm�������.���f�-�fQd������f!����"�|�����.!9D�;d��p���n��_����)R�vX����Q)8�֣R��Q�j���XB��~�I�4=���C%���P���_�,�} x9pmmؖT t�i[R�"�l˲D�B���J��9��BS>��-[�8��4an߶l}�@��[�-[�(�ΎQ��}۲�}m�o۶l|_���#E�S��1����
+
+���Z�a�A�J-�����by}|�P�]pyx��R�yի�R�i�*�^��r�~��l5�Z����m���Zg��Zk��p��F��@�n߂��n�Z�ߺ �ф��kAn߆��n�Z�߶�5݈%���3��x�����
+/��<}���l���PKʣ~*��PK��@&sammoa_Diagrammedecasdutilisation.pgmlMN=o�0��+�7�ٵAuM 0�1Q�d`���aY"qd'U~|������ݻw��Os'���m�q ���P�G��l7��eޕ���l:�\/��D`$���c�:����|�L�d�8m�n�����Xu��"����1���4TrR*�����M��9U�����o�� �n��gV��I�������л��z�Y��:��d�PKǒV9�PK��@sammoa.todoeO�j�0<�_��.YnkW6�M��{��Xk#P�ERL?�5%Ѕeg��aV�/�,`�ƙ�H�3��Tz���ٝ�HɾI����Н?�ģBҞ���J�H��*%a%�u�|��
���,���\�l�v�
-l�:�L�A;��Nx�{�i7�����D�7��=�l5�^8�0�@h�@���h^PZ���ˢ����CYV�j*8�5���ӓ��LB�l�)�?�~�$?PKP����KPK�|�@sammoa_profile.profile�����Q(K-*���S�UP2�3PRH�K�O��K ����Z()��qq��e��qqr�䔦g恘���>
+l�:�L�A;��Nx�{�i7�����D�7��=�l5�^8�0�@h�@���h^PZ���ˢ����CYV�j*8�5���ӓ��LB�l�)�?�~�$?PKP����KPK��@sammoa_profile.profile�����Q(K-*���S�UP2�3PRH�K�O��K ����Z()��qq��e��qqr�䔦g恘���>
�z& Q}�0�
-�����������b<��SR�S�R�K�����+�,EȂ9PK8��7y�PK�|�@
-sammoa.xmi�]�v�8�����陓t��ERTғI���ulO���^��HH�"��q's���w{�٫}�͛�,@��(��?��x�X@���
-�B��o�L]���{ʟ���F�=˷oB��tyf�T�����^�2u���K�녯>}�������O'
-��CSΐ��ǗJ䐏��h���]��TZ��v���)��ݽ�6[��7�S���F6�(��g۷�)�"
-h��/���"ҶL|J̏qH��G#��P���k��&�&o����ެ[�u��M��V����?:!�r�?\���d7Ϛ��VKQ�Wj�UKS��|�T~$��G�|�g�%�~R��d��> y��'Ƌ&4M1�ocWI9������,�?��jh?����鉅)G-ߋ�}�nI������c'BU;g�3�*ggF��l�j�
-�f�^���f�Us�2
-���(I�.wh:��K� �f�rƎ��
-�i���_>�~���
-���Owt��(�d-�]ȉ���b���y��x�x�E��?������~���
-��F���~��v�c]*��І�b�@3?|�B<&���o5_�|�t�e���|2����Ea��o��=��y��s1:2����ܷ}��������NA�2��l��k�(���e��BN߿�;34��̥��P�hF���B��;3� �A��¸��d,Î2��#%��� ���|��(�J��r�0�3�#��B%�)����?bOy�F����^L��ʏɯx<&"�I�H��Ͼ���{��x6"�~�u��w}��>���鷃>���<"�g�ҙ�iLFI:��O�
-�}��4:za�[N�g�>L�ò�����D�?:Bn(8:'Rr�ZOI�_cLA4�d�*�����4,,��+k>R��車M-0�^�⸤���� ���<��������L��b���8 � ^$������g�߿��v;tl*d*����?G~L��߿=~���vr�qЗ���X.1w���Hng5~j,�p"�7[r"< o�S%�"��z�U" �0g��D��o�(�3��%��@���؏^$,��?��bA[?��t(��r�:r��"�J���?]��T@Ԑ�p�P�W"�=�߳����Ef�gQ�+w�>��*i��)D�!����v���7J�5M�Ȗ�>n�6BBX�i�Zu
-a}SN���������lL'^֪�ˈ�Nԡ��Ey��[�!w��ƳءI�ӟ�p�~�N��
-�E,(���=��z����X��G]�BT�]��6�c�)ݬ�K���A#L֥�]*��b2k�̨ɮV�����mZ�.=�����w2��̒��vGD��X�?��֛6\�A�j���W��J�2{>���O��������ῖ��.�7���m��f�S�P��nj�� \��\
-���"C��6�f�D�^����O�`!?QC�8h�1���H�E�C�}�Z8SM�@ݮJ%�u����&[�=��=�}�K�� ��C���Y<r�� �����ϒې5H��Za<�JLz�|����&B�G��Yg�[� �ې{9g_c��3#�۳��ߥf���Ϥ���F@_6�9��G�~W���^��Y��[�T��,��AO$�˼�zk�,Ϸf�����ȡ.P��I����{��٫�s2��x�6�`rN�c�,���-���cDh9�;zDtc���U;��Xޛ�I��^�u6�nƌ����{}��w���k�H��xs}��������i����?���6�XjS����FR�Va�����_��\���.s-��MG���j�K�@}�P(Ì�\[o/z5|W
-"�SY�t;yS�.�Ş�\�v�Hڻ+�L�yd�^�O� �������-���5yd�������&��V�o���I�p�i.>��^��[y�ZgV��-�_��ؕ�g8�u��;r�#�q�{�'l��&�O7�|����DrW�Y�5f(��2y�V=�N��Z<�\�2V����
-u�QB��${��_�'�"�1IIn�V�.ۣ�c�Z�\ճ��ڸ�6'���L���x_@+�a�Yq���6�0�\�ٳ��lrz�)��̯�z8C�y6|gt����U����ɵ�@JiM�/Oњ<� �s��NŒ�9�Oƒ0]ʵ�$�1��QSk�E�������ٷ�w����O��H|�u}�S�u}�9ҫ�'(��z���(bv4Y���,o��<�Zq�\Pp�8��}��:Aꁎ�rߦ��;
-l���b�e�ŘN��[�"뵲�b��u�O�)r|��%���Z����}��Qu;lx�>�D�U_��^_2�Jk����"^MʶxFe���sH�����&�1�k�t�ؠ�x|��f���KflNz�����!v�J����<�,&8U�@���S��O˩�5�˩�a�&�+Y{3§�F�!�'���;�� S8ncl�5�!�^�=,N �?�^'K�O�M� ڸ�妕��6֘��j����Ѵr/x�39Wz�S�"� f���c�$��Q-��*b����EЋ�y �+���S�9/L�X�<��rP:>�d�|Q�G �g��-�Qw=lr����gjd�ؓ�4r1����K��4�y�m��hd����"?Ms�U1;+/,���&�[̚X�>X�t�y���Ȁ��C���f(�^>�^!�^����R��[.�r��}d}���]r�0n-��r���J�t�v�M:vѲ���m��a���������C��!��.�*^!���Yq��Bfa�\n|=B@ڏ�ƈ8�+�`^����{�:��h�-Ԭf^�����_�<�
-�[�>Y���0��+ 'B�:�aDf��SK���[4�#^tw��R�Az>E��n�z��>Ɔ�i��&ju;��^}\r�'�_ ���6Ի�ai1�&E�6�~��*�!�cU��#�K���S�{*u/!��j��D]]����ZБBq��`�����E��{�' ���RBo��I��Ny���d߇#;%� �A�s�*r�,�#Z-f�}
-#<q<���{Z'm�J�����P�5pݨ����L�{6�4K[%Ul���
-@p3˞[����M��`]�tqN��f���,�'R
-��������C.��/1�.��{Vس�oC�k���A�F�:����^���У�/ n� ��u���U@k���B
-0!����gdz�ZrajA7g�,8�^�sQ�VZC6��e�D�ٲY:��$�si��Kf�Dj�ͻ,���@�=J�l;��G���EaJ��D�+����O˂"R�_�����^F�^�U}��\��Z��´Z���v%;�ni�Fy�����5�����)h��&��xr�J�@�Um2�[6�~Ւ����`��.5��i��jk�&���x�k�?����T���B�����Z��_i��O�ƒnt�1�ɘ�:]����3�&�U�~��Ci{e,.�ܼF%�����SnX`n%��[N�7�/�Z�a��+#E�L���'!��;��[��8�3��f�������ޙBD�S���-���h!��ƮT<��όQI������6��OK�>c=���uz8p��B��\��2� dYj� r7��HP/$_N��93�7.@�<-&O��b��N
-�!�cHv �ЂN0�'�2*���-K%��q.ߌB<nw"���}�=�y��
-��=���S�_\m�?O�-S�H�gWE����*N��L�z'�`��� [����9��|GN��Lؑk^�ݙ
-f�}��\oR�ˍ3�9�N�m[�ll
-6�z��$�bi1�B���=~D/@�SEn�Q4��f��/� �h�C����kQ�M-jŀR�,&��8}�L4��� nH�h~ %�T�R<-y�b"r2j���!w� �͙^8�R�r�l�����v
-�+n ���G�0���q� z ӡ�ր��pӊ�����g19��郔���:����{�e�s��.��3jl���X/�K����I9�j%?�3�M�O�Ӄ�z�gFK7T�j&��G*�m[c�J�����ړdi1Q�Ba�Ce��$��5��ۦ�1d�+kF8�����T�CӚ�CY���r�!MfHAz��¨�Rﶺf�N���"�cc��2s�qQ�� ��A^H9�����0}L�Az�$p��A�,-��0}�~�th^�Q�� �s��e����AA����A�i�@�x3<E� �ς�̈́�p�L�c�D�na6�;0�-�>��P�-ӡ��KB��B��ƚ���3-�-v��67�l�>ĝI3q� �,ӡ�0P������.�:[k��ٽg�m>��{k�C*��>��!8V�_ƺR��-'��ᆳ�g�ԛ54d$�ZP�q�ə�P�����`;i�\@ �� A @d:T���~���d�c�cu�����X�o1OT���aA��=ďV�8N�K�2
-� � ӡ���'�o���pu\Бq�n�M{ܡ���Gdڪ����\d"��-�_����W^�'�K���K�b�������s�A�F���h���?�G�$�
-�"p��m�fG�:<S� Q�?;��Ԓ�U�9sh�x٧���0'cU�sQ�VZC6��̞K\��e�t�}Jf���,F� ��z�̛HM�y� 0��U&`n}�s;���<�lr���
-at�0���9g\q��[t7��o�gh1��$�|n�U_d�)־�u<��B&{����A�-a$U�9[��Y���3j�~�L�|
-���@���r�A�y�*�������#�&L�u�O��'NT��t�
-�a�=���]8�+��b����G�2�a�s�a<�;N�:|�N�W���q� �ނ<�ea�c���2f�n�$|���u rU���rÀ�Lؖ^�`�mFnI���ms�@+�(�8}P"ӡ�Hp�!�j��$uCg<һm���肉��ɳ���^?0��jA!�B�A�C�C��En��
-�v�GK����^��w��CnhA�w���(�ׂ"��ȂL�z�ćs阁�������(9038���AA�����ܬ�x<���:���Y �ւ�J��=3���d��E큿U-��0S/�mh̐��:= ���$Y~����)��a+�l�өj�n�RB�x��6n��~��0�7��l-�|�8}P>.ӡ�:Cl�Y���)xPER�����$�R�C�R��+
-BS\�YJJk�L��Ɵv-��Mlv�1O�1�M��S��E�.�����XK{-).l�F�E(m!��b6 ��
-�L����c��>�&���kXEJ2���<��Am�L����t�{��%�p@��%O�6��͙�dLp�qL?���j��A1�L��D�\��f�)o��bN8KG�3*�SB���:2�Qfw5u�*M���q��C�q��n�L���c�y�m� � ��a�!�Y�-��%�S6������(�*QRa{�O�s�v0�u�J��Ph_9���/der�\���g1F��`�f:TS��;��[�_�3��bB5�L�z;����pB�d�Y��(��PM��4��{)pܓq@�l��ʷ�t��55ɫiZ�[��xR������W8)A���ֽ��,yB�.$��t���\��-�h�m:(ږ�k�Q�9(.��A\�M�@)�s$D�@8��0+��M^2��o�R-f�W�@���t�^nM�ـr�,���8�P�"�P�
-~�+j
-���G��&"�3rS�-Y�r�,� ��P;ӡ�( �E��ٞ�E��0�����ߩ�nx�{g�Mְ�A�8G��4��2ꝋ��a�nrV�j��4�Y���RGϙ#�����{6�h �ւ�@�>@�L�j��9p��xѴ*w�:���������A�9���ݐ�<g3S誩�ۥE�z��s�~��=F�f���~�������:蕣\�=�����-߳� ���|�_c�O��1�cN`��Q?�G�_��3Yr��6m���r��S1����gdz�Zr�ڂn�./���-{��+yι(U+-� �6��lf�ٲY:�>%3��i#v�O��n�ϼ�Ԅ�wY�a��m~���'��M��$�����[�aUq��j�C�Wޢ�B�֙D�cÒ[���ԗ���g:�'>:7u+Y���@���$n��f:T68T:m�n�p2.4ӰK��
-��P �*�Hٓ#E\4ev�Ğf��]<��^aA��U)�|��β|�'�;�|��H�#��Vuwԙ�=����Y���Qfc�%Z�V��q��������r��0�-����k��t�Ȥ���V_�A���o7���_��S���sM�Ƅz<�=(��ǛЯb/��m���d��⦞�q'\wK���2��8�b|*���Z8U�KN��B�*��d��WD:�+�Ӣ_���p<)2��z$�~�A"
-b���)�,9F�+�.�$!�)���&��Xk��f }<�tZ��lv����4Z-#�{E�0�7g�T�؎fX�XU��<��&;N��t4��mp� &��p7��3�����,�}D1����;t�'OZ�/]c�괓��Zݎi��p�v�������3�x��%��|�(&;�0}bq����W�������`*�_5�я����#dYM=hjg<һm�@6�<lW���bF�u33Z+(�8��dK�zx���%�� �ܥE�y��� F���
-��*�VnF��+b�9[P��WėeW�̍��E���m��f�S�j�tS��Ƀ.�%ݏ����[��{��-�0�B�b3�_b3����e��b9hA�z�� ��;@�a�ڸk&l�45k��Y����S�F���S����S�p�R�ؠ9��G<q��u_X����P�@���V<��EE���;'�e:Թ�8�3�x@E�m��t�G�@�����*7����:��h��8��/�^���
+�����������b<��SR�S�R�K�����+�,EȂ9PK8��7y�PK��@
+sammoa.xmi�]�v�8�����陓t���!)*�I�$˙�&��v��^��HHf�"��q's���w{�٫}�͛�,@��(��?��x�L�@���
+�BՏo?������ʟ���F�]ӳlwJo�tyf�T�ݏ���^�<�������~������iÛM���f8�#7ȏ/��&�h6���#��%r�NKi�����2��+�f���������7�������!
+ ����y��!i���%��(��p��1Fn�P���ۤ�������y�7�[4�lt���?���?\���D7Ϛ��VKi�_���Z��/�^S�����Q!���ܸ����;��ǯ^���̘�&��,�( �����V���Z
+���7�'=10��!y��#I�W����X���Y�|�ٙ��-]7Z�Z�&��A�WgF��|�\�]{��7J}���<�R���96�mƟB� '���[�S7>`4y���D;菃�G�Jۥ��\-G�������g�/\6z3zw���z/��U8�6��/�O�m�����B��l�0P�h���q��Ǹs������oV�Jw��GF��:(�>�Ǔm��o�<O�q.FG��a��߁���߾����SP�̼�"+NFeCﲬb^ȉ���_#{��X����9��)�Y|V�sgF�1�U�s�̀U�Q�8z�d|�:E�o��X�}E��s�d�<x~��0e�߿�G�*/����ѻ���}�+�L�HPLҀ���o�yf��Y�-��ȣ�z��������=�(�;������:s2��( ����M�AL�۷o��FG?<ӎ1r�݇�`T�a2�T\0������
+ω��&�S��Wb��1���e�?Xy&z����)Xy�Ţ���I/G�����_�yI��L�@����P@&��
+0��A��/�g�=B���軭o_�QH�Ml:62d�d�ПC/�C��o_�}u;~�����GY�SL����$�3?4Ve�?�-9�;ʼn�JrEa=�*��I��DO"����I�̙�Y�
+�R ~�k䅯o ���������|:�#9�r:r��"�J��g�:d)����!⠡�w�/Dn>z�'�k�4�L��
+פvV��=�:�)T��[��L�{s2ڭH!�n�@k��-Im�A����n�j�]��Y�]9��S�"RL��1�pxU��q!#�;Q�f^��n<�<�{�#�"$�NXh��������&���e�A,�d~����3�i&���Y��ћhL�u]� �����A�.m��R9��Y��FMz��]�.�o�Zu�p�����gG���U�\?��;"�(��r��?|v����P�r��e[~X4ܕ5�u�W�s;�o��q�r~4R�<R�F/�\"�>K;����9�0��ǚ�Z&L\p�?|;�0�y����l�8�3���~3n��B&~����ߘ`?>Α|?}���l�p�64�zm*q�i��5���$����^*�v`�m"�X�ϣ�c�<Q$��Lo?��ABD�
+�Uflң�'7��Sf��e�[�B?2 ېs�`_c9�='�dz�%ߕf��t������O?6�9��-m�+�L�L.����T�_*�|���AO$��|T�5S��� 3g�_�y��(D�����d�=�����9|^4s�?='k��M�\��FK=��Z�~A��n����n����26���˹�F�͘q �B|��u`�o����oK�����������?�.�KAk{3�������vx�R��<|U7�z`�
+l�^����*��v�k��n:
+�'�V�_r�ӆBf�ef��J�ѻR�����͛Jw�/��R��G��])fRo��yܾ�?,�܅�݇�2���=�G��pԿ���'��V�_���$_��4��+�Bí\lf����yz�Og.ve�vpo������-�?�Fn��X�Cө��ˇ���qnp]"���4�s�d�<G��T�mj-�q.K��QF s���(!��r�������/��Xߘ�$����չ��h��@�i��z2-���9m<`������Z�hcTΊ��Էɵ���
+̞Ug��Oad~Ͳ���������CWQ���&314\��Қ\��5y�A2��%1�8�Oƒ2]ʵ�$�1ɴqSmim�jiM�+g�vЫ:�>��#������n�����@H������V���ɓQ��h�b1Y���y*��*���Bq��~�u����~M)m1v �b{��.�n�1����XE�ke��F����S��;2J���L����}��^u;lt�>�D�U_��^_2�Jk����"^Oʶ|Ge���sH�����&�1�B�5w:x�LlP{<>~�o�Y��%36'�`at���;Y�W��w�\�*A�|t�)C���Td��r*fؠ��J����i�Qr�����n{�&�)�� 6:*�F�_�'��I��%٧S�&�m<Ps���^��\W����w��j�<���+��)R�����3�Xݍ�c�A��q����n�"�ſ���R��)����&O,nTp�(N2n��(�~���3s�ƨ�6��?�s�352�
+�Ix
+��d`�䉥�|r�8�6VM42w��sXU|���������N�+fM,N,��:�<XO|d@�����q3�Ug
OEg+�ѫ�:`Xj�p�e��o:x��OCQ�K�ƣ%[n�0�UI���)�I�.Z�\[�-�7���Z�Z�R�9d��^�+$3+N�X�,��ˍ��@H����p�̫��a��}/{�n�����k����&a�#ޠ���#,����
+Ë�r"�d�B2�ZҴ�ݲA��
+��)zv�״ ��n�Pm4Q��5���[>1�Bȝ���K�I7)Jߨ��c%Wy�����X�^���S�{!���V{����*���X �ׂ���L�\��(D���>A�����CfHO�l��{�ȉ'�>�9(Q?L�˞+uX�c�`!�Bh1��@�����:i�U��?��Xv0������F-'��+�
+�kH��Ur h�mST���3bk��mh:���|4XӺ=���삙&!2�Tl���K��!v���_V���\3�}����a7���ѡN��6�����h{+��#�0(�>gt�$mvPf�]H>&D�<X�d��JK.L-��L�e�'ы�s.J�Z�cȆ��*�p9[6K�>�dv.
+�w�,�HM�E�%(�G)�e����HS0�(L �� ��AE��y�iUPD
+��с�����(�k����+�V+��Q�Vkuۆ�E�N��[*�P�yu���?�-.}o�m� ),�ܲ�%�nU����M�_����$s0��Kuklu[:e�Ѷ�Iif��ʵ��B��[*��n!�Rq�r�Uz���R��|cIӻ��xL�ݞi`� �#�g��*}�X���2Mn^��I�_a��)�
+
+,0���-��ϛ��WZ����ŵ�"|�6��IF�;��x�6�VaG/N�����k�g�6=ߺ�g� ��A1u��c&ZH.��+��' 0cT p<wj��8 �Ӓ���f8X�N�^� 0�+�P@&8 �,K��#A�f>� ����>3g�2��(���I� P,W9����7d!�c��Z� &q�S�Ce�ాe��W9���q����ND�>�Ϡ�#"�_0��B� �|u*����M���e����hVq��X�����P��!��r7�V a���0g����i�#��;r���;���ܳ����M��Z�Q@gF;'��@��ak��M���fߝ:�R,-�Z�8}�Ǐ�Hp�H��4��R�,y��>�Mu��Q�}-
+��E�@���d����:�1�
+�/�D�j\��%/]�CDN�C�q@�:�n�ٳP@jW��Mq�`� ա�Nq��
+$0����= ND�:��]nZ���z�2�,&��8}�R<���@�[���0�wB�,y���E�a�C���s���J`�96�ԑc�Z�:�܄��:=��=p��4��6�qb�q㎥�s�r�-��N�I���(B !�0ա�XP��pFC҇���k�ʚ�`&�}.aӴ��P�bi��kH�R�\��0j���z��ѵb#�l��ٵ0{{��ٸ,jo�Ax� /�O����0}L�Ar�$p��A�,-��0}�~Luh^�Q�� ȵ��e����aA����A�i�@�x3<C� �ς�̈́�p�T�c�D�na6�3�3�1�-�>��P�-ա��KB��B���j;��g�:�Z�Sn���v<�;��g1qg��A�Y�Cea�,�a����.��[�����3�6E������#�B1����X@J^ᛢ�D9>�p�~jo�z����S�w!N 89Sj�|S|P\r�,;I�H ��b�$��T��ֻ�/��t�p�n�^�-���:=,����
+�U�i�`iQF�0�`�:T���D�5�b��:2�:��aM�t\ڸ��m1=�7���~���}y0�W���a��
+���kF��]3��_#b�����B���-wt
+�WD7G>aQ�}��I��("=W�'b�1!��a�'۵VZr�jI7g-��Tw��d���s.J�Z�c�&7��s��d�l���OɌ�h�ƈ��g�B"�E� ���C&�̭`n'�ܔ��ܖǐM��:]!�Ζ#&W22�+��{���fs��-�-&�����-ա��=�������ş�d�ukO��FRU A��������9ա��g�1˴γh�O�;,7��G����N` \,�[�P9�-�tX'�p��AE�T����x�o�R�,��8}p/�` �YD�_p|�a�V��"�ů��a��1.�TX$�1�t+/!�ӗw�
+��r,�4f¶�:=�`a3rKB݅h�C�'�j1E!�郚��F����fS�ĩ�����0��H�FL��\k���� �b N ��:�<�@�^������jGJq�����q��uz@�G�V=���(p��;��|-(�@�>�,Hu��A|X0��)8���@�O��C3�cr���,�����'�����rl-���0}��3ա�P �Mf?[��q��z[Ղ�!3���6��)I����.J��w��$�H����d˟NU�4S���'��I�mE�k����x�gk1�����q���b�����GH���*���,Ɵ$A 8�Rj�*��]Q
+G��bX�RR�@XK�:T6��kɎf`�gN�xj�c�P� ;eJ&�u������O��Z��kIqas7"LB9hv�!Nl@�:��t���4 ��^�*R�����j�:��w��s��݀�<-y:�!nNu c�[�c�{�p@���T���q�:�$��r�6�Oy{�s�Y�@8��PY��"�m�ՑA���T���'�a�����l�1I1�7�8}�&Hu��Y >&�Gۖ R �2����ؒ �P�8eC�dEXn.��V��
+�[~*O���ů;�UtFB��9����|!+�k�B@�4?�1r%+7ա�*n���:��ڞ��� ��:���%~��*'��b`@�>@�T�j�Y�f�%�qO�=�y*+���V�q^M�Ա�BL�S{�},|����I�a�+�Β'��AB�T�j*8�U��2�VǢ��cj��w���{���4|��h1GB$�3!�����8���%���8 ��b�y%���T���ִ��( �ς�Y��,R�������Hq��pa!<�p 7݊5( ��b
+bK�Sj���\�Ș�[p��P���Z;��g�d
+��s��Mq�`� ա�[*���g�̎�U
+��Uh�.u��9�l�k�π2l-
+��4Hu�fY��ʉ�Ȍ��P�KǞ>�̭=u=|Ґ��Q$������Bo��z=jPt��u{8G���c������6}��K�]��r�y�_#�Y��f���5��5"����1s1��X.
+�z����>G>a�%�n�6��(w8�� Q.O��]k�%W�-������*�lز?ȱ�����R����aoӮ�f��-��c�S2#7��1b���v�,�HM�E�% v���'m�=��t�*@Y[[���V�Ϊ�:�|�-:,Tn��G��,�e�YL}yq���|�x��a�qS���1]�8ZL�Vq� qk�CՁ`�C��Q����B5tS7�[Ap*��C){r����̎���ӌ��˗߫",(
+�*���Y���rG��)|D�P���ڗ:Ӹgә��KكZ;�l̵DK���? .�ܳ���r��?R�c߽�is�V|�=�_NF�L*��l�SL]l�vS������ә>5��<WdhL��cՃ�[ط�)���_�b�M�>�.�z.�q�u�䪉4ӊ�s.Ƨ"A`�aI��S���T9+ī")J�� p����:-;���LlǓ"C��Q@��W�$B?�X��͒cĠ"�J2���6�6G��f����X�h96�ٛt:m�2��j�5�+j��9s�F� �vU�4'���ǽ��`lj��F�>�
+n0�d]C�fVq&�8B03��o�(&?�8}b�N ��I����i���N<�P��56.3�*n�9�7�_��*��b��'g�*k�.�i���⭻�Uc��:��3F������N�Z��h�f��Vq%,��-f�haQ7�0�ՂR��L��\�����YR=,�]JPě��
+b_=� )�"n�fd��"f��E�E|YvE���O.P�k��l�� �7���f�3y�Š���<{zx�z��=L�P��L�O���#��^���XZ�å��;F@h���:�1��M՜�4���֊)a#N_�MzA`�)�B8y)el���O�mr�V����(7�8�2��LB:dQ��gA��� �zG�u��,��3P}[~�:�#N���?@�SB�67���6:��h��8��/�^���
�
-�()0��e(@P�D��F١�Y�&�
+�()0��U(@P�D��z١�Y�&�
N
-���U� ��,-�ޓʌJ/����n���.�di1 �%���ł}�_���Rsm�:��ΐ3��Z�01��a�ik~� A Ӎ�^��0��L�9qJ��$�ϲ����N�t�X�o�'�G�k�9�S�O�@(��(��+��t+�P�=�@��Ť:� �"�dvMU��:NƄ�����2�C����[�8��2|-f� N�2*[��ne���jn���J�Q>g���l����+ၭ����Z1�Z�s��o�v2ñY�3q�| l�0Kr&N�r�Y�C���$sH4��� ����U0�
-�f�fiu�["�槙����r1HN2o���s-����/��a{&�`�L��e'\^s ���;6��"�9�o��ռ�L���p{5䰄1�C&7����S_��������f[�
-g��V�L�ա�ّb�)�!A T�X�T�$F��,�FY-�h��<����o��5��M��;Eup��t����`f�\YC���;�Vw��$z�0����L.�9'+��%^�s�t���:2#N�XjF�Ò�{e]���C8�NB��Vۓ��xMTe8Cn�xg�� �s�y�[d}F˳�}<=�?���Kd=�∈���DzI���Oc�B<8]r駡��VB�J���&K���j�9ޣ�;���� u���w<�t�4�^>CGM�� �z����?LfX"S��'y�@<_�����X�S
-0;�k��s;!F���k:
-�bceF�2%DD�ae���s�{��V�uOq_����_f~)�v(�B���\+v�)37��,EXyD.��e���E�r/�∼�?�;���J��g28�ѽC�>y����*����
-�y~�"�jxn�-j�|}�m�#�.�z�v[J����؝`��ȍw>���
-o��'7l��7��Z�*��yw����e�N����~;�U����n��p;��?����{��dO>����PK��� ��PK�|�@}=�@�sammoa.argoPK�|�@��27*��ysammoa_Diagrammedeclasses.pgmlPK�|�@ǒV9�&�,sammoa_Diagrammedecasdutilisation.pgmlPK�|�@P����K�-sammoa.todoPK�|�@8��7y�/sammoa_profile.profilePK�|�@��� ��
-�/sammoa.xmiPK�
-P
\ No newline at end of file
+���U�)��,-��S�
+�\�'����1�] ��b�K�S*��ȿ����ff�:�!�͑=��Z�01��a�ik~� A Ӎ�\��0��L�9qJ��$�ϲ��:�NJu�X�o���K�k�9�S�O�@(��(��+��t+$P�]�@��Ť:� �"�dv�ݶ��I<&�v�i�m�Wc��w�=9C���@���,���A�Ce��֭,\���Di�x��x��_�1��5��-y`��&"�VL�V�ܬ𗳝�plV�L�(��b���AE,̒����h��Ь��8�RG�U+9>��;á�}�¡ٽ�_j���i�-�q��C���[!6F�\���������Y>lτ,�qP8�������� J�|c�,�O'g�����h�#S���w�?�|qX�U�!�f|q��@�������L�-l�3�u+}&��P��H���ߐ �o�u�d����I�?�l����\�k�`�����3�A
+�}Ӥ�NQ
+��k��c�42���@W�P;r��n��#=���
+m2���zn�Ɋ*a�O?�;-,�肎̈(����d��~Y���#�����%�����?^Ȗ�4��z:��n�������gOO�O�l�
+Yϧ8B"�}��l��k���/NW\�I�+��УV���y�Yo�&�{4��۵��3���9�l���#����⨉���F)
+k���Pa�%25z~��
+����W�0Z����7��c�v?=��b�Y����fc+V�d^ SD�Vfȍ�����o5_���{�k�y���B�")D��1#G��2w��>��a��G���_��?t ��(
+�wz�_p�̽�W��3?����m��7�������O�7��z!
+���^��Al����LG�]r{�v[I�t�i�N��7�D;X[��7����
+Q��7��Z�*��yO�����8K���3���m����n��*p;��?����{�
+cd��|��PK��� ��PK��@��,�=�sammoa.argoPK��@ʣ~*��vsammoa_Diagrammedeclasses.pgmlPK��@ǒV9�&�,sammoa_Diagrammedecasdutilisation.pgmlPK��@P����K�-sammoa.todoPK��@8��7y�/sammoa_profile.profilePK��@��� ��
+�/sammoa.xmiPK�P
\ No newline at end of file
Modified: trunk/src/site/resources/ulr-sammoa-echange-data.svg
===================================================================
(Binary files differ)
Modified: trunk/src/site/rst/import-export.rst
===================================================================
--- trunk/src/site/rst/import-export.rst 2012-08-01 11:48:58 UTC (rev 334)
+++ trunk/src/site/rst/import-export.rst 2012-08-01 12:37:54 UTC (rev 335)
@@ -59,19 +59,19 @@
Fichier de strate (dbf)
+++++++++++++++++++++++
-- colonne 0 : "Nom" : Nom de la strate (strate.name)
-- colonne 1 : "Area" : Surface de la strate (non utilisé pour le moment)
-- colonne 2 : "Shape_Leng" : Longueur sur le fichier shape (non utilisé pour le moment)
-- colonne 3 : "Shape_Area" : Surface sur le fichier shape (non utilisé pour le moment)
-- colonne 4 : "Secteur" : Nom du secteur (strate.sector.name)
-- colonne 5 : "type_strat" : Type de la strate (strate.strateType)
+- colonne 0 : "Nom" : Nom de la strate (strate.name) C,50
+- colonne 1 : "Area" : Surface de la strate (non utilisé pour le moment) N,19,11
+- colonne 2 : "Shape_Leng" : Longueur sur le fichier shape (non utilisé pour le moment) N,19,11
+- colonne 3 : "Shape_Area" : Surface sur le fichier shape (non utilisé pour le moment) N,19,11
+- colonne 4 : "Secteur" : Nom du secteur (strate.sector.name) C,12
+- colonne 5 : "type_strat" : Type de la strate (strate.strateType) N,4,0
* C : COAST (Côte)
- * P : PLATEAU
- * N : SLOPE (Néritique / Pente)
+ * N : NERITIC (Néritique)
+ * P : SLOPE (Pente)
* O : OCEANIC (Océanique)
-- colonne 6 : "ID_Secteur" : Numéro du secteur (strate.sector.sectorNumber)
+- colonne 6 : "ID_Secteur" : Numéro du secteur (strate.sector.sectorNumber) N,4,0
Fichier de transect (dbf)
+++++++++++++++++++++++++
@@ -87,8 +87,8 @@
- colonne 8 : "STRATE" : Type de strate (transect.strate.strateType)
* C : COAST (Côte)
- * P : PLATEAU
- * N : SLOPE (Néritique / Pente)
+ * N : NERITIC (Néritique)
+ * P : SLOPE (Pente)
* O : OCEANIC (Océanique)
- colonne 9 : "Shape_Leng" : longueur sur le fichier shape (non utilisé pour le moment)
@@ -99,8 +99,8 @@
Tous les fichiers qui ont le même nom que celui importé (avec des extensions
différentes) sont conservés et copier dans le dossier de l'application :
-- .sammoa/{campaignTopiaId}/map/transects.*
-- .sammoa/{campaignTopiaId}/map/strates.*
+- .sammoa/campaign/{campaignTopiaId}/map/transects.*
+- .sammoa/campaign/{campaignTopiaId}/map/strates.*
Une fois l'application lancé avec une campagne, les fichiers sont retrouvés
par rapport à cette campagne.
1
0
r334 - in trunk: . sammoa-application sammoa-persistence sammoa-ui-swing
by maven-release@users.forge.codelutin.com 01 Aug '12
by maven-release@users.forge.codelutin.com 01 Aug '12
01 Aug '12
Author: maven-release
Date: 2012-08-01 13:48:58 +0200 (Wed, 01 Aug 2012)
New Revision: 334
Url: http://forge.codelutin.com/repositories/revision/sammoa/334
Log:
[maven-release-plugin] prepare for next development iteration
Modified:
trunk/pom.xml
trunk/sammoa-application/pom.xml
trunk/sammoa-persistence/pom.xml
trunk/sammoa-ui-swing/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2012-08-01 11:48:51 UTC (rev 333)
+++ trunk/pom.xml 2012-08-01 11:48:58 UTC (rev 334)
@@ -15,7 +15,7 @@
<groupId>fr.ulr</groupId>
<artifactId>sammoa</artifactId>
- <version>0.4.1</version>
+ <version>0.5-SNAPSHOT</version>
<modules>
<module>sammoa-persistence</module>
@@ -81,12 +81,12 @@
<!-- ************************************************************* -->
<scm>
- <url>http://svn.forge.codelutin.com/svn/sammoa/tags/sammoa-0.4.1</url>
+ <url>http://svn.forge.codelutin.com/svn/sammoa/trunk</url>
<connection>
- scm:svn:http://svn.forge.codelutin.com/svn/sammoa/tags/sammoa-0.4.1
+ scm:svn:http://svn.forge.codelutin.com/svn/sammoa/trunk
</connection>
<developerConnection>
- scm:svn:http://svn.forge.codelutin.com/svn/sammoa/tags/sammoa-0.4.1
+ scm:svn:http://svn.forge.codelutin.com/svn/sammoa/trunk
</developerConnection>
</scm>
Modified: trunk/sammoa-application/pom.xml
===================================================================
--- trunk/sammoa-application/pom.xml 2012-08-01 11:48:51 UTC (rev 333)
+++ trunk/sammoa-application/pom.xml 2012-08-01 11:48:58 UTC (rev 334)
@@ -9,7 +9,7 @@
<parent>
<groupId>fr.ulr</groupId>
<artifactId>sammoa</artifactId>
- <version>0.4.1</version>
+ <version>0.5-SNAPSHOT</version>
</parent>
<artifactId>sammoa-application</artifactId>
Modified: trunk/sammoa-persistence/pom.xml
===================================================================
--- trunk/sammoa-persistence/pom.xml 2012-08-01 11:48:51 UTC (rev 333)
+++ trunk/sammoa-persistence/pom.xml 2012-08-01 11:48:58 UTC (rev 334)
@@ -9,7 +9,7 @@
<parent>
<groupId>fr.ulr</groupId>
<artifactId>sammoa</artifactId>
- <version>0.4.1</version>
+ <version>0.5-SNAPSHOT</version>
</parent>
<artifactId>sammoa-persistence</artifactId>
Modified: trunk/sammoa-ui-swing/pom.xml
===================================================================
--- trunk/sammoa-ui-swing/pom.xml 2012-08-01 11:48:51 UTC (rev 333)
+++ trunk/sammoa-ui-swing/pom.xml 2012-08-01 11:48:58 UTC (rev 334)
@@ -9,7 +9,7 @@
<parent>
<groupId>fr.ulr</groupId>
<artifactId>sammoa</artifactId>
- <version>0.4.1</version>
+ <version>0.5-SNAPSHOT</version>
</parent>
<artifactId>sammoa-ui-swing</artifactId>
1
0
Author: maven-release
Date: 2012-08-01 13:48:51 +0200 (Wed, 01 Aug 2012)
New Revision: 333
Url: http://forge.codelutin.com/repositories/revision/sammoa/333
Log:
[maven-release-plugin] copy for tag sammoa-0.4.1
Added:
tags/sammoa-0.4.1/
1
0
r332 - in trunk: . sammoa-application sammoa-persistence sammoa-ui-swing
by maven-release@users.forge.codelutin.com 01 Aug '12
by maven-release@users.forge.codelutin.com 01 Aug '12
01 Aug '12
Author: maven-release
Date: 2012-08-01 13:48:44 +0200 (Wed, 01 Aug 2012)
New Revision: 332
Url: http://forge.codelutin.com/repositories/revision/sammoa/332
Log:
[maven-release-plugin] prepare release sammoa-0.4.1
Modified:
trunk/pom.xml
trunk/sammoa-application/pom.xml
trunk/sammoa-persistence/pom.xml
trunk/sammoa-ui-swing/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2012-08-01 11:40:34 UTC (rev 331)
+++ trunk/pom.xml 2012-08-01 11:48:44 UTC (rev 332)
@@ -1,7 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
@@ -17,7 +15,7 @@
<groupId>fr.ulr</groupId>
<artifactId>sammoa</artifactId>
- <version>0.5-SNAPSHOT</version>
+ <version>0.4.1</version>
<modules>
<module>sammoa-persistence</module>
@@ -83,12 +81,12 @@
<!-- ************************************************************* -->
<scm>
- <url>http://svn.forge.codelutin.com/svn/sammoa/trunk</url>
+ <url>http://svn.forge.codelutin.com/svn/sammoa/tags/sammoa-0.4.1</url>
<connection>
- scm:svn:http://svn.forge.codelutin.com/svn/sammoa/trunk
+ scm:svn:http://svn.forge.codelutin.com/svn/sammoa/tags/sammoa-0.4.1
</connection>
<developerConnection>
- scm:svn:http://svn.forge.codelutin.com/svn/sammoa/trunk
+ scm:svn:http://svn.forge.codelutin.com/svn/sammoa/tags/sammoa-0.4.1
</developerConnection>
</scm>
Modified: trunk/sammoa-application/pom.xml
===================================================================
--- trunk/sammoa-application/pom.xml 2012-08-01 11:40:34 UTC (rev 331)
+++ trunk/sammoa-application/pom.xml 2012-08-01 11:48:44 UTC (rev 332)
@@ -1,7 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!-- ************************************************************* -->
@@ -11,7 +9,7 @@
<parent>
<groupId>fr.ulr</groupId>
<artifactId>sammoa</artifactId>
- <version>0.5-SNAPSHOT</version>
+ <version>0.4.1</version>
</parent>
<artifactId>sammoa-application</artifactId>
Modified: trunk/sammoa-persistence/pom.xml
===================================================================
--- trunk/sammoa-persistence/pom.xml 2012-08-01 11:40:34 UTC (rev 331)
+++ trunk/sammoa-persistence/pom.xml 2012-08-01 11:48:44 UTC (rev 332)
@@ -1,7 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!-- ************************************************************* -->
@@ -11,7 +9,7 @@
<parent>
<groupId>fr.ulr</groupId>
<artifactId>sammoa</artifactId>
- <version>0.5-SNAPSHOT</version>
+ <version>0.4.1</version>
</parent>
<artifactId>sammoa-persistence</artifactId>
Modified: trunk/sammoa-ui-swing/pom.xml
===================================================================
--- trunk/sammoa-ui-swing/pom.xml 2012-08-01 11:40:34 UTC (rev 331)
+++ trunk/sammoa-ui-swing/pom.xml 2012-08-01 11:48:44 UTC (rev 332)
@@ -1,7 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!-- ************************************************************* -->
@@ -11,7 +9,7 @@
<parent>
<groupId>fr.ulr</groupId>
<artifactId>sammoa</artifactId>
- <version>0.5-SNAPSHOT</version>
+ <version>0.4.1</version>
</parent>
<artifactId>sammoa-ui-swing</artifactId>
1
0
r331 - in trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing: flight observations
by maven-release@users.forge.codelutin.com 01 Aug '12
by maven-release@users.forge.codelutin.com 01 Aug '12
01 Aug '12
Author: maven-release
Date: 2012-08-01 13:40:34 +0200 (Wed, 01 Aug 2012)
New Revision: 331
Url: http://forge.codelutin.com/repositories/revision/sammoa/331
Log:
add missing license headers
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/TransectFlightModel.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/observations/EffortPanel.css
trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanelHandler.java
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-01 10:38:49 UTC (rev 330)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/StrateModel.java 2012-08-01 11:40:34 UTC (rev 331)
@@ -1,4 +1,27 @@
package fr.ulr.sammoa.ui.swing.flight;
+/*
+ * #%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.base.Predicate;
import com.google.common.collect.Lists;
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-01 10:38:49 UTC (rev 330)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectFlightModel.java 2012-08-01 11:40:34 UTC (rev 331)
@@ -1,4 +1,27 @@
package fr.ulr.sammoa.ui.swing.flight;
+/*
+ * #%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.base.Function;
import com.google.common.base.Preconditions;
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-01 10:38:49 UTC (rev 330)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/flight/TransectModel.java 2012-08-01 11:40:34 UTC (rev 331)
@@ -1,4 +1,27 @@
package fr.ulr.sammoa.ui.swing.flight;
+/*
+ * #%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.base.Function;
import com.google.common.base.Preconditions;
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-01 10:38:49 UTC (rev 330)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanel.css 2012-08-01 11:40:34 UTC (rev 331)
@@ -1,3 +1,26 @@
+/*
+ * #%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%
+ */
#effortPanel {
minimumSize:{new Dimension(0,0)};
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-01 10:38:49 UTC (rev 330)
+++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/observations/EffortPanelHandler.java 2012-08-01 11:40:34 UTC (rev 331)
@@ -1,4 +1,27 @@
package fr.ulr.sammoa.ui.swing.observations;
+/*
+ * #%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 fr.ulr.sammoa.application.DeviceState;
import fr.ulr.sammoa.application.FlightController;
1
0