Author: fdesbois Date: 2012-09-28 13:54:24 +0200 (Fri, 28 Sep 2012) New Revision: 608 Url: http://forge.codelutin.com/repositories/revision/sammoa/608 Log: fixes #1535 : - add doc functionalities - clean config Added: trunk/src/site/resources/functionalities.png trunk/src/site/rst/functionalities.rst Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaApplicationConfigProvider.java trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaConfig.java trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/device/gps/GPSNRSerialDevice.java trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/device/gps/GpsConfig.java trunk/sammoa-application/src/main/resources/i18n/sammoa-application_en_GB.properties trunk/sammoa-application/src/test/resources/sammoa-test.properties trunk/sammoa-persistence/src/main/xmi/sammoa.zargo trunk/sammoa-ui-swing/src/main/filtered-resources/sammoa.properties trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/StartApp.java trunk/src/site/rst/gps.rst trunk/src/site/rst/import-export.rst trunk/src/site/site.xml Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaApplicationConfigProvider.java =================================================================== --- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaApplicationConfigProvider.java 2012-09-27 13:55:35 UTC (rev 607) +++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaApplicationConfigProvider.java 2012-09-28 11:54:24 UTC (rev 608) @@ -41,7 +41,7 @@ @Override public String getName() { - return "sammoe"; + return "sammoa"; } @Override Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaConfig.java =================================================================== --- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaConfig.java 2012-09-27 13:55:35 UTC (rev 607) +++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/SammoaConfig.java 2012-09-28 11:54:24 UTC (rev 608) @@ -42,7 +42,6 @@ import java.io.File; import java.io.IOException; import java.net.URL; -import java.util.Locale; import static org.nuiton.i18n.I18n.n_; @@ -137,7 +136,7 @@ FileUtils.forceMkdir(dbDirectory); // inject in defaults (we don't want anybody to change this - applicationConfig.setDefaultOption("db.directory", dbDirectory.getAbsolutePath()); + applicationConfig.setDefaultOption("sammoa.db.directory", dbDirectory.getAbsolutePath()); } @Override @@ -196,15 +195,6 @@ return applicationConfig.getOptionAsInt(SammoaConfigOption.INCEPTION_YEAR.key); } - /** @return {@link SammoaConfigOption#LOCALE} value */ - public Locale getLocale() { - return applicationConfig.getOption(Locale.class, SammoaConfigOption.LOCALE.key); - } - - public void setLocale(Locale locale) { - applicationConfig.setOption(SammoaConfigOption.LOCALE.key, locale.toString()); - } - /** @return {@link SammoaConfigOption#DATA_DIRECTORY} value */ public File getDataDirectory() { File result = applicationConfig.getOptionAsFile(SammoaConfigOption.DATA_DIRECTORY.key); @@ -251,12 +241,6 @@ return result; } - /** @return {@link SammoaConfigOption#FLY_MODE} value */ - public boolean isFlyMode() { - boolean result = applicationConfig.getOptionAsBoolean(SammoaConfigOption.FLY_MODE.key); - return result; - } - /** * @param topiaId {@link SammoaConfigOption#CAMPAIGN_ID} value * @since 0.2 @@ -308,31 +292,26 @@ public enum SammoaConfigOption implements ApplicationConfig.OptionDef { /** Main directory where to put sammoa data (logs, and others...). */ - DATA_DIRECTORY("data.directory", + DATA_DIRECTORY("sammoa.data.directory", n_("sammoa.config.data.directory"), "${user.home}/.sammoa", File.class ), - TMP_DIRECTORY("tmp.directory", + TMP_DIRECTORY("sammoa.tmp.directory", n_("sammoa.config.tmp.directory"), "${java.io.tmpdir}/sammoa", File.class ), - LOG_FILE("log.file", + LOG_FILE("sammoa.logFile", n_("sammoa.config.log.file"), - "${data.directory}/log/sammoa.log", + "${sammoa.data.directory}/log/sammoa.log", File.class ), - UI_CONFIG_FILE("ui.config", + UI_CONFIG_FILE("sammoa.ui.config", n_("sammoa.config.ui.config"), - "${data.directory}/sammoaUI.xml", + "${sammoa.data.directory}/sammoaUI.xml", File.class ), - LOCALE("ui.locale", - n_("sammoa.config.ui.locale"), - Locale.UK.toString(), - Locale.class - ), VERSION("sammoa.version", n_("sammoa.config.application.version"), "", @@ -362,144 +341,134 @@ true ), /** The id/name of the current system/computer */ - SYSTEM_ID("system.id", + SYSTEM_ID("sammoa.systemId", n_("sammoa.config.system.id"), "A", String.class ), /** The starting value to increment flight number */ - FLIGHT_NUMBER("flight.number", + FLIGHT_NUMBER("sammoa.flightNumber", n_("sammoa.config.flight.number"), "0", Integer.class ), /** The backgroud shape file to display the world */ - BACKGROUND_SHAPE_FILE("background.shape.file", + BACKGROUND_SHAPE_FILE("sammoa.backgroundShapeFile", n_("sammoa.config.background.shape.file"), "shape/vmap_area_thin.shp", File.class ), /** The auto commit delay for {@link AutoSaveListener} */ - AUTO_COMMIT_DELAY("auto.commit.delay", + AUTO_COMMIT_DELAY("sammoa.autoCommitDelay", n_("sammoa.config.autoCommitDelay"), "30000", Long.class ), - /** - * The fly mode flag make difference between seizure during flight - * and validation on the ground - */ - FLY_MODE("fly.mode", - n_("sammoa.config.fly.mode"), - "true", - Boolean.class - ), - /** Time in seconds before timeout (ERROR, UNAVAILABLE) */ - CAMPAIGN_ID("campaign.id", + CAMPAIGN_ID("sammoa.campaignId", n_("sammoa.config.campaign.id"), null, Integer.class ), - KEY_START("ui." + PROPERTY_START, + KEY_START("sammoa.ui." + PROPERTY_START, n_("sammoa.config.ui.start"), "ctrl pressed B", KeyStroke.class, false, false), - KEY_STOP("ui." + PROPERTY_STOP, + KEY_STOP("sammoa.ui." + PROPERTY_STOP, n_("sammoa.config.ui.stop"), "ctrl pressed E", KeyStroke.class, false, false), - KEY_BEGIN("ui." + PROPERTY_BEGIN, + KEY_BEGIN("sammoa.ui." + PROPERTY_BEGIN, n_("sammoa.config.ui.begin"), "pressed F5", KeyStroke.class, false, false), - KEY_END("ui." + PROPERTY_END, + KEY_END("sammoa.ui." + PROPERTY_END, n_("sammoa.config.ui.end"), "pressed F9", KeyStroke.class, false, false), - KEY_NEXT("ui." + PROPERTY_NEXT, + KEY_NEXT("sammoa.ui." + PROPERTY_NEXT, n_("sammoa.config.ui.next"), "pressed F10", KeyStroke.class, false, false), - KEY_ADD("ui." + PROPERTY_ADD, + KEY_ADD("sammoa.ui." + PROPERTY_ADD, n_("sammoa.config.ui.add"), "pressed F7", KeyStroke.class, false, false), - KEY_LEFT_OBSERVATION("ui." + PROPERTY_LEFT_OBSERVATION, + KEY_LEFT_OBSERVATION("sammoa.ui." + PROPERTY_LEFT_OBSERVATION, n_("sammoa.config.ui.leftObservation"), "pressed F1", KeyStroke.class, false, false), - KEY_CENTER_OBSERVATION("ui." + PROPERTY_CENTER_OBSERVATION, + KEY_CENTER_OBSERVATION("sammoa.ui." + PROPERTY_CENTER_OBSERVATION, n_("sammoa.config.ui.centerObservation"), "pressed F3", KeyStroke.class, false, false), - KEY_RIGHT_OBSERVATION("ui." + PROPERTY_RIGHT_OBSERVATION, + KEY_RIGHT_OBSERVATION("sammoa.ui." + PROPERTY_RIGHT_OBSERVATION, n_("sammoa.config.ui.rightObservation"), "pressed F12", KeyStroke.class, false, false), - KEY_CIRCLE_BACK("ui." + PROPERTY_CIRCLE_BACK, + KEY_CIRCLE_BACK("sammoa.ui." + PROPERTY_CIRCLE_BACK, n_("sammoa.config.ui.circleBack"), "pressed F11", KeyStroke.class, false, false), - KEY_VALID_FLIGHT("ui." + PROPERTY_VALID_FLIGHT, + KEY_VALID_FLIGHT("sammoa.ui." + PROPERTY_VALID_FLIGHT, n_("sammoa.config.ui.validFlight"), "alt pressed F", KeyStroke.class, false, false), - KEY_VALID_TRANSECT("ui." + PROPERTY_VALID_TRANSECT, + KEY_VALID_TRANSECT("sammoa.ui." + PROPERTY_VALID_TRANSECT, n_("sammoa.config.ui.validTransect"), "alt pressed T", KeyStroke.class, false, false), - KEY_VALID_ROUTE("ui." + PROPERTY_VALID_ROUTE, + KEY_VALID_ROUTE("sammoa.ui." + PROPERTY_VALID_ROUTE, n_("sammoa.config.ui.validRoute"), "alt pressed R", KeyStroke.class, false, false), - KEY_VALID_OBSERVATION("ui." + PROPERTY_VALID_OBSERVATION, + KEY_VALID_OBSERVATION("sammoa.ui." + PROPERTY_VALID_OBSERVATION, n_("sammoa.config.ui.validObservation"), "alt pressed O", KeyStroke.class, false, false), - CSV_SEPARATOR("sammoa.csv.separator", + CSV_SEPARATOR("sammoa.csvSeparator", n_("sammoa.config.csv.separator"), ";", char.class); Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/device/gps/GPSNRSerialDevice.java =================================================================== --- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/device/gps/GPSNRSerialDevice.java 2012-09-27 13:55:35 UTC (rev 607) +++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/device/gps/GPSNRSerialDevice.java 2012-09-28 11:54:24 UTC (rev 608) @@ -94,25 +94,25 @@ Preconditions.checkState(serialPort != null, "Please use init() method to prepare serialDevice"); + boolean connected; try { - boolean response = serialPort.connect(); - if (!response) { - throw new GPSException("Unable to connect to the SerialPort " - + serialPortName); - } + connected = serialPort.connect(); - if (logger.isInfoEnabled()) { + if (connected && logger.isInfoEnabled()) { logger.info("Serial port {} is opened", serialPortName); } } catch (NativeResourceException ex) { throw new GPSException("Native exception on open SerialPort " + serialPortName + " : " + ex.getMessage(), ex); - } catch (Exception ex) { throw new GPSException("Unexpected exception on open SerialPort " + serialPortName + " : " + ex.getMessage(), ex); } + if (!connected) { + throw new GPSException("Unable to connect to the SerialPort " + + serialPortName); + } } @Override Modified: trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/device/gps/GpsConfig.java =================================================================== --- trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/device/gps/GpsConfig.java 2012-09-27 13:55:35 UTC (rev 607) +++ trunk/sammoa-application/src/main/java/fr/ulr/sammoa/application/device/gps/GpsConfig.java 2012-09-28 11:54:24 UTC (rev 608) @@ -90,31 +90,31 @@ public enum GpsConfigOption implements ApplicationConfig.OptionDef { /** Implementation class for GpsHandler */ - GPS_HANDLER("gps.handler", + GPS_HANDLER("sammoa.gps.handler", n_("sammoa.config.gps.handler"), GpsHandlerGpsylon.class.getName(), Class.class ), /** Period time in seconds for each check of the gps to update location */ - GPS_CHECK_PERIOD("gps.check.period", + GPS_CHECK_PERIOD("sammoa.gps.checkPeriod", n_("sammoa.config.gps.check.period"), "2", Integer.class ), /** Time in seconds before timeout (ERROR, UNAVAILABLE) */ - GPS_TIMEOUT("gps.timeout", + GPS_TIMEOUT("sammoa.gps.timeout", n_("sammoa.config.gps.timeout"), "10", Integer.class ), /** GPS Device name ex: /dev/ttyUSB0 or /dev/ttyS1 or COM5 */ - GPS_DEVICE("gps.device", + GPS_DEVICE("sammoa.gps.device", n_("sammoa.config.gps.device"), "COM1", String.class ), /** GPS data speed */ - GPS_SPEED("gps.speed", + GPS_SPEED("sammoa.gps.speed", n_("sammoa.config.gps.speed"), "4800", Integer.class Modified: trunk/sammoa-application/src/main/resources/i18n/sammoa-application_en_GB.properties =================================================================== --- trunk/sammoa-application/src/main/resources/i18n/sammoa-application_en_GB.properties 2012-09-27 13:55:35 UTC (rev 607) +++ trunk/sammoa-application/src/main/resources/i18n/sammoa-application_en_GB.properties 2012-09-28 11:54:24 UTC (rev 608) @@ -11,7 +11,7 @@ sammoa.config.campaign.directory=Directory where are stored campaign data (maps, flight audio files,...) sammoa.config.campaign.id=Id of the default campaign to use sammoa.config.csv.separator=Csv separator caracter to use -sammoa.config.data.directory=Main directory where all data are stored. You can use ${data.directory} in other property values (ex\: ${data.directory}/audio). +sammoa.config.data.directory=Main directory where all data are stored. You can use ${sammoa.data.directory} in other property values (ex\: ${sammoa.data.directory}/audio). sammoa.config.flight.number=Number of the default flight to use sammoa.config.fly.mode=Default fly mode sammoa.config.gps.check.period=Time in seconds between each GPS capture Modified: trunk/sammoa-application/src/test/resources/sammoa-test.properties =================================================================== --- trunk/sammoa-application/src/test/resources/sammoa-test.properties 2012-09-27 13:55:35 UTC (rev 607) +++ trunk/sammoa-application/src/test/resources/sammoa-test.properties 2012-09-28 11:54:24 UTC (rev 608) @@ -40,4 +40,4 @@ hibernate.connection.provider_class=org.nuiton.topia.framework.TopiaConnectionProvider #data directory -data.directory=target/sammoa-data +sammoa.dataDirectory=target/sammoa-data Modified: trunk/sammoa-persistence/src/main/xmi/sammoa.zargo =================================================================== --- trunk/sammoa-persistence/src/main/xmi/sammoa.zargo 2012-09-27 13:55:35 UTC (rev 607) +++ trunk/sammoa-persistence/src/main/xmi/sammoa.zargo 2012-09-28 11:54:24 UTC (rev 608) @@ -1,9 +1,11 @@ -PKc�2Asammoa.argo�TK��0�ﯰr��l�B��.�bϕO���8��zƱ�8}����JQ5��y�̔\7��@T�*{�Uw��Bծ��rK�G�ζJ����,#e��(Ot�#T���weq�'���)c�(��+ -X�}c��^N�q�������)��V�7J -_���\(�9��@�PJ�= ����j�V�����N���%�C�H�N��I����L<�'9�h���R���Vh��I�Ijì�`O���A4��^�I��*p�����G[N�i�P�= -�V�Ch��(`�5��18��!F��NݹU�'��nP5eq&��/�����<��-�����휈3F��@ o4�|T���jIm�&o�g&���v�e���*�����LJ��OO+FM݆4F -�2j�-J�☆��y��E�uT�Ge�y��g��}䞽~nh:�B�ӝ�7�_���3 -V��M�w��d����o�zm�j�4�s�%�Ts�m�����}I�gi�q{�qi�����Xҳ��^[7L��2���ճ-��wc�UY%�]<�q��d�h�����G<1�hx����7PK��DH�PKc�2Asammoa_Diagrammedeclasses.pgml�]ے�F�}�Wp�0��j�n��-i��^�ʒBj���Ą�M�g�D//�5�?���c[I�n +PK��;Asammoa.argo�TK��0�ﯰr��l�B��.�bϕO���8��zƱ�8}����JQ5���˞q�u���Aկ��Yu�X)T�:�-��z�0�l�t�;��"1R:��D+�1Cu��}WG+pL�q�r1��!༰Ҁ��7&��U�$�����~a��r^0���j�QR�^L���@Y�� t�RB��I8���U�/İ�Ÿ��C��hi! :I;'-�3���أE.w\:H�3|�Z +�-�O$A'�=���=�Ƃ�$V +'b�I'�N��Y���m9��B��(l[-�]�Aޢ� +�P���VS���;M�V�v܀G:AՔ� �x���Z,7�RO��C�W�S�s"�U���Ѽ�Y�L��a� +���,͊�q�2�P�0�=\���m�Z +�U�����?֏��2V��� +�k,"X̗��h"�(!�[~�V���_GE~T���q~vx;F���~C�����H@-i����pF�*S�����:��/���G�64�ur�9=-�+��6�3��P�߷čH.��[�7lM��-=x �M]�um������FWV ���t\�"�)z��U���#z�2Z^ꧺ� +PK��&%K�PK��;Asammoa_Diagrammedeclasses.pgml�]ے�F�}�Wp�0��j�n��-i��^�ʒBj���Ą�M�g�D//�5�?���c[I�n `� pl�� @U�YY�'�^����i�k8_L�����{�g�h8��_�����%{����^��퇛�?��=�� �������ދ����r��_��b.���2yZ4_���h�/��N��y��r��/'�_��j�\��������L����������^�����g���0���/��y?x����w��3�?��_l���a����ŋ���k^����ys��d�mo�?��d��w���O����s��O���q�������2�����s��I��k���9���v!_�_.���2L��k�c:�/�p�_\���!��t�"�<������y=HH�o�k>���x����-�������$�~�<�|�/��O�K?�����e6���+�L_��_pP�?}�/Gw��o�������7_���˒�#V�W<=mv���z�of�_����<p� @@ -57,27 +59,65 @@ 8yz�V�a�e쪜��=u��p�q�H�Oa�1R���j�����l�Y���C6<+E��P����7$��rO��U����Mu ����ϦJ��N�i�s�oX�~�͵��k�\�k��o�m�[b`6_'5�F�}Su�|`�I'=l��{)}�Z�[��T�럺q�8�\B���a��r*&�c��M��xv��T"1O��a�0Z�-C9�t���R�۲*�s�����ie�I1恡���\:e�9��'�� Z�������m8�ӏ5�q���+�1'H��J-}�ꮰۺ��['()���ʮ���ȉWˮ4�5��r( -�{*UWً�)=%.`�� �����M8Am ��A]냄s���T�/�ä�!�7��S����(��n�DI��l�� �r2�Oq���y.�OL̥1_b��{>�6F�L -G�|I���xyP�r���r��+^.�=���^'<���c~z������n�%x�8�������R�b��p�V���,�ae��HI�4M[�v�[�z�&S�˪lH�+�g#�E�I�L@Y[�-GK�eہ7W��S�\�z�~o0����;a���?�fa/JZK&__���E�A��m�����y5Y�������]~'<' ��eѼ�����?���K�{��j��n��߫��_�2ޒ'���'��Ǜ��RxN��)�ͤ��ھ��p��y>&����T�Jf�gY����7���VY�,�(��a��Њ'h���I��IR�;NccDXȂ�(^ՠ�H�̫Z��6��1���h�ctߠ��T�u��#��[����s8���BZuF���!QK`���F�Q��: �d��}��F��a:]_㝘Tbv�&[�ɛ�ט��vl�Cv}���ʨ�]-�[���1��;̤���ж�+:�]��r����Y���T�vh�wm^Ka��UQ�%�w�^�POV�����m����Z -v���С����Q�i2�VA�i ��rAmoO�8�`�f_$k�}��}DZ@���Y��,A�o� ʨ5��+�!�h�Rk4���iz˱4���pk��k.[w��O�����2��X���3R鬵���ڡ磤��DUzSI�7;��uM���4k�6﨣�y��o��νy�K����TB�{w�Y1�w�C��{����!ǚ�����d(�q���P�䑹Ż�<�=c�b� 8$��%y�0�e�߰?��a���/�s�c��������@�xpL��1�:�l�I?Y����nW�G 1<X�1�ָ#;b��#�'B�x��g����y�3��fơ����b�G-M*�*���@�y0�w�,�&Y�A�0��M6�h�gc���y6 -a��H,�h�Z��ϖ�ܒ<�ƧC��Z�����a�N�L�^���=��9��o0���l�~�����c3�v���]��+��6�h -q��xB�m����p�`n�z��@y��� -�D�:4#�Mz��?����A�h�Us���P7�X�u��]j�S�Y� �)� -�s�>� X�y���I� -O˚G8�KKGMf1�*M�I�MzSq�yg��%k�goi@���k)d�/�o��qF�3O:}�3��3��Z6� w� -䘟y*�)��s��kz.�1m����1h�xU���z�>��'�GL<. -�F�>6H�Dr.p1�'�K`�0�����`2Ae�Y��)�$y��&8;���i�������:ژ��s���̽K��:# -V�3t/�y���.��{�.�w�\��;�� ���(�'*3���,���S��c���1��7%��P�H[�1sG��,Zt���㤪���M����V#���B�DzO���g��3��?����ZG�0w��sw]]��<. -��q��^�!��q���ߵ� -��*%y�%���5.y1�@�aQ.��Z3�{��1�;i���A0�c0�H"ݐ�I���}���z�&�I��OIq��l�Ա -Y��7��#�ȩ<���Ƹ�����|�)���`����/"QL�.����$�Ő*�-AF5)mz��d:��t�6��`�w!`(Fi����CvZ���2n�l2�Z+��`hj��P�Z�Z`_���io[0�.� �p�u�,|f�s0�N%��"��!!���6�'���i�]��p6��8)A�Yv�lo�A�Κ6n�Xi����{{�֨R#>��Fk���@O˺6�w̃БO��i*��n49�>���HbO:�9����!E5G���4�����ij�]V=��i�,f������dw�$a��e�kI���_j�cj��J����/�c�P�7p�v�o�y��c���*���\;>�\�S�Ų*�`�4iHms������L8ٵbߜ���Q��ˏ;:U>ɏ#w&���o���f�Džq���Y�(�$ᅴT����9"͏)?��G���Cu��ȏ -�����8q��!Q�8o���W:��Ѳやj2j��Felj��a:]v|��8���ɦZSY��.7�n���mv|ce(�Z��̨�q]/�!�f�K�)�^��Dˏ�0��f�*�lj������q���5��g�v�+�O�<�S��h��i���M��r��� '%��h7�r~|6�&�~ �&� �6s8�9rn㕋d�+G4 -��gإ�7��@ܒ֮:���1��ᐞz��<x������R(.['GF�D�hd`՝���,�SUx���Sea����852�|������,��b28J�*��d�c���;�A�������ѣ������\e������������c9���^o�>�s<�Sh����r�s^�������`m}N�f�Ӣ�{�����*ݽ�I;����}N�r����8�9i�sV��u)�t/�� |��e��V�>&LV�J���G�J펂���QP�O��QP�[�e�w�*�bm�J�rk�WZ~�{��u^i��{���^i�YD/dV�WA��K�߀k��5�/%��'�9 -�s��AN�4'�*^o�f�#��G -���D|�x���(��Yu�~�h`���� -��|�4����=�/�{J�Vpvi1�>�:��S6~������:����Y'@��:8w��%�Ν����:�G�C+��`~殩K���*w)Ᏽ�S������j��q;���j������KW����l���.�x�������E��]� -�ٓ��3�_��v��q&�E�����2��\{Rs����bbG�Ӷ!k4���E��{��۱�8�N��Sm�:p���?��|X����ׅ�PW�kh҅�/�0PG��� �t���Q�n@SUPM�Z���i�N���Wӱm0��tP�` ]zju�/D�2��n��z&��>t�>�]b`�@��Kk[CP��5�k��Q�h�IL5�&�Ğ�r��@2�+c=���s�2R���?|wWX�� -K�6�����.I=;�o?�r-#mc��BT�p녨��O�R����uc˓BT��6Җ�!��ƫu���P}S_��C�@��ra+���,�W���*�Bj�+s�4�t�����(��s�c�8��l�v�!�[��Nlq�[��*��8/��wy-k�3�0hz&xؔ�"0�q%n�r��KNe߱|K��)�%�f��oI��+��-�X����-�����Ă�����-I����[�η��߹o [�[�J�}K������-���>��-��q=@4ߐwTKP�,g/�uY*� x��08���(�Q�������?O�SNY���2S�,R�4z���T�&�g[b������dM��ρE����R�<��{���=X��;wa�9���V�<������}X���vbQӝXs+����ݯx9�L������G4bp� (p0���P;���y6����������r�Q��}����!i�g��]]C�@w�j��;wG����kF����V���h�O���t:5�9�%��.7��������w�PK4�u��*ƚPKd�2A&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�PKd�2Asammoa_Diagrammedeclasses2.pgml��o�8��_���t'�)6�������i�v�nݤi�N�ʍ�����$�@RJ[��6U1�����>�'&�on��tE��gC +�{*UWً�)=%.`�� ���M8Am ��A]냄s���T�/�ä�!����ʑ���,Di<t+&J��d�?M ���|��3%���p�_xbb.������Y�1�fR86�W�/'�˃J�#L̗��^�rq�Y���:� ��=���+^��fP%v�.�{�ؘ�������R��� +keij�2�V�i���Lsдe�l���L�.��e ٮX��<}&�2emu�L-m�m�\�zOQ�_pu�M��������1�C�9Z�����(i-�|}����n�y���y����d�������v���$����E�.{?����w�/�"�=G�y��������xK����c8�loo��K�9�f��7���k�fw�q�>r�������S�+���9d�R��tR�ZeM�Bo��Њ'h���I��IR�;NccDXȂ�(^ՠ�H�̫Zfۛ�ؘ��O��1���oPcc*�:�G�m�-ml��9L�E!��:�u����%��k\G�N��(�x��j2����T#v�0����N�*1;T����M�kL�R;6F�!����leTn����-R��טj�f��f��hh��j���k9�OOѬB]�q;4ػ6����䎪��ԻV�e�'�zE�I �]^ۋz��Tcz����rZ���4�~� ��rj�����qJ0n�/�5ʾz�"- �f +uˬYo���7KeԚF��t��R�5��r�4��X��T�5R�5��;��'�� +Zw�?Nb�[w�?,S@��t�ZG�t���Q�MR�*���ț�]�:��}�v�5��w���<��7�`��%�v�j*���;�y���!�νs�K�]��cM�xbbg2�Ӹ�|yB�F�����I��1���^���<z��2��o���0�������eN�Kk�G q<8��Ƙe�V� ���,P���g�+�#�,뉘�[kܑ1S���?�!x<������xօ<��σ��X3��B|LR1ͣ�&�E�t�l��<�ػS�T��֠y�f�&h4����ey�<��0���$��b�}���gˋ[nIk�j%����0*�C�I���&�$����0<��Q{��s�-2�`-������1����f�a1�&^M��W��m�5�(�&b��D�<��!>��2���f�s���@5���uhF*0p� +�.z�No-̓����U� +�n$���t+8b��&��N�S���&}HA���n�9�����5�p^��*���bzU�t������1��.XKִ��Ҁ�3L�R�<�_b� +t��8�g�t�\g9�g� ��l�A�<�1?�T�S�����\ c�t7!c.�|9�v�(��}L�OF��x\���}l���\�b�?N:���a�?�M����d�<�4�S�I�<mLpvfA�>��/�9��u�1s�43��{�.�iuF� +�g�^�Y3�0w�]�s�.]��ڹMw.��uwQ<OTf���X3ͧ.��*:��c\oJF�?�(��>(c�x�Y>��xS��IU9ǛZ?,���F"������u�#f�g�+<G�.�a��u����y\���Zg��Cܽ� +��qu �k�6�q5�UJ�K��wk\�b��Vâ\n�f~��Jcjw�4�c��`���`��D�!=���γ?:�M6� +08�۟��r�پ�c� $�o��G��Sy�]�͍q��?=���ST}��tU}�_D��v]6k��I4��!U�[��jR��6��t���tm6w)���B,�P�6�8� +h�ɇ�cmeܶ�d��VF-�����F�<?����5�'�`�]6�a ��Y�̺�`8*�J;�E��CB�Ӂm N0�%�Ӯ�f ��lX qR�8����^��5m�D��Hq1P����ҨR#>��Fk���@O˺6�w̃БO��i*��n49�>���HbO:�9����!E5G���4�����ij�]V=��i�,f������dw�$a��e�kI���_j�cj��J����/�c�P�7p�v�o�y��c���*���\;>�\�S�Ų*�`�4iHms������L8ٵbߜ���c�z����S��8bqgB�����?1mf~\�71?.�E�2�H^HK�}��#r��8���y�H9TGގ���p̿,̎g�q����V�ˎ�q���[-;.H�&�&)mTv�h����e�wʎ);��l�5�5��r��6;N�f�7V�����pk͌����rnF����b�%?N���3im&�B~�h�q���:���'Z~\y��a�r��ϓ8e8�V|�V9.��D�� W!��^rR��v�A.��g�jb�`nbޘ0o3'�c�#�6^�HFP�rD�Zz�]zy���-a��#�~�Y]���A�ȃW����.��urd�LĎFFVݩ*<Ϣ=U����?U���Y�S##�wI�I�*�R�-�����[NF8F�*��T��9��o9��=���~P��U�@h�>��>h���:&��>�:>��v��1��9��MN|�+�>���|N�O�-�9a>���m�9-ھ��9i�}ΫR������9+����-�9���s��v>g�]���M�2!1z��g9^��/j��c�d5�T�z$���((���e��=% +�uY�|W��,�f��(�A��{��g��JY�V�߹W�Z�E�@fehp�;��� +��KY��Rb�~�Ӱ?�z�DKs����v~i;r}|��qH�?H�g�G^���I|�U���a�f��_�_`�'M���K*�#�"���jg��3퓮�_9e�W(Y��;����o��uTX��s�N]���9 +��9��|�!1���� +�g�x�r��XK?5h�����柑����V�<�*�q*�t� +��VO��_��=���_�ڥ�@�=�1s���^`wgRY�\`�~�A/���'5�����-&v�?m��Fi�^$����>�{��y�T8����-�?��-�ׁ�(�?=p](�0�u�a ~��&]���u4�����M����U�D1U�$�5����7�p5�;O�%L� +ҥ�V��B�.��&H�g2��Cw�C��e ���X���5[�����ˀ���T�iRN��)�>�$)�2��.N=+#J~~���ww�%� ҰiSI� i�ԳC���/�2�6�[,DU +�^����*��|NQ7�<)D�AY!j#my��l�Z��+���7��?�:T!t�,�"_�?{e���Q�R+�f�2�@OsI7���n*�b��<>�����hW�.�e +���G�Չ�rʏ�Ry�ײ��1� +��g���M�,sW�)�z��T��˷��r�[iF;��Dh�r(߲�՟�[ڒ�1l�oI,��}K�jߒL~o�%�|K{�����վ%�h��ܷ��oi�k���o��<�A +��@� +yG��Rq��]��R +�Ǿc���B��,lQY���9唥�?-3���R� �K�gk�J�n2z�%����ZKִ��Xt�l-��ݽ��݃u��s��[k�ȃܽ��݇u��k'5݉5�2�>�q1�������T�=_�D#���B�>0 +�sH�g��?mi�?Zл/���܇������}�玞���5�1t��h�v��sw�L���f�A��m�a��w�6�tjHL�SS��_"��r�ɿ?M�|��PK��' +�*ƚPK��;A&sammoa_Diagrammedecasdutilisation.pgml���8����Sx����Tċ(�����Tz���N�A�8.�K3.ːTIg��y��ؒ�,�u+�fd7:(ےL�P����_�|XN��Q���3ta�M��<� +V�˳��}�M��ꗗ���oW����z�^��������&g���mr{ƏH����y���ja���E��$�� +f�h�p�����b��1����b���{���v�Y����|Ę�~E���s���̵,�WK~��>�e��V���,�փ�4�?5����:�_<&�2�g�yg��⧼��y2[-�~v��`am��������o�o���kp��_��v�����̥�w�r�%Y����0�<�z$���8����A���a����������-��q]� +m��_���Lҟx��'��O������Yr�1���K��n���q�G~�|[������3�Wb�܄�*Q��t�w�W�:��9:��of�;�<l���5��J�*�Z9�J�~���/����=W�n>��`KAhCvm>��O2>��g#������lߕ:SחJW�=��oj�GCn'��I�'��ͻ�M\d��'۩���^�k{���N&������U���2\l?��2�_�)��s��-}$���[���8 ��l�W��O�͗����]�x��h�ܬ��z���\&ײ�]�ןtոT�����&.��t>q��y�|b�!]Bg*�0v��kA��"����ɷ��Wٷ�^U4+�-�B��{!�A�]Rh���-�f�ד�d;���TQ/�ꥰռ����h�Dd]$���Eo���ʪ�TMԭJ�:��A|^7��Ӧ��r����,J�.r�6 +��v��4����V�0Z�� +�Z)�4C��4� +�} +�L�I}B�=���#�/��ۅ^����E3��)\6҂ÅTZq�����O����a+����������〕�#��)hR�S\��d�*AZ*��t:8� +u���XE�`��¿�XG~�ŐJD��_��?TC��!��'aI|�W*F�l�-~�����p��X,�B5�&H��v��8m�7J�6A"���J��t���D�O(�K"et�p��wyC�A)Ob`cr�{�@N.�r*�(�I�X�}X:�] +h��fv7�!��m�66��ز&ض����g�AH�B&?�"/�V)��ߥ&�|y�_�4]��PFe��'���V�vK�o?�+��JX����b�7���}9.��l*]�Hi5�!G���a!# +2�;�m"#C��R���U��0i����d#Y���HF@L�3� �=<ɼ>^�� +�/�1�h�b �a�9�l���P�d�lEC$��h��#$����E�FO(� +2��� 2T2�b�NZ�{3@��@F��ʾ�q�d�L A����Հ�۪&�Lq� d�J� #��G`���2�vW�UcL��n#+BL5�tX� ��l^��� +�,�^��X����u���u�D-6�P�p��+�*FR�]�.'e�ṿ[�j�F�;Rj��.�L ����Q�]�i��*��Ԓ?��F-��∍$��_G�d�������T��¯ZlT��#����f�T��n��i���q���/��ڏ'��j��;�����[����?ng���9���7�U�V5�PɩB�c����j�����1e?� +a��,�H��*�a@êf�b��*��@S���@���JT�OY���]�&�x���;eX�<cd�0��gL��c*��O�viG�qT�a�"�I�3�p����I�/� aX��6f�t#�iE.2��i@�;Ǎ0�P��$�T��0�qZF�Ld;;�b5�z�A�SH���-!�l��^>qR��h:ƿ�#���܋��s���37я�|eM�3��r��1Zpƅ���.���/������Efθ +�Rw�gܡ<|S���3n���N Lƙ��;�L���/;�����K���^q�Sq�(��(G�t� )<C�����W�%P��q��T0�Xx����A����Lj��ng�DN�x�dC<PC�S^#��l�g���k R�>R��"�T ɦ�����J6:%0�lP�K;���b�Ŏ�c��+�ѡ +�Jl#�K6S��ܜ:�j�ц�Wa����+O�E*��M�9��/�A��3\�`Dc�B�(�ȍ3�h��˫����]�o��^)Lc��ER��ix/��fj 5U=0j��+z@[��h�ʻl �[�i�4}�ᩦ�g8>�)�_&�8-�Սk��DC����ÚR"��V/���mM647�k$�y�� +R��fg�L:�y��-R#���#d(�h23#�t(3�tJ���bf��� ٙ���t�z`�h�3#ڪF��n���m�zڤS�H���#5�3��� +���]�Tu�tp)�[�߰��7����������� +�f�6��L���Q��<�¸�x�,����f�N6U=0�epk �N�b��]*�9�F��Nn=�r甎�;U҉���oH�ۑ�fT�UoD���W����mZ�|*��gPl�1Kx�Y��P�xTmC� +��h �d�VxH�F-KuC��zj�ve�R�A%�+�նw�r���a/J!���6�r�4&PF��ŞC�)|$E2��4�K{vLrY0��hÞ�ԟ#��Ar�=�T + 鯪�џ&�`i�N�F�_yz�}pSk��xw~�>��J���5�� +��ZcHM1ȰbA���"2�P�Ɛ�j�QKj�m���IuC�'�6�����*c�Vʌ1[6MR��g:d�1dQg��B9D_1��p��RC +�FcT/�F$�"RNW��Pi�}�K�DW�K,o�DbB���"�V&�I�j��v�*R�֘#�m��2�+�ƔqC������Zl�$2�K�ep��}�e�L��RMɔU�D���RM ��������|�>K�8�>�aj25% +�1�&35���cj��5����Hj ±�o� ��>�Y�4�wEMfj���K$�CMGD*�����Q�UP�)��25����f�� U!b,�=���V�`ا]n*�(��bE]�] u۳�0J��Jd�L��n�9��?�m��,�R���z� +ܯba���Ϭ�4��%�x͗�8��0n����_��w�;#��?�횼i�s~KW��˅_W~1�*�T�E̪%kz����b_��-��m�G*�w��$Xs6�o��|�*s"���e�K��HE.-���j&�:��Sx�W�cG"��L�����}�"���o?"=�_b��Ć}�<n�e> {h�f��Z�9���Xw8�,��6qt�#[��ģ}s���EU%}#�hW��G�g�Gsh��r��M~R��厘F��o�4ꎛFߴ��F��v?8������E�F��v?4��FШ#W�ҍ��dnEDi��:�:x��דF����F�z4*�qwu��-����hqV��単G߶�*�y�5�V�����y�;�hw��7ju���x�;�hw�C�g��}Oꬣ��(�5n��=ܥ�x+�v���Ax��=ڕG���G�4�U��Q�F��(��ˢnƢ�7�6P�P,���v?4�bk�,����X���Ģ��̢�2�E���ƹ��]��ۨT�R>\�R�Ģ}�V��RnU®ve��bo,��7Zˢ�F11�6,�ñ(7�VV����Y�X����Y��E+�s�ó(:�hw�C�(2�Eu�( +��YT���(��L��\�X�o^�X�pgaQ��`W-b�Ƣ������,[x�,Z�)^ñ(7��G���(>�hw�(7��nj��(>�hw�C�(�)Y���E1�����E��z����}���!X�J�Ѯ,ZD�E�g�,��Ӳl��h�@Wx%�f���1x%'�.~p%�f���1x%'�.~h%?%�j㗰]ǢDˢ�ՓE���E��u}+�hG��1�����,��Ӳl��h�0Wx��f��x1x�'�.~p��fQ�A���(=�hw�C�(5�E]��j�Ro%��E++�8��]�o�$x�$�`QO�:ؕE!�E;ղhǼN�/�zB\�Y�5�z��b�,j�X����Y�7��G����}b���fQ��f^B5vQ����}ӆ���K)�.\�.��/0�I��]C�و�C�$��W���vBv�7l����&;�fw��&7l�����&;�fw�C�&36��zY�%�,���kM�y��I�]�J��]aS��7�,*V�������h���a���qWLj�����T1�����r����/x�<UL�!~h�4�bRO��頋T�z����v�<L����I��4�Z�Ѯ4*Us��>%S���x������4:�I^{�<��*&�?8���b�ס,8��*&�?4��Q1�/�j31�n�j��P߈��WL�s��{�+�J՜�F� +��i�c�$<�zI^��Txw�$�=��FO��z��F�]/��P� +�FO��z��Fͨ�ԗF���'���$*ujw�~4J_/i*Ř��Tɺ�#�N�ZN���|a���9��q��i� +4��q�K���y��(9�K�!~h%㮗4m��gQr���C��,JL������2J�.���=C����%M�sU�K�ʢR-�}�h�V݃E�sZ���K�vM�g�q�K�6p�`,z���C��,:�zI�E��Y�T/����Y��zI�,������b�&��;=�%%s�aXT +I�`Q%&kW�j9�(�簺M�`U�R��jqͤi��Uxwͤi{�<��j&�?8���fҴCa6p=�L�!�g��Ң4(�v0��O�(�d[����]S+��Z'R�3�'9|M�����S�G��T� �7=iNv�M�'�戫"M;���渫"M����i�T����is�U��J����*R�C[?ͨ�d� +S�'F5x��~R\��lm�&�g�&ҷ*R��c>��l�}��+�����$�Q�|B��?q�O���2�_ĉ�a�m�����N�*�?w�D9�q���X#�}6�ز&ض�� �Y������2XǾ,�b�����M�����N~d$�^u#�����4�N�����^$��(��y���=��c߽,���'*�����D�U��]���&�-���� ����2�>����G�q�o!����|���.��6rŗ?ʴ�*��ݏ&��I�V1�y�\\#gE�B���>ס8�O�x\�W<�O�?��B�Ne��L7j��__��KN�I�ZWz�+�V�\��K;�Ѩ��8�*rߔI�O\yCi;s��TDQ/ � �启��*]�+R��Ż\ +�Z�T%�-J�:/ځ|^;���&��r����,J9}J5 ��Q~��d�Њ��z GK�s�^�r��G����T +l0��Vwv4��.S�\���[X���$6��:����q�y� ���k��:=�n^wq����E��Sq��6��R\G[��sk������^�u���nt�-��~�PK +*���QPK��;Asammoa_Diagrammedeclasses2.pgml��o�8��_���t'�)6�������i�v�nݤi�N�ʍ�����$�@RJ[��6U1�����>�'&�on��tE��gC Y�3'��3o(�8�3e��h���_�O��7|������$���Md��\��؉�9KZ#o`G^��J�5�m/������w��Y�p�"���?����q`��ɲ�{���=]�H�Mt�T�Z�n�6:�3E9P�yGJ��=�Cy�֔B�$��Nc �;#�u�E�b��x�{Jzk{��Ą�*Vv%U�w%�Ю����6�����8�C�b�:f4�!����>�*��9�l��q���X���ʳ�^Fԅ������̬�h�p�A ��K���X~���˒U�q`;���Qr�p�W6������,��g^@sc1�F�f(�7ӳ[8S���ڟ�ˡ>NK.��]����iIɮ:��������%�ް|�Q�è�a��a�:��V�����ÒĻZU�3�h$���gv�;C9 ��p�Ro3����i�?������K��������p�߶r`Y~��iK .�1�Q�oć���b�J���k����0NUC�0Z�U��n嬴S�<ȽW1 �!Y��D�2��z�+,����Ʋ��ud���f��Zi5Z�T[����*`��J}v�ʃ3xD���pԐ��D*&b#S�����Rs���y�૭�$]�����l���r��.�eS�q8����/��ܾ���2K�Ϻ�8ڦ�c�d��KnXҀ��^���h����٬ R� @@ -85,76 +125,89 @@ 8 ��R���E�H�(tX )q���Ed�b賀��S�3��aHi�lޔj#���h*�� Bz�)��jo�O��)\�RF�J�Jz�x�OT=�,u>�&㔁J�jQ��5}0��@�@U���({R�I����(�,U��n�'e�=EL�Y�>0���b��Я*6�,��������}ZS\OS�h�ŔG��QGA�jWE��S�RK�RY�ȳ�4�,!M��LSj��>���2M��gWυ�>C�B� ������V�#�m�6z�9H�O��:_˪��H�O��5�Y���NL�XJ-�M��1Q���-kV�j[l��̝��Z�t�5/�t">�W�!xg;>�CJ��DېN�6�qvϞ<���.˒�'����I�dP��I��q��������9�����Z�oG6ko���1��vx�.8�|���"r�y1�c�K@`�_�Q��>(�3�������_�f�Õw8�ATM!μ�W�|$_"[Vmp�9���=�)�g��wޮM���G� �o.��Ѩ���d���&��S>h�Ӌ�Ƚ���0WG�G]0}p�p�yܶd����,�M�+�B��4��]}М���X��m��� -�&=���i��6����s���Fm#M�F۰��Nۤ��Ʀ`n��s|��~gm�=���i��6���������V�V�6�Զ�wm���ңI��w�6y�`��?PKɟ���FAPKd�2Asammoa.todoeO�j�0<�_��.YnkW6�M��{��Xk#P�ERL?�5%Ѕeg��aV�/�,`�ƙ�H�3��Tz���ٝ�HɾI����Н?�ģBҞ���J�H��*%a%�u�|�� +�&=���i��6����s���Fm#M�F۰��Nۤ��Ʀ`n��s|��~gm�=���i��6���������V�V�6�Զ�wm���ңI��w�6y�`��?PKɟ���FAPK��;Asammoa.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����KPKd�2Asammoa_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��;Asammoa_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�PKd�2A -sammoa.xmi�]ݖ�8r�ߧ���cϜl�ER�({�s���q�L6Ws TsM����*���\f�*��I�$%�E ���G��%d�P��P(T}��穧<�0r_���\m4�+ط��'��o��������_߽Q>O�F����|��ы����L' -��GS͐����J쒏1��h��9V��LQME��h�/��2��+ZS՞������50�q�JQ�����O���P@[�~��gA���pPb��G���x��)��]�d���m���:ӛu˟�_5z���wJ��� -�ß�(�/(�ͫ�z�����К/Ԗ�O仦������B���';S��d���>y��'�k&M1�_`cOI���oȻ~�>.�Fm���~��Ӓ�)?����}��$]_�[�ε�!�:W�+�*WW�&V�mS}��m�uڦ��Wf��|�\�̶�|�7J���N�\q���\ǵ�W�?9ȋ0��cę/�b�<}�����Q"k��j���_IY�푇��7\5S��a���w��n�p�m�_�G�m�>�ÑB>�.m)�34���8��c�9z�G������ۯ��@�i`��SSE��C����=��u��k1:2�N���ܷ���;����;͕i�Pdc���2C����0� -�����34�J.FA��P ь��� -���(�`���PrN�X�e�珔���OЂ|��?�+��ߑ�Fɜ�>�(A) L����9��g^������I�R�6�;���4 ����]�.�y�o#r�e�����wo�<�vЧ_4�G$��<:s#2���D�K���%� ��~P���lI�[L4ߣ;!R0_���YH�_��C@'�D�ۍ�XY��B.�I���c�)6�W<Lzy��n���~$HE:<�`�z{���Q�~��~��!�M�Wr�Y@H�}�����<�����B�MA�OxJ��9e1���?~��_Br�oqҗ���X1���Lng5�k�f�MUnȟ��SDY�'"#a�І���Ke,�W�O���:� ���O��@7Nfn����?� -�\*_��>.��#�;�D -�G -卧|!���< |k�Y`YdV���tYa��� --�C�2��3"��\!�7J�e���-/�ё�P��i�Z���maþ)7���y����lL'^�B^����+������[��.EHj�}��k��w�EH�-bq� -��������`$}��ҹ��X�����b�|dc�^%��X�����#KT}�5,D%�k���u��d�f�t���Q�&l��25��t�Yf$0�R�W�k��j8���;\�s���:Kn�����<:�R��?|v��Q��6�m�|�hx(k��T����h��p����-�g#u�#����JA�K��/g`�n���Z� �=6̖�0ab��������_�����к���"�����5���Ҩ,d�'j�<� -� q����8t�T=2���Fu�ql�.�6�#�㍸��z�<��;vɸ%v�l>�\�� ���̒ې�L��Za<�J������M�� ���͔%[��pn�!�f���t��Kn��z[ך��>�>�!}ټ�i�C d�fzy�od�Ko�\��f��Z�x-�Rۭ�cy��`��@�e�G�0D1�'M�����dz��D����k�䚬K�,߮�j���"�\� -="������a��Xޛ�I\�^�u6��ƌ���ׁ�����~,����T�7o����vts_ -Z�ݴ~|����A��#����kk'�'f����������&W)-��\�-q�Q���Z�+�Kg~f���z{�з�ץ �})��n'o*�%~�K�K�.I{w��I��������A)�.,���~(���5yd�F��r�<��EQ`�G��[~�� -���{�Uh�����wf5�����\���3��}��<��#�q��Ǜ��'l��&�OV7�����DrW�Y�5f(��2y�6=�N'� [=�Z�2V��H s�z���E~���h�1�}�a1�1q+����!b��<d{�sN��j��z�Z�T��m��̅ hcml��-��,����9v���߭�60W⠍���{�N��qo���Zi��6���:>R�R��=u)�x;��b1{�XEl�$��2@+�� - '��K�\��� -�mJi�����;�-vSv[���^`�Ud�VV[lt�N��e:EΏ�#��;�ژ_�c�ߡjW�]�O��ۘeU�7��A�W�7�`��+ⳮ�7Ә��Q$�aF�}��� xL��嚻<fG�=�?,��,����F�N��S�8�NV�����'7��cs�"��q��i9���3��dz%ko��Uo&Z=�*z��<���r�pG#��1�c��`So��~�z��aq������X�c:Eh�*���V�a��k�3CE�����"�V�<�3�Fz�S�"�' f^��c���~V����X8m�n��o^�� -�a�ĵ�D��'7*���N�7_@�@��Q��f�&���6�Y��3�252� �Ix ����%��|q�<�6VM42WF�9�U<�O�XwU�ΥKbA,��b������x�S̓��%B�O-#��8PV�.|):x�� -�j������[��rC��}d}�9wI�a�Z�儇�J�t=��&��HzAl��Prް��jk�"&uK�!����x�kXL̬8}b!��b.7��! ��~2"�� -/��9p�� G��x��!�g5�B4���4��0��P��{˒ф�����O�ʔ\?��2�+�"B�6�QLf^�S���[5�#^tw��R�Az>EObwx�Z�pp���j���n�4٫�nѣ�!w�Ɔ*�2,-&ݤ(}�&ӏ�^�9Dt���?b�Z�{��Hj�`@"�[��I����t��b�_:R(N 3Lz]T�b�q�7`�����N��<ǚ{�d?�#;%� �A�s�*r�,�3Z*���O\�`����E�j�3��U��`{CZN(И+� -�oH�T-9hb��U���ڽfm��&�h�at�8'ِ�&!2�ɨF؊������)n���_ր� -|k�ط�o#�������uz����bu?�G7X� - �br��C���������|,r}{�%�Vts�Ϫ��%Ϲ�j��9Ɔ��>6�j���|#spi���̢��T[tYᩁ�{��v(�4s�O��W+������|v�<����c��5��g)ȕJ����8�V������m�S�[N:s#��Uj� -p�p��������0�� P����ϻ"��ZI�lj|� -=J��5>�>�QX|��� �6s#��̶�оw��6�aj���2��1Oå�J9��}�FB -^�O�xnH��g����_��'qT -��� H ��vɑ@�7 A-�@ܩ�c&6Zm�x{�dV�%�0�40���F3��D�C -3'�L3�w:]��ݦ36lUo1��Q`��s�=��@��Ř��Q��P�i��f�JT���t;�p��� �S1x.�o�gطi�V/�ƫ�-�h���n[M��#�d +/�� -�+��^�� -F�BH]��L�q �]��J������7��Uq��`����5������A�^�5a�%�40 � �" -��6s�9E�Y`߹�-)��F�63"9�.�m[��}�ll���H ��bJՉ���k�^����4wh �͒���An�L�jW9�ΚHq��Tv��A&�L@"ܨ������J��u3�T��Pc����o�t� -H���I Nld:��) ����q8 ��b����L�[�2��洝=q ��bڊ��l3Nat���� |� 䴒�h�]�pf:��?��]��^)<"υ�rm��� 73�.�m\�U��iV3�j:�0�m�q��Dhc�pY���DJa���ł�d�4�0${q����鲬�.Mf�ܧ<�.M�e)�v˽�4�!�uy -��kH��v͎���!�cc��2s�qUQ� -��=�|�r<Պ�a��n���H�. ��YZ�14a�`���0��Q�� �w��g*���AA����A�i�@� n��"���gA�f��A�Y�C�1@���x�X��y�SCM�@(���P��%!DP���qKKj�V�*;Ţ<��^qgR�,&�L�>�;�t�,�%�mk�����!�ܽ������3�6�e�{[�C:�"��!($�1#p�R39�_�)6;B�D9>ڑ(`��G��V�S*J$N xl3j�IT\(n������$��i1�B4G�C�� �E���- ga�M����2�����aA��p�ω�8�K�2 -� � ӡ�n�%��d�К��I.�d\�n�N�ʅi�;ȴ5�]���M�L�M'l�˱ܱ��+D�F?�q�e -]����aH}[���:'抋���@z �s���H��6t3�8�؇�́C�����0��������k-�X���3�V��ćx s�o%Ϲ�j��9�&75�S��t����#3���,F0>=�+�$�h"5�]V�xj��zW����iI���(7:&��9�&�M�-wFg˙�;22��+��G䦦�d4�-&7����.ӡ��#�r�s&�=��Gw� 0�� �-��,~��ϙ5v?��,�:�F���0�b��`�e�K/�:��p�kna;B�ص �a� ��b�ۉ���2���B,�'�߰Nj��ÝBq��<a��@"�Y���ɹ�A�����|J�:.��[��@�� -x2`�@d��V^A§/�="W�X��f����<�`a3r�[D��h����b*\��.2�W�YV�Г<gltu�\�nt��C!�ɷ�IQ_?0��jA!�B�A�C�C��En� -��GK^����^��w�CnhA�w����(�ׂ"��ȂL�z��ł�t���ML -dx�.90�Q���AA���D����q�0~?���Y �ւ*d��J3���d��U/�ۃ`�5a��m��!%�uy@P��AIR����)��a+�,n�ө�l�2(��j�A���l+�_H=J��Gy�SO�>����PY�!��,��p�|(�)��b�I�C)ӡ������ -��).�,%%��d�Ce�ON��� -�]ˡ�džٲvʔ����R���?�k�s�%���a�A[Ȱ�� -q�`"ӡƦ��Lp�G�$���V��L-�8�8}P�'ӡ�@ �;��s�����i�ӡ -�ps��� n1�I�g��<-��8}P�#ӡ�8 �<�{�|��3�����L��������N���k�ew[����&4u=8�$��b��� ӡ�f��L0����d�9*90˱�@@5 �$q�f{++�js9�J�T���<q��\V������s��-q�BV&�ʅ�Ji~c�JVn�C5Uܱ*�u���?c�) A T�t���K�� - TN�����8}���4 -J���:���=�zf�RV�*2�:niI^M�jc[ELǓև��1��I �ܤ���eg��w!�}�C5���V����T(t�0Z���!�<���I�( ��b��HgB2��fq���K�]�p@�����J����i�}P@��U�'�Yd: -P�������Hq��pa!<�p 7ݚ5( ��b -bK�3j���\�Ș�[p��P���Z?�w��d -��s��Mq�`� ӡ��n#�M� -Y��i�mfV����S�4{p�7��?Ȱ� 4�� ӡ�emN*'�{`K�6C�n<w� 0�q���S�y.�o�g�`�o1Dm��˧Q��iF;�l춰�T;:[E�ύ� ���n 8�5�o��4ڨۥ�QF��s$x�M�F���8��#?�K�����u�P�+GS�{�8��5Y�ߚ�!�đ��~���\J/�����}���` -�f($,"cɁ�i�C�(w�;��|�E������\����;V��Qt����~��<�Z����g������V�e�����?�f1���1��$�h"5�]V�xZ����@��ɞ%�$�2a�s�V�>8x��Ps7��X��G�R<xD�k��@���r�@�l�^��`p�В�1]�8ZLZq� m�CՁ`�C���lu��h�m�mi6[Ap*ѓC)Gr��M�)'��ǒW=�WEx��{|�����K�;��p�����V��]�Rg��=s�v5����2s-���z���Mn�@J��) -)����4�r�k�Mu<�Z�Ml�1d��I0��8��`p�܊�%�s�Г�^քd.��V�0!����k��M�r-��j�"��Ο3�/�����EQ`�����-O�F&K�~@��* -�>�x�!O�GDR|u�(�0�=� ݿY� -m���~5��O�f=M&!��n�>g��y��F�L+�Z1;D�"(�V[D͵-��B��$��5��b�a�X�6W�����kξ�e�g ��@���9`��l�#��dU��Ib|F��j�ksl���k#��Z)�lv]�˄W���g��V���3��`� l�ն,GӖ|wǎ�>�RL�@q������ݐpCs�3����4 -,�cD1�3��;q�}�:�_������Bj�c�l&�l����%����;` «8���n�O������ս)��%.L�[w���6�yu�>F��4A�:����LA5�<lW�⯮2��A�����*(�8��<��zx���%�� �ܥE�[H�U#��鄤��X�M�UE���������87�^��70V7Llv-�����0[63��_�� �`f=|D=�j�� j�)���y&=�-�+z���~'��<"ڦ�r�f��N�e9]��8Q5������S�f^�/��2\�ͱ�>≻O�O�*��ٵw���2��(-B:䄓�gA�(� �R���//�=�s�"t��=�N���VСq�� -\ -h�LZ�߹P�R��z�q 7��.N����QR(`Z��P���G�e�f���(�X(`�C<��'`Ȳ��{O3(�.��d,�@��Ŕ�� ��d:T����Kͭ��@h:C�v�j���ܦ����YLX��L7bz]���2-N�u(��4?��N�����(��6�O\���rL-�.��P�8���PPAW��-F�}�@��Ť:� �"�dZ���9�L��ӫ12�;́��A��ih ��b���� ӡ�ՉO�V�v��&Q{��4�k���̦m��ڶ�-����ӯ?7+��l'3�='�g���fq9���Y�3q�u��r����!uv|h%��xg8T���U84{4��U��%�o~�iKj�,�Br�y+�dd�ϧ٢�[�"���;.o�a&�`��NN��� \�r ���;6�`�?��ٷ�����L��y�����T��Ln������������f{� -g��V�L�ա�ٙb�)�!A T���T�$F'��,�FY-O�h7�<����o��5|�M��;E -p�nt��R2���@W�P;s��NG�Q;��h���`���B;7�dE��ī�b�]��`tAGf� K�zX2�w��kaq�8���"�pIm�#�᥎��Ú�����ma��vtve{k� W��j��g��)g��˟���m�[_��b��8�jA�NB6ɍ�N -������d��m����lr���$���-�23��|a>�0oO�0�(��1n�TC�Dwl�h��m�����Ņ �&������y��8sU�y -�H -'̹��W����&�q��I�<�F?�q�e�/1N�yR���F��9|y�Q2������}�@V-��1%b}fĬ���!ms�`�&JO$Ą(���O�o���:!Vts����X��kQ7Z�/��Fw�e5��V���-cղ�g�۱�]��a�P�pӡ��7� 8�*�҂���3N��{Tง�w�dq���Rw�!�d�V>L+�G���C˭�e·�V�l6�h�;fKM�GS5�a;*��ꛍ���Y:�.*?�0��ٸ��n�ܷ9k䭰h�nc���Ӓ��adt>��i�q��{�1��� -j��K'�S��>�u`;����ȇ�F�S渘����u�R����/�ܬ J��a����@$_z?�l���{4b���#���F���.�9�����8���Gm���(�$Gk�"ы����� ������冬 -�)�sD��s;!Ɓ�h���tb��ʌ�dJ�����s�-0����˞�=C� z�?ς0V���<D -�}`_�y����q��G��y���#�h_�E�<&����ce�C%��|��O���$~�ɀ������|?�Q�P -OM�bp��vV|�Νtd�ɩ(��O��y�ߏv�x-���w�B�m�m�.�X�� �F���Ԣ�}���b�� -�(��5RWX��=����0qm-�q�§�o�vnk��3r[n���-�v.�����7t�'Ȟ||���PK� -4"��PKc�2A��DH�sammoa.argoPKc�2A4�u��*ƚ�sammoa_Diagrammedeclasses.pgmlPKd�2AǒV9�&t-sammoa_Diagrammedecasdutilisation.pgmlPKd�2Aɟ���FA�.sammoa_Diagrammedeclasses2.pgmlPKd�2AP����K�5sammoa.todoPKd�2A8��7y��6sammoa_profile.profilePKd�2A� -4"�� -�7sammoa.xmiPK��Y \ No newline at end of file +�����������b<��SR�S�R�K�����+�,EȂ9PK8��7y�PK��;A +sammoa.xmi�][�㶑~ϯ�Ir<�ٴZ7�2N�#�ՓٝK{���>�@$�f�"e^ڞ<��ط}��i��?�_�%�E��o�{� ��W@U�����6�'츆m)R^tZ� +�4[7��ŏ�W������y�Z�um�bͻ/��L�}���7�7��j��U�6��������3ȏZoh��G_���;T:�����n_����n��}��o�~�������e��nk�[��U����v<�v�lJ�K��{�,W����c�&р�h���u�7�?m��n��_�Q�d�XW�~�<��ݾjw�:��}�m����!�k+_���?(�������7���7������1̀�5&��ul*!��[2����˟~�i�{���M;���l�#�ݽ�t}�6z��S�^���P��m�F�������Qu^^�������3�/v|�$ѷܣ��F/ý�`�XZ0��%2]L������/�`�|��;Y�������,������������h�Q�����=o����E�Z�3����?Rn��&v�nІ���6����p��tv��]�����^�OwY�M��1��&r���<u��ы��bt��������m������ݽ�|em�X1�Q�iߖuf7r����Ͼ�A+���v� +rm(����U!�O]e��Y���q#�&n� +؇e��'JƗ�+�%_��O�����32 +7X3�"��v\%�)����|K����}3����V�:�+^.ɔ~�h�Q�W_��J7Ȼ�W,�W�z=|��������)�E+�D�IW�K�1��5^DT}������d�ֹ$п�D�=+"��`�Ċ�Q�!�1�Vt�%��ʎ�z4Ȟd�Y�<٦�����I/S1L����'�T��#�&_�����(��h���G�wHo���wmlB�����/��G�- +:� +�7�)��g���tڿ|~���� +B��A��[4�l�?���Nk}��g +�������!������8DfB#̉ІL���[�e,|��O���ٷ�o?���?��sbAO�m���s9��*�T�|� +�O�l�1� ����R^��'2oڭ����ٚFV��Q=�ɱB�l�*�Zh��+d�]L'ұ7D�u_!�5n�@ˌ�y���!4$� +�z�?D�����HnV'��R4�K��1\px_�a;G��D}hi]�Wؾ� +�֯u�� +��t7��Vc���!�Ȏ���R�~�'���Hq7����������d���X�>��{W D%����>Rtd�ʲ����2�;��x�2%%�7����i���r�3akC���G����0&��"�����91j8������s���>K�?K�=�*�����>;X#m��2���vɖo� +�e����}�|��&w?~�s�r}1Rg<R����D�p�|�������h�-)Ltu�חL���N����ٛ�_��ٿ�кŶ�"�h�'L&�4��m*Y��"_�Nk� �88e�'����|����tƱ��x�f���7���~��d��� ��#6��44�(�;��� ^C�3�j��)-8�症�0�k<䬰�|O�);��{���!�v˾��7=cC�%�gu��{��e�I�S-�6�9����\��>��9��W�P��&�7�v$^�*ٚ9�קMf�x�6i��7�C�����=z����5>�_�-�Y]�s�� Ƿk�N�Z�KDh��zBԥ���a��X���$n[Gk����1#�=����u��ׯ&�?�@]O&��{����C)h�����W.�=�tOQ�����3[�7lS�������U��m�-0�Qo�Ymr�ԝ1�+�6q��'���U)�4��3�-�����ĵ4�tr_��4��m^?����P�������2ؐ&�������?3\�5#����#<k��/콡�P'k�1��-�ܡ3����}��&r8:vv�x���u���j��U�R˶8� +�I$��gZk���7�В딓�,�Ƶ,e��� �L)!��rIf�1q?�M1�1q+b����!"��<�=:�$P$ڤ��D�\��,qlk�6�1������h�;jW�6!-�K=��:W]Ϙ'q��k��Ͱ��xr�����q{O_�[g�4座������Q�lp��X��ADoe�V\% N �Z> +<��tA�;�R��ؾ{؋e��-�^��y؋U�Vֽؼ�F�y3�"������;O8�����=T����捴��؍YVE|�T{E|���"���0�I�� �-3R�8so�m�p!a�k3�#��/��n��`t{�x'Pǡh���*�:����v^v�`z*�M��O˩Ȅ��)۰i�i���6�z�0qP���i;�Is��@K���;�%���_�I1zX�@�}$|K��Q���m<��^��6�33T�^_�(����3�3Sj�E*��$�yA����L{ݱ_Vg��-�^|�%���N\[L�0ybq��}A)|hd�|Q�G K�(5�u������K>s-S#3��^�M��Ť�&O,�h��i�Qn��hd���s���&=�b�U1;���8��9����N5����[F.�q��:8.���kC���`�a)!���G3�igȧ�.)=�WK ���0�U�-ݤW�-��H�@l��Prٰ��jk�"&uK�!>r��q���5,&fV�>��Y81�_�@H�q���s���}�a0HѾ���z�Nq��V�������$Ly�GT�[[��d4a�:Y:��Y����Xn�ʾ�P�$���ʳS*@���Q�4�E���� +��)z��Ԫ��a�P=j��x8�O�ܢG�'B���UjeXZL�IQ��m�+|�s��R5j�H�a�Z�{�7��B0 rͭѶ��;��P�Z��])'��&|����X�- Lf̐�����h�,�,�)(Q?L��ʞ+uV�kưC���í4��+�"�)��j���S��?ӎXv0�����kF-'t�'� +��H��Sr 芹���7�j�ݑ:@�q����p�S��0�$�@@V��Uk���=�����p��iX4��|������?���d5���$�w��)~DO��7q�y��H�]��� J��'���(�� +K�kɅ��n���D/�ε(U-/17������r|v����٥!2��m����a�@ɽJ�t=��Z��EaJ��X"��J�����"���8P^�Z\�9J���J��ʷ��M���}�;ʈQW�/�H�1�}�R��h�@���T +�/��F�j8�>i��J*<N��C"�(��Wؾ��S������� �6ӑ���lG0�`6�a괘�2��1oÅ�J�3�)ӑ�i[+��u�)����c����<��lPA(`Z�#( �@����#�Xn@�Z ��Qm�Ll9HL��xZL2+ �J4 +����c��&�Ђ�L� �0�X�z#���C7���r��^��nP�� +m(�7�D�$�Z̶@�<��:T�BZ�n&�D%)~��;O��`+0�i���� +�t������*At�>^v1���>�ڝa1%K`Xy��VX^��%�"��l0RB� +�dr7��e���ym�xo����Q�m1q���P�MB��>7�`N�4�! sV-y�� +��iо0��!ll���;��8��̈��i +�{[ �[d��B б6�V& �K�)U'N3�a�4 �i�� +@@��%��=��v�ռ���N���YL*;q� �]� � nT�b{�և<�R<-y���:��w�\g�����1��r�8 ��'A�C���ʁH�!� ��2-&z@�>��u��n@X&�ܜ��G۳d�YLB[q� �m�C{�!��[9a�o��V�-��p&�X�o��%+7�'��'dpQ�����@��fc�O�`�����AGt�Z;�j��b�ә��n�� B��Ȓ,-&�P�@#�u�,�$��(�!���ՄL�e�t9b&�}�Sn���`P�b��g�3� |��0j|�Tǝ�h����E�P�l�2��UT6�{� ߭O����0}L�A�4�H� �i�t +M�>8?�:�ofܨS�d?1M��`VP�0}x�P@d�o���0d�YP��0}n�Pc��"�-�f�2g� +�<c���&A Q�u��wI:H�p���i�w�){�ȳ�a�w&��b���郸�X���@Y��NG�C/��'m(�������Ib�N���e�b +Ia�H\�ƌC�f�͑�?Q�Ϗ$ +X����L��%',��5�$*.��`���H�` !�#֡�E���b�f斄;�����X0�0���O��>�{"�]� +:��Em +� �MA�CeͶ;�ߓIB{�g���q���F�rH�b�.�h�wuv�:n61����OY�c�V��p��i]4��|ǡ�-�[��튁̣�@��S�k�M��7u�y���]���)���p�L��x��Ѱ���\���次���+aJ���;עT���ܤ�f{�����cd93s�_�1���0L���϶�Ԃ�v�1o��ZW��y�mI�Ӧ(5:&��%�&�L/wFW˅�;32��+���� +rS�A2y���N�@HN�P�CfF�\óo�_�b����X=��%6IU�q�c�Q��X����e��;O���0�b��`0f��:��p�kna;B��� �� ��b�ۉ���b���V,�7�_� ��Y̅Bq��>a��@ *�X��������̶���"�����a�d1�q�X8$�e��#H���i@�K{���}.|��9����-\��=tʍ�#A�� +��A��X�z#�Uo�4����<��B��r1W��+9�GK?%E}��@����!�51�/r�h��0�8Z���8��ido(P���Ђ��v��(�ׂ"��ȂX�z��łyt����c� +dx:(90�Q�O����D���x��^��@��U��2��:� +�����gQ����}Ra��0Soʽ'�3CJ§y@P��AIRO{��!��cͳ�,n�ө�uUS)���������E����|��Q������j��:TVg�������%1e�Y�=I�@0(�:�8 U<��<"T�:;�Ŭ����p��u�l�I�gɞ:£�����,�Q__�S�$"Z��$�,�Β�>K�O6���A[Ȱ��8}���u���Q\&��#i~�z�HI�S�G�>���Pc �NO���M���yZ�th3���8@d�[�c���p@���T���q�:�$��r�6�M�t�s�Y�@���PY��"z�b8@#z�u�����)G*M,��0��C�1��f�X�o�e�y�-J�J�a���,�>Հ���)����s�sNJ�T�oyW�8lgۿ�]Viڛ��S���|!�w����,f�+A �rc���������-���P + ֡��/��7\@�P9Yv�� +�:TsSP�so��^D�ͦ�|;H�p���i�w��ԝ��7���pR�17�=�{e�Y��cHh�PM'x��;ڠ�өP�4U�wC�P�p�Zy��R-�J��p'$�!{U�N^���/�R-��+A 8zc��[�[:��?�f!N T��u�B�/rEw�8 �Ѣ"�� ��X���t{�@9~S[�@���Pk���DƜ�آ�@�@��X�zGƈ{j�Nk�`�O�V?(�h1Nq��g�P�\ĝ> 4� +i�Ѱ?0� +�٥��3G�ͣ���t�+��[Ba� +b�Y�&�P9�� i:��5�գ|���[����3 +����,�!j[�}�R�vo����)�}��;�[E�!�Iqt� 8�=��~��xLwGC���1N��n"5�~�/\�<a��v +����_� +5}R4%y�>v>�ɲf[��8t�C>��'�4�y4��>B�%U��=�jm�CXD��wa�s�(��N�� QoG�Ѱ���\���Q�}=���d����s-J�A�� +��?7�h��#˙�[�:�g�τ�n��϶�Ԃ�v�1_�A���ֱ |[�KIde-��8}p�6֡�fQ��3�^�x��LC��?g冁>3�4|�VP�yh���l]�8ZLZq� m�CՁ��Ae����?h���נ�>T����!E|j�lH�e?�}��V�R��R��a�v���ށ���k��o<�W�ܕ�:S������܃Z��jL݉�@���? >7��)�&�(���{�nW����vg���l'6�2A� �赕MD}�ⳒZq��xIz��f-H�qo�$��9<z��ۂ,�!\|�������������B"'�kk{�#��Phd��t�Ci���Ƌ +yn<'�z�Й�@����h���f����1���o?a��9�Z9x�Բ-���<JU#q�q����J��E��s]�#��J����H� +b�ڌ:�2a���e� ��L��0�` �K�ӊd�* D�$1� D$ڤ�9-O؆ +��\�UZ)w�/{�.bm�;�A�2\�]��șvW �?дe����b�X�ط^��(N�X�l�d23nhNq[0q�`&��X�QL�q���@d����KU�x� +{�p��x8��p��1P����ș�w`�%��|�)�p�0}b��^e�_��r��%��x������:���@��VA��u�c +ڼ���U\ ������533�_P6Dq�y0����%�K��%@��E|\H�U#�Q~BRVE�IM�UE���8{E|[vE��LP��SGx4֖���,�Q_g�u����!��L"��3�Ý.�a ��f�b3/���e��b�@���F@h�1���x�y��k˱�2�t�j1���K��D�l�-��2\f�����W�)e��\�/Ux}�k)?%������N����'JQ�:d_^�{��E��!�{��P@��݂.��(v�P�I(��f�2��ր�r�R�?ѧy8�K�nFI���K܇U��8:(;0� +�@Ac���x.Pm�`[ �Ҳ����h��,h,pk�X�I�SNF�@�'�PY,�"�Z��v�}��7�X���V&��<L' �f��i���2-N�5(��I��e7'����(p�6���l� +�ZL]b �0q�C�PPASR�[�[:�4K�Iu(A`ER�� +��C��dB���ڠ˴j�U���9sp�� +d�Z�A�>8�:T�:q�fe�j���$J�^�Ƣ|���l��BvZ���l#�k��k��� +��md�k��w�D���,.�a��N�x�Q9/͊F#sH]�j��A,�.�gU�� +�f3��떷D|��L[R�d�yI#�V�������� I��E��e��I>�΄,�3����5����� �� JE���LY}{-�l�������ۻ7sKR���0��?N��� +�Q�'���W��s]��gC��g�,����P}�S%���,�FY-�<�� �`����ș�ڠ�3w���(��Q��Xlv���:���g�;�����\�ΘɅAj�Ɋ*a���ƚ��%]Еq�R3����=)�YX\2�0�5B�t�����T=�U�x��t�7�c����Q���� U��j4��┳B��o��� +�tli�Z�i`���V�%�(!��D'��N +��-2�%�2���^L�&g'��⚯0'�� �,�s,��0'�'@�Y��Y]���K��h�]��6�Z��\4L�)=�̔��O�4�흫"�k0gR8a�� +/pE�=Cn�� +���]8����Χ��ds���C����?�D� +d�G�l?p��[����Z�kJd�M��VT��.ls�d�&J'���(��������!"�9�ŢƗ�3|�Z�ă��+���v��Y�ɛC��ĸ�i�2;�q�=d�Prӡ[��!��*�҂���crIvȽ*��%�#:Y\.��� +���@+���ŧcZ������2�ã�)��Z���~'��n��-ن +�b���Q|��l<k�#���� �ƃN9�ASGs��[a�oc���Ӓp�02:�'*��|G4��!��Ew��Έ��.�jh�>���q�I���#�9s�Gd �{]�T��xZ��m��=A 6�VB� +�{�K�fS�}�m���n�Ұ�nCu�����rf31�Qm��U�^23�����jM2!}��==����z|�W� a�<�����sf��I|m�!���-��^/��XِuA�LqтXY#�����]���D1�B�����O!�C����4dj��`K٘�K_�a���2���s>ÁN��|���^� +{�����l�#k�`��������������,����P +�M3�p������G鈵�SQR�O�9���3�}|���s�e�~$H'&ˆ�Ff�O8�ڃe�3�2=����ű�m-����ܭ4Dݘ[���:��ω��l��Ǭ��ݫK$��黳��p<��ل5�W_>���- +�� +ZY�J|>#�����JR�1�k`�@}������zC�ai{$����%'�/��?���~r�/� +���X��������\~�\�dj�h�)O�Y�1 +���;2C�D�%�"�n%�W +A�HD���M'+��R#[J�l��l͊�{d�����S0���I�1�n:5�҃�A��Lp����C�g�}ր�ت +c���mh?��e�'�'+�������F��9a8djû�K�e�`���w{/e��}�!�$��y��,�@���6q7�r.���AҮ�ĪH��dx��U���~��� ����bWgg��� �9�8�����i}�-r&��6w�d���'ˌ��+\��̐��To�d��ꊜ��]��.�#�(q��b�r���#���ș��n��9�oW�9������s�� +-r2� +�E����.�g�@ms� 3�6 +9����"g"�Ks�L���Q�̐s�4�d��9� +��d����(�:d����늜����"g�cs�L��s�¨Cf��{�5E�1�.C]�s�H���%�d�Ga���N"�m��"g"wVs�L���Q�̐�����ɼ�U[���Q9��(�:d���b��FNfҙ�"'\�{��`�Ga�n_�*D�DI�EN�v�ܡ�� �¨�!:q�f2��"���=wh.rN�Qu�,*�Q����L0W[�kw����(�:d��7MCNf���"'\��|����C�U�ܡ"�ˆ����9�kwQ����!�*|��(��$���yh��~�K(;G��pє͓F�ϛ���5CL��u�jg@P��*�x��]�F[�����2cX� ���({��-�y�喎<��;*kQ}H���� X�4YxP�f�u����'������r�ܾ ����Tn���/o_S������o�PK�9��%P,PK��;A��&%K�sammoa.argoPK��;A��' +�*ƚ�sammoa_Diagrammedeclasses.pgmlPK��;A +*���Q&v-sammoa_Diagrammedecasdutilisation.pgmlPK��;Aɟ���FAaCsammoa_Diagrammedeclasses2.pgmlPK��;AP����KsJsammoa.todoPK��;A8��7y��Ksammoa_profile.profilePK��;A�9��%P, +MLsammoa.xmiPK�[r \ No newline at end of file Modified: trunk/sammoa-ui-swing/src/main/filtered-resources/sammoa.properties =================================================================== --- trunk/sammoa-ui-swing/src/main/filtered-resources/sammoa.properties 2012-09-27 13:55:35 UTC (rev 607) +++ trunk/sammoa-ui-swing/src/main/filtered-resources/sammoa.properties 2012-09-28 11:54:24 UTC (rev 608) @@ -27,7 +27,7 @@ hibernate.show_sql=false hibernate.dialect=org.hibernate.dialect.H2Dialect -hibernate.connection.url=jdbc:h2:file:${db.directory}/sammoa +hibernate.connection.url=jdbc:h2:file:${sammoa.db.directory}/sammoa hibernate.connection.username=sa hibernate.connection.password=sa hibernate.connection.driver_class=org.h2.Driver Modified: trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/StartApp.java =================================================================== --- trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/StartApp.java 2012-09-27 13:55:35 UTC (rev 607) +++ trunk/sammoa-ui-swing/src/main/java/fr/ulr/sammoa/ui/swing/StartApp.java 2012-09-28 11:54:24 UTC (rev 608) @@ -84,8 +84,7 @@ } // Initialize i18n - Locale locale = config.getLocale(); - I18n.init(new DefaultI18nInitializer("sammoa-ui-swing"), locale); + I18n.init(new DefaultI18nInitializer("sammoa-ui-swing"), Locale.UK); // Prepare ui look&feel and load ui properties try { Added: trunk/src/site/resources/functionalities.png =================================================================== (Binary files differ) Property changes on: trunk/src/site/resources/functionalities.png ___________________________________________________________________ Added: svn:mime-type + image/png Added: svn:keywords + Author Date Id Revision HeadURL Added: trunk/src/site/rst/functionalities.rst =================================================================== --- trunk/src/site/rst/functionalities.rst (rev 0) +++ trunk/src/site/rst/functionalities.rst 2012-09-28 11:54:24 UTC (rev 608) @@ -0,0 +1,438 @@ +.. - +.. * #%L +.. * SAMMOA +.. * $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% +.. - + +=============== +Fonctionnalités +=============== + +Voici la description des fonctionalités de la version 1.0 de SAMMOA. La +description du `modèle de données +<model.html>`_ est également une aide précieuse pour connaître les différents +éléments métiers du système SAMMOA. + +Schéma +====== + +SAMMOA est un sytème de saisi embarquée à bord d'avion dans le cadre d' +observations scientifiques sur la faune marine et les oiseaux. Le système +doit permettre : + +- la manipulation du référentiel (en bleu ciel), +- la préparation et la configuration du vol (en jaune), +- la saisie et la correction de l'effort d'observation (en vert), +- la représentation sur une carte (en bleu foncé), +- l'échange de données et la configuration (en blanc) + +Le système doit permettre d'afficher toutes les données scientifique d'un vol +pour effectuer en deux étapes, la saisie de l'effort d'observation et la +validation de cet effort. + +.. image:: functionalities.png + +Acteurs +======= + +Dans le système SAMMOA, un acteur n'est pas forcément un être humain mais est +en action avec lui. + +Utilisateur +----------- + +L'utilisateur est soit un chef de mission, un observateur ou quelqu'un qui +s'occupe de traiter les données d'observation. + +GPS +--- + +Le GPS permet de capturer les coordonnées géographiques pendant un vol. + +Système audio +------------- + +Le système audio permet d'enregistrer les conversations des observateurs pendant +le vol ou de les lires à terre pendant la phase de validation des données. + +Fonctionnalités +=============== + +Configurer l'application +------------------------ + +L'utilisateur peut configurer les différents paramètres de l'application grâce +à l'écran *Configuration* du menu *File*. + +Cet écran contient : + +- La configuration générale : dossier de travail de l'application, identifiant + du système, numéro du dernier vol enregistré, fond de carte +- La configuration du système audio. Cette configuration est accompagné d'une + petite interface permettant d'effectuer des essais audio (écran *Audio test* + du menu *File*) +- La configuration du GPS : port, débit, délai de capture, délai d'inactivité +- La configuration des raccourcis claviers concernant les `actions sur le vol + <#actions-pendant-le-vol>`_ (début du vol, ajout d'un LEG, validation, ...). + +Voir la rubrique `ApplicationConfig +<application-config-report.html>`_ pour la liste de tous les paramètres de +configuration. A noter que certains ne sont pas nécessairement disponible dans +l'interface. + +Gérer une région +---------------- + +L'utilisateur doit pouvoir créer une nouvelle région et modifier une existante. + +Une région peut être créée ou modifiée depuis l'écran de gestion d'une campagne. + +Le dictionnaire de données défini les propriétés d'une `région +<model.html#Region>`_. + +C'est depuis la gestion d'une région que l'on peut effectuer l'import du +référentiel des espèces qui lui est lié. (Voir `import des espèces +<import-export.html#especes-csv>`_) + +Gérer une campagne +------------------ + +L'utilisateur doit pouvoir créer une nouvelle campagne aérienne et modifier une +existante. + +Une campagne peut être créée ou modifiée depuis l'écran de sélection d'un vol +(page d'accueil ou *Home*). + +Le dictionnaire de données défini les propriétés d'une `campagne +<model.html#Campaign>`_ + +C'est depuis la gestion d'une campagne que l'on peut effectuer : + +- l'import du référentiel des strates : voir `import des strates + <import-export.html#fichier-de-strate-dbf>`_) + +- l'import du référentiel des transects : voir `import des transects + <import-export.html#fichier-de-transect-dbf>`_) + +- l'import du référentiel des observateurs : voir `import des observateurs + <import-export.html#observateurs-csv>`_) + +Gérer un vol +------------ + +L'utilisateur doit pouvoir créer un nouveau vol ou ouvrir un existant soit +en mode *embarqué*, soit en mode *validation*. + +Le dictionnaire de données défini les propriétés d'un `vol +<model.html#Flight>`_ + +L'utilisateur peut définir manuellement le numéro de vol ou celui-ci sera +incrémenté automatiquement en fonction du système. Le numéro de vol est +conservé dans la configuration, même si la base de données est supprimée ce +numéro sera encore disponible sur le système dans le fichier de configuration +de l'application. + +Les observateurs sont associés directement au vol pour indiquer quelles sont +les personnes (y compris les pilotes) qui ont embarquées dans l'avion. + +Les dates de début et de fin du vol sont saisies grâce à des `actions dédiées +<#actions-pendant-le-vol>`_ et ne pourront être modifiées que lors de la phase +de validation. Cette phase ne pourra s'enclencher qu'une fois le vol terminé. +Un message utilisateur de confirmation est également affiché lors de la fin du +vol car aucune action ne pourra être disponible si le vol est terminé. + +Préparer le plan de vol +----------------------- + +L'utilisateur doit pouvoir préparer le plan de vol à réaliser. Pour cela, il +doit pouvoir sélectionner les transects à effectuer dans un ordre donné. Pour +aider la sélection des transects, ces derniers peuvent être filtrer en fonction +d'une strate sélectionnée. + +Pour chacun des transects, il peut modifier les positions prévus des observateurs +et configurer le numéro de passage (si celui automatique ne convient pas). le +nombre de référence de transects associés à un vol existant dans la base de +données doit également être visible. + +Le plan de vol peut être modifié à tout moment (en vol ou à terre). Un transect +peut être supprimé du plan définitevement si le vol n'a pas encore démarré, +par contre, une fois le vol démarré il ne pourra que être marqué comme étant +supprimé. La phase de validation permettra de supprimer définitevement les +transects du plan de vol marqués comme supprimés. Ces derniers ne peuvent pas +faire l'objet de nouveaux parcours *LEG* pendant le vol. + +Voir le dictionnaire de données concernant un `transect dans le plan de vol +<model.html#TransectFlight>`_. + +Créer un transect +----------------- + +L'utilisateur doit pouvoir créer un nouveau transect qui n'existe pas dans +le fichier SHP importé depuis la campagne. Cette création s'effectuera depuis +le plan de vol et s'ajoutera au référentiel avec un indicateur visuel pour +indiquer qu'aucune donnée géographique n'est disponible pour ce transect. + +Le dictionnaire de données défini les propriétés d'un `transect +<model.html#Transect>`_. + +Pour aider la saisie du nom du transect, ce dernier est calculé en fonction +de la strate sélectionnée et du dernier numéro de transect disponible pour cette +strate. Le nom pourra également être modifié manuellement lors de la création. + +Créer les parcours pendant le vol +--------------------------------- + +L'utilisateur doit pouvoir segmenter le vol en fonction du plan de vol, de l' +effort d'observation et des conditions d'observation. Pour cela, des actions +sont mises à disposition en fonction de l'état du vol (en attente **WAITING**, +en dehors de l'effort **OFF_EFFORT**, pendant l'effort **ON_EFFORT**, +terminé **ENDED**). + +Toutes ces actions sont effectués lors de la saisie embarquée d'un vol. Chaque +action enregistre un point GPS à l'heure et la seconde près où l'action a été +effectuée. Le point GPS peut avoir un décallage par rapport à la capture réelle. + +Voir le dictionnaire de données concernant les `données GPS +<model.html#GeoPoint>`_. + +Actions pendant le vol +~~~~~~~~~~~~~~~~~~~~~~ + ++--------------------+----------------------------------+--------------+----------------------------+ +| Nom | Description | Raccourci | Activation | +| | | par défaut | | ++====================+==================================+==============+============================+ +| START | Démarrage du vol (décollage). | ctrl + B | Si le vol n'a pas démarré | +| | Cette action crée le premier | | **FlightState.WAITING** | +| | parcours de type **TRANSIT**. | | | +| | L'état du vol passe | | | +| | **OFF_EFFORT**. Le GPS | | | +| | enregistre. | | | ++--------------------+----------------------------------+--------------+----------------------------+ +| STOP | Arrêt du vol (atterissage). | ctrl + E | Si le vol a démarré et | +| | L'état du vol passe **ENDED**. | | aucun effort est en cours | +| | Le GPS s'arrête. | | **FlightState.OFF_EFFORT** | ++--------------------+----------------------------------+--------------+----------------------------+ +| BEGIN | Démarrage de l'effort d' | F5 | Si le prochain transect | +| | observation sur le prochain | | est sélectionné et le vol | +| | transect dans le plan de vol. | | n'est pas en effort | +| | Cette action crée un parcours | | **FlightState.OFF_EFFORT** | +| | de type **LEG** et l'état du vol | | | +| | passe **ON_EFFORT**. Le système | | | +| | audio enregistre. | | | ++--------------------+----------------------------------+--------------+----------------------------+ +| ADD | Changement des conditions d' | F7 | Si le vol a démarré et | +| | observation. Cette action crée | | l'effort est en cours | +| | un parcours de type **LEG** | | **FlightState.ON_EFFORT** | ++--------------------+----------------------------------+--------------+----------------------------+ +| END | Arrêt de l'effort en cours. | F9 | Si le vol a démarré et | +| | Cette action crée un parcours | | l'effort est en cours | +| | de type **TRANSIT** et l'état du | | **FlightState.ON_EFFORT** | +| | vol passe **OFF_EFFORT**. | | | +| | Le système audio s'arrête. | | | ++--------------------+----------------------------------+--------------+----------------------------+ +| NEXT | Passage au prochain transect sur | F10 | Si le vol a démarré et | +| | le plan de vol. Effectue un | | l'effort est en cours | +| | *END* puis un *BEGIN* | | **FlightState.ON_EFFORT** | ++--------------------+----------------------------------+--------------+----------------------------+ +| CIRCLE_BACK | Demi-tour de l'avion pour | F11 | Si le vol a démarré et | +| | préciser une observation. | | l'effort est en cours | +| | Cette action crée un parcours de | | **FlightState.ON_EFFORT** | +| | type **CIRCLE_BACK** sur l' | | | +| | observation sélectionnée. L'état | | | +| | du vol passe **OFF_EFFORT** mais | | | +| | le système audio ne s'arrête pas | | | +| | Note: un *BEGIN* après un | | | +| | demi-tour garde le transect | | | +| | en cours avant le demi-tour. | | | ++--------------------+----------------------------------+--------------+----------------------------+ + +Changer les conditions d'observation +------------------------------------ + +L'utilisateur doit pouvoir changer les conditions d'observation sur chacun +des parcours. Pour aider la saisie, les conditions sont copiés à chaque +création de parcours depuis le parcours précédent. Une aide visuelle doit +permettre d'identifier qu'aucun changement de conditions d'observation n'a été +effectué d'un LEG à l'autre sur le même transect. + +Le dictionnaire de données défini les propriétés des `conditions d'observation +<model.html#Route>`_. + +La saisie des conditions est effectué sous la forme d'un tableau, chaque +ligne représentant un parcours et ses conditions. Les flèches du clavier doivent +permettre la navigation d'une propriété et d'une ligne à l'autre. L'édition se +fait dès la sélection de la cellule sans nécessiter l'utilisation d'une autre +touche. Les données en erreur sont visibles à l'aide d'indicateurs visuels : +jaune pour un *WARNING* et rouge pour une *ERROR*. Le niveau *WARNING* est +positionné lors de la saisie embarquée et le niveau *ERROR* est positionné +lors de la validation. + +Créer des observations +---------------------- + +L'utilisateur doit pouvoir créer de nouvelles observations en fonction de +la position de l'observateur qui a effectué cette observation. Les positions +sont définis en fonction du type de plate-forme de l'avion. Pour le moment +seules les positions d'un avion avec une plate-forme simple sont supportées. A +chaque nouvelle observation, le GPS enregistre le point géographique correspondant +à l'heure et à la seconde près de la saisie de cette observation. + +Le dictionnaire de données défini les propriétés des `observations +<model.html#Observation>`_. + +La saisie des observations est effectué sous la forme d'un tableau avec le +même principe et les même contraintes que les conditions d'observation. + +L'observateur placé à la position de l'observation doit également être visible +dans le tableau. Cette position peut être modifiée à tout moment et garde la +correspondance de l'observateur depuis le parcours sur lequel a été effectué +l'observation. + +Un indicateur visuel doit permettre de distinguer les observations liés au +parcours sélectionné. + +Actions des observations +~~~~~~~~~~~~~~~~~~~~~~~~ + +Toutes les actions sont disponibles dès que le vol a démarré. + ++--------------------+----------------------------------+--------------+ +| Nom | Description | Raccourci | +| | | par défaut | ++====================+==================================+==============+ +| LEFT | Nouvelle observation à gauche | F1 | ++--------------------+----------------------------------+--------------+ +| CENTER | Nouvelle observation au centre | F3 | +| | faite par le navigateur | | ++--------------------+----------------------------------+--------------+ +| RIGHT | Nouvelle observation à droite | F12 | ++--------------------+----------------------------------+--------------+ + +Voir les données sur une carte +------------------------------ + +L'utilisateur doit pouvoir voir un ensemble de données sur une carte. Il doit +pouvoir également se déplacer et zoomer sur la carte. La carte doit faire +apparaître l'échelle et les coordonnées géographiques par rapport au pointeur +de la souris. + +Les données visibles sont : + +- les strates : fournis lors de l'import du SHP des strates lié à la campagne +- les transects : fournis lors de l'import du SHP des transects liés à la campagne +- le parcours de l'avion : chaque capture du GPS est visible sur la carte. La + liaison de ces points GPS forment le tracé de l'avion. +- les observations : chaque nouvelle observation est visible sur la carte. Le + nom de l'espèce correspondant à l'observation doit être affiché à côté du + point de l'observation. + +Pour aider la préparation du vol, certaines interactions sont visibles sur la carte : + +- lors de la sélection d'une strate, seul les transects de cette strate apparaissent +- lors de la sélection d'un transect, le transect apparaît d'une couleur différente +- lors de la sélection d'un transect depuis le plan de vol, le transect apparaît en gras +- lors de la saisie embarquée, seul les transects du plan de vol ou ceux sélectionnés + dans le référentiel sont visibles + +De plus, l'utilisateur doit pouvoir centrer automatiquement la carte en fonction +de la position courante de l'avion et donc du GPS. + +L'ajout d'un fond de carte est également possible depuis l'écran de configuration. + +Valider un vol +-------------- + +Une fois le vol terminé, il est désormais possible pour l'utilisateur de le +corriger et de le valider. + +L'utilisateur doit pouvoir valider différents éléments métiers : + +- validation d'un transect du plan de vol (TransectFlight) +- validation d'un parcours (Route) +- validation d'une observation (Observation) + +Pour valider un élément, il doit être sans erreur ou marqué comme supprimé. Les +sous-éléments doivent respecter les mêmes conditions. Par exemple un parcours +valide ses observations qui doivent être sans erreur ou marqués comme supprimés. +La validation d'un élément supprimé va le supprimer définitivement après la +confirmation de l'utilisateur. + +L'écran de validation doit permettre de se replacer dans le contexte du vol +à tout moment, ainsi la sélection d'une ligne (transect, parcours ou observation) +remettra le vol dans l'état où il se trouvait au temps correspondant au parcours. +Un parcours doit toujours être sélectionné pour permettre la validation : +la sélection d'un transect va sélectionner le premier parcours du transect et la +sélection d'une observation va sélectionner le parcours sur lequel elle a été +effectuée. + +Le système audio est disponible en lecture dès la sélection d'un +transect. La barre de temps de l'audio se positionnera automatiquement en +fonction de l'élément sélectionné (parcours ou observation). Si le système +audio est en cours de lecture, aucun positionnement automatique lors d'une +sélection ne sera effectué. L'heure et les secondes doivent être visibles +lors de la lecture audio. + +Les `actions de la saisie embarquée +<#actions-pendant-le-vol>`_ restent disponibles pendant la validation, et +s'activent en fonction de l'état du vol sur le parcours sélectionné. Le temps +de création des nouveaux parcours ou observations est récupéré depuis la lecture +audio. Il doit également être modifiable manuellement à la seconde près. +Le point GPS du nouveau parcours ou observation est quant à lui récupéré dans la +liste de tous les points capturés pendant le vol. Si aucun point existe pour le +nouveau temps (depuis l'audio ou saisi manuellement), un nouveau point est créé +avec une précision sur le délai de capture. + +L'utilisateur doit pouvoir également trier et filtrer les tableaux des conditions +d'observations (parcours) et des observations. + +Actions pendant la validation +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ++--------------------+----------------------------------+--------------+ +| Nom | Description | Raccourci | +| | | par défaut | ++====================+==================================+==============+ +| VALID_FIGHT | Validation de tout le vol, des | alt + F | +| | transects, des parcours et des | | +| | observations | | ++--------------------+----------------------------------+--------------+ +| VALID_TRANSECT | Validation d'un transect du plan | alt + T | +| | de vol, des parcours associés | | +| | et des observations | | ++--------------------+----------------------------------+--------------+ +| VALID_ROUTE | Validation d'un parcours et | alt + R | +| | des observations associées | | ++--------------------+----------------------------------+--------------+ +| VALID_OBSERVATION | Validation d'une observation | alt + O | ++--------------------+----------------------------------+--------------+ + +Exporter SHP +------------ + +Voir la documentation sur `l'export SHP +<import-export.html#export-shp-donnees-reelles>`_ + +Echanger les données entre système +---------------------------------- + +Voir la documentation sur `l'import/export +<import-export.html>`_ \ No newline at end of file Property changes on: trunk/src/site/rst/functionalities.rst ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: trunk/src/site/rst/gps.rst =================================================================== --- trunk/src/site/rst/gps.rst 2012-09-27 13:55:35 UTC (rev 607) +++ trunk/src/site/rst/gps.rst 2012-09-28 11:54:24 UTC (rev 608) @@ -127,6 +127,10 @@ Apparement, sans le fichier "javax.comm.properties", cela ne fonctionne pas: les librairies natives ne sont pas trouvées. +RXTX est remplacé par nrjavaserial : http://code.google.com/p/nrjavaserial/ +Il n'est plus nécessaire d'embarquer les librairies natives, elles sont +incluses dans le jar de nrjavaserial. + Java web start -------------- Pour java web start, il faut que les librairies natives sont packagées dans Modified: trunk/src/site/rst/import-export.rst =================================================================== --- trunk/src/site/rst/import-export.rst 2012-09-27 13:55:35 UTC (rev 607) +++ trunk/src/site/rst/import-export.rst 2012-09-28 11:54:24 UTC (rev 608) @@ -32,7 +32,8 @@ Echange de données ------------------ -Le schéma ci-dessous reprend les principaux échanges de données possibles entre les différentes stations de travail. +Le schéma ci-dessous reprend les principaux échanges de données possibles entre +les différentes stations de travail. Chaque bloc bleue représente un type de station : - Central : Ordinateur avec la base de données centrale contenant toutes les données @@ -40,7 +41,8 @@ - Validation: Ordinateur pour la validation des données - Suivi : Ordinateur pour le suivi et la préparation des vols -A noter que ce sont des rôles de station de travail, une seule même machine physique peut avoir tous ces différents rôles. +A noter que ce sont des rôles de station de travail, une seule même machine +physique peut avoir tous ces différents rôles. .. image:: ulr-sammoa-echange-data.svg :scale: 20% @@ -73,6 +75,9 @@ Fichier de strate (dbf) +++++++++++++++++++++++ +Voir le dictionnaire de données concernant les `strates +<model.html#Strate>`_ + - colonne 0 : "Nom" : Nom de la strate (strate.name) C,50 - colonne 1 : "type_strat" : Type de la strate (strate.strateType) N,4,0 @@ -90,6 +95,9 @@ Fichier de transect (dbf) +++++++++++++++++++++++++ +Voir le dictionnaire de données concernant les `transects +<model.html#Transect>`_ + - colonne 0 : "TR_ID" : Identifiant et nom du transect (transect.name) - colonne 1 : "Xstart" : Coordonnée X de début du transect (transect.startX) - colonne 2 : "Ystart" : Coordonnée Y de début du transect (transect.startY) @@ -120,6 +128,9 @@ Observateurs (CSV) ~~~~~~~~~~~~~~~~~~ +Voir le dictionnaire de données concernant les `observateurs +<model.html#Observer>`_ + L'import des observateurs est possible depuis l'interface d'édition d'une campagne. @@ -139,6 +150,9 @@ Espèces (CSV) ~~~~~~~~~~~~~ +Voir le dictionnaire de données concernant les `espèces +<model.html#Species>`_ + L'import des espèces est possible depuis l'interface d'édition d'une région. @@ -170,6 +184,9 @@ Points GPS ~~~~~~~~~~ +Voir le dictionnaire de données concernant les `points GPS +<model.html#GeoPoint>`_ + On effectue un export des points GPS à partir d'une campagne sur une période (date de début, date de fin) encadrée par celle de la campagne @@ -207,6 +224,9 @@ Effort ~~~~~~ +Voir le dictionnaire de données concernant l' `effort +<model.html#Route>`_ + On effectue un export d'efforts à partir d'une campagne, d'une période (date de début, date de fin) encadrée par celle de la campagne et d'une sélection de strates. On peut également filtrer sur les types de parcours (LEG, TRANSIT, CIRCLE_BACK). @@ -382,6 +402,9 @@ Observation ~~~~~~~~~~~ +Voir le dictionnaire de données concernant les `observations +<model.html#Observation>`_ + On effectue un export des observations à partir d'une campagne, d'une période (date de début, date de fin) encadrée par celle de la campagne, d'une sélection de strates et d'une sélection d'espèces. On peut également filtrer sur les types de parcours (LEG, TRANSIT, CIRCLE_BACK). @@ -639,7 +662,7 @@ Export SAMMOA ------------- -L'export est possible depuis l'écran d'accueil ou la sélection d'une campagne +L'export est accessible depuis l'écran d'accueil ou la sélection d'une campagne et d'un vol est possible. L'export SAMMOA est un export de la base de données H2 ainsi que des fichiers Modified: trunk/src/site/site.xml =================================================================== --- trunk/src/site/site.xml 2012-09-27 13:55:35 UTC (rev 607) +++ trunk/src/site/site.xml 2012-09-28 11:54:24 UTC (rev 608) @@ -90,7 +90,7 @@ href="${project.url}/index.html"/> </breadcrumbs> - <menu name="Utilisateur"> + <menu name="Sammoa"> <item name="Accueil" href="index.html"/> <item name="Téléchargement" href="http://forge.codelutin.com/projects/sammoa/files"/> @@ -99,7 +99,8 @@ <item name="Historique des versions" href="changes-report.html"/> </menu> - <menu name="Développeur"> + <menu name="Documentation Technique"> + <item name="Fonctionnalités" href="functionalities.html"/> <item name="Modèle de données" href="model.html"/> <item name="GPS" href="gps.html"/> <item name="Import/Export" href="import-export.html"/>