You can subscribe to this list here.
| 2008 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(46) |
Jul
(37) |
Aug
(154) |
Sep
(140) |
Oct
(132) |
Nov
(104) |
Dec
(67) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2009 |
Jan
(113) |
Feb
(73) |
Mar
(102) |
Apr
(106) |
May
(114) |
Jun
(67) |
Jul
(116) |
Aug
(48) |
Sep
(108) |
Oct
(296) |
Nov
(56) |
Dec
(53) |
| 2010 |
Jan
(95) |
Feb
(31) |
Mar
(40) |
Apr
(12) |
May
(10) |
Jun
(27) |
Jul
(19) |
Aug
(81) |
Sep
(48) |
Oct
(45) |
Nov
(40) |
Dec
(7) |
| 2011 |
Jan
(16) |
Feb
(32) |
Mar
(55) |
Apr
(38) |
May
(24) |
Jun
(37) |
Jul
(12) |
Aug
(16) |
Sep
(97) |
Oct
(90) |
Nov
(101) |
Dec
(89) |
| 2012 |
Jan
(18) |
Feb
(2) |
Mar
(54) |
Apr
(69) |
May
(97) |
Jun
(131) |
Jul
(70) |
Aug
(48) |
Sep
(48) |
Oct
(119) |
Nov
(194) |
Dec
(60) |
| 2013 |
Jan
(73) |
Feb
(35) |
Mar
(42) |
Apr
(28) |
May
(7) |
Jun
(17) |
Jul
(27) |
Aug
(10) |
Sep
(38) |
Oct
(12) |
Nov
(4) |
Dec
(16) |
| 2014 |
Jan
(33) |
Feb
(37) |
Mar
(19) |
Apr
(3) |
May
(47) |
Jun
(26) |
Jul
(22) |
Aug
|
Sep
(10) |
Oct
(30) |
Nov
(24) |
Dec
(19) |
| 2015 |
Jan
(13) |
Feb
(16) |
Mar
(36) |
Apr
(19) |
May
(5) |
Jun
(5) |
Jul
(3) |
Aug
(11) |
Sep
(22) |
Oct
(7) |
Nov
(14) |
Dec
|
| 2016 |
Jan
|
Feb
(26) |
Mar
(13) |
Apr
(61) |
May
|
Jun
|
Jul
(4) |
Aug
|
Sep
|
Oct
(27) |
Nov
(14) |
Dec
(21) |
| 2017 |
Jan
(30) |
Feb
(4) |
Mar
(3) |
Apr
(5) |
May
(69) |
Jun
(29) |
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: <bma...@us...> - 2008-07-11 16:26:30
|
Revision: 3685
http://fudaa.svn.sourceforge.net/fudaa/?rev=3685&view=rev
Author: bmarchan
Date: 2008-07-11 09:26:37 -0700 (Fri, 11 Jul 2008)
Log Message:
-----------
Acc?\195?\168s a l'aide locale.
Modified Paths:
--------------
branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlImplementation.java
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlImplementation.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlImplementation.java 2008-07-11 16:17:25 UTC (rev 3684)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlImplementation.java 2008-07-11 16:26:37 UTC (rev 3685)
@@ -8,25 +8,30 @@
package org.fudaa.fudaa.modeleur;
import java.awt.Dimension;
+import java.awt.EventQueue;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.beans.PropertyVetoException;
import java.io.File;
import java.io.IOException;
+import java.net.URL;
import java.util.List;
+import javax.swing.Action;
import javax.swing.JComponent;
import javax.swing.JInternalFrame;
import javax.swing.JOptionPane;
import javax.swing.filechooser.FileFilter;
import org.fudaa.ctulu.CtuluExportDataInterface;
+import org.fudaa.ctulu.CtuluLib;
import org.fudaa.ctulu.CtuluLibFile;
import org.fudaa.ctulu.CtuluRunnable;
import org.fudaa.ctulu.CtuluTaskDelegate;
import org.fudaa.ctulu.ProgressionInterface;
import org.fudaa.ctulu.gui.CtuluDialogPanel;
import org.fudaa.ctulu.gui.CtuluFileChooserTestWritable;
+import org.fudaa.ctulu.gui.CtuluHelpComponent;
import org.fudaa.ctulu.gui.CtuluLibDialog;
import org.fudaa.ebli.calque.ZEbliFilleCalques;
import org.fudaa.ebli.commun.EbliActionMap;
@@ -35,6 +40,7 @@
import org.fudaa.fudaa.commun.FudaaLib;
import org.fudaa.fudaa.commun.FudaaProjectStateListener;
import org.fudaa.fudaa.commun.FudaaProjetStateInterface;
+import org.fudaa.fudaa.commun.aide.FudaaHelpPanel;
import org.fudaa.fudaa.commun.impl.FudaaCommonImplementation;
import org.fudaa.fudaa.commun.impl.FudaaGuiLib;
import org.fudaa.fudaa.commun.impl.FudaaLookPreferencesPanel;
@@ -44,6 +50,7 @@
import org.fudaa.fudaa.sig.FSigLib;
import org.fudaa.fudaa.sig.FSigProjectPersistence;
import org.fudaa.fudaa.sig.FSigResource;
+import org.fudaa.fudaa.tr.TrLauncherDefault;
import org.fudaa.fudaa.tr.common.TrProjectImportPanel;
import org.fudaa.fudaa.tr.common.TrProjectPersistence;
import org.fudaa.fudaa.tr.common.TrResource;
@@ -123,7 +130,7 @@
public MdlImplementation() {
super();
- useNewHelp_ = true;
+ useNewHelp_ = false;
}
private File chooseNewFile(boolean _saveDialog) {
@@ -237,6 +244,8 @@
create();
} else if ("IMPORT_PROJECT".equals(action)) {
importProject();
+ } else if ("AIDE_INDEX".equals(action)) {
+ displayHelp(getAideIndexUrl());
} else if (action.startsWith("TOGGLE")) {
final BuColumn c = getMainPanel().getRightColumn();
final JComponent comp = c.getToggleComponent(action);
@@ -296,6 +305,10 @@
updateActionsState();
}
+ protected String getAideIndexUrl() {
+ return getHelpDir() + "modeleur/index.html";
+ }
+
public BuPreferences getApplicationPreferences() {
return null;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2008-07-11 16:17:20
|
Revision: 3684
http://fudaa.svn.sourceforge.net/fudaa/?rev=3684&view=rev
Author: bmarchan
Date: 2008-07-11 09:17:25 -0700 (Fri, 11 Jul 2008)
Log Message:
-----------
Documentation du modeleur au format HTML.
Added Paths:
-----------
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/Modeleur_popup_html.js
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/arbrecalques.zoom69.png
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/arbrecalquesselect.jpg
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/axis.png
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/boiteaoutilsdeplacer.jpg
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/boiteaoutilssemis.jpg
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/boutondeplacer.jpg
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/boutonmodesommet.jpg
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/boutonrechercher.zoom93.png
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/cicon1.gif
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/cicon2.gif
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/cicon9.gif
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/cicon_loadindex_ani.gif
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/configure.png
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/default.css
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/export-data.png
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/exporter.zoom86.png
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/helpman_topicinit.js
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/highlight.js
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/importberges.zoom81.png
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/importerdialogue.zoom63.png
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/importprofils.zoom82.png
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/importsemis.zoom64.png
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/index.html
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/info.png
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/layer-prev-view.png
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/legend.png
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/modeleleur_demarrage.zoom63.png
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/modeleur.png
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/modeleur_common_editor_fr.htm
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/modeleur_common_layers_export_fr.htm
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/modeleur_common_layers_fr.htm
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/modeleur_common_layers_selection_find_fr.htm
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/modeleur_common_sig_fr.htm
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/modeleur_common_vue2d_edition_fr.htm
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/modeleur_content_dyn.html
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/modeleur_content_static.html
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/modeleur_first_project_fr.htm
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/modeleur_ftsearch.html
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/modeleur_howto_first_fr.htm
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/modeleur_index_fr.htm
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/modeleur_kwindex_dyn.html
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/modeleur_kwindex_static.html
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/modeleur_navigation.js
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/move.png
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/navigation.png
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/note.png
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/prepro-ed_32.png
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/restore.png
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/sauver.zoom62.png
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/selection-point.png
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/selection-poly.png
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/selectionentitepolygne.zoom80.png
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/selectionentiterecherche.zoom83.png
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/settings.js
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/sig-add-gr-panel.fr.png
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/sig-add-gr.fr.png
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/sig-add-var.fr.png
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/sig-edition.fr.png
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/sig.fr.png
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/table.png
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/tip.png
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/vue2d-edit-mass.fr.png
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/vue2d-edit-select-src.fr.png
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/vue2d-edit-src-files.fr.png
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/vue2d-edit-target.fr.png
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/vue2d-edit-zones.fr.png
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/vue2d-edition.fr.png
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/vue2doutilstableau.zoom58.png
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/vue2dselectionquelquespointsdusemis.zoom85.png
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/vue2dtableauentitesemis.zoom93.png
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/vue2dtableaupointssemis.zoom57.png
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/warning.png
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/zoom.png
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/zoom_index.js
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/zoom_pageinfo.js
branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/zoom_search.js
Added: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/Modeleur_popup_html.js
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/Modeleur_popup_html.js (rev 0)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/Modeleur_popup_html.js 2008-07-11 16:17:25 UTC (rev 3684)
@@ -0,0 +1,40 @@
+/* --- Script \xA9 2005-2007 EC Software --- */
+var ua = navigator.userAgent;
+var dom = (document.getElementById) ? true : false;
+var ie4 = (document.all && !dom) ? true : false;
+var ie5_5 = ((ua.indexOf("MSIE 5.5")>=0 || ua.indexOf("MSIE 6")>=0) && ua.indexOf("Opera")<0) ? true : false;
+var ns4 = (document.layers && !dom) ? true : false;
+var offsxy = 6;
+function hmshowPopup(e, txt, stick) {
+ var tip = '<table border="1" cellpadding="6" cellspacing="0" bgcolor="#FFFFFF" style="{border-width:1px; border-color:#000000; border-collapse:collapse;}"><tr valign=top><td>'+ txt + '<\/td><\/tr><\/table>';
+ var tooltip = atooltip();
+ e = e?e:window.event;
+ var mx = ns4 ? e.PageX : e.clientX;
+ var my = ns4 ? e.PageY : e.clientY;
+ var obj = (window.document.compatMode && window.document.compatMode == "CSS1Compat") ? window.document.documentElement : window.document.body;
+ var bodyl = (window.pageXOffset) ? window.pageXOffset : obj.scrollLeft;
+ var bodyt = (window.pageYOffset) ? window.pageYOffset : obj.scrollTop;
+ var bodyw = (window.innerWidth) ? window.innerWidth : obj.offsetWidth;
+ if (ns4) {
+ tooltip.document.write(tip);
+ tooltip.document.close();
+ if ((mx + offsxy + bodyl + tooltip.width) > bodyw) { mx = bodyw - offsxy - bodyl - tooltip.width; if (mx < 0) mx = 0; }
+ tooltip.left = mx + offsxy + bodyl;
+ tooltip.top = my + offsxy + bodyt;
+ }
+ else {
+ tooltip.innerHTML = tip;
+ if (tooltip.offsetWidth) if ((mx + offsxy + bodyl + tooltip.offsetWidth) > bodyw) { mx = bodyw - offsxy - bodyl - tooltip.offsetWidth; if (mx < 0) mx = 0; }
+ tooltip.style.left = (mx + offsxy + bodyl)+"px";
+ tooltip.style.top = (my + offsxy + bodyt)+"px";
+ }
+ with(tooltip) { ns4 ? visibility="show" : style.visibility="visible" }
+ if (stick) document.onmouseup = hmhidePopup;
+}
+function hmhidePopup() {
+ var tooltip = atooltip();
+ ns4 ? tooltip.visibility="hide" : tooltip.style.visibility="hidden";
+}
+function atooltip(){
+ return ns4 ? document.hmpopupDiv : ie4 ? document.all.hmpopupDiv : document.getElementById('hmpopupDiv')
+}
Property changes on: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/Modeleur_popup_html.js
___________________________________________________________________
Name: svn:eol-style
+ native
Added: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/arbrecalques.zoom69.png
===================================================================
(Binary files differ)
Property changes on: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/arbrecalques.zoom69.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/arbrecalquesselect.jpg
===================================================================
(Binary files differ)
Property changes on: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/arbrecalquesselect.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/axis.png
===================================================================
(Binary files differ)
Property changes on: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/axis.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/boiteaoutilsdeplacer.jpg
===================================================================
(Binary files differ)
Property changes on: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/boiteaoutilsdeplacer.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/boiteaoutilssemis.jpg
===================================================================
(Binary files differ)
Property changes on: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/boiteaoutilssemis.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/boutondeplacer.jpg
===================================================================
(Binary files differ)
Property changes on: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/boutondeplacer.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/boutonmodesommet.jpg
===================================================================
(Binary files differ)
Property changes on: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/boutonmodesommet.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/boutonrechercher.zoom93.png
===================================================================
(Binary files differ)
Property changes on: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/boutonrechercher.zoom93.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/cicon1.gif
===================================================================
(Binary files differ)
Property changes on: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/cicon1.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/cicon2.gif
===================================================================
(Binary files differ)
Property changes on: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/cicon2.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/cicon9.gif
===================================================================
(Binary files differ)
Property changes on: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/cicon9.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/cicon_loadindex_ani.gif
===================================================================
(Binary files differ)
Property changes on: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/cicon_loadindex_ani.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/configure.png
===================================================================
(Binary files differ)
Property changes on: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/configure.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/default.css
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/default.css (rev 0)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/default.css 2008-07-11 16:17:25 UTC (rev 3684)
@@ -0,0 +1,64 @@
+/* Text Styles */
+hr { color: #000000}
+body, table /* Normal */
+{
+ font-size: 10pt;
+ font-family: 'Arial';
+ font-style: normal;
+ font-weight: normal;
+ color: #000000;
+ text-decoration: none;
+}
+span.f_CodeExample /* Code Example */
+{
+ font-size: 8pt;
+ font-family: 'Courier New';
+ color: #000000;
+}
+span.f_Comment /* Comment */
+{
+}
+span.f_CourierFixed /* Courier Fixed */
+{
+ font-size: 9pt;
+ font-family: 'Courier New';
+ color: #000000;
+}
+span.f_Heading1 /* Heading1 */
+{
+ font-size: 14pt;
+ font-weight: bold;
+ color: #ffffff;
+}
+span.f_ImageCaption /* Image Caption */
+{
+ font-size: 8pt;
+ font-weight: bold;
+}
+span.f_Notes /* Notes */
+{
+}
+/* Paragraph styles */
+p /* Normal */
+{
+ text-align: left;
+ text-indent: 0px;
+ padding: 0px 0px 0px 0px;
+ margin: 0px 0px 0px 0px;
+}
+.p_CodeExample /* Code Example */
+{
+ white-space: nowrap;
+}
+.p_Comment /* Comment */
+{
+}
+.p_Heading1 /* Heading1 */
+{
+}
+.p_ImageCaption /* Image Caption */
+{
+}
+.p_Notes /* Notes */
+{
+}
Property changes on: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/default.css
___________________________________________________________________
Name: svn:eol-style
+ native
Added: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/export-data.png
===================================================================
(Binary files differ)
Property changes on: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/export-data.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/exporter.zoom86.png
===================================================================
(Binary files differ)
Property changes on: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/exporter.zoom86.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/helpman_topicinit.js
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/helpman_topicinit.js (rev 0)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/helpman_topicinit.js 2008-07-11 16:17:25 UTC (rev 3684)
@@ -0,0 +1,93 @@
+/* ---------------- Script \xA9 2006-2007 EC Software ----------------
+This script was created by Help & Manual. It is designed for use
+in combination with the output of Help & Manual and must not
+be used outside this context. http://www.helpandmanual.com
+
+Do not modify this file! It will be overwritten by Help & Manual.
+-----------------------------------------------------------------*/
+
+var topicInitScriptAvailable = true;
+var HMToggles = new Array();
+
+function HMToggleExpandAll(value)
+{
+ if (HMToggles.length != null){
+ for (i=0; i<HMToggles.length; i++){
+ HMToggleExpand(HMToggles[i], value);
+ }
+ }
+}
+
+function HMToggle()
+{
+ var op = HMToggle.arguments[0];
+ for (i=1; i<HMToggle.arguments.length; i++) {
+ var objID = HMToggle.arguments[i];
+ var obj = document.getElementById(objID);
+ switch (op) {
+ case "toggle":
+ var state = obj.getAttribute("hm.state");
+ if (state == null) { state = "0" };
+ HMToggleExpand(obj, (state != "1"));
+ break;
+
+ case "expand":
+ HMToggleExpand(obj, true);
+ break;
+
+ case "collapse":
+ HMToggleExpand(obj, false);
+ break;
+ }
+ }
+}
+
+function HMToggleExpand(obj, value)
+{
+ tagName = obj.nodeName.toLowerCase();
+ switch (tagName) {
+ case "span":
+ obj.style.display = (value ? "inline" : "none");
+ break;
+ case "table":
+ obj.style.display = (value ? "block" : "none");
+ break;
+ case "img":
+ obj.src = (value ? obj.getAttribute("hm.src1") : obj.getAttribute("hm.src0"));
+ var newTitle = (value ? obj.getAttribute("hm.title1") : obj.getAttribute("hm.title0"));
+ if (newTitle != null) { obj.title = newTitle; }
+ var newCaption = (value ? obj.getAttribute("hm.caption1") : obj.getAttribute("hm.caption0"));
+ if (newCaption != null) { obj.parentNode.parentNode.parentNode.nextSibling.firstChild.firstChild.innerHTML = newCaption; }
+ break;
+ }
+ obj.setAttribute("hm.state", value ? "1" : "0");
+}
+
+function HMInitToggle()
+{
+ if (document.getElementById) {
+ var node = document.getElementById(HMInitToggle.arguments[0]);
+ for (i=1; i<HMInitToggle.arguments.length-1; i=i+2) {
+ if (HMInitToggle.arguments[i] == "onclick") {
+ node.onclick = Function(HMInitToggle.arguments[i+1]);
+ }
+ else {
+ node.setAttribute(HMInitToggle.arguments[i], decodeURI(HMInitToggle.arguments[i+1]));
+ }
+ if (HMInitToggle.arguments[i].substring(0,6) == "hm.src") {
+ var img = new Image();
+ img.src = HMInitToggle.arguments[i+1];
+ }
+ }
+ mustExpand = window.location.search.lastIndexOf("zoom_highlight") > 0;
+ if (node.nodeName.toLowerCase() == "img") {
+ var aLink = node.parentNode;
+ if (aLink.nodeName.toLowerCase() == "a") {
+ aLink.href = "javascript:HMToggle('toggle','" + HMInitToggle.arguments[0] +"')";
+ mustExpand = false;
+ }
+ }
+ HMToggles[HMToggles.length] = node;
+ HMToggleExpand(node, ((node.getAttribute("hm.state") == "1") || mustExpand));
+ }
+}
\ No newline at end of file
Property changes on: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/helpman_topicinit.js
___________________________________________________________________
Name: svn:eol-style
+ native
Added: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/highlight.js
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/highlight.js (rev 0)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/highlight.js 2008-07-11 16:17:25 UTC (rev 3684)
@@ -0,0 +1,251 @@
+// ----------------------------------------------------------------------------
+// Zoom Search Engine 4.3 (27/6/2006)
+// Highlight & auto-scroll script
+//
+// email: zo...@wr...
+// www: http://www.wrensoft.com
+//
+// Copyright (C) Wrensoft 2006
+// ----------------------------------------------------------------------------
+// Use this script to allow your search matches to highlight and scroll to
+// the matched word on the actual web page where it was found.
+//
+// You will need to link to this JS file from each page of your site
+// which requires the "highlight/jump to matched word" feature.
+//
+// For example, you could paste the following HTML in your site's header or
+// footer:
+//
+// <style>.highlight { background: #FFFF40; }</style>
+// <script type="text/javascript" src="highlight.js"></script>
+//
+// Note: You will need to specify the correct path to "highlight.js" depending
+// on where the file is located.
+//
+// You will then need to modify the BODY tag on your page to include an "onLoad"
+// attribute, such as:
+//
+// <body onload="highlight();">
+//
+// If for some reason you can not modify the body tag of your page, an alternative
+// would be to put the following line after the </body> tag of your page:
+//
+// <script type="text/javascript">highlight();</script>
+//
+// For more information, consult the Users Guide and our support website at:
+// http://www.wrensoft.com/zoom/support
+//
+//
+// This script is licensed for use with the Zoom Search Engine. Original
+// development by Brett Alcock, VBasys Limited. To licence other applications
+// email hig...@vb... with the subject "license".
+
+var CatchJSErrors = true;
+
+function catcherror() { return true; }
+if (CatchJSErrors)
+{
+ window.onerror = catcherror;
+}
+
+function QueryString(key)
+{
+ var value = null;
+ for (var i=0;i<QueryString.keys.length;i++)
+ {
+ if (QueryString.keys[i]==key)
+ {
+ value = QueryString.values[i];
+ break;
+ }
+ }
+ return value;
+}
+
+function QueryString_Parse()
+{
+ var query = window.location.search.substring(1);
+ var pairs = query.split("&");
+
+ for (var i=0;i<pairs.length;i++)
+ {
+ var pos = pairs[i].indexOf('=');
+ if (pos >= 0)
+ {
+ var argname = pairs[i].substring(0,pos);
+ var value = pairs[i].substring(pos+1);
+ QueryString.keys[QueryString.keys.length] = argname;
+ QueryString.values[QueryString.values.length] = value;
+ }
+ }
+}
+
+QueryString.keys = new Array();
+QueryString.values = new Array();
+
+QueryString_Parse();
+
+function getElement(id)
+{
+ if (document.getElementById)
+ return(document.getElementById(id));
+ else if (document.all)
+ return(document.all[id]);
+}
+
+function findPosY(obj)
+{
+ var curtop = 0;
+ if (obj.offsetParent)
+ {
+ while (obj.offsetParent)
+ {
+ curtop += obj.offsetTop
+ obj = obj.offsetParent;
+ }
+ }
+ else if (obj.y)
+ curtop += obj.y;
+ return curtop;
+}
+
+
+// regular expression version
+function SearchHiLite(text)
+{
+ var SearchAsSubstring = 0;
+ var hl;
+
+ hl = QueryString("zoom_highlight");
+ if (hl == "" || hl == null)
+ {
+ hl = QueryString("zoom_highlightsub");
+ if (hl == "" || hl == null)
+ return false;
+ else
+ SearchAsSubstring = 1;
+ }
+ if ((document.charset && document.charset == "utf-8") ||
+ (document.characterSet && document.characterSet == "UTF-8"))
+ hl = decodeURIComponent(hl);
+ else
+ hl = unescape(hl);
+ hl = hl.toLowerCase();
+
+ // create array of terms
+ //var term = hl.split("+");
+ var re = /\"(.*?)\"|[^\\+\"]+/g;
+ var term = hl.match(re);
+
+ // convert terms in regexp patterns
+ for (var i=0;i<term.length;i++) // take each term in turn
+ {
+ if(term[i] != "")
+ {
+ if (term[i].indexOf("\"") != -1)
+ {
+ // contains double quotes
+ term[i]=term[i].replace(/\"/g,"");
+ term[i]=term[i].replace(/\+/g," ");
+ }
+ else
+ {
+ term[i]=term[i].replace(/\+/g,"");
+ }
+
+ if (term[i].indexOf("*") != -1 || term[i].indexOf("?") != -1)
+ {
+ // convert wildcard pattern to regexp
+ term[i] = term[i].replace(/\\/g, " ");
+ term[i] = term[i].replace(/\^/g, " ");
+
+ //term[i] = term[i].replace(/\+/g, " "); // split on this so no point in looking
+
+ term[i] = term[i].replace(/\#/g, " ");
+ term[i] = term[i].replace(/\$/g, " ");
+ term[i] = term[i].replace(/\./g, " ");
+
+ // check if search term only contains only wildcards
+ // if so, we will not attempt to highlight this term
+ var wildcards = /\w/;
+ if (wildcards.test(term[i]))
+ {
+ term[i] = term[i].replace(/\*/g, "[^\\s]*");
+ term[i] = term[i].replace(/\?/g, "[^\\s]"); // insist upon one non whitespace
+ }
+ else
+ term[i] = "";
+ }
+
+ if (term[i] != "")
+ {
+ if (SearchAsSubstring == 0)
+ {
+ term[i] = "(>[\\s]*|>[^<]+[\\b\\W])("+term[i]+")(<|[\\b\\W][^>]*<)";
+ }
+ else
+ {
+ // if term leads with wildcard then allow it to match preceeding text in word
+ var strWB="";
+ if(term[i].substr(0,7)=="[^\\s]*") strWB="\\b";
+ term[i] = "(>|>[^<]+)"+strWB+"("+term[i]+")([^>]*<)";
+ }
+ }
+ }
+ }
+
+ text=text.replace(/&/ig, '&');
+ text=text.replace(/ /ig, '');
+
+ for (var i=0;i<term.length;i++) // take each term in turn
+ {
+ if(term[i] != "")
+ {
+ // we need a loop for the main search to catch all between ><
+ // and we add before each found to ignore those done etc
+ // todo: develop reliable single pass regexp and dispose of loop
+ var l = 0;
+ re = new RegExp(term[i], "gi");
+ var count = 0; // just incase
+ text = ">" + text + "<"; // temporary tag marks
+ do
+ {
+ l=text.length;
+ text=text.replace(re, '$1<span style="background:#FFFF40;" class="highlight" id="highlight" name="highlight">$2</span id="highlight">$3');
+ count++;
+ }
+ //while(re.lastIndex>0 && count<100); lastIndex not set properly under netscape
+ while(l!=text.length && count<100);
+ text = text.substring(1, text.length-1); // remove temporary tags
+ }
+ }
+ text = text.replace(eval("//g"), '');
+ text = text.replace(eval("//g"), ' ');
+
+ return(text);
+}
+
+function jumpHL()
+{
+ var d=getElement("highlight");
+ if(d)
+ {
+ var y=findPosY(d);
+ // if element near top of page
+ if(y < 100)
+ window.scrollTo(0,0); // go to top of page
+ else
+ window.scrollTo(0,y-50); // show space of 50 above
+ }
+}
+
+function highlight()
+{
+ var x = document.body;
+ if (x)
+ {
+ var strHTML=SearchHiLite(x.innerHTML);
+ if (strHTML!=false) x.innerHTML = strHTML;
+ jumpHL();
+ }
+}
Property changes on: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/highlight.js
___________________________________________________________________
Name: svn:eol-style
+ native
Added: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/importberges.zoom81.png
===================================================================
(Binary files differ)
Property changes on: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/importberges.zoom81.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/importerdialogue.zoom63.png
===================================================================
(Binary files differ)
Property changes on: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/importerdialogue.zoom63.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/importprofils.zoom82.png
===================================================================
(Binary files differ)
Property changes on: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/importprofils.zoom82.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/importsemis.zoom64.png
===================================================================
(Binary files differ)
Property changes on: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/importsemis.zoom64.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/index.html
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/index.html (rev 0)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/index.html 2008-07-11 16:17:25 UTC (rev 3684)
@@ -0,0 +1,33 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
+ "http://www.w3.org/TR/html4/frameset.dtd">
+<html>
+<!-- saved from url=(0029)http://www.helpandmanual.com/ -->
+<head>
+<title>Fudaa Modeleur</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<script type="text/javascript" src="modeleur_navigation.js"></script>
+<script type="text/javascript">
+<!--
+var defaulttopic="modeleur_index_fr.htm";
+if (top.location.href.lastIndexOf("?") > 0) defaulttopic=top.location.href.substring(top.location.href.lastIndexOf("?")+1,top.location.href.length).replace(/:/g,"");
+document.write('<frameset cols="30%,*" frameborder="1" framespacing="1">');
+if (document.getElementById) {
+ document.write('<frame name="hmnavigation" src="modeleur_content_dyn.html" title="Navigation frame">'); }
+else {
+ document.write('<frame name="hmnavigation" src="modeleur_content_static.html" title="Navigation frame">'); }
+document.write('<frame name="hmcontent" src="' + defaulttopic + '" title="content frame">');
+document.write('</frameset>');
+//-->
+</script>
+</head>
+<noscript>
+ <frameset cols="30%,*" frameborder="1" framespacing="1">
+ <frame name="hmnavigation" src="modeleur_content_static.html" title="Navigation frame">
+ <frame name="hmcontent" src="modeleur_index_fr.htm" title="Content frame">
+ <noframes>
+ This page requires frames<br><a href="modeleur_content_static.html">Click here to view the table of contents without frames</a>
+ </noframes>
+ </frameset>
+</noscript>
+</html>
+
Property changes on: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/index.html
___________________________________________________________________
Name: svn:eol-style
+ native
Added: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/info.png
===================================================================
(Binary files differ)
Property changes on: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/info.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/layer-prev-view.png
===================================================================
(Binary files differ)
Property changes on: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/layer-prev-view.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/legend.png
===================================================================
(Binary files differ)
Property changes on: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/legend.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/modeleleur_demarrage.zoom63.png
===================================================================
(Binary files differ)
Property changes on: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/modeleleur_demarrage.zoom63.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/modeleur.png
===================================================================
(Binary files differ)
Property changes on: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/modeleur.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/modeleur_common_editor_fr.htm
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/modeleur_common_editor_fr.htm (rev 0)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/modeleur_common_editor_fr.htm 2008-07-11 16:17:25 UTC (rev 3684)
@@ -0,0 +1,107 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<!-- saved from url=(0029)http://www.helpandmanual.com/ -->
+<head><script type="text/javascript" src="helpman_topicinit.js"></script>
+<!-- Redirect browser to frame page if page is not in the content frame. -->
+<script type="text/javascript">
+<!--
+if (top.location.search.lastIndexOf("toc=0")<=0) {
+ if (top.frames.length==0) { top.location.href="index.html?modeleur_common_editor_fr.htm"; }
+ else { parent.quicksync('a1.4'); }
+}
+//-->
+</script>
+<script type="text/javascript" src="highlight.js"></script>
+ <title>Editeur de projet</title>
+ <meta name="generator" content="Help & Manual" />
+ <meta name="keywords" content="" />
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <meta http-equiv="Content-Style-Type" content="text/css" />
+ <link type="text/css" href="default.css" rel="stylesheet" />
+</head>
+<body style="margin: 0px 0px 0px 0px; background: #FFFFFF;" onload="highlight();">
+<div id="hmpopupDiv" style="visibility:hidden; position:absolute; z-index:1000; "></div>
+
+
+<table width="100%" border="0" cellspacing="0" cellpadding="5" bgcolor="#649CCC">
+ <tr valign="middle">
+ <td align="left">
+ <p class="p_Heading1"><span class="f_Heading1">Editeur de projet</span></p>
+
+ </td>
+ <td align="right">
+ <span style="font-size: 9pt">
+ <a href="modeleur_index_fr.htm">Top</a>
+ <a href="modeleur_first_project_fr.htm">Previous</a>
+ <a href="modeleur_common_layers_fr.htm">Next</a>
+ </span>
+ </td>
+ </tr>
+</table>
+
+
+<!-- Placeholder for topic body. -->
+<table width="100%" border="0" cellspacing="0" cellpadding="5"><tr valign="top"><td align="left">
+<p style="text-align: justify; margin: 2px 5px 0px 15px;"><span style="font-size: 12pt; font-family: 'Times New Roman'; font-weight: bold; color: #000000;">Table des matières</span></p>
+<p style="text-indent: -13px; margin: 0px 0px 0px 37px;"><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;"><a href="modeleur_common_editor_fr.htm#n10503">1. Ouverture d'un projet</a></span></p>
+<p style="text-indent: -13px; margin: 0px 0px 0px 37px;"><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;"><a href="modeleur_common_editor_fr.htm#n1051d">2. Créer un projet</a></span></p>
+<p style="text-indent: -13px; margin: 0px 0px 0px 37px;"><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;"><a href="modeleur_common_editor_fr.htm#n1055a">3. Enregistrer un projet</a></span></p>
+<p style="text-indent: -13px; margin: 0px 0px 0px 37px;"><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;"><a href="modeleur_common_editor_fr.htm#n10571">4. Fermer un projet</a></span></p>
+<p style="text-indent: -13px; margin: 0px 0px 0px 37px;"><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;"><a href="modeleur_common_editor_fr.htm#n1057a">5. Imprimer</a></span></p>
+<p style="text-indent: -13px; margin: 0px 0px 0px 37px;"><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;"><a href="modeleur_common_editor_fr.htm#n1058b">6. Importer</a></span></p>
+<p style="text-indent: -13px; margin: 0px 0px 0px 37px;"><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;"><a href="modeleur_common_editor_fr.htm#n1059a">7. Exporter</a></span></p>
+<p style="text-indent: -13px; margin: 0px 0px 0px 37px;"><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;"><a href="modeleur_common_editor_fr.htm#n105ae">8. Défaire/Refaire une action</a></span></p>
+<p style="text-indent: -13px; margin: 0px 0px 0px 37px;"><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;"><a href="modeleur_common_editor_fr.htm#n105b3">9. Les préférences</a></span></p>
+<p style="text-indent: -13px; margin: 0px 0px 0px 37px;"><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;"><a href="modeleur_common_editor_fr.htm#n105d8">10. Le menu fenêtre</a></span></p>
+<p style="text-indent: -13px; margin: 0px 0px 0px 37px;"><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;"><a href="modeleur_common_editor_fr.htm#n105e7">11. Aide/mise à jour du logiciel</a></span></p>
+<p style="text-indent: -13px; margin: 0px 0px 0px 37px;"><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;"><a href="modeleur_common_editor_fr.htm#n105ec">12. Visualiser les traces (fichier journal)</a></span></p>
+<p style="text-align: justify; margin: 2px 5px 0px 15px;"><span style="font-size: 12pt; font-family: 'Times New Roman'; font-weight: bold; color: #000000;">Résumé</span></p>
+<p style="text-align: justify; margin: 2px 5px 2px 15px;"><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;">Présentation général de l'éditeur de projet hydraulique.</span></p>
+<p style="text-align: justify; margin: 2px 5px 0px 15px;"><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;">Pour utiliser cette application, utiliser l'exécutable editor: </span><img src="prepro-ed_32.png" width="32" height="32" border="0" alt="prepro-ed_32" style="margin:1px"><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;"> .</span></p>
+<p style="background: #e5e4d9; margin: 20px 0px 19px 5px;"><a name="n10503"></a><span style="font-size: 18pt; font-family: 'Times New Roman'; font-weight: bold; color: #000000;">1. Ouverture d'un projet</span></p>
+<p style="text-align: justify; margin: 2px 5px 0px 15px;"><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;">Utiliser le menu </span><span style="font-size: 12pt; font-family: 'Courier New'; color: #000000;">Fichier>Ouvrir</span><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;"> et sélectionner un fichier projet. Les fichiers projets ont pour extension .mod.zip.</span></p>
+<p style="background: #e5e4d9; margin: 20px 0px 19px 5px;"><a name="n1051d"></a><span style="font-size: 18pt; font-family: 'Times New Roman'; font-weight: bold; color: #000000;">2. Créer un projet</span></p>
+<p style="text-align: justify; margin: 2px 5px 0px 15px;"><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;">Utiliser le </span><span style="font-size: 12pt; font-family: 'Courier New'; color: #000000;">menu Fichier>Créer</span><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;">. La fenêtre Vue 2D apparaît, avec l'arbre des calques à gauche.</span></p>
+<p style="background: #e5e4d9; margin: 20px 0px 19px 5px;"><a name="n1055a"></a><span style="font-size: 18pt; font-family: 'Times New Roman'; font-weight: bold; color: #000000;">3. Enregistrer un projet</span></p>
+<p style="text-align: justify; margin: 2px 5px 0px 15px;"><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;">Utiliser le menu </span><span style="font-size: 12pt; font-family: 'Courier New'; color: #000000;">Fichier>Enregistrer</span><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;"> ou le raccourci </span><span style="font-size: 12pt; font-family: 'Courier New'; color: #000000;">Ctrl+S</span><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;">.</span></p>
+<p style="text-align: justify; margin: 2px 5px 2px 15px;"><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;">Il est possible d'enregistrer le projet sous un autre nom en utilisant l'action </span><span style="font-size: 12pt; font-family: 'Courier New'; color: #000000;">Enregistrer sous</span><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;">: le nouveau fichier devient le projet courant.</span></p>
+<p style="background: #e5e4d9; margin: 20px 0px 19px 5px;"><a name="n10571"></a><span style="font-size: 18pt; font-family: 'Times New Roman'; font-weight: bold; color: #000000;">4. Fermer un projet</span></p>
+<p style="text-align: justify; margin: 2px 5px 2px 15px;"><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;">Utiliser le menu </span><span style="font-size: 12pt; font-family: 'Courier New'; color: #000000;">Fichier>Fermer</span><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;">. Si le projet en cours est modifié, une sauvegarde sera proposée.</span></p>
+<p style="background: #e5e4d9; margin: 20px 0px 19px 5px;"><a name="n1057a"></a><span style="font-size: 18pt; font-family: 'Times New Roman'; font-weight: bold; color: #000000;">5. Imprimer</span></p>
+<p style="text-align: justify; margin: 2px 5px 0px 15px;"><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;">Le menu Fichier contient toutes les actions nécessaires à l'impression:</span></p>
+<div style="text-align: justify; text-indent: 0px; padding: 0px 0px 0px 0px; margin: 0px 0px 0px 24px;"><table border="0" cellpadding="0" cellspacing="0" style="line-height: normal;"><tr style="vertical-align:baseline" valign="baseline"><td width="18"><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;">1.</span></td><td><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;">Mise en page</span></td></tr></table></div><div style="text-align: justify; text-indent: 0px; padding: 0px 0px 0px 0px; margin: 0px 0px 0px 24px;"><table border="0" cellpadding="0" cellspacing="0" style="line-height: normal;"><tr style="vertical-align:baseline" valign="baseline"><td width="18"><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;">2.</span></td><td><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;">Prévisualisation</span></td></tr></table></div><div style="text-align: justify; text-indent: 0px; padding: 0px 0px 0px 0px; margin: 0px 0px 0px 24px;"><table border="0" cellpadding="0" cellspacing="0" style="line-height: normal;"><tr style="vertical-align:baseline" valign="baseline"><td width="18"><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;">3.</span></td><td><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;">Impression</span></td></tr></table></div><p style="background: #e5e4d9; margin: 20px 0px 19px 5px;"><a name="n1058b"></a><span style="font-size: 18pt; font-family: 'Times New Roman'; font-weight: bold; color: #000000;">6. Importer</span></p>
+<p style="text-align: justify; margin: 2px 5px 0px 15px;"><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;">En utilisant le menu </span><span style="font-size: 12pt; font-family: 'Courier New'; color: #000000;">Fichier>Importer</span><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;">, il est possible d'importer des données géographiques dans les calques (voir le document </span><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;"><a href="modeleur_common_sig_fr.htm">Gestion des données géographiques (Commun)</a></span><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;">).</span></p>
+<p style="background: #e5e4d9; margin: 20px 0px 19px 5px;"><a name="n1059a"></a><span style="font-size: 18pt; font-family: 'Times New Roman'; font-weight: bold; color: #000000;">7. Exporter</span></p>
+<p style="text-align: justify; margin: 2px 5px 0px 15px;"><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;">Cette action est proposées par la </span><span style="font-size: 12pt; font-family: 'Courier New'; color: #000000;">Vue 2D</span><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;"> . Voir le document </span><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;"><a href="modeleur_common_layers_export_fr.htm">Exporter les données de la Vue 2D (Commun)</a></span></p>
+<p style="background: #e5e4d9; margin: 20px 0px 19px 5px;"><a name="n105ae"></a><span style="font-size: 18pt; font-family: 'Times New Roman'; font-weight: bold; color: #000000;">8. Défaire/Refaire une action</span></p>
+<p style="text-align: justify; margin: 2px 5px 2px 15px;"><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;">Les actions modifiant les données peuvent être annulées (défaire). Pour cela, utiliser le menu Edition et les actions Défaire/Refaire ou les boutons de la barre d'outils</span></p>
+<p style="background: #e5e4d9; margin: 20px 0px 19px 5px;"><a name="n105b3"></a><span style="font-size: 18pt; font-family: 'Times New Roman'; font-weight: bold; color: #000000;">9. Les préférences</span></p>
+<p style="text-align: justify; margin: 2px 5px 0px 15px;"><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;">Le panneau de préférences : menu Edition>Préférences. Ce panneau comporte plusieurs onglets:</span></p>
+<p style="margin: 15px 0px 5px 15px;"><span style="font-size: 14pt; font-family: 'Times New Roman'; font-weight: bold; color: #000000;">Système</span></p>
+<p style="text-align: justify; margin: 2px 5px 0px 15px;"><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;">Permet d'afficher ou non la bannière (splash screen) à l'ouverture de l'application.</span></p>
+<p style="text-align: justify; margin: 2px 5px 0px 15px;"><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;">Permet de (dés)activer la demande de confirmation lors de la sortie d'une application</span></p>
+<p style="text-align: justify; margin: 2px 5px 2px 15px;"><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;">Ce onglet permet également de remplir les informations sur l'utilisateur.</span></p>
+<p style="margin: 15px 0px 5px 15px;"><span style="font-size: 14pt; font-family: 'Times New Roman'; font-weight: bold; color: #000000;">Accessibilité</span></p>
+<p style="text-align: justify; margin: 2px 5px 2px 15px;"><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;">Choisir la langue de l'interface.</span></p>
+<p style="margin: 15px 0px 5px 15px;"><span style="font-size: 14pt; font-family: 'Times New Roman'; font-weight: bold; color: #000000;">Visuel</span></p>
+<p style="text-align: justify; margin: 2px 5px 0px 15px;"><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;">Permet de modifier l'aspect de l'application et les couleurs de fond.</span></p>
+<p style="text-align: justify; margin: 2px 5px 2px 15px;"><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;">L'affichage des colonnes, des textes des boutons, l'anti-crénelage, ... sont configurés dans la partie </span><span style="font-size: 12pt; font-family: 'Courier New'; color: #000000;">Bureau</span><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;">.</span></p>
+<p style="margin: 15px 0px 5px 15px;"><span style="font-size: 14pt; font-family: 'Times New Roman'; font-weight: bold; color: #000000;">Composants</span></p>
+<p style="text-align: justify; margin: 2px 5px 0px 15px;"><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;">Permet de définir le Navigateur web à utiliser</span></p>
+<p style="margin: 15px 0px 5px 15px;"><span style="font-size: 14pt; font-family: 'Times New Roman'; font-weight: bold; color: #000000;">Mise en page</span></p>
+<p style="text-align: justify; margin: 2px 5px 0px 15px;"><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;">Permet de définir la mise en page pour l'impression.</span></p>
+<p style="background: #e5e4d9; margin: 20px 0px 19px 5px;"><a name="n105d8"></a><span style="font-size: 18pt; font-family: 'Times New Roman'; font-weight: bold; color: #000000;">10. Le menu fenêtre</span></p>
+<p style="text-align: justify; margin: 2px 5px 0px 15px;"><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;">Permet de gérer les fenêtres internes et de permuter la disposition des fenêtres. Il permet également d'afficher/masquer la barre d'outil spécifiques au modeleur et la barre d'état. </span></p>
+<p style="margin: 15px 0px 5px 15px;"><a name="n105dd"></a><span style="font-size: 14pt; font-family: 'Times New Roman'; font-weight: bold; color: #000000;">Aligner les fenêtres internes</span></p>
+<p style="text-align: justify; margin: 2px 5px 2px 15px;"><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;">Les actions Cascade et Mosaïque permettent d'arranger la disposition des fenêtres internes.</span></p>
+<p style="background: #e5e4d9; margin: 20px 0px 19px 5px;"><a name="n105e7"></a><span style="font-size: 18pt; font-family: 'Times New Roman'; font-weight: bold; color: #000000;">11. Aide/mise à jour du logiciel</span></p>
+<p style="text-align: justify; margin: 2px 5px 2px 15px;"><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;">Ces actions sont disponibles à partir du menu aide.</span></p>
+<p style="background: #e5e4d9; margin: 20px 0px 19px 5px;"><a name="n105ec"></a><span style="font-size: 18pt; font-family: 'Times New Roman'; font-weight: bold; color: #000000;">12. Visualiser les traces (fichier journal)????</span></p>
+<p style="text-align: justify; margin: 2px 5px 0px 15px;"><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;">Les messages généré par l'éditeur sont fournis dans un fichier journal. Ces messages sont utiles pour connaître quelles données ont été modifiées par l'utilisateur et pour découvrir des bogues.</span></p>
+<p style="text-align: justify; margin: 2px 5px 0px 15px;"><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;">Pour suivre ces messages, utiliser la commande Edition>Console: une console affichera en temps réel ces messages.</span></p>
+<p style="text-align: justify; margin: 2px 5px 2px 15px;"><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;">Si l'éditeur a un comportement anormal, vous pouvez vérifier les messages. Les messages du style </span><span style="font-size: 12pt; font-family: 'Courier New'; color: #000000;">Exception at</span><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;"> indiquent qu'une erreur est survenue. Il est recommandé de notifier ce bogue en joignant le fichier </span><span style="font-family: 'Courier New'; color: #000000;">ts.log</span><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;">. Ce fichier est créé dans le répertoire d'installation du préprocesseur.</span></p>
+
+</td></tr></table>
+
+</body>
+</html>
Property changes on: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/modeleur_common_editor_fr.htm
___________________________________________________________________
Name: svn:eol-style
+ native
Added: branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/modeleur_common_layers_export_fr.htm
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/modeleur_common_layers_export_fr.htm (rev 0)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/aide/src/modeleur/modeleur_common_layers_export_fr.htm 2008-07-11 16:17:25 UTC (rev 3684)
@@ -0,0 +1,123 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<!-- saved from url=(0029)http://www.helpandmanual.com/ -->
+<head><script type="text/javascript" src="helpman_topicinit.js"></script>
+<!-- Redirect browser to frame page if page is not in the content frame. -->
+<script type="text/javascript">
+<!--
+if (top.location.search.lastIndexOf("toc=0")<=0) {
+ if (top.frames.length==0) { top.location.href="index.html?modeleur_common_layers_export_fr.htm"; }
+ else { parent.quicksync('a1.9'); }
+}
+//-->
+</script>
+<script type="text/javascript" src="highlight.js"></script>
+ <title>Exporter les données de la Vue 2D</title>
+ <meta name="generator" content="Help & Manual" />
+ <meta name="keywords" content="" />
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <meta http-equiv="Content-Style-Type" content="text/css" />
+ <link type="text/css" href="default.css" rel="stylesheet" />
+</head>
+<body style="margin: 0px 0px 0px 0px; background: #FFFFFF;" onload="highlight();">
+<div id="hmpopupDiv" style="visibility:hidden; position:absolute; z-index:1000; "></div>
+
+
+<table width="100%" border="0" cellspacing="0" cellpadding="5" bgcolor="#649CCC">
+ <tr valign="middle">
+ <td align="left">
+ <p class="p_Heading1"><span class="f_Heading1">Exporter les données de la Vue 2D</span></p>
+
+ </td>
+ <td align="right">
+ <span style="font-size: 9pt">
+ <a href="modeleur_index_fr.htm">Top</a>
+ <a href="modeleur_common_vue2d_edition_fr.htm">Previous</a>
+
+ </span>
+ </td>
+ </tr>
+</table>
+
+
+<!-- Placeholder for topic body. -->
+<table width="100%" border="0" cellspacing="0" cellpadding="5"><tr valign="top"><td align="left">
+<p style="text-align: justify; margin: 2px 5px 0px 15px;"><span style="font-size: 12pt; font-family: 'Times New Roman'; font-weight: bold; color: #000000;">Table des matières</span></p>
+<div style="text-align: left; text-indent: 0px; padding: 0px 0px 0px 0px; margin: 0px 0px 0px 24px;"><table border="0" cellpadding="0" cellspacing="0" style="line-height: normal;"><tr style="vertical-align:baseline" valign="baseline"><td width="13"><span style="font-size: 12pt; font-family: 'Arial Unicode MS', 'Lucida Sans Unicode', 'Arial'; color: #000000;">▪</span></td><td><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;"><a href="modeleur_common_layers_export_fr.htm#n1145c">1. Exporter les données du tableau</a></span></td></tr></table></div><div style="text-align: left; text-indent: 0px; padding: 0px 0px 0px 0px; margin: 0px 0px 0px 24px;"><table border="0" cellpadding="0" cellspacing="0" style="line-height: normal;"><tr style="vertical-align:baseline" valign="baseline"><td width="13"><span style="font-size: 12pt; font-family: 'Arial Unicode MS', 'Lucida Sans Unicode', 'Arial'; color: #000000;">▪</span></td><td><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;"><a href="modeleur_common_layers_export_fr.htm#sect-common-layers-export">2. Exporter vers les mailleurs</a></span></td></tr></table></div><div style="text-align: left; text-indent: 0px; padding: 0px 0px 0px 0px; margin: 0px 0px 0px 24px;"><table border="0" cellpadding="0" cellspacing="0" style="line-height: normal;"><tr style="vertical-align:baseline" valign="baseline"><td width="13"><span style="font-size: 12pt; font-family: 'Arial Unicode MS', 'Lucida Sans Unicode', 'Arial'; color: #000000;">▪</span></td><td><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;"><a href="modeleur_common_layers_export_fr.htm#n114e4">3. Comment exporter les données</a></span></td></tr></table></div><p style="text-align: justify; margin: 2px 5px 0px 15px;"><span style="font-size: 12pt; font-family: 'Times New Roman'; font-weight: bold; color: #000000;">Résumé</span></p>
+<p style="text-align: justify; margin: 2px 5px 2px 15px;"><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;">Ce document décrit comment exporter les données de la Vue 2D vers un format texte, Excel, SIG ou de maillage. Il est également possible de filtrer les données avant l'exportation.</span></p>
+<p style="background: #e5e4d9; margin: 20px 0px 19px 5px;"><a name="n1145c"></a><span style="font-size: 18pt; font-family: 'Times New Roman'; font-weight: bold; color: #000000;">1. Exporter les données du tableau</span></p>
+<p style="text-align: justify; margin: 2px 5px 0px 15px;"><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;">Le tableau des valeurs doit être activé depuis le bouton </span><img src="table.png" width="22" height="22" border="0" alt="table" style="margin:1px"><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;"> . Les colonnes peuvent être déplacées et le contenu peut être trié selon une colonne.</span></p>
+<p style="text-align: justify; margin: 2px 5px 0px 15px;"><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;">Les valeurs de ce tableau peuvent être copiées dans le presse-papier: utiliser le menu </span><span style="font-size: 12pt; font-family: 'Courier New'; color: #000000;">Export>copier</span><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;"> ou le raccourci </span><span style="font-size: 12pt; font-family: 'Courier New'; color: #000000;">Ctrl+C</span><span style="font-size: 12pt; font-family: 'Times New Roman'; color: #000000;"> .</span></p>
+<div style="text-align: left; text-indent: 0px; padding: 0px 0px 0px 0px; margin: 10px 48px 0px 51px;"><table cellspacing="0" cellpadding="1" border="0" style="border: none; border-spacing:0px; border-collapse: collapse;">
+<tr style="text-align:left;vertical-align:top;">
+<td valign="middle" style="border: solid 1px #000000;"><div style="text-align: left; text-indent: 0px; padding: 0px 0px 0px 0px; margin: 0px 0px 0px 0px;"><table cellspacing="0" cellpadding="1" border="0"...
[truncated message content] |
|
From: <bma...@us...> - 2008-07-10 07:50:29
|
Revision: 3683
http://fudaa.svn.sourceforge.net/fudaa/?rev=3683&view=rev
Author: bmarchan
Date: 2008-07-10 00:50:38 -0700 (Thu, 10 Jul 2008)
Log Message:
-----------
Restitution de fichiers sur imports am?\195?\169lior?\195?\169e.
Modified Paths:
--------------
branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlWizardImport.java
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlWizardImport.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlWizardImport.java 2008-07-10 07:47:45 UTC (rev 3682)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlWizardImport.java 2008-07-10 07:50:38 UTC (rev 3683)
@@ -81,17 +81,16 @@
@Override
protected void importData(ProgressionInterface _prog) {
- final GISAttributeInterface[] attChosen = new GISAttributeInterface[]{GISAttributeConstants.BATHY, GISAttributeConstants.TITRE};
- data_.preload(attChosen, _prog);
final CtuluCommandComposite cmp = new CtuluCommandComposite();
// Calque des semis de points.
if (selectedLayer_ instanceof MdlLayer2dMultiPoint) {
final GISZoneCollectionMultiPoint col = (GISZoneCollectionMultiPoint)((MdlModel2dMultiPoint)selectedLayer_.modeleDonnees()).getGeomData();
+ final GISAttributeInterface[] attChosen=col.getAttributes();
final GISDataModel[] pts = data_.getPoints();
final int nb = pts.length;
for (int i = 0; i < nb; i++) {
- final GISDataModel model = new GISDataModelPointMultiPointAdapter(pts[i]);
+ final GISDataModel model = GISDataModelFilterAdapter.buildAdapter(new GISDataModelPointMultiPointAdapter(pts[i]),attChosen);
col.addAll(model, cmp, true);
}
}
@@ -99,6 +98,7 @@
// Les autres calques.
else if (selectedLayer_ instanceof MdlLayer2dLine) {
final GISZoneCollectionLigneBrisee col = (GISZoneCollectionLigneBrisee)((MdlModel2dLine)selectedLayer_.modeleDonnees()).getGeomData();
+ final GISAttributeInterface[] attChosen=col.getAttributes();
GISDataModel[] lines = data_.getPolylignes();
final int nb=lines.length;
for (int i=0; i<nb; i++) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2008-07-10 07:47:36
|
Revision: 3682
http://fudaa.svn.sourceforge.net/fudaa/?rev=3682&view=rev
Author: bmarchan
Date: 2008-07-10 00:47:45 -0700 (Thu, 10 Jul 2008)
Log Message:
-----------
D?\195?\169placement g?\195?\169om?\195?\169trie vers un nouveau calque cible : les attributs sont sauvegard?\195?\169s.
Modified Paths:
--------------
branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlSceneEditor.java
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlSceneEditor.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlSceneEditor.java 2008-07-10 07:46:55 UTC (rev 3681)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlSceneEditor.java 2008-07-10 07:47:45 UTC (rev 3682)
@@ -12,9 +12,11 @@
import org.fudaa.ctulu.gis.GISGeometryFactory;
import org.fudaa.ctulu.gis.GISMultiPoint;
import org.fudaa.ctulu.gis.GISPolyligne;
+import org.fudaa.ctulu.gis.GISZoneCollection;
import org.fudaa.ctulu.gui.CtuluDialogPanel;
import org.fudaa.ebli.calque.ZCalqueAffichageDonneesInterface;
import org.fudaa.ebli.calque.ZModeleDonnees;
+import org.fudaa.ebli.calque.ZModeleGeom;
import org.fudaa.ebli.calque.ZScene;
import org.fudaa.ebli.calque.edition.ZCalqueEditable;
import org.fudaa.ebli.calque.edition.ZCalqueMultiPointEditable;
@@ -23,6 +25,7 @@
import org.fudaa.ebli.calque.edition.ZSceneEditor;
import org.fudaa.ebli.geometrie.GrPoint;
import org.fudaa.ebli.geometrie.GrPolyligne;
+import org.fudaa.fudaa.commun.FudaaLib;
import org.fudaa.fudaa.commun.impl.Fudaa;
import org.fudaa.fudaa.modeleur.layer.MdlLayer2dCloud;
import org.fudaa.fudaa.modeleur.layer.MdlModel2dCloud;
@@ -62,7 +65,7 @@
if (pnInterpolation_==null)
pnInterpolation_=new MdlInterpolationPanel();
- if (pnInterpolation_.afficheModaleOk(pn_.getFrame(), "Interpolation entre 2 sommets")) {
+ if (pnInterpolation_.afficheModaleOk(pn_.getFrame(), FudaaLib.getS("Interpolation entre 2 sommets"))) {
int[] idxGeom=getScene().getLayerSelectionMulti().getIdxSelected();
Coordinate[] coords=new Coordinate[2];
@@ -109,7 +112,8 @@
* D\xE9place les g\xE9om\xE9tries s\xE9lectionn\xE9es dans le calque cible.
*/
public void moveInLayerSelectedGeometries() {
- ZModeleDonnees mdld=((ZCalqueAffichageDonneesInterface)getScene().getCalqueActif()).modeleDonnees();
+ ZModeleGeom mdldest=(ZModeleGeom)((ZCalqueAffichageDonneesInterface)getScene().getCalqueActif()).modeleDonnees();
+ GISZoneCollection coldest=mdldest.getGeomData();
int[] idxGeom=getScene().getLayerSelection().getSelectedIndex();
Geometry[] geoms=new Geometry[idxGeom.length];
@@ -120,31 +124,39 @@
final CtuluCommandComposite cmp = new CtuluCommandComposite();
// Controle qu'une bloc n'est pas constitu\xE9 que d'un point => Message d'erreur.
- if (mdld instanceof MdlModel2dLine) {
+ if (mdldest instanceof MdlModel2dLine) {
for (Geometry g : geoms) {
if (g.getNumPoints()<2) {
- ui_.error("Vous ne pouvez pas d\xE9placer ces g\xE9om\xE9tries.\nUne au moins n'est constitu\xE9e que d'un point!");
+ ui_.error(FudaaLib.getS("Vous ne pouvez pas d\xE9placer ces g\xE9om\xE9tries.\nUne au moins n'est constitu\xE9e que d'un point!"));
return;
}
}
}
- removeSelectedObjects(cmp);
-
- if (mdld instanceof MdlModel2dMultiPoint) {
- MdlModel2dMultiPoint mdl=(MdlModel2dMultiPoint)mdld;
- for (Geometry g : geoms) {
- Geometry gn=GISGeometryFactory.INSTANCE.createMultiPoint(g.getCoordinates());
- mdl.addGeometry(gn, cmp, ui_,null);
+ // Ajout des nouveaux objets.
+ for (int i=0; i<idxGeom.length; i++) {
+
+ // Les attributs
+ Object[] datadest=new Object[coldest.getNbAttributes()];
+ GISZoneCollection colsrc=((ZModeleGeom)getScene().getLayerForId(idxGeom[i]).modeleDonnees()).getGeomData();
+ for (int iatt=0; iatt<datadest.length; iatt++) {
+ int idxAtt=colsrc.getIndiceOf(coldest.getAttribute(iatt));
+ if (idxAtt!=-1) datadest[iatt]=colsrc.getValue(idxAtt,getScene().sceneId2LayerId(idxGeom[i]));
}
- }
- else if (mdld instanceof MdlModel2dLine) {
- MdlModel2dLine mdl=(MdlModel2dLine)mdld;
- for (Geometry g : geoms) {
- Geometry gn=GISGeometryFactory.INSTANCE.createLineString(g.getCoordinates());
- mdl.addGeometry(gn, cmp, ui_,null);
+
+ // La g\xE9om\xE9trie
+ if (mdldest instanceof MdlModel2dMultiPoint) {
+ Geometry gn=GISGeometryFactory.INSTANCE.createMultiPoint(geoms[i].getCoordinates());
+ coldest.addGeometry(gn,datadest,cmp);
}
+ else if (mdldest instanceof MdlModel2dLine) {
+ Geometry gn=GISGeometryFactory.INSTANCE.createLineString(geoms[i].getCoordinates());
+ coldest.addGeometry(gn,datadest,cmp);
+ }
}
+
+ // Suppression des anciens.
+ removeSelectedObjects(cmp);
if (mng_ != null) {
mng_.addCmd(cmp.getSimplify());
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2008-07-10 07:46:54
|
Revision: 3681
http://fudaa.svn.sourceforge.net/fudaa/?rev=3681&view=rev
Author: bmarchan
Date: 2008-07-10 00:46:55 -0700 (Thu, 10 Jul 2008)
Log Message:
-----------
Ajout d'un attribut NATURE, constant par calque.
Modified Paths:
--------------
branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlModel1dTrace.java
branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlModel2dCloud.java
branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlModel2dConstraintLine.java
branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlModel2dContour.java
branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlModel2dDirectionLine.java
branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlModel2dLevel.java
branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlModel2dProfile.java
branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlModel2dZone.java
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlModel1dTrace.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlModel1dTrace.java 2008-07-10 07:45:55 UTC (rev 3680)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlModel1dTrace.java 2008-07-10 07:46:55 UTC (rev 3681)
@@ -13,6 +13,7 @@
import org.fudaa.ctulu.gis.GISZoneCollectionLigneBrisee;
import org.fudaa.ctulu.gis.GISZoneListener;
import org.fudaa.ebli.calque.edition.ZModeleLigneBriseeEditable;
+import org.fudaa.fudaa.sig.FSigResource;
/**
* Un mod\xE8le de calque pour le calque 1D des traces de profils. Les traces sont des polylignes XY.
@@ -29,10 +30,12 @@
public MdlModel1dTrace(final GISZoneListener _listener, final CtuluCommandContainer _cmd) {
super(_listener);
GISAttribute[] attrs=new GISAttribute[]{
- GISAttributeConstants.TITRE
+ GISAttributeConstants.TITRE,
+ GISAttributeConstants.NATURE
};
// Pas de container de commande pour cette op\xE9ration, sinon conserv\xE9 en undo/redo.
getGeomData().setAttributes(attrs, null);
getGeomData().setAttributeIsZ(null);
+ getGeomData().setFixedAttributeValue(GISAttributeConstants.NATURE, FSigResource.ATT_NATURE_TP);
}
}
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlModel2dCloud.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlModel2dCloud.java 2008-07-10 07:45:55 UTC (rev 3680)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlModel2dCloud.java 2008-07-10 07:46:55 UTC (rev 3681)
@@ -11,11 +11,13 @@
import org.fudaa.ctulu.CtuluCommandContainer;
import org.fudaa.ctulu.gis.GISAttribute;
import org.fudaa.ctulu.gis.GISAttributeConstants;
+import org.fudaa.ctulu.gis.GISAttributeString;
import org.fudaa.ctulu.gis.GISGeometryFactory;
import org.fudaa.ctulu.gis.GISMultiPoint;
import org.fudaa.ctulu.gis.GISZoneCollectionMultiPoint;
import org.fudaa.ctulu.gis.GISZoneListener;
import org.fudaa.ebli.calque.edition.ZModeleMultiPointEditable;
+import org.fudaa.fudaa.sig.FSigResource;
import com.vividsolutions.jts.geom.Coordinate;
import com.vividsolutions.jts.geom.Geometry;
@@ -34,12 +36,16 @@
*/
public MdlModel2dCloud(final GISZoneListener _listener, final CtuluCommandContainer _cmd) {
super(_listener);
+// GISAttribute attTry=new GISAttributeString("Nature",false);
GISAttribute[] attrs=new GISAttribute[]{
GISAttributeConstants.BATHY,
- GISAttributeConstants.TITRE
+ GISAttributeConstants.TITRE,
+ GISAttributeConstants.NATURE
+// attTry
};
// Pas de container de commande pour cette op\xE9ration, sinon conserv\xE9 en undo/redo.
getGeomData().setAttributes(attrs, null);
getGeomData().setAttributeIsZ(GISAttributeConstants.BATHY);
+ getGeomData().setFixedAttributeValue(GISAttributeConstants.NATURE, FSigResource.ATT_NATURE_SM);
}
}
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlModel2dConstraintLine.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlModel2dConstraintLine.java 2008-07-10 07:45:55 UTC (rev 3680)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlModel2dConstraintLine.java 2008-07-10 07:46:55 UTC (rev 3681)
@@ -11,6 +11,7 @@
import org.fudaa.ctulu.gis.GISAttribute;
import org.fudaa.ctulu.gis.GISAttributeConstants;
import org.fudaa.ctulu.gis.GISZoneListener;
+import org.fudaa.fudaa.sig.FSigResource;
/**
* Un mod\xE8le de calque pour le calque 2D des lignes de constraintes. Les lignes sont des polylignes XYZ, non
@@ -29,10 +30,12 @@
super(_listener);
GISAttribute[] attrs=new GISAttribute[]{
GISAttributeConstants.BATHY,
- GISAttributeConstants.TITRE
+ GISAttributeConstants.TITRE,
+ GISAttributeConstants.NATURE
};
// Pas de container de commande pour cette op\xE9ration, sinon conserv\xE9 en undo/redo.
getGeomData().setAttributes(attrs, null);
getGeomData().setAttributeIsZ(GISAttributeConstants.BATHY);
+ getGeomData().setFixedAttributeValue(GISAttributeConstants.NATURE, FSigResource.ATT_NATURE_LC);
}
}
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlModel2dContour.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlModel2dContour.java 2008-07-10 07:45:55 UTC (rev 3680)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlModel2dContour.java 2008-07-10 07:46:55 UTC (rev 3681)
@@ -11,6 +11,7 @@
import org.fudaa.ctulu.gis.GISAttribute;
import org.fudaa.ctulu.gis.GISAttributeConstants;
import org.fudaa.ctulu.gis.GISZoneListener;
+import org.fudaa.fudaa.sig.FSigResource;
/**
* Un mod\xE8le de calque pour le calque 2D contour d'\xE9tudes. Les contours d'\xE9tude limitent les informations
@@ -28,10 +29,12 @@
public MdlModel2dContour(final GISZoneListener _listener, final CtuluCommandContainer _cmd) {
super(_listener);
GISAttribute[] attrs=new GISAttribute[]{
- GISAttributeConstants.TITRE
+ GISAttributeConstants.TITRE,
+ GISAttributeConstants.NATURE
};
// Pas de container de commande pour cette op\xE9ration, sinon conserv\xE9 en undo/redo.
getGeomData().setAttributes(attrs, null);
getGeomData().setAttributeIsZ(null);
+ getGeomData().setFixedAttributeValue(GISAttributeConstants.NATURE, FSigResource.ATT_NATURE_CE);
}
}
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlModel2dDirectionLine.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlModel2dDirectionLine.java 2008-07-10 07:45:55 UTC (rev 3680)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlModel2dDirectionLine.java 2008-07-10 07:46:55 UTC (rev 3681)
@@ -13,6 +13,7 @@
import org.fudaa.ctulu.gis.GISZoneCollectionLigneBrisee;
import org.fudaa.ctulu.gis.GISZoneListener;
import org.fudaa.ebli.calque.edition.ZModeleLigneBriseeEditable;
+import org.fudaa.fudaa.sig.FSigResource;
/**
* Un mod\xE8le de calque pour le calque 2D des lignes de direction. Les lignes sont des polylignes XYZ, non
@@ -31,10 +32,12 @@
super(_listener);
GISAttribute[] attrs=new GISAttribute[]{
GISAttributeConstants.BATHY,
- GISAttributeConstants.TITRE
+ GISAttributeConstants.TITRE,
+ GISAttributeConstants.NATURE
};
// Pas de container de commande pour cette op\xE9ration, sinon conserv\xE9 en undo/redo.
getGeomData().setAttributes(attrs, null);
getGeomData().setAttributeIsZ(GISAttributeConstants.BATHY);
+ getGeomData().setFixedAttributeValue(GISAttributeConstants.NATURE, FSigResource.ATT_NATURE_LD);
}
}
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlModel2dLevel.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlModel2dLevel.java 2008-07-10 07:45:55 UTC (rev 3680)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlModel2dLevel.java 2008-07-10 07:46:55 UTC (rev 3681)
@@ -15,6 +15,7 @@
import org.fudaa.ctulu.gis.GISZoneListener;
import org.fudaa.ebli.calque.edition.ZModeleLigneBriseeEditable;
import org.fudaa.fudaa.modeleur.MdlResource;
+import org.fudaa.fudaa.sig.FSigResource;
/**
* Un mod\xE8le de calque pour le calque 2D lignes de niveaux. Les lignes de niveau sont des lignes XY
@@ -34,10 +35,12 @@
GISAttributeDouble zglob=new GISAttributeDouble(MdlResource.MDL.getString("Z"),false);
GISAttribute[] attrs=new GISAttribute[]{
zglob,
- GISAttributeConstants.TITRE
+ GISAttributeConstants.TITRE,
+ GISAttributeConstants.NATURE
};
// Pas de container de commande pour cette op\xE9ration, sinon conserv\xE9 en undo/redo.
getGeomData().setAttributes(attrs, null);
getGeomData().setAttributeIsZ(zglob);
+ getGeomData().setFixedAttributeValue(GISAttributeConstants.NATURE, FSigResource.ATT_NATURE_CN);
}
}
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlModel2dProfile.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlModel2dProfile.java 2008-07-10 07:45:55 UTC (rev 3680)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlModel2dProfile.java 2008-07-10 07:46:55 UTC (rev 3681)
@@ -13,6 +13,7 @@
import org.fudaa.ctulu.gis.GISZoneCollectionLigneBrisee;
import org.fudaa.ctulu.gis.GISZoneListener;
import org.fudaa.ebli.calque.edition.ZModeleLigneBriseeEditable;
+import org.fudaa.fudaa.sig.FSigResource;
/**
* Un mod\xE8le de calque pour le calque 2D des profils. Les profils sont des polylignes XYZ.
@@ -30,10 +31,12 @@
super(_listener);
GISAttribute[] attrs=new GISAttribute[]{
GISAttributeConstants.BATHY,
- GISAttributeConstants.TITRE
+ GISAttributeConstants.TITRE,
+ GISAttributeConstants.NATURE
};
// Pas de container de commande pour cette op\xE9ration, sinon conserv\xE9 en undo/redo.
getGeomData().setAttributes(attrs, null);
getGeomData().setAttributeIsZ(GISAttributeConstants.BATHY);
+ getGeomData().setFixedAttributeValue(GISAttributeConstants.NATURE, FSigResource.ATT_NATURE_PF);
}
}
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlModel2dZone.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlModel2dZone.java 2008-07-10 07:45:55 UTC (rev 3680)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlModel2dZone.java 2008-07-10 07:46:55 UTC (rev 3681)
@@ -11,6 +11,7 @@
import org.fudaa.ctulu.gis.GISAttribute;
import org.fudaa.ctulu.gis.GISAttributeConstants;
import org.fudaa.ctulu.gis.GISZoneListener;
+import org.fudaa.fudaa.sig.FSigResource;
/**
* Un mod\xE8le de calque pour le calque 2D de zones g\xE9om\xE9triques. Les zones permettent de sp\xE9cifier un strickler par la suite.
@@ -28,10 +29,12 @@
public MdlModel2dZone(final GISZoneListener _listener, final CtuluCommandContainer _cmd) {
super(_listener);
GISAttribute[] attrs=new GISAttribute[]{
- GISAttributeConstants.TITRE
+ GISAttributeConstants.TITRE,
+ GISAttributeConstants.NATURE
};
// Pas de container de commande pour cette op\xE9ration, sinon conserv\xE9 en undo/redo.
getGeomData().setAttributes(attrs, null);
getGeomData().setAttributeIsZ(null);
+ getGeomData().setFixedAttributeValue(GISAttributeConstants.NATURE, FSigResource.ATT_NATURE_ZN);
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2008-07-10 07:45:53
|
Revision: 3680
http://fudaa.svn.sourceforge.net/fudaa/?rev=3680&view=rev
Author: bmarchan
Date: 2008-07-10 00:45:55 -0700 (Thu, 10 Jul 2008)
Log Message:
-----------
Mise en place des attributs ?\195?\160 valeurs fixe.
Modified Paths:
--------------
branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneAttributeFactory.java
branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollection.java
branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollectionLigneBrisee.java
branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollectionMultiPoint.java
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneAttributeFactory.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneAttributeFactory.java 2008-07-10 07:45:36 UTC (rev 3679)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneAttributeFactory.java 2008-07-10 07:45:55 UTC (rev 3680)
@@ -1,255 +1,245 @@
-/*
- * @creation 7 avr. 2005
- * @modification $Date: 2008-03-26 16:46:43 $
- * @license GNU General Public License 2
- * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
- * @mail de...@fu...
- */
-package org.fudaa.ctulu.gis;
-
-import java.util.Arrays;
-
-import com.sun.j3d.loaders.vrml97.impl.Coordinate;
-import com.vividsolutions.jts.geom.Geometry;
-import com.vividsolutions.jts.geom.LineString;
-
-/**
- * @author Fred Deniger
- * @version $Id: GISZoneAttributeFactory.java,v 1.10.6.1 2008-03-26 16:46:43 bmarchan Exp $
- */
-public final class GISZoneAttributeFactory {
-
- private GISZoneAttributeFactory() {
- super();
- }
-
- /**
- * @param _att l'attribut
- * @param _src la liste des points source
- * @param _target la liste des points cible
- * @param _model le model initial
- * @return l'interpolateur 1d
- */
- public static GISReprojectInterpolateurI create1DInterpolateur(final GISAttributeInterface _att,
- final LineString _src, final LineString _target, final GISAttributeModel _model) {
- final Class clazz = _att.getDataClass();
- if (clazz == Integer.class) {
- return new GISReprojectInterpolateur1DInteger(_src.getCoordinateSequence(), _target.getCoordinateSequence(),
- (GISAttributeModelIntegerInterface) _model);
- } else if (clazz == Double.class) {
- return new GISReprojectInterpolateur1DDouble(_src.getCoordinateSequence(), _target.getCoordinateSequence(),
- (GISAttributeModelDoubleInterface) _model);
- } else if (clazz == Boolean.class) {
- return new GISReprojectInterpolateur1DBoolean(_src.getCoordinateSequence(), _target.getCoordinateSequence(),
- (GISAttributeModelBooleanInterface) _model);
- } else {
- return new GISReprojectInterpolateur1DObject(_src.getCoordinateSequence(), _target.getCoordinateSequence(),
- (GISAttributeModelObjectInterface) _model);
- }
-
- }
-
- /**
- * @param _att l'attribut
- * @param _src la liste des points source
- * @param _target la liste des points cible
- * @param _model le model initial
- * @return l'interpolateur 1d
- */
- public static GISReprojectInterpolateurI create1DInterpolateur(final GISAttributeInterface _att,
- final Geometry _src, final Geometry _target, final GISAttributeModel _model) {
- final Class clazz = _att.getDataClass();
- if (clazz == Integer.class) {
- return new GISReprojectInterpolateur1DInteger(
- new GISCoordinateSequence(_src.getCoordinates()),
- new GISCoordinateSequence(_target.getCoordinates()),
- (GISAttributeModelIntegerInterface) _model);
- } else if (clazz == Double.class) {
- return new GISReprojectInterpolateur1DDouble(
- new GISCoordinateSequence(_src.getCoordinates()),
- new GISCoordinateSequence(_target.getCoordinates()),
- (GISAttributeModelDoubleInterface) _model);
- } else if (clazz == Boolean.class) {
- return new GISReprojectInterpolateur1DBoolean(
- new GISCoordinateSequence(_src.getCoordinates()),
- new GISCoordinateSequence(_target.getCoordinates()),
- (GISAttributeModelBooleanInterface) _model);
- } else {
- return new GISReprojectInterpolateur1DObject(
- new GISCoordinateSequence(_src.getCoordinates()),
- new GISCoordinateSequence(_target.getCoordinates()),
- (GISAttributeModelObjectInterface) _model);
- }
-
- }
-
- /**
- * @param _capacity la capacity par defaut du model
- * @param _listener le listener
- * @return le model. null si class non valide
- */
- public static GISAttributeModel createModelList(final GISAttributeInterface _att, final int _capacity,
- final GISAttributeListener _listener) {
- final GISAttributeModelListener resfinal = _att.createListModel(_capacity);
- resfinal.setListener(_listener);
- return resfinal;
- }
-
- public static GISAttributeModel createModelList(final GISAttributeInterface _att, final int _capacity,
- final GISAttributeListener _listener, final int _initValuesNb) {
- final GISAttributeModelListener resfinal = _att.createListModel(_capacity);
- if (_initValuesNb > 0) {
- final Object[] add = new Object[_initValuesNb];
- Arrays.fill(add, _att.getDefaultValue());
- resfinal.addAllObject(add, null);
- }
- resfinal.setListener(_listener);
- return resfinal;
- }
-
- /**
- * @param _initSize la taille
- * @param _listener le listener
- * @return le model. null si class non valide
- */
- public static GISAttributeModel createModelArray(final GISAttributeInterface _att, final int _initSize,
- final GISAttributeListener _listener) {
- final GISAttributeModelListener resfinal = _att.createAtomicModel(null, _initSize);
- resfinal.setListener(_listener);
- return resfinal;
- }
-
- public static Object[] createObjectArray(final GISAttributeInterface _att, final Object[] _init, final int _nbPt) {
- if (_init == null) {
- return null;
- }
- final Class clazz = _att.getDataClass();
- if (clazz == Integer.class) {
- final Integer[] r = new Integer[_nbPt];
- Arrays.fill(r, _att.getDefaultValue());
-
- for (int i = Math.min(r.length, _init.length) - 1; i >= 0; i--) {
- final Object o = _init[i];
- r[i] = (Integer) _att.getDefaultValue();
- if (o != null && o instanceof Integer) {
- r[i] = (Integer) o;
- }
- }
- return r;
- } else if (clazz == Double.class) {
- final Double[] r = new Double[_nbPt];
- Arrays.fill(r, _att.getDefaultValue());
- for (int i = Math.min(r.length, _init.length) - 1; i >= 0; i--) {
- final Object o = _init[i];
- r[i] = (Double) _att.getDefaultValue();
- if (o != null && o instanceof Double) {
- r[i] = (Double) o;
- }
- }
- return r;
- } else if (clazz == Boolean.class) {
- final Boolean[] r = new Boolean[_nbPt];
- Arrays.fill(r, _att.getDefaultValue());
- for (int i = Math.min(r.length, _init.length) - 1; i >= 0; i--) {
- final Object o = _init[i];
- r[i] = (Boolean) _att.getDefaultValue();
- if (o != null && o instanceof Boolean) {
- r[i] = (Boolean) o;
- }
- }
- return r;
- } else {
- final Object[] r = new Object[_nbPt];
- Arrays.fill(r, _att.getDefaultValue());
- for (int i = Math.min(r.length, _init.length) - 1; i >= 0; i--) {
- final Object o = _init[i];
- r[i] = _att.getDefaultValue();
- if (o != null) {
- r[i] = o;
- }
- }
- return r;
- }
- }
-
- /**
- * @param _att l'attribut
- * @param _initValues les valeurs initiales
- * @param _listener le listener
- * @return le model. null si class non valide
- */
- public static GISAttributeModel createModelArray(final GISAttributeInterface _att, final Object[] _initValues,
- final GISAttributeListener _listener) {
- GISAttributeModelListener resfinal = null;
- final Class clazz = _att.getDataClass();
- if (clazz == Integer.class) {
- resfinal = new GISAttributeModelIntegerArray(_initValues, _att);
- } else if (clazz == Double.class) {
- resfinal = new GISAttributeModelDoubleArray(_initValues, _att);
- } else if (clazz == Boolean.class) {
- resfinal = new GISAttributeModelBooleanArray(_initValues, _att);
- } else {
- resfinal = new GISAttributeModelObjectArray(_initValues, _att);
- }
- resfinal.setListener(_listener);
- return resfinal;
- }
-
- /**
- * @param _listener le listener
- * @param _attr les attributs
- * @return une zone correctement initialis\xE9e
- */
- public static GISZoneCollectionLigneBrisee createPolyligne(final GISZoneListener _listener,
- final GISAttributeInterface[] _attr) {
- final GISZoneCollectionLigneBrisee zone = new GISZoneCollectionLigneBrisee(_listener);
- zone.initAttributes(_attr);
- return zone;
-
- }
-
- /**
- * @param _listener le listener
- * @param _attr les attributs
- * @return une zone correctement initialis\xE9e
- */
- public static GISZoneCollectionPoint createPoint(final GISZoneListener _listener, final GISAttributeInterface[] _attr) {
- final GISZoneCollectionPoint zone = new GISZoneCollectionPoint(_listener);
- zone.initAttributes(_attr);
- return zone;
-
- }
-
- /**
- * @param _listener le listener
- * @param _attr les attributs
- * @return une zone correctement initialis\xE9e
- */
- public static GISZoneCollectionLigneBrisee createLigneBrisee(final GISZoneListener _listener,
- final GISAttributeInterface[] _attr) {
- final GISZoneCollectionLigneBrisee zone = new GISZoneCollectionLigneBrisee(_listener);
- zone.initAttributes(_attr);
- return zone;
-
- }
-
- /**
- * @param _zone la zone concern\xE9e
- * @param _att l'attribut
- * @return le model ou nul si inconnu
- */
- public static GISAttributeModel createModel(final GISZoneCollection _zone, final GISAttributeInterface _att) {
- final int nbGeom = _zone.getNumGeometries();
- if (_att == null) return null;
- if (!_att.isAtomicValue() || (_zone instanceof GISZoneCollectionPoint)) {
- return createModelList(_att, (int) (nbGeom * 1.5), _zone, nbGeom);
- }
- final GISAttributeModel[] models = new GISAttributeModel[nbGeom];
- for (int i = 0; i < nbGeom; i++) {
- models[i] = createModelArray(_att, _zone.getGeometry(i).getNumPoints(), _zone);
- }
- final GISAttributeModelObjectList r = new GISAttributeModelObjectList(Arrays.asList(models), _att);
- r.setListener(_zone);
- return r;
- }
-}
+/*
+ * @creation 7 avr. 2005
+ * @modification $Date: 2008-03-26 16:46:43 $
+ * @license GNU General Public License 2
+ * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
+ * @mail de...@fu...
+ */
+package org.fudaa.ctulu.gis;
+
+import java.util.Arrays;
+
+import com.sun.j3d.loaders.vrml97.impl.Coordinate;
+import com.vividsolutions.jts.geom.Geometry;
+import com.vividsolutions.jts.geom.LineString;
+
+/**
+ * @author Fred Deniger
+ * @version $Id: GISZoneAttributeFactory.java,v 1.10.6.1 2008-03-26 16:46:43 bmarchan Exp $
+ */
+public final class GISZoneAttributeFactory {
+
+ private GISZoneAttributeFactory() {
+ super();
+ }
+
+ /**
+ * @param _att l'attribut
+ * @param _src la liste des points source
+ * @param _target la liste des points cible
+ * @param _model le model initial
+ * @return l'interpolateur 1d
+ */
+ public static GISReprojectInterpolateurI create1DInterpolateur(final GISAttributeInterface _att,
+ final LineString _src, final LineString _target, final GISAttributeModel _model) {
+ final Class clazz = _att.getDataClass();
+ if (clazz == Integer.class) {
+ return new GISReprojectInterpolateur1DInteger(_src.getCoordinateSequence(), _target.getCoordinateSequence(),
+ (GISAttributeModelIntegerInterface) _model);
+ } else if (clazz == Double.class) {
+ return new GISReprojectInterpolateur1DDouble(_src.getCoordinateSequence(), _target.getCoordinateSequence(),
+ (GISAttributeModelDoubleInterface) _model);
+ } else if (clazz == Boolean.class) {
+ return new GISReprojectInterpolateur1DBoolean(_src.getCoordinateSequence(), _target.getCoordinateSequence(),
+ (GISAttributeModelBooleanInterface) _model);
+ } else {
+ return new GISReprojectInterpolateur1DObject(_src.getCoordinateSequence(), _target.getCoordinateSequence(),
+ (GISAttributeModelObjectInterface) _model);
+ }
+
+ }
+
+ /**
+ * @param _att l'attribut
+ * @param _src la liste des points source
+ * @param _target la liste des points cible
+ * @param _model le model initial
+ * @return l'interpolateur 1d
+ */
+ public static GISReprojectInterpolateurI create1DInterpolateur(final GISAttributeInterface _att,
+ final Geometry _src, final Geometry _target, final GISAttributeModel _model) {
+ final Class clazz = _att.getDataClass();
+ if (clazz == Integer.class) {
+ return new GISReprojectInterpolateur1DInteger(
+ new GISCoordinateSequence(_src.getCoordinates()),
+ new GISCoordinateSequence(_target.getCoordinates()),
+ (GISAttributeModelIntegerInterface) _model);
+ } else if (clazz == Double.class) {
+ return new GISReprojectInterpolateur1DDouble(
+ new GISCoordinateSequence(_src.getCoordinates()),
+ new GISCoordinateSequence(_target.getCoordinates()),
+ (GISAttributeModelDoubleInterface) _model);
+ } else if (clazz == Boolean.class) {
+ return new GISReprojectInterpolateur1DBoolean(
+ new GISCoordinateSequence(_src.getCoordinates()),
+ new GISCoordinateSequence(_target.getCoordinates()),
+ (GISAttributeModelBooleanInterface) _model);
+ } else {
+ return new GISReprojectInterpolateur1DObject(
+ new GISCoordinateSequence(_src.getCoordinates()),
+ new GISCoordinateSequence(_target.getCoordinates()),
+ (GISAttributeModelObjectInterface) _model);
+ }
+
+ }
+
+ public static GISAttributeModel createModelList(final GISAttributeInterface _att, final Object _valatt, final int _capacity,
+ final GISAttributeListener _listener, final int _initValuesNb) {
+ final GISAttributeModelListener resfinal = _att.createListModel(_capacity);
+ if (_initValuesNb > 0) {
+ final Object[] add = new Object[_initValuesNb];
+ Arrays.fill(add, _valatt);
+ resfinal.addAllObject(add, null);
+ }
+ resfinal.setListener(_listener);
+ return resfinal;
+ }
+
+ /**
+ * @param _initSize la taille
+ * @param _listener le listener
+ * @return le model. null si class non valide
+ */
+ public static GISAttributeModel createModelArray(final GISAttributeInterface _att, final Object _valatt, final int _initSize,
+ final GISAttributeListener _listener) {
+ final GISAttributeModelListener resfinal = (GISAttributeModelListener)_att.createDataForGeom(_valatt, _initSize);
+ resfinal.setListener(_listener);
+ return resfinal;
+ }
+
+ public static Object[] createObjectArray(final GISAttributeInterface _att, final Object[] _init, final int _nbPt) {
+ if (_init == null) {
+ return null;
+ }
+ final Class clazz = _att.getDataClass();
+ if (clazz == Integer.class) {
+ final Integer[] r = new Integer[_nbPt];
+ Arrays.fill(r, _att.getDefaultValue());
+
+ for (int i = Math.min(r.length, _init.length) - 1; i >= 0; i--) {
+ final Object o = _init[i];
+ r[i] = (Integer) _att.getDefaultValue();
+ if (o != null && o instanceof Integer) {
+ r[i] = (Integer) o;
+ }
+ }
+ return r;
+ } else if (clazz == Double.class) {
+ final Double[] r = new Double[_nbPt];
+ Arrays.fill(r, _att.getDefaultValue());
+ for (int i = Math.min(r.length, _init.length) - 1; i >= 0; i--) {
+ final Object o = _init[i];
+ r[i] = (Double) _att.getDefaultValue();
+ if (o != null && o instanceof Double) {
+ r[i] = (Double) o;
+ }
+ }
+ return r;
+ } else if (clazz == Boolean.class) {
+ final Boolean[] r = new Boolean[_nbPt];
+ Arrays.fill(r, _att.getDefaultValue());
+ for (int i = Math.min(r.length, _init.length) - 1; i >= 0; i--) {
+ final Object o = _init[i];
+ r[i] = (Boolean) _att.getDefaultValue();
+ if (o != null && o instanceof Boolean) {
+ r[i] = (Boolean) o;
+ }
+ }
+ return r;
+ } else {
+ final Object[] r = new Object[_nbPt];
+ Arrays.fill(r, _att.getDefaultValue());
+ for (int i = Math.min(r.length, _init.length) - 1; i >= 0; i--) {
+ final Object o = _init[i];
+ r[i] = _att.getDefaultValue();
+ if (o != null) {
+ r[i] = o;
+ }
+ }
+ return r;
+ }
+ }
+
+ /**
+ * @param _att l'attribut
+ * @param _initValues les valeurs initiales
+ * @param _listener le listener
+ * @return le model. null si class non valide
+ */
+ public static GISAttributeModel createModelArray(final GISAttributeInterface _att, final Object[] _initValues,
+ final GISAttributeListener _listener) {
+ GISAttributeModelListener resfinal = null;
+ final Class clazz = _att.getDataClass();
+ if (clazz == Integer.class) {
+ resfinal = new GISAttributeModelIntegerArray(_initValues, _att);
+ } else if (clazz == Double.class) {
+ resfinal = new GISAttributeModelDoubleArray(_initValues, _att);
+ } else if (clazz == Boolean.class) {
+ resfinal = new GISAttributeModelBooleanArray(_initValues, _att);
+ } else {
+ resfinal = new GISAttributeModelObjectArray(_initValues, _att);
+ }
+ resfinal.setListener(_listener);
+ return resfinal;
+ }
+
+ /**
+ * @param _listener le listener
+ * @param _attr les attributs
+ * @return une zone correctement initialis\xE9e
+ */
+ public static GISZoneCollectionLigneBrisee createPolyligne(final GISZoneListener _listener,
+ final GISAttributeInterface[] _attr) {
+ final GISZoneCollectionLigneBrisee zone = new GISZoneCollectionLigneBrisee(_listener);
+ zone.initAttributes(_attr);
+ return zone;
+
+ }
+
+ /**
+ * @param _listener le listener
+ * @param _attr les attributs
+ * @return une zone correctement initialis\xE9e
+ */
+ public static GISZoneCollectionPoint createPoint(final GISZoneListener _listener, final GISAttributeInterface[] _attr) {
+ final GISZoneCollectionPoint zone = new GISZoneCollectionPoint(_listener);
+ zone.initAttributes(_attr);
+ return zone;
+
+ }
+
+ /**
+ * @param _listener le listener
+ * @param _attr les attributs
+ * @return une zone correctement initialis\xE9e
+ */
+ public static GISZoneCollectionLigneBrisee createLigneBrisee(final GISZoneListener _listener,
+ final GISAttributeInterface[] _attr) {
+ final GISZoneCollectionLigneBrisee zone = new GISZoneCollectionLigneBrisee(_listener);
+ zone.initAttributes(_attr);
+ return zone;
+
+ }
+
+ /**
+ * @param _zone la zone concern\xE9e
+ * @param _att l'attribut
+ * @return le model ou nul si inconnu
+ */
+ public static GISAttributeModel createModel(final GISZoneCollection _zone, final GISAttributeInterface _att) {
+ final int nbGeom = _zone.getNumGeometries();
+ if (_att == null) return null;
+ Object valatt=_zone.fixedAttributes_.get(_att);
+ if (valatt==null) valatt=_att.getDefaultValue();
+ if (!_att.isAtomicValue() || (_zone instanceof GISZoneCollectionPoint)) {
+ return createModelList(_att, valatt, (int) (nbGeom * 1.5), _zone, nbGeom);
+ }
+ final GISAttributeModel[] models = new GISAttributeModel[nbGeom];
+ for (int i = 0; i < nbGeom; i++) {
+ models[i] = createModelArray(_att, valatt, _zone.getGeometry(i).getNumPoints(), _zone);
+ }
+ final GISAttributeModelObjectList r = new GISAttributeModelObjectList(Arrays.asList(models), _att);
+ r.setListener(_zone);
+ return r;
+ }
+}
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollection.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollection.java 2008-07-10 07:45:36 UTC (rev 3679)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollection.java 2008-07-10 07:45:55 UTC (rev 3680)
@@ -22,6 +22,7 @@
import org.fudaa.ctulu.ProgressionInterface;
import org.fudaa.ctulu.collection.CtuluCollection;
import org.fudaa.ctulu.collection.CtuluCollectionDoubleEdit;
+import org.geotools.feature.type.SetAttributeType;
/**
* Une classe abstraite d'objets g\xE9ometriques auquels sont associ\xE9s des attributs dont les valeurs
@@ -37,6 +38,8 @@
/** La liste ordonn\xE9e des mod\xE8les d'attributs associ\xE9es \xE0 la collection. */
protected GISAttributeModelListener[] attr_;
+ /** La valeur de la nature pour pour cette collection si elle est impos\xE9e. null : non impos\xE9e. */
+ protected Map fixedAttributes_=new HashMap();
protected GISAttributeDouble attributeIsZ_ = GISAttributeConstants.BATHY; // Devrait \xEAtre null par defaut.
@@ -199,15 +202,17 @@
}
final int nbAttribute = getNbAttributes();
final List data = new ArrayList(nbAttribute);
- for (int i = 0; i < nbAttribute; i++) {
- final GISAttributeInterface gi = getAttribute(i);
+ for (int iatt = 0; iatt < nbAttribute; iatt++) {
+ final GISAttributeInterface gi = getAttribute(iatt);
final Object[] os = new Object[nbGeom];
- for (int j = 0; j < nbGeom; j++) {
- os[j] = gi.createDataForGeom(_model.getValue(i, j), pt[j].getNumPoints());
+ for (int igeom = 0; igeom < nbGeom; igeom++) {
+// os[igeom] = gi.createDataForGeom(_model.getValue(iatt, igeom), pt[igeom].getNumPoints());
+ os[igeom] = createOrAssignAttribut(iatt, _model.getValue(iatt, igeom), pt[igeom]);
}
data.add(nbGeom == 1 ? os[0] : os);
}
+
final int firstIdx = super.geometry_.getSize() - 1;
super.geometry_.addAll(pt, data, _cmd);
if (_doPostImport) {
@@ -217,6 +222,32 @@
return true;
}
+ /**
+ * Cr\xE9e ou assigne la valeur d'attribut pass\xE9e. Si la valeur pass\xE9e est null, une valeur par d\xE9faut est affect\xE9e.
+ * Si la valeur est scalaire et l'attribut atomique, un tableau de valeurs est cr\xE9e. Si la valeur est un tableau et
+ * l'attribut est global, une valeur scalaire moyenne et cr\xE9ee.
+ *
+ * @param _iatt L'indice d'attribut dans la liste des attributs.
+ * @param _valatt La valeur de l'attribut. Peut \xEAtre null.
+ * @param _dest La g\xE9om\xE9trie pour la cr\xE9ation de la valeur.
+ * @return La valeur pour l'attribut et la g\xE9om\xE9trie donn\xE9e.
+ */
+ protected Object createOrAssignAttribut(int _iatt, final Object _init, final Geometry _dest) {
+ Object ret;
+ final int nbPt = _dest.getNumPoints();
+ Object val=fixedAttributes_.get(getAttribute(_iatt));
+ if (val==null) val=_init;
+ ret = getDataModel(_iatt).getAttribute().createDataForGeom(val,nbPt);
+ if (attributeIsZ_ != null && attributeIsZ_.isAtomicValue() && _init == null &&
+ getDataModel(_iatt).getAttribute() == attributeIsZ_) {
+ final GISAttributeModelDoubleArray array = (GISAttributeModelDoubleArray) ret;
+ for (int k = nbPt - 1; k >= 0; k--) {
+ array.set(k, ((GISCoordinateSequenceContainerInterface)_dest).getCoordinateSequence().getOrdinate(k,2));
+ }
+ }
+ return ret;
+ }
+
public abstract void addCoordinateSequence(CoordinateSequence _seq, Object[] _datas, CtuluCommandContainer _cmd);
public abstract void addGeometry(Geometry _seq, Object[] _datas, CtuluCommandContainer _cmd);
@@ -403,6 +434,22 @@
}
/**
+ * Definit les attributs pour lesquels la valeur est immuable.<p>
+ * <b>Remarque</b> : Si des objets existent d\xE9j\xE0 avec une valeur pour l'attribut \xE0 rendre immuable, ces valeurs ne seront pas
+ * remplac\xE9e par la valeur constante. Utilisez {@link GISZoneCollection#setAttributes()}
+ * pour r\xE9initialiser les valeurs pour la collection.
+ *
+ * @param _att L'attribut \xE0 fixer.
+ * @param _value La valeur constante. Si null, l'attribut n'est pas obligatoirement fix\xE9.
+ */
+ public void setFixedAttributeValue(GISAttributeInterface _att, Object _value) {
+ if (_value==null)
+ fixedAttributes_.remove(_att);
+ else
+ fixedAttributes_.put(_att, _value);
+ }
+
+ /**
* Associe les attributs aux objets de la collection. Pour chaque attribut inexistant dans la liste est cr\xE9\xE9 un nouveau mod\xE8le.
* @param _att La liste des attributs, conditionnant l'ordre des mod\xE8les dans la liste des mod\xE8les.
* @param _cmd Le conteneur de commande.
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollectionLigneBrisee.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollectionLigneBrisee.java 2008-07-10 07:45:36 UTC (rev 3679)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollectionLigneBrisee.java 2008-07-10 07:45:55 UTC (rev 3680)
@@ -1,515 +1,507 @@
-/*
- * @creation 21 mars 2005
- * @modification $Date: 2008-04-01 07:22:47 $
- * @license GNU General Public License 2
- * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
- * @mail de...@fu...
- */
-package org.fudaa.ctulu.gis;
-
-import gnu.trove.TIntArrayList;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import com.vividsolutions.jts.geom.Coordinate;
-import com.vividsolutions.jts.geom.CoordinateSequence;
-import com.vividsolutions.jts.geom.Geometry;
-import com.vividsolutions.jts.geom.LineString;
-
-import com.memoire.fu.FuLog;
-
-import org.fudaa.ctulu.CtuluCommandComposite;
-import org.fudaa.ctulu.CtuluCommandContainer;
-import org.fudaa.ctulu.CtuluLib;
-import org.fudaa.ctulu.CtuluLibArray;
-import org.fudaa.ctulu.CtuluLibString;
-import org.fudaa.ctulu.CtuluListSelectionInterface;
-import org.fudaa.ctulu.CtuluUI;
-import org.fudaa.ctulu.collection.CtuluCollectionDouble;
-
-/**
- * @author Fred Deniger
- * @version $Id: GISZoneCollectionLigneBrisee.java,v 1.20.6.4 2008-04-01 07:22:47 bmarchan Exp $
- */
-public class GISZoneCollectionLigneBrisee extends GISZoneCollection {
-
- public GISZoneCollectionLigneBrisee() {
- this(null);
- }
-
- /**
- * @param _listener le listener
- */
- public GISZoneCollectionLigneBrisee(final GISZoneListener _listener) {
- this(10, _listener);
- }
-
- /**
- * @param _listener le listener
- */
- public GISZoneCollectionLigneBrisee(final GISZoneListener _listener, final GISZoneCollectionLigneBrisee _br) {
- this(10, _listener);
- if (_br != null) {
- for (int i = 0; i < _br.getNumGeometries(); i++) {
- super.geometry_.add(_br.getGeometry(i), null, null);
- }
- }
- }
-
- public GISZoneCollectionLigneBrisee(final int _nbObject, final GISZoneListener _listener) {
- super(_nbObject);
- listener_ = _listener;
- }
-
- private List createListForSeveralAdd(final Object[][] _att, final int _nbGeom) {
- final int nbAttributes = getNbAttributes();
- final List attListe = new ArrayList(nbAttributes);
- for (int i = 0; i < nbAttributes; i++) {
- final Object[] oi = new Object[_nbGeom];
- for (int j = 0; j < _nbGeom; j++) {
- oi[j] = _att[j][i];
- }
- attListe.add(oi);
- }
- return attListe;
- }
-
- /**
- * @param _idx l'indice de la ligne a changer
- * @param _newLine la nouvelle ligne
- * @param _cmd le receveur de commande
- */
- private void setValueIntern(final int _idx, final LineString _newLine, final CtuluCommandContainer _cmd) {
- if (!isGeomModifiable_) {
- return;
- }
- final LineString old = (LineString) super.geometry_.getValueAt(_idx);
- if (old.getNumPoints() == _newLine.getNumPoints() || !containsAtomicAttribute()) {
- super.geometry_.setObject(_idx, _newLine, _cmd);
- } else {
- final CtuluCommandComposite cmp = new CtuluCommandComposite();
- for (int i = getNbAttributes() - 1; i >= 0; i--) {
- final GISAttributeInterface att = getAttribute(i);
- if (att.isAtomicValue()) {
- final GISAttributeModel m = (GISAttributeModel) (getModelListener(i).getObjectValueAt(_idx));
- final GISReprojectInterpolateurI interpolateur = GISZoneAttributeFactory.create1DInterpolateur(att, old,
- _newLine, m);
- getModelListener(i).setObject(_idx, m.deriveNewModel(_newLine.getNumPoints(), interpolateur), cmp);
- }
- }
- super.geometry_.setObject(_idx, _newLine, cmp);
- if (_cmd != null) {
- _cmd.addCmd(cmp.getSimplify());
- }
- }
- }
-
- /**
- * Cr\xE9e un tableau de valeurs d'attributs.<p>
- *
- * Les valeurs peuvent \xEAtre globales ou atomiques.
- *
- * @param _init Les valeurs d'initialisation, dans l'ordre et au nombre des mod\xE8les d'attributs.
- * Si null, les valeurs par d\xE9faut sont affect\xE9es (voir {@link GISAttributeInterface#getDefaultValue()})
- * @param _dest La g\xE9ometrie polyligne ou polygone.
- * @param _isClosed Param\xE8tre inutilis\xE9.
- * @return
- */
- protected Object[] createAttributeList(final Object[] _init, final Geometry _dest, final boolean _isClosed) {
- final Object[] rf = new Object[getNbAttributes()];
- final int nbPt = _dest.getNumPoints();
- if (_init != null && _init.length != getNbAttributes()) {
- throw new IllegalArgumentException("bad size");
- }
- for (int i = getNbAttributes() - 1; i >= 0; i--) {
- rf[i] = getDataModel(i).getAttribute().createDataForGeom(_init != null ? _init[i] : null, nbPt);
- if (attributeIsZ_ != null && attributeIsZ_.isAtomicValue() && (_init == null || _init[i] == null)
- && getDataModel(i).getAttribute() == attributeIsZ_) {
- final GISAttributeModelDoubleArray array = (GISAttributeModelDoubleArray) rf[i];
- for (int k = nbPt - 1; k >= 0; k--) {
- array.set(k, _dest.getCoordinates()[k].z);
- }
- }
- }
- return rf;
- }
-
- public boolean accept(final GISVisitor _v) {
- final int nb = getNumGeometries();
- for (int i = 0; i < nb; i++) {
- if (!((GISLigneBrisee) getGeometry(i)).accept(_v)) {
- return false;
- }
- }
- return true;
- }
-
- public void addAllLineStringClosedOrNode(final LineString[] _gs, final CtuluCommandContainer _cmd) {
- if (isGeomModifiable_) {
-
- final Object[][] att = new Object[_gs.length][];
- for (int i = 0; i < _gs.length; i++) {
- att[i] = createAttributeList(null, _gs[i], _gs[i].isClosed());
- }
-
- geometry_.addAll(_gs, createListForSeveralAdd(att, _gs.length), _cmd);
- }
- }
-
- public void addAllPolygones(final GISPolygone[] _gs, final CtuluCommandContainer _cmd) {
- if (isGeomModifiable_) {
- final Object[][] att = new Object[_gs.length][];
- for (int i = 0; i < _gs.length; i++) {
- att[i] = createAttributeList(null, _gs[i], true);
- }
- geometry_.addAll(_gs, createListForSeveralAdd(att, _gs.length), _cmd);
- }
- }
-
- public void addAllPolylignes(final GISPolyligne[] _gs, final CtuluCommandContainer _cmd) {
- if (isGeomModifiable_) {
- final Object[][] att = new Object[_gs.length][];
- for (int i = 0; i < _gs.length; i++) {
- att[i] = createAttributeList(null, _gs[i], false);
- }
- geometry_.addAll(_gs, createListForSeveralAdd(att, _gs.length), _cmd);
- }
- }
-
- public void addCoordinateSequence(final CoordinateSequence _seq, final Object[] _data,
- final CtuluCommandContainer _cmd) {
- if (_seq == null || _seq.size() < 2) {
- return;
- }
- if (_seq.size() > 3 && _seq.getCoordinate(0).equals2D(_seq.getCoordinate(_seq.size() - 1))) {
- addPolygone(_seq, _data, _cmd);
- } else {
- addPolyligne(_seq, _data, _cmd);
- }
- }
-
- public void addGeometry(final Geometry _seq, final Object[] _data, final CtuluCommandContainer _cmd) {
- final LineString s = (LineString) _seq;
- if (s.isClosed()) {
- addPolygone(s.getCoordinateSequence(), _data, _cmd);
- } else {
- addPolyligne(s.getCoordinateSequence(), _data, _cmd);
- }
- }
-
- /**
- * @todo Les poly de niveau sont mal trait\xE9es
- */
- public void addPoint(final int _ligneIdx, final int _idxBefore, final double _x, final double _y,
- final CtuluCommandContainer _cmd) {
- if (!isGeomModifiable_) {
- return;
- }
- LineString str = (LineString) super.geometry_.getValueAt(_ligneIdx);
- final CoordinateSequence newSeq = str.getCoordinateSequence();
- final int initSize = newSeq.size();
- final Coordinate[] cs = new Coordinate[initSize + 1];
- int idx = 0;
- for (int i = 0; i < initSize; i++) {
- cs[idx++] = newSeq.getCoordinateCopy(i);
- if (i == _idxBefore) {
- cs[idx++] = new Coordinate(_x, _y, newSeq.getOrdinate(i, 2));
- }
- }
-
- if (str/*.isClosed()*/ instanceof GISPolygone) {
- str = GISGeometryFactory.INSTANCE.createLinearRing(cs);
- setValue(_ligneIdx, (GISPolygone) str, _cmd);
- }
- else if (str instanceof GISPolyligne) {
- str = GISGeometryFactory.INSTANCE.createLineString(cs);
- setValue(_ligneIdx, (GISPolyligne) str, _cmd);
- }
- }
-
- public void addPolygone(final CoordinateSequence _g, final CtuluCommandContainer _cmd) {
- addPolygone((GISPolygone) GISGeometryFactory.INSTANCE.createLinearRing(_g), _cmd);
- }
-
- public void addPolygone(final CoordinateSequence _g, final Object[] _data, final CtuluCommandContainer _cmd) {
- addPolygone((GISPolygone) GISGeometryFactory.INSTANCE.createLinearRing(_g), _data, _cmd);
- }
-
- public void addPolygone(final GISPolygone _g, final CtuluCommandContainer _cmd) {
- addPolygone(_g, null, _cmd);
- }
-
- public void addPolygone(final GISPolygone _g, final Object[] _data, final CtuluCommandContainer _cmd) {
- if (isGeomModifiable_) {
- super.geometry_.add(_g, Arrays.asList(createAttributeList(_data, _g, true)), _cmd);
- }
- }
-
- public void addPolygoneNiveau(final CoordinateSequence _g, final CtuluCommandContainer _cmd) {
- addPolygone((GISPolygone) GISGeometryFactory.INSTANCE.createLinearRingNiveau(_g), _cmd);
- }
-
- /**
- * Ajoute une polyligne sous forme d'une liste de coordonn\xE9es, avec attributs et gestionnaire de commandes.
- * @param _g La liste de coordonn\xE9es, renseign\xE9e en Z.
- * @param _data Les attributs, dans l'ordre dans lequel ils sont d\xE9finis dans la collection.
- * @param _cmd Le gestionnaire de commandes. Peut \xEAtre null.
- */
- public void addPolyligne(final CoordinateSequence _g, final Object[] _data, final CtuluCommandContainer _cmd) {
- addPolyligne((GISPolyligne) GISGeometryFactory.INSTANCE.createLineString(_g), _data, _cmd);
- }
-
- public void addPolyligne(final GISCoordinateSequence _g, final CtuluCommandContainer _cmd) {
- addPolyligne((GISPolyligne) GISGeometryFactory.INSTANCE.createLineString(_g), _cmd);
- }
-
- public void addPolyligne(final GISPolyligne _g, final CtuluCommandContainer _cmd) {
- addPolyligne(_g, null, _cmd);
- }
-
- /**
- * Ajoute une polyligne, avec attributs et gestionnaire de commandes.
- * @param _g La polyligne, renseign\xE9e en Z.
- * @param _data Les attributs, dans l'ordre dans lequel ils sont d\xE9finis dans la collection.
- * @param _cmd Le gestionnaire de commandes. Peut \xEAtre null.
- */
- public void addPolyligne(final GISPolyligne _g, final Object[] _data, final CtuluCommandContainer _cmd) {
- if (isGeomModifiable_) {
- super.geometry_.add(_g, Arrays.asList(createAttributeList(_data, _g, false)), _cmd);
- }
- }
-
- public void addPolyligneNiveau(final GISCoordinateSequence _g, final CtuluCommandContainer _cmd) {
- addPolyligne((GISPolyligne) GISGeometryFactory.INSTANCE.createLineStringNiveau(_g), _cmd);
- }
-
- public boolean containsAtomicAttribute() {
- for (int i = getNbAttributes() - 1; i >= 0; i--) {
- if (getAttribute(i).isAtomicValue()) {
- return true;
- }
- }
- return false;
- }
-
- /**
- * @return true si contient au moins un polygone (ligne brisee fermee).
- */
- public boolean containsPolygone() {
- final GISVisitorChooser chooser = new GISVisitorChooser();
- for (int i = getNumGeometries() - 1; i >= 0; i--) {
- ((GISGeometry) getGeometry(i)).accept(chooser);
- if (chooser.isPolygone()) {
- return true;
- }
- }
- return false;
- }
-
- /**
- * @return true si contient au moins un polygone (ligne brisee fermee).
- */
- public boolean containsPolyligne() {
- final GISVisitorChooser chooser = new GISVisitorChooser();
- for (int i = getNumGeometries() - 1; i >= 0; i--) {
- ((GISGeometry) getGeometry(i)).accept(chooser);
- if (chooser.isPolyligne()) {
- return true;
- }
- }
- return false;
- }
-
- public CoordinateSequence getCoordinateSequence(final int _i) {
- return ((LineString) getGeometry(_i)).getCoordinateSequence();
- }
-
- public Class getDataStoreClass() {
- return LineString.class;
- }
-
- public double getDoubleValue(final int _idxAtt, final int _idxGeom) {
- if (getAttribute(_idxAtt).isAtomicValue()) {
- return CtuluLibArray.getMoyenne(((CtuluCollectionDouble) getModel(_idxAtt).getObjectValueAt(_idxGeom)).getValues());
- }
- return ((CtuluCollectionDouble) getModel(_idxAtt)).getValue(_idxGeom);
- }
-
- public void postImport(final int _firstIdx) {
- final GISAttributeModel model = getModel(attributeIsZ_);
- if (attributeIsZ_ == null || model == null) return;
-
- if (attributeIsZ_.isAtomicValue()) {
- final int nb = getNumGeometries();
- for (int i = (_firstIdx < 0 ? 0 : _firstIdx); i < nb; i++) {
- final CoordinateSequence seq = getCoordinateSequence(i);
- final GISAttributeModelDoubleArray arr = (GISAttributeModelDoubleArray) model.getObjectValueAt(i);
- for (int k = seq.size() - 1; k >= 0; k--) {
- arr.set(k, seq.getOrdinate(k, 2));
- }
- }
- }
- // L'attribut est global : On r\xE9cup\xE9re les coordonn\xE9es, qu'on moyenne.
- else {
- final int nb = getNumGeometries();
- for (int i = (_firstIdx < 0 ? 0 : _firstIdx); i < nb; i++) {
- final CoordinateSequence seq = getCoordinateSequence(i);
- double moy=0;
- for (int k = seq.size() - 1; k >= 0; k--) {
- moy+=seq.getOrdinate(k, 2);
- }
- model.setObject(i,new Double(moy/seq.size()),null);
- }
- }
- }
-
- public boolean removeAtomicValue(final int _idxGeom, final CtuluListSelectionInterface _sel, final CtuluUI _ui,
- final CtuluCommandContainer _cmd) {
- if (_sel == null || _sel.isEmpty()) {
- return false;
- }
- boolean r = true;
- final LineString line = (LineString) getGeometry(_idxGeom);
- int nbPt = line.getCoordinateSequence().size();
- // les nouvelles coordonnees.
- final Coordinate[] newCs = new Coordinate[nbPt];
- // cette liste contient les indice a enlever : creee que si necessaire
- // si des attribute atomics existent
- final TIntArrayList idxToRemove = containsAtomicAttribute() ? new TIntArrayList(nbPt) : null;
- // dans le cas polygone le dernier point n'est pas a considerer=premier point
- if (line/*.isClosed()*/ instanceof GISPolygone) {
- nbPt--;
- }
-
- // compteur tempo
- int count = 0;
- for (int idxPt = 0; idxPt < nbPt; idxPt++) {
- if (_sel.isSelected(idxPt)) {
- if (idxToRemove != null) {
- idxToRemove.add(idxPt);
- }
- } else {
- newCs[count++] = line.getCoordinateSequence().getCoordinateCopy(idxPt);
- }
- }
- LineString newString = null;
-
- // Un polygone
- if (line/*.isClosed()*/ instanceof GISPolygone) {
- if (count < 3) {
- r = false;
- if (_ui != null) {
- _ui.error(null, CtuluLib.getS("La ligne brisee doit contenir {0} points au moins", CtuluLibString.TROIS),
- false);
- }
-
- } else {
- newCs[count++] = newCs[0];
- final Coordinate[] coord = new Coordinate[count];
- System.arraycopy(newCs, 0, coord, 0, coord.length);
- newString = GISGeometryFactory.INSTANCE.createLinearRing(coord);
- newString.setUserData(line.getUserData());
- }
- }
-
- // Une polyligne
- else if (line instanceof GISPolyligne) {
- if (count < 2) {
- r = false;
- if (_ui != null) {
- _ui.error(null, CtuluLib.getS("La ligne brisee doit contenir {0} points au moins", CtuluLibString.DEUX),
- false);
- }
- if (FuLog.isTrace()) {
- FuLog.trace("EBLI: polylignes: not enough points");
- // message
- }
- } else {
- final Coordinate[] coord = new Coordinate[count];
- System.arraycopy(newCs, 0, coord, 0, coord.length);
- newString = GISGeometryFactory.INSTANCE.createLineString(coord);
- newString.setUserData(line.getUserData());
- }
- }
-
- if (r) {
- final CtuluCommandComposite cmp = new CtuluCommandComposite();
- super.geometry_.setObject(_idxGeom, newString, cmp);
- // si des attributs atomics sont concerne
- if (idxToRemove != null && idxToRemove.size() > 0) {
- final int[] idx = idxToRemove.toNativeArray();
- Arrays.sort(idx);
- for (int i = getNbAttributes() - 1; i >= 0; i--) {
- // attribut atomic
- if (getAttribute(i).isAtomicValue()) {
- // dans ce cas on recupere le model contenant cet attribut
- final GISAttributeModel m = getModelListener(i);
- // on recupere le sous-model concerne par la modif de geometrie
- final GISAttributeModel atomicModel = (GISAttributeModel) m.getObjectValueAt(_idxGeom);
- // on le change
- m.setObject(_idxGeom, atomicModel.createSubModel(idx), cmp);
- }
- }
- }
- if (_cmd!=null)
- _cmd.addCmd(cmp.getSimplify());
- }
- return r;
- }
-
- public void removeLignes(final int[] _idx, final CtuluCommandContainer _cmd) {
- super.geometry_.remove(_idx, _cmd);
- }
-
- public void setCoordinateSequence(final int _idx, final CoordinateSequence _newSeq, final CtuluCommandContainer _cmd) {
- final LineString old = (LineString) super.geometry_.getValueAt(_idx);
- if (_newSeq != null && _newSeq.size() == old.getNumPoints()) {
- final CoordinateSequence seq = GISGeometryFactory.INSTANCE.getCoordinateSequenceFactory().create(_newSeq);
- if (old/*.isClosed()*/ instanceof GISPolygone) {
- geometry_.setObject(_idx, GISGeometryFactory.INSTANCE.createLinearRing(seq), _cmd);
- } else {
- GISPolyligne nl = (GISPolyligne)GISGeometryFactory.INSTANCE.createLineString(seq);
- geometry_.setObject(_idx, nl, _cmd);
- }
- }
- }
-
-
- /**
- * Remplace une ancienne g\xE9om\xE9trie par un nouveau polygone, en interpolant si n\xE9cessaire les attributs.
- * @param _idx L'index de la g\xE9ometrie.
- * @param _newLine La nouvelle g\xE9om\xE9trie.
- * @param _cmd Le container de commandes.
- */
- public void setValue(final int _idx, final GISPolygone _newLine, final CtuluCommandContainer _cmd) {
- setValueIntern(_idx, _newLine, _cmd);
- }
-
- /**
- * Remplace une ancienne g\xE9om\xE9trie par une nouvelle polyligne, en interpolant si n\xE9cessaire les attributs.
- * @param _idx L'index de la g\xE9ometrie.
- * @param _newLine La nouvelle g\xE9om\xE9trie.
- * @param _cmd Le container de commandes.
- */
- public void setValue(final int _idx, final GISPolyligne _newLine, final CtuluCommandContainer _cmd) {
- setValueIntern(_idx, _newLine, _cmd);
- }
-
- public void updateListeners() {
- for (int i = getNbAttributes() - 1; i >= 0; i--) {
- final GISAttributeModelListener m = getModelListener(i);
- if (m != null) {
- if (m.getAttribute().isAtomicValue()) {
- for (int j = m.getSize() - 1; j >= 0; j--) {
- ((GISAttributeModelListener) m.getObjectValueAt(j)).setListener(this);
- }
-
- } else {
- m.setListener(this);
- }
- }
- }
- }
-}
+/*
+ * @creation 21 mars 2005
+ * @modification $Date: 2008-04-01 07:22:47 $
+ * @license GNU General Public License 2
+ * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
+ * @mail de...@fu...
+ */
+package org.fudaa.ctulu.gis;
+
+import gnu.trove.TIntArrayList;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import com.vividsolutions.jts.geom.Coordinate;
+import com.vividsolutions.jts.geom.CoordinateSequence;
+import com.vividsolutions.jts.geom.Geometry;
+import com.vividsolutions.jts.geom.LineString;
+
+import com.memoire.fu.FuLog;
+
+import org.fudaa.ctulu.CtuluCommandComposite;
+import org.fudaa.ctulu.CtuluCommandContainer;
+import org.fudaa.ctulu.CtuluLib;
+import org.fudaa.ctulu.CtuluLibArray;
+import org.fudaa.ctulu.CtuluLibString;
+import org.fudaa.ctulu.CtuluListSelectionInterface;
+import org.fudaa.ctulu.CtuluUI;
+import org.fudaa.ctulu.collection.CtuluCollectionDouble;
+
+/**
+ * @author Fred Deniger
+ * @version $Id: GISZoneCollectionLigneBrisee.java,v 1.20.6.4 2008-04-01 07:22:47 bmarchan Exp $
+ */
+public class GISZoneCollectionLigneBrisee extends GISZoneCollection {
+
+ public GISZoneCollectionLigneBrisee() {
+ this(null);
+ }
+
+ /**
+ * @param _listener le listener
+ */
+ public GISZoneCollectionLigneBrisee(final GISZoneListener _listener) {
+ this(10, _listener);
+ }
+
+ /**
+ * @param _listener le listener
+ */
+ public GISZoneCollectionLigneBrisee(final GISZoneListener _listener, final GISZoneCollectionLigneBrisee _br) {
+ this(10, _listener);
+ if (_br != null) {
+ for (int i = 0; i < _br.getNumGeometries(); i++) {
+ super.geometry_.add(_br.getGeometry(i), null, null);
+ }
+ }
+ }
+
+ public GISZoneCollectionLigneBrisee(final int _nbObject, final GISZoneListener _listener) {
+ super(_nbObject);
+ listener_ = _listener;
+ }
+
+ private List createListForSeveralAdd(final Object[][] _att, final int _nbGeom) {
+ final int nbAttributes = getNbAttributes();
+ final List attListe = new ArrayList(nbAttributes);
+ for (int i = 0; i < nbAttributes; i++) {
+ final Object[] oi = new Object[_nbGeom];
+ for (int j = 0; j < _nbGeom; j++) {
+ oi[j] = _att[j][i];
+ }
+ attListe.add(oi);
+ }
+ return attListe;
+ }
+
+ /**
+ * @param _idx l'indice de la ligne a changer
+ * @param _newLine la nouvelle ligne
+ * @param _cmd le receveur de commande
+ */
+ private void setValueIntern(final int _idx, final LineString _newLine, final CtuluCommandContainer _cmd) {
+ if (!isGeomModifiable_) {
+ return;
+ }
+ final LineString old = (LineString) super.geometry_.getValueAt(_idx);
+ if (old.getNumPoints() == _newLine.getNumPoints() || !containsAtomicAttribute()) {
+ super.geometry_.setObject(_idx, _newLine, _cmd);
+ } else {
+ final CtuluCommandComposite cmp = new CtuluCommandComposite();
+ for (int i = getNbAttributes() - 1; i >= 0; i--) {
+ final GISAttributeInterface att = getAttribute(i);
+ if (att.isAtomicValue()) {
+ final GISAttributeModel m = (GISAttributeModel) (getModelListener(i).getObjectValueAt(_idx));
+ final GISReprojectInterpolateurI interpolateur = GISZoneAttributeFactory.create1DInterpolateur(att, old,
+ _newLine, m);
+ getModelListener(i).setObject(_idx, m.deriveNewModel(_newLine.getNumPoints(), interpolateur), cmp);
+ }
+ }
+ super.geometry_.setObject(_idx, _newLine, cmp);
+ if (_cmd != null) {
+ _cmd.addCmd(cmp.getSimplify());
+ }
+ }
+ }
+
+ /**
+ * Cr\xE9e un tableau de valeurs d'attributs.<p>
+ *
+ * Les valeurs peuvent \xEAtre globales ou atomiques.
+ *
+ * @param _init Les valeurs d'initialisation, dans l'ordre et au nombre des mod\xE8les d'attributs.
+ * Si null, les valeurs par d\xE9faut sont affect\xE9es (voir {@link GISAttributeInterface#getDefaultValue()})
+ * @param _dest La g\xE9ometrie polyligne ou polygone.
+ * @param _isClosed Param\xE8tre inutilis\xE9.
+ * @return
+ */
+ protected Object[] createAttributeList(final Object[] _init, final Geometry _dest, final boolean _isClosed) {
+ final Object[] rf = new Object[getNbAttributes()];
+ if (_init != null && _init.length != getNbAttributes()) {
+ throw new IllegalArgumentException("bad size");
+ }
+ for (int i = getNbAttributes() - 1; i >= 0; i--) {
+ rf[i]=createOrAssignAttribut(i,_init==null?null:_init[i],_dest);
+ }
+ return rf;
+ }
+
+ public boolean accept(final GISVisitor _v) {
+ final int nb = getNumGeometries();
+ for (int i = 0; i < nb; i++) {
+ if (!((GISLigneBrisee) getGeometry(i)).accept(_v)) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ public void addAllLineStringClosedOrNode(final LineString[] _gs, final CtuluCommandContainer _cmd) {
+ if (isGeomModifiable_) {
+
+ final Object[][] att = new Object[_gs.length][];
+ for (int i = 0; i < _gs.length; i++) {
+ att[i] = createAttributeList(null, _gs[i], _gs[i].isClosed());
+ }
+
+ geometry_.addAll(_gs, createListForSeveralAdd(att, _gs.length), _cmd);
+ }
+ }
+
+ public void addAllPolygones(final GISPolygone[] _gs, final CtuluCommandContainer _cmd) {
+ if (isGeomModifiable_) {
+ final Object[][] att = new Object[_gs.length][];
+ for (int i = 0; i < _gs.length; i++) {
+ att[i] = createAttributeList(null, _gs[i], true);
+ }
+ geometry_.addAll(_gs, createListForSeveralAdd(att, _gs.length), _cmd);
+ }
+ }
+
+ public void addAllPolylignes(final GISPolyligne[] _gs, final CtuluCommandContainer _cmd) {
+ if (isGeomModifiable_) {
+ final Object[][] att = new Object[_gs.length][];
+ for (int i = 0; i < _gs.length; i++) {
+ att[i] = createAttributeList(null, _gs[i], false);
+ }
+ geometry_.addAll(_gs, createListForSeveralAdd(att, _gs.length), _cmd);
+ }
+ }
+
+ public void addCoordinateSequence(final CoordinateSequence _seq, final Object[] _data,
+ final CtuluCommandContainer _cmd) {
+ if (_seq == null || _seq.size() < 2) {
+ return;
+ }
+ if (_seq.size() > 3 && _seq.getCoordinate(0).equals2D(_seq.getCoordinate(_seq.size() - 1))) {
+ addPolygone(_seq, _data, _cmd);
+ } else {
+ addPolyligne(_seq, _data, _cmd);
+ }
+ }
+
+ public void addGeometry(final Geometry _seq, final Object[] _data, final CtuluCommandContainer _cmd) {
+ final LineString s = (LineString) _seq;
+ if (s.isClosed()) {
+ addPolygone(s.getCoordinateSequence(), _data, _cmd);
+ } else {
+ addPolyligne(s.getCoordinateSequence(), _data, _cmd);
+ }
+ }
+
+ /**
+ * @todo Les poly de niveau sont mal trait\xE9es
+ */
+ public void addPoint(final int _ligneIdx, final int _idxBefore, final double _x, final double _y,
+ final CtuluCommandContainer _cmd) {
+ if (!isGeomModifiable_) {
+ return;
+ }
+ LineString str = (LineString) super.geometry_.getValueAt(_ligneIdx);
+ final CoordinateSequence newSeq = str.getCoordinateSequence();
+ final int initSize = newSeq.size();
+ final Coordinate[] cs = new Coordinate[initSize + 1];
+ int idx = 0;
+ for (int i = 0; i < initSize; i++) {
+ cs[idx++] = newSeq.getCoordinateCopy(i);
+ if (i == _idxBefore) {
+ cs[idx++] = new Coordinate(_x, _y, newSeq.getOrdinate(i, 2));
+ }
+ }
+
+ if (str/*.isClosed()*/ instanceof GISPolygone) {
+ str = GISGeometryFactory.INSTANCE.createLinearRing(cs);
+ setValue(_ligneIdx, (GISPolygone) str, _cmd);
+ }
+ else if (str instanceof GISPolyligne) {
+ str = GISGeometryFactory.INSTANCE.createLineString(cs);
+ setValue(_ligneIdx, (GISPolyligne) str, _cmd);
+ }
+ }
+
+ public void addPolygone(final CoordinateSequence _g, final CtuluCommandContainer _cmd) {
+ addPolygone((GISPolygone) GISGeometryFactory.INSTANCE.createLinearRing(_g), _cmd);
+ }
+
+ public void addPolygone(final CoordinateSequence _g, final Object[] _data, final CtuluCommandContainer _cmd) {
+ addPolygone((GISPolygone) GISGeometryFactory.INSTANCE.createLinearRing(_g), _data, _cmd);
+ }
+
+ public void addPolygone(final GISPolygone _g, final CtuluCommandContainer _cmd) {
+ addPolygone(_g, null, _cmd);
+ }
+
+ public void addPolygone(final GISPolygone _g, final Object[] _data, final CtuluCommandContainer _cmd) {
+ if (isGeomModifiable_) {
+ super.geometry_.add(_g, Arrays.asList(createAttributeList(_data, _g, true)), _cmd);
+ }
+ }
+
+ public void addPolygoneNiveau(final CoordinateSequence _g, final CtuluCommandContainer _cmd) {
+ addPolygone((GISPolygone) GISGeometryFactory.INSTANCE.createLinearRingNiveau(_g), _cmd);
+ }
+
+ /**
+ * Ajoute une polyligne sous forme d'une liste de coordonn\xE9es, avec attributs et gestionnaire de commandes.
+ * @param _g La liste de coordonn\xE9es, renseign\xE9e en Z.
+ * @param _data Les attributs, dans l'ordre dans lequel ils sont d\xE9finis dans la collection.
+ * @param _cmd Le gestionnaire de commandes. Peut \xEAtre null.
+ */
+ public void addPolyligne(final CoordinateSequence _g, final Object[] _data, final CtuluCommandContainer _cmd) {
+ addPolyligne((GISPolyligne) GISGeometryFactory.INSTANCE.createLineString(_g), _data, _cmd);
+ }
+
+ public void addPolyligne(final GISCoordinateSequence _g, final CtuluCommandContainer _cmd) {
+ addPolyligne((GISPolyligne) GISGeometryFactory.INSTANCE.createLineString(_g), _cmd);
+ }
+
+ public void addPolyligne(final GISPolyligne _g, final CtuluCommandContainer _cmd) {
+ addPolyligne(_g, null, _cmd);
+ }
+
+ /**
+ * Ajoute une polyligne, avec attributs et gestionnaire de commandes.
+ * @param _g La polyligne, renseign\xE9e en Z.
+ * @param _data Les attributs, dans l'ordre dans lequel ils sont d\xE9finis dans la collection.
+ * @param _cmd Le gestionnaire de commandes. Peut \xEAtre null.
+ */
+ public void addPolyligne(final GISPolyligne _g, final Object[] _data, final CtuluCommandContainer _cmd) {
+ if (isGeomModifiable_) {
+ super.geometry_.add(_g, Arrays.asList(createAttributeList(_data, _g, false)), _cmd);
+ }
+ }
+
+ public void addPolyligneNiveau(final GISCoordinateSequence _g, final CtuluCommandContainer _cmd) {
+ addPolyligne((GISPolyligne) GISGeometryFactory.INSTANCE.createLineStringNiveau(_g), _cmd);
+ }
+
+ public boolean containsAtomicAttribute() {
+ for (int i = getNbAttributes() - 1; i >= 0; i--) {
+ if (getAttribute(i).isAtomicValue()) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * @return true si contient au moins un polygone (ligne brisee fermee).
+ */
+ public boolean containsPolygone() {
+ final GISVisitorChooser chooser = new GISVisitorChooser();
+ for (int i = getNumGeometries() - 1; i >= 0; i--) {
+ ((GISGeometry) getGeometry(i)).accept(chooser);
+ if (chooser.isPolygone()) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * @return true si contient au moins un polygone (ligne brisee fermee).
+ */
+ public boolean containsPolyligne() {
+ final GISVisitorChooser chooser = new GISVisitorChooser();
+ for (int i = getNumGeometries() - 1; i >= 0; i--) {
+ ((GISGeometry) getGeometry(i)).accept(chooser);
+ if (chooser.isPolyligne()) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public CoordinateSequence getCoordinateSequence(final int _i) {
+ return ((LineString) getGeometry(_i)).getCoordinateSequence();
+ }
+
+ public Class getDataStoreClass() {
+ return LineString.class;
+ }
+
+ public double getDoubleValue(final int _idxAtt, final int _idxGeom) {
+ if (getAttribute(_idxAtt).isAtomicValue()) {
+ return CtuluLibArray.getMoyenne(((CtuluCollectionDouble) getModel(_idxAtt).getObjectValueAt(_idxGeom)).getValues());
+ }
+ return ((CtuluCollectionDouble) getModel(_idxAtt)).getValue(_idxGeom);
+ }
+
+ public void postImport(final int _firstIdx) {
+ final GISAttributeModel model = getModel(attributeIsZ_);
+ if (attributeIsZ_ == null || model == null) return;
+
+ if (attributeIsZ_.isAtomicValue()) {
+ final int nb = getNumGeometries();
+ for (int i = (_firstIdx < 0 ? 0 : _firstIdx); i < nb; i++) {
+ final CoordinateSequence seq = getCoordinateSequence(i);
+ final GISAttributeModelDoubleArray arr = (GISAttributeModelDoubleArray) model.getObjectValueAt(i);
+ for (int k = seq.size() - 1; k >= 0; k--) {
+ arr.set(k, seq.getOrdinate(k, 2));
+ }
+ }
+ }
+ // L'attribut est global : On r\xE9cup\xE9re les coordonn\xE9es, qu'on moyenne.
+ else {
+ final int nb = getNumGeometries();
+ for (int i = (_firstIdx < 0 ? 0 : _firstIdx); i < nb; i++) {
+ final CoordinateSequence seq = getCoordinateSequence(i);
+ double moy=0;
+ for (int k = seq.size() - 1; k >= 0; k--) {
+ moy+=seq.getOrdinate(k, 2);
+ }
+ model.setObject(i,new Double(moy/seq.size()),null);
+ }
+ }
+ }
+
+ public boolean removeAtomicValue(final int _idxGeom, final CtuluListSelectionInterface _sel, final CtuluUI _ui,
+ final CtuluCommandContainer _cmd) {
+ if (_sel == null || _sel.isEmpty()) {
+ return false;
+ }
+ boolean r = true;
+ final LineString line = (LineString) getGeometry(_idxGeom);
+ int nbPt = line.getCoordinateSequence().size();
+ // les nouvelles coordonnees.
+ final Coordinate[] newCs = new Coordinate[nbPt];
+ // cette liste contient les indice a enlever : creee que si necessaire
+ // si des attribute atomics existent
+ final TIntArrayList idxToRemove = containsAtomicAttribute() ? new TIntArrayList(nbPt) : null;
+ // dans le cas polygone le dernier point n'est pas a considerer=premier point
+ if (line/*.isClosed()*/ instanceof GISPolygone) {
+ nbPt--;
+ }
+
+ // compteur tempo
+ int count = 0;
+ for (int idxPt = 0; idxPt < nbPt; idxPt++) {
+ if (_sel.isSelected(idxPt)) {
+ if (idxToRemove != null) {
+ idxToRemove.add(idxPt);
+ }
+ } else {
+ newCs[count++] = line.getCoordinateSequence().getCoordinateCopy(idxPt);
+ }
+ }
+ LineString newString = null;
+
+ // Un polygone
+ if (line/*.isClosed()*/ instanceof GISPolygone) {
+ if (count < 3) {
+ r = false;
+ if (_ui != null) {
+ _ui.error(null, CtuluLib.getS("La ligne brisee doit contenir {0} points au moins", CtuluLibString.TROIS),
+ false);
+ }
+
+ } else {
+ newCs[count++] = newCs[0];
+ final Coordinate[] coord = new Coordinate[count];
+ System.arraycopy(newCs, 0, coord, 0, coord.length);
+ newString = GISGeometryFactory.INSTANCE.createLinearRing(coord);
+ newString.setUserData(line.getUserData());
+ }
+ }
+
+ // Une polyligne
+ else if (line instanceof GISPolyligne) {
+ if (count < 2) {
+ r = false;
+ if (_ui != null) {
+ _ui.error(null, CtuluLib.getS("La ligne brisee doit contenir {0} points au moins", CtuluLibString.DEUX),
+ false);
+ }
+ if (FuLog.isTrace()) {
+ FuLog.trace("EBLI: polylignes: not enough points");
+ // message
+ }
+ } else {
+ final Coordinate[] coord = new Coordinate[count];
+ System.arraycopy(newCs, 0, coord, 0, coord.length);
+ newString = GISGeometryFactory.INSTANCE.createLineString(coord);
+ newString.setUserData(line.getUserData());
+ }
+ }
+
+ if (r) {
+ final CtuluCommandComposite cmp = new CtuluCommandComposite();
+ super.geometry_.setObject(_idxGeom, newStrin...
[truncated message content] |
|
From: <bma...@us...> - 2008-07-10 07:45:29
|
Revision: 3679
http://fudaa.svn.sourceforge.net/fudaa/?rev=3679&view=rev
Author: bmarchan
Date: 2008-07-10 00:45:36 -0700 (Thu, 10 Jul 2008)
Log Message:
-----------
Un peu de doc
Modified Paths:
--------------
branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeInterface.java
branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeModel.java
branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISDataModel.java
branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISGuiBuilder.java
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeInterface.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeInterface.java 2008-07-10 07:42:43 UTC (rev 3678)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeInterface.java 2008-07-10 07:45:36 UTC (rev 3679)
@@ -1,98 +1,108 @@
-/*
- * @creation 7 avr. 2005
- * @modification $Date: 2008-02-06 18:04:21 $
- * @license GNU General Public License 2
- * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
- * @mail de...@fu...
- */
-package org.fudaa.ctulu.gis;
-
-import org.fudaa.ctulu.CtuluVariable;
-import org.fudaa.ctulu.gui.CtuluValueEditorI;
-
-/**
- * Une interface pour un attribut qui peut \xEAtre associ\xE9 aux objets GIS. Un attribut peut
- * \xEAtre global \xE0 l'objet auquel il est associ\xE9, ou atomique.<p>
- *
- * Lorsqu'il est atomique, il est associ\xE9 \xE0 chaque sous partie d'un objet. Exemple : les
- * points d'une ligne.
- *
- * @author Fred Deniger
- * @version $Id: GISAttributeInterface.java,v 1.9.8.2 2008-02-06 18:04:21 bmarchan Exp $
- */
-public interface GISAttributeInterface extends CtuluVariable {
-
- boolean isEditable();
-
- boolean isUserVisible();
-
- boolean isSameContent(final GISAttributeInterface _att);
-
-
- /**
- * @param _nbValues
- * @return un modele a utilise pour des donn\xE9es sur les vertex
- */
- GISAttributeModelListener createAtomicModel(Object[] _initValues, int _nbValues);
-
- /**
- * Permet de creer facilement les donn\xE9es correspondant a l'att.
- *
- * @param _initValues la ou les valeurs initiales, peut etre null. Si c'est un tableau et l'attribute est global, la
- * moyenne sera prise. Inversement, l'objet sera duplique si un tableau doit etre construit.
- * @param _nbPt le nombre de points pour l'objet geometriques correspondant
- * @return l'objet correspondant. Si atomique, un {@link GISAttributeModelListener} est renvoy\xE9. Sinon,
- * retourne un objet de classe {@link #getDataClass()}
- */
- Object createDataForGeom(Object _initValues, int _nbPt);
-
- /**
- * @param _defaultCap la capacit\xE9 par defaut: optimisation.
- * @return le modele a utiliser pour une liste variable en taille.
- */
- GISAttributeModelListener createListModel(int _defaultCap);
-
- /**
- * @return la valeur par defaut
- */
- Object getDefaultValue();
-
- boolean setName(String _s);
-
- /**
- * Retourne les donn\xE9es utilisateur, autres que les valeurs d'attributs.
- * @return donnee utilisateur
- */
- Object getUserData();
-
- /**
- * Affecte des donn\xE9es utilisateur, autres que les valeurs d'attributs.
- * @param _userData donnee utilisateur
- */
- void setUserData(Object _userData);
-
- /**
- * Par exemple renvoie double.
- *
- * @return la classe primitive
- */
- Class getDataClass();
-
- /**
- * @return l'\xE9diteur associe
- */
- CtuluValueEditorI getEditor();
-
- /**
- * @return le nombre de chiffres apr\xE8s la virgule
- */
- int getPrecision();
-
- /**
- * Retourne l'atomicit\xE9 de l'attribut (a utiliser pour les polygones,polylignes).
- *
- * @return si true, cet attribut signifie que les valeurs sont associees a chaque point
- */
- boolean isAtomicValue();
-
-}
+/*
+ * @creation 7 avr. 2005
+ * @modification $Date: 2008-02-06 18:04:21 $
+ * @license GNU General Public License 2
+ * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
+ * @mail de...@fu...
+ */
+package org.fudaa.ctulu.gis;
+
+import org.fudaa.ctulu.CtuluVariable;
+import org.fudaa.ctulu.gui.CtuluValueEditorI;
+
+/**
+ * Une interface pour un attribut qui peut \xEAtre associ\xE9 aux objets GIS. Un attribut peut
+ * \xEAtre global \xE0 l'objet auquel il est associ\xE9, ou atomique.<p>
+ *
+ * Lorsqu'il est atomique, il est associ\xE9 \xE0 chaque sous partie d'un objet. Exemple : les
+ * points d'une ligne.
+ *
+ * @author Fred Deniger
+ * @version $Id: GISAttributeInterface.java,v 1.9.8.2 2008-02-06 18:04:21 bmarchan Exp $
+ */
+public interface GISAttributeInterface extends CtuluVariable {
+
+ /**
+ * D\xE9termine si l'attribut est \xE9ditable dans les \xE9diteurs.<p>
+ * FIXME BM: Actuellement, un attribut non \xE9ditable est invisible dans les \xE9diteurs.
+ * @return Si true : Editable
+ */
+ boolean isEditable();
+
+ /**
+ * D\xE9termine si l'attribut est visible de l'utilisateur. Si c'est le cas, il est \xE9galement non \xE9ditable.<p>
+ * FIXME BM: Lorsque l'attribut est \xE9ditable et invisible, on peut tout de m\xEAme l'\xE9diter.
+ * @return Si true : Visible
+ */
+ boolean isUserVisible();
+
+ boolean isSameContent(final GISAttributeInterface _att);
+
+
+ /**
+ * @param _nbValues
+ * @return un modele a utilise pour des donn\xE9es sur les vertex
+ */
+ GISAttributeModelListener createAtomicModel(Object[] _initValues, int _nbValues);
+
+ /**
+ * Permet de creer facilement les donn\xE9es correspondant a l'att.
+ *
+ * @param _initValues la ou les valeurs initiales, peut etre null. Si c'est un tableau et l'attribute est global, la
+ * moyenne sera prise. Inversement, l'objet sera duplique si un tableau doit etre construit.
+ * @param _nbPt le nombre de points pour l'objet geometriques correspondant
+ * @return l'objet correspondant. Si atomique, un {@link GISAttributeModelListener} est renvoy\xE9. Sinon,
+ * retourne un objet de classe {@link #getDataClass()}
+ */
+ Object createDataForGeom(Object _initValues, int _nbPt);
+
+ /**
+ * @param _defaultCap la capacit\xE9 par defaut: optimisation.
+ * @return le modele a utiliser pour une liste variable en taille.
+ */
+ GISAttributeModelListener createListModel(int _defaultCap);
+
+ /**
+ * @return la valeur par defaut
+ */
+ Object getDefaultValue();
+
+ boolean setName(String _s);
+
+ /**
+ * Retourne les donn\xE9es utilisateur, autres que les valeurs d'attributs.
+ * @return donnee utilisateur
+ */
+ Object getUserData();
+
+ /**
+ * Affecte des donn\xE9es utilisateur, autres que les valeurs d'attributs.
+ * @param _userData donnee utilisateur
+ */
+ void setUserData(Object _userData);
+
+ /**
+ * Par exemple renvoie double.
+ *
+ * @return la classe primitive
+ */
+ Class getDataClass();
+
+ /**
+ * @return l'\xE9diteur associe
+ */
+ CtuluValueEditorI getEditor();
+
+ /**
+ * @return le nombre de chiffres apr\xE8s la virgule
+ */
+ int getPrecision();
+
+ /**
+ * Retourne l'atomicit\xE9 de l'attribut (a utiliser pour les polygones,polylignes).
+ *
+ * @return si true, cet attribut signifie que les valeurs sont associees a chaque point
+ */
+ boolean isAtomicValue();
+
+}
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeModel.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeModel.java 2008-07-10 07:42:43 UTC (rev 3678)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeModel.java 2008-07-10 07:45:36 UTC (rev 3679)
@@ -12,7 +12,7 @@
import org.fudaa.ctulu.collection.CtuluCollection;
/**
- * Un mod\xE8le associant une valeur \xE0 chaque objet d'une collection GIS {@link GISZoneCollection} pour
+ * Un mod\xE8le associant une valeur \xE0 chaque g\xE9ometrie d'une collection GIS {@link GISZoneCollection} pour
* un attribut particulier.<p>
*
* Une collection GIS peut comporter plusieurs de ces mod\xE8les.
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISDataModel.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISDataModel.java 2008-07-10 07:42:43 UTC (rev 3678)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISDataModel.java 2008-07-10 07:45:36 UTC (rev 3679)
@@ -1,84 +1,84 @@
-/*
- * @creation 20 mai 2005
- * @modification $Date: 2006-12-05 10:12:51 $
- * @license GNU General Public License 2
- * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
- * @mail de...@fu...
- */
-package org.fudaa.ctulu.gis;
-
-import com.vividsolutions.jts.geom.Envelope;
-import com.vividsolutions.jts.geom.Geometry;
-
-import org.fudaa.ctulu.ProgressionInterface;
-
-/**
- * Un mod\xE8le associant des valeurs d'attributs \xE0 un ensemble de g\xE9om\xE9tries.
- * Dans ce mod\xE8le, les g\xE9om\xE9tries ont toutes le m\xEAme nombre d'attributs du m\xEAme type dans le m\xEAme ordre.
- * Les g\xE9om\xE9tries peuvent \xEAtre ou non de m\xEAme type.
- *
- * @author Fred Deniger
- * @version $Id: GISDataModel.java,v 1.6 2006-12-05 10:12:51 deniger Exp $
- */
-public interface GISDataModel {
-
- /**
- * @return le nombre de geometries definies dans ce source
- */
- int getNumGeometries();
-
- /**
- * Cette m\xE9thode est utile lorsqu'on charge des donn\xE9es issues de sig.
- * Elle permet de charger en memoire les donn\xE9es des attributs <code>_att</code>
- *
- * @param _att les attributs a charger
- */
- void preload(GISAttributeInterface[] _att, ProgressionInterface _prog);
-
- /**
- * Permet de recuperer le polygone recouvrant si calcule (null sinon).
- *
- * @return le polygone recouvrant. Peut etre null si le calcul n'est pas immediat
- */
- Envelope getEnvelopeInternal();
-
- /**
- * @return le nombre d'attributs definis.
- */
- int getNbAttributes();
-
- /**
- * @param _idxGeom l'indice de la geometrie [0,getNbGeometries[
- * @return la geometrie _i
- */
- Geometry getGeometry(int _idxGeom);
-
- /**
- * @param _idxAtt l'indice de l'attribute [0,getNbAttributes[
- * @return la description de l'attribut _i
- */
- GISAttributeInterface getAttribute(final int _idxAtt);
-
- /**
- * @param _att l'attribut a tester
- * @return l'indice de l'attribut.
- */
- int getIndiceOf(GISAttributeInterface _att);
-
- /**
- * @param _idxAtt l'indice de l'attribute
- * @param _idxGeom l'indice de la geometrie
- * @return la valeur demande ou null si mauvais indices
- */
- Object getValue(final int _idxAtt, int _idxGeom);
-
- /**
- * Dangereux: a utiliser que si on est sur que les valeurs sont des double.
- *
- * @param _idxAtt l'indice de l'attributs
- * @param _idxGeom l'indice de la geom
- * @return la valeur correspondante.
- */
- double getDoubleValue(final int _idxAtt, int _idxGeom);
-
-}
+/*
+ * @creation 20 mai 2005
+ * @modification $Date: 2006-12-05 10:12:51 $
+ * @license GNU General Public License 2
+ * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
+ * @mail de...@fu...
+ */
+package org.fudaa.ctulu.gis;
+
+import com.vividsolutions.jts.geom.Envelope;
+import com.vividsolutions.jts.geom.Geometry;
+
+import org.fudaa.ctulu.ProgressionInterface;
+
+/**
+ * Un mod\xE8le associant des valeurs d'attributs \xE0 un ensemble de g\xE9om\xE9tries.
+ * Dans ce mod\xE8le, les g\xE9om\xE9tries ont toutes le m\xEAme nombre d'attributs du m\xEAme type dans le m\xEAme ordre.
+ * Les g\xE9om\xE9tries peuvent \xEAtre ou non de m\xEAme type.
+ *
+ * @author Fred Deniger
+ * @version $Id: GISDataModel.java,v 1.6 2006-12-05 10:12:51 deniger Exp $
+ */
+public interface GISDataModel {
+
+ /**
+ * @return le nombre de geometries definies dans ce source
+ */
+ int getNumGeometries();
+
+ /**
+ * Cette m\xE9thode est utile lorsqu'on charge des donn\xE9es issues de sig.
+ * Elle permet de charger en memoire les donn\xE9es des attributs <code>_att</code>
+ *
+ * @param _att les attributs a charger
+ */
+ void preload(GISAttributeInterface[] _att, ProgressionInterface _prog);
+
+ /**
+ * Permet de recuperer le polygone recouvrant si calcule (null sinon).
+ *
+ * @return le polygone recouvrant. Peut etre null si le calcul n'est pas immediat
+ */
+ Envelope getEnvelopeInternal();
+
+ /**
+ * @return le nombre d'attributs definis.
+ */
+ int getNbAttributes();
+
+ /**
+ * @param _idxGeom l'indice de la geometrie [0,getNbGeometries[
+ * @return la geometrie _i
+ */
+ Geometry getGeometry(int _idxGeom);
+
+ /**
+ * @param _idxAtt l'indice de l'attribute [0,getNbAttributes[
+ * @return l'attribut ou <code>null</code> si non trouv\xE9.
+ */
+ GISAttributeInterface getAttribute(final int _idxAtt);
+
+ /**
+ * @param _att l'attribut a tester
+ * @return l'indice de l'attribut. -1 si l'attribut est introuvable.
+ */
+ int getIndiceOf(GISAttributeInterface _att);
+
+ /**
+ * @param _idxAtt l'indice de l'attribute
+ * @param _idxGeom l'indice de la geometrie
+ * @return la valeur demande ou null si mauvais indices
+ */
+ Object getValue(final int _idxAtt, int _idxGeom);
+
+ /**
+ * Dangereux: a utiliser que si on est sur que les valeurs sont des double.
+ *
+ * @param _idxAtt l'indice de l'attributs
+ * @param _idxGeom l'indice de la geom
+ * @return la valeur correspondante.
+ */
+ double getDoubleValue(final int _idxAtt, int _idxGeom);
+
+}
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISGuiBuilder.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISGuiBuilder.java 2008-07-10 07:42:43 UTC (rev 3678)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISGuiBuilder.java 2008-07-10 07:45:36 UTC (rev 3679)
@@ -17,12 +17,20 @@
import org.fudaa.ctulu.gui.CtuluValuesEditorPanel;
/**
+ * Un builder de panneau d'\xE9ditions d'objets GIS.
* @author fred deniger
* @version $Id: GISGuiBuilder.java,v 1.5 2007-01-10 08:58:47 deniger Exp $
*/
public final class GISGuiBuilder {
private GISGuiBuilder() {}
+ /**
+ * Construction d'un panneau d'\xE9dition de plusieurs points d'une m\xEAme collection.
+ * @param _pt La collection de points
+ * @param _idx Les index des points de la collection concern\xE9s.
+ * @param _cmd Le manager de commandes.
+ * @return Un panneau d'\xE9dition.
+ */
public static CtuluValuesEditorPanel buildFor(final GISZoneCollectionPoint _pt, final int[] _idx, final CtuluCommandContainer _cmd) {
final List names = new ArrayList(_pt.getNbAttributes() + 2);
final List editor = new ArrayList(names.size());
@@ -34,6 +42,7 @@
model.add(_pt.createEditForX());
model.add(_pt.createEditForY());
for (int i = 0; i < _pt.getNbAttributes(); i++) {
+ // FIXME BM: G\xE9rer attribut non visible.
if (_pt.getAttribute(i).isEditable()) {
names.add(_pt.getAttribute(i).getName());
editor.add(_pt.getAttribute(i).getEditor());
@@ -45,6 +54,13 @@
.toArray(new CtuluCollection[model.size()]), _cmd);
}
+ /**
+ * Construction d'un panneau d'\xE9dition de plusieurs g\xE9om\xE9tries d'une m\xEAme collection.
+ * @param _pt La collection
+ * @param _idx Les index des g\xE9om\xE9tries de la collection concern\xE9s.
+ * @param _cmd Le manager de commandes.
+ * @return Un panneau d'\xE9dition.
+ */
public static CtuluValuesEditorPanel buildForGlobAtt(final GISZoneCollection _pt, final int[] _idx, final CtuluCommandContainer _cmd) {
final int nbAtt = _pt.getNbAttributes();
final List names = new ArrayList(nbAtt);
@@ -52,6 +68,7 @@
final List model = new ArrayList(nbAtt);
for (int i = 0; i < nbAtt; i++) {
final GISAttributeInterface att = _pt.getAttribute(i);
+ // FIXME BM: G\xE9rer attribut non visible.
if (!att.isAtomicValue() && att.isEditable()) {
names.add(att.getName());
editor.add(att.getEditor());
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2008-07-10 07:42:35
|
Revision: 3678
http://fudaa.svn.sourceforge.net/fudaa/?rev=3678&view=rev
Author: bmarchan
Date: 2008-07-10 00:42:43 -0700 (Thu, 10 Jul 2008)
Log Message:
-----------
Mise en place de l'exportation.
Modified Paths:
--------------
branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlEditionManager.java
branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlImplementation.java
branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigLayerExporter.java
branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigLayerFilter.java
Added Paths:
-----------
branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlProjectExportPanel.java
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlEditionManager.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlEditionManager.java 2008-07-09 16:21:37 UTC (rev 3677)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlEditionManager.java 2008-07-10 07:42:43 UTC (rev 3678)
@@ -7,21 +7,50 @@
*/
package org.fudaa.fudaa.modeleur;
+import java.io.File;
+import java.io.IOException;
import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import javax.swing.filechooser.FileFilter;
+
import org.fudaa.ctulu.CtuluCommandManager;
+import org.fudaa.ctulu.CtuluIOOperationSynthese;
+import org.fudaa.ctulu.CtuluRunnable;
+import org.fudaa.ctulu.CtuluTaskDelegate;
+import org.fudaa.ctulu.ProgressionInterface;
+import org.fudaa.ctulu.gis.factory.GISExportDataStoreFactory;
+import org.fudaa.ctulu.gui.CtuluDialogPanel;
+import org.fudaa.ctulu.gui.CtuluFileChooser;
+import org.fudaa.ctulu.gui.CtuluFileChooserTestWritable;
import org.fudaa.ctulu.gui.CtuluLibSwing;
+import org.fudaa.dodico.rubar.io.RubarStCnFileFormat;
+import org.fudaa.dodico.telemac.io.SinusxFileFormat;
+import org.fudaa.ebli.calque.BCalque;
+import org.fudaa.ebli.calque.action.SceneSplitAction;
import org.fudaa.ebli.calque.edition.ZCalqueEditable;
import org.fudaa.ebli.commun.EbliActionAbstract;
import org.fudaa.ebli.commun.EbliActionInterface;
+import org.fudaa.fudaa.commun.FudaaLib;
+import org.fudaa.fudaa.commun.impl.FudaaGuiLib;
+import org.fudaa.fudaa.commun.save.FudaaSaveLib;
+import org.fudaa.fudaa.commun.save.FudaaSaveZipLoader;
import org.fudaa.fudaa.modeleur.action.SceneDecimationAction;
import org.fudaa.fudaa.modeleur.action.SceneInterpolationAction;
import org.fudaa.fudaa.modeleur.action.SceneMoveInLayerAction;
import org.fudaa.fudaa.modeleur.action.SceneRefinementAction;
import org.fudaa.fudaa.sig.layer.FSigEditor;
+import org.fudaa.fudaa.sig.layer.FSigLayerExporter;
+import org.fudaa.fudaa.sig.layer.FSigLayerFilter;
import org.fudaa.fudaa.sig.layer.FSigVisuPanel;
+import org.geotools.data.FileDataStoreFactorySpi;
+import com.memoire.bu.BuFileFilter;
import com.memoire.bu.BuWizardDialog;
+import com.memoire.fu.FuLog;
/**
* Un manager pour l'\xE9dition des calques SIG.
@@ -29,27 +58,31 @@
* @version $Id: MdlEditionManager.java,v 1.1.2.8 2008/05/13 12:10:06 bmarchan Exp $
*/
public class MdlEditionManager extends FSigEditor {
-
+
/**
* Constructeur minium.
* @param _panel
* @param _cmd
*/
public MdlEditionManager(MdlVisuPanel _panel, CtuluCommandManager _cmd) {
- super(_panel, _cmd);
- setSceneEditor(new MdlSceneEditor(_panel,getSceneEditor().getScene()));
- installActions();
+ super(_panel, new MdlSceneEditor(_panel,_panel.getScene()), _cmd);
}
/**
* Installation des actions propres au modeleur.
*/
- private void installActions() {
+ protected void installSceneActions() {
+ super.installSceneActions();
+
ArrayList<EbliActionInterface> acts=new ArrayList<EbliActionInterface>();
- acts.add(new SceneInterpolationAction((MdlSceneEditor)getSceneEditor()));
- acts.add(new SceneMoveInLayerAction((MdlSceneEditor)getSceneEditor()));
- acts.add(new SceneDecimationAction((MdlSceneEditor)getSceneEditor()));
- acts.add(new SceneRefinementAction((MdlSceneEditor)getSceneEditor()));
+ EbliActionInterface[] actSuper=sceneEditor_.getScene().getActions();
+ if (actSuper!=null) acts.addAll(Arrays.asList(actSuper));
+
+ acts.add(new SceneSplitAction(sceneEditor_));
+ acts.add(new SceneInterpolationAction((MdlSceneEditor)sceneEditor_));
+ acts.add(new SceneMoveInLayerAction((MdlSceneEditor)sceneEditor_));
+ acts.add(new SceneDecimationAction((MdlSceneEditor)sceneEditor_));
+ acts.add(new SceneRefinementAction((MdlSceneEditor)sceneEditor_));
getSceneEditor().getScene().setActions(acts.toArray(new EbliActionAbstract[0]));
}
@@ -68,4 +101,45 @@
dialog.setLocationRelativeTo(getPanel());
dialog.setVisible(true);
}
+
+ public void exportSelectedLayer() {
+ MdlProjectExportPanel pn=new MdlProjectExportPanel(getUi());
+ if (CtuluDialogPanel.isCancelResponse(pn.afficheModale(getFrame(), FudaaLib.getS("Exporter les donn\xE9es de la fen\xEAtre active")))) return;
+
+ final FSigLayerFilter filter = new FSigLayerFilter();
+ if (pn.isAllLayers()) {
+ getPanel().getDonneesCalque().apply(filter);
+ }
+ else if (pn.isSelectedLayers()) {
+ final BCalque[] parent = super.getPanel().getArbreCalqueModel().getSelection();
+ if (parent!=null) {
+ for (int i = 0; i < parent.length; i++) {
+ parent[i].apply(filter);
+ }
+ }
+ }
+ else {
+ filter.setTreatmentOnlyOnVisible(true);
+ getPanel().getDonneesCalque().apply(filter);
+ }
+
+ if (filter.isEmpty()) {
+ return;
+ }
+
+ final File f=pn.getFile();
+ final FSigLayerExporter exporter=pn.getSelectedExporter();
+ new CtuluRunnable(FudaaLib.getS("Export de donn\xE9es"), getUi()) {
+
+ public boolean run(ProgressionInterface _proj) {
+ final CtuluIOOperationSynthese op = filter.exportTo(exporter, getUi(), f, _proj);
+ if (op != null) {
+ getUi().manageErrorOperationAndIsFatal(op);
+ }
+ return true;
+ }
+
+ }.run();
+
+ }
}
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlImplementation.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlImplementation.java 2008-07-09 16:21:37 UTC (rev 3677)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlImplementation.java 2008-07-10 07:42:43 UTC (rev 3678)
@@ -20,6 +20,7 @@
import javax.swing.JOptionPane;
import javax.swing.filechooser.FileFilter;
+import org.fudaa.ctulu.CtuluExportDataInterface;
import org.fudaa.ctulu.CtuluLibFile;
import org.fudaa.ctulu.CtuluRunnable;
import org.fudaa.ctulu.CtuluTaskDelegate;
@@ -56,6 +57,7 @@
import com.memoire.bu.BuMainPanel;
import com.memoire.bu.BuMenu;
import com.memoire.bu.BuMenuBar;
+import com.memoire.bu.BuMenuItem;
import com.memoire.bu.BuMenuRecentFiles;
import com.memoire.bu.BuPreferences;
import com.memoire.bu.BuRegistry;
@@ -157,6 +159,7 @@
setEnabledForAction("ENREGISTRERSOUS", bprjOpen);
setEnabledForAction("FERMER", bprjOpen);
setEnabledForAction("IMPORT_PROJECT", bprjOpen);
+ setEnabledForAction(CtuluExportDataInterface.EXPORT_CMD, bprjOpen);
}
void createNewInternalFrame(/*boolean _add*/) {
@@ -416,7 +419,7 @@
loader = pn.getLoader();
final FudaaSaveZipLoader finalLoader = loader;
final CtuluTaskDelegate createTask = createTask("Import d'un projet");
-// FIXME B.M. : Suppression de la tache dans un thread diff\xE9rent, car l'appli se bloque
+// FIXME BM: Suppression de la tache dans un thread diff\xE9rent, car l'appli se bloque
// Probable pb de deadlock.
// createTask.start(new Runnable() {
// public void run() {
@@ -574,6 +577,7 @@
setEnabledForAction("CREER", true);
setEnabledForAction("OUVRIR", true);
setEnabledForAction("IMPORTER", true);
+ setEnabledForAction("EXPORTER", true);
BuMenuRecentFiles mr= (BuMenuRecentFiles)mb.getMenu("REOUVRIR");
if (mr != null) {
@@ -598,6 +602,8 @@
// les menus exporter et importer sont construit dynamiquement
// b.getMenu(getExporterCmd()).addItemListener(this);
BuMenu mmImport = (BuMenu) mb.getMenu("IMPORTER");
+ BuMenu mnExport = (BuMenu) mb.getMenu("EXPORTER");
+
// menu.addMenuItem(FSigImageImportAction.getCommonTitle(), "IMPORT_IMAGE", FSigImageImportAction.getCommonImage(),
// this).setEnabled(false);
mmImport.addMenuItem(FudaaLib.getS("Importer un projet"), "IMPORT_PROJECT", BuResource.BU.getMenuIcon("importer"), this)
@@ -605,6 +611,11 @@
// menu.addItemListener(this);
setEnabledForAction("IMPORT_PROJECT", true);
mmImport.setEnabled(true);
+
+ BuMenuItem itExportData = new BuMenuItem();
+ super.initExportDataButton(itExportData);
+ mnExport.add(itExportData);
+
/* setEnabledForAction("RANGERICONES", true);
if (!isSupervisor()) {
final JComponent cp = getMainPanel().getMiddleComponent();
Added: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlProjectExportPanel.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlProjectExportPanel.java (rev 0)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlProjectExportPanel.java 2008-07-10 07:42:43 UTC (rev 3678)
@@ -0,0 +1,322 @@
+/*
+ * @creation 8 sept. 06
+ * @modification $Date: 2008/05/13 12:10:21 $
+ * @license GNU General Public License 2
+ * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
+ * @mail de...@fu...
+ */
+package org.fudaa.fudaa.modeleur;
+
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.Component;
+import java.awt.Dimension;
+import java.awt.Font;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import javax.swing.BorderFactory;
+import javax.swing.ButtonGroup;
+import javax.swing.JFileChooser;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTree;
+import javax.swing.UIManager;
+import javax.swing.border.Border;
+import javax.swing.event.CaretEvent;
+import javax.swing.event.CaretListener;
+import javax.swing.event.DocumentEvent;
+import javax.swing.event.DocumentListener;
+import javax.swing.filechooser.FileFilter;
+import javax.swing.tree.TreeCellRenderer;
+import javax.swing.tree.TreePath;
+
+import com.memoire.bu.BuButton;
+import com.memoire.bu.BuCheckBox;
+import com.memoire.bu.BuFileFilter;
+import com.memoire.bu.BuHorizontalLayout;
+import com.memoire.bu.BuLabel;
+import com.memoire.bu.BuRadioButton;
+import com.memoire.bu.BuResource;
+import com.memoire.bu.BuVerticalLayout;
+import com.memoire.fu.FuLog;
+
+import org.fudaa.ctulu.CtuluArkLoader;
+import org.fudaa.ctulu.CtuluLib;
+import org.fudaa.ctulu.CtuluLibString;
+import org.fudaa.ctulu.CtuluUI;
+import org.fudaa.ctulu.gis.factory.GISExportDataStoreFactory;
+import org.fudaa.ctulu.gui.CtuluCellRenderer;
+import org.fudaa.ctulu.gui.CtuluDialogPanel;
+import org.fudaa.ctulu.gui.CtuluFileChooser;
+import org.fudaa.ctulu.gui.CtuluFileChooserPanel;
+import org.fudaa.dodico.rubar.io.RubarStCnFileFormat;
+import org.fudaa.dodico.telemac.io.SinusxFileFormat;
+
+import org.fudaa.ebli.calque.BCalquePersistenceGroupe;
+
+import org.fudaa.fudaa.commun.FudaaLib;
+import org.fudaa.fudaa.commun.impl.FudaaGuiLib;
+import org.fudaa.fudaa.commun.save.FudaaSaveLib;
+import org.fudaa.fudaa.commun.save.FudaaSaveZipLoader;
+import org.fudaa.fudaa.modeleur.MdlImplementation.MdlFileFilter;
+import org.fudaa.fudaa.modeleur.MdlProjectImportTreeModel.LayerNode;
+import org.fudaa.fudaa.sig.FSigLib;
+import org.fudaa.fudaa.sig.layer.FSigLayerExporter;
+import org.fudaa.fudaa.tr.common.TrProjectPersistence;
+import org.fudaa.fudaa.tr.common.TrResource;
+import org.geotools.data.FileDataStoreFactorySpi;
+
+/**
+ * Un panneau pour exporter les donn\xE9es 2D.
+ * @author Bertrand Marchand
+ * @version $Id: MdlProjectImportPanel.java,v 1.1.2.1 2008/05/13 12:10:21 bmarchan Exp $
+ */
+public class MdlProjectExportPanel extends CtuluDialogPanel implements DocumentListener {
+
+
+/* public static class CellRenderer extends JLabel implements TreeCellRenderer {
+ final Color selectedBackground_ = UIManager.getColor("Tree.selectionBackground");
+ final Color selectedForground_ = UIManager.getColor("Tree.selectionForeground");
+ final Border focusBorderColor_ = BorderFactory.createLineBorder(UIManager.getColor("Tree.selectionBorderColor"), 1);
+
+ public CellRenderer() {
+ this.setOpaque(true);
+// setPreferredSize(new Dimension(120, 25));
+ }
+
+ protected boolean isSelectable(final Object _value, final boolean _leaf) {
+ return true;
+ }
+
+ public Component getTreeCellRendererComponent(final JTree _tree, final Object _value, final boolean _selected,
+ final boolean _expanded, final boolean _leaf, final int _row, final boolean _hasFocus) {
+ this.setFont(_tree.getFont());
+ setIcon(BuResource.BU.getIcon("calque"));
+ setText(_value.toString());
+ final boolean selectable = isSelectable(_value, _leaf);
+ if (_selected && selectable) {
+ setBackground(selectedBackground_);
+ setForeground(selectedForground_);
+ } else {
+ setBackground(_tree.getBackground());
+ setForeground(_tree.getForeground());
+ }
+ if (selectable) {
+ setToolTipText(getText());
+ } else {
+ setToolTipText(getText() + ": " + CtuluLib.getS("Non s\xE9lectionnable"));
+ }
+ setBorder((selectable && _hasFocus) ? focusBorderColor_ : CtuluCellRenderer.BORDER_NO_FOCUS);
+ setEnabled(_tree.isEnabled());
+ return this;
+ }
+ }
+*/
+ CtuluFileChooserPanel pn_;
+ String filename_="";
+ BuRadioButton rbAllLayers_;
+ BuRadioButton rbSelectedLayers_;
+ BuRadioButton rbVisibleLayers_;
+ BuFileFilter[] filters_;
+ CtuluUI ui_;
+ BuFileFilter selectedFilter_=null;
+ Map filter2Exporter_;
+
+// JTree trLayers_;
+// FudaaSaveZipLoader loader_=null;
+
+ public MdlProjectExportPanel(CtuluUI _ui) {
+ ui_=_ui;
+// ActionListener rbListener=new ActionListener() {
+// public void actionPerformed(ActionEvent _evt) {
+// if (rbSelectedLayers_.isSelected()) {
+// if (isFileOK()) loadFile();
+// }
+// trLayers_.setEnabled(rbSelectedLayers_.isSelected());
+// trLayers_.setModel(new MdlProjectImportTreeModel(loader_));
+// }
+// };
+
+ filters_=buildFilter2Export();
+
+ setLayout(new BuVerticalLayout(5,true,true));
+ final String title = FSigLib.getS("Fichier d'exportation");
+ pn_ = new CtuluFileChooserPanel(title);
+ pn_.setAllFileFilter(false);
+ pn_.setFileSelectMode(JFileChooser.FILES_ONLY);
+ pn_.setWriteMode(true);
+ pn_.setFilter(filters_);
+
+ BuLabel lbFile=new BuLabel(title);
+ JPanel pnFile=new JPanel();
+ pnFile.setLayout(new BorderLayout(3,3));
+ pnFile.add(lbFile,BorderLayout.WEST);
+ pnFile.add(pn_, BorderLayout.CENTER);
+ add(pnFile);
+
+ rbAllLayers_=new BuRadioButton("Exporter tous les calques");
+// rbAllLayers_.addActionListener(rbListener);
+ add(rbAllLayers_);
+
+ rbSelectedLayers_=new BuRadioButton("Exporter depuis les calques s\xE9lectionn\xE9s");
+// rbSelectedLayers_.addActionListener(rbListener);
+ add(rbSelectedLayers_);
+
+ rbVisibleLayers_=new BuRadioButton("Exporter les seuls calques visibles");
+// rbSelectedLayers_.addActionListener(rbListener);
+ add(rbVisibleLayers_);
+//
+ ButtonGroup bgLayers=new ButtonGroup();
+ bgLayers.add(rbAllLayers_);
+ bgLayers.add(rbSelectedLayers_);
+ bgLayers.add(rbVisibleLayers_);
+//
+// trLayers_=new JTree();
+// trLayers_.setShowsRootHandles(true);
+// trLayers_.setRootVisible(false);
+// trLayers_.setCellRenderer(new CellRenderer());
+// JScrollPane sp=new JScrollPane(trLayers_);
+// sp.setPreferredSize(new Dimension(300,200));
+// add(sp);
+//
+ rbAllLayers_.doClick();
+// pn_.getTf().getDocument().addDocumentListener(this);
+//
+ }
+
+ private BuFileFilter[] buildFilter2Export() {
+ final BuFileFilter sx = SinusxFileFormat.getInstance().createFileFilter();
+ final BuFileFilter st = RubarStCnFileFormat.createStFilter();
+ filter2Exporter_ = new HashMap(5);// pour l'instant .....
+
+ filter2Exporter_.put(sx, new FSigLayerExporter.ToSinusX());
+ filter2Exporter_.put(st, new FSigLayerExporter.ToRubar());
+// final Map dataStores = GISExportDataStoreFactory.buildFileFilterMap(false);
+// for (final Iterator it = dataStores.entrySet().iterator(); it.hasNext();) {
+// final Map.Entry e = (Map.Entry) it.next();
+// filter2Exporter_.put(e.getKey(), new FSigLayerExporter.DataStore((FileDataStoreFactorySpi) e.getValue()));
+// }
+
+ filters_ = new BuFileFilter[filter2Exporter_.size()];
+ filter2Exporter_.keySet().toArray(filters_);
+ return filters_;
+ }
+
+ public boolean valide() {
+ if (!isFileOK()) return false;
+//
+// // Mise a jour des \xE9tats des calques. Par defaut, les calques sopnt r\xE9cup\xE9r\xE9s.
+// if (rbSelectedLayers_.isSelected()) {
+// List<LayerNode> nds=getChildrenLeafs((LayerNode)trLayers_.getModel().getRoot());
+//
+// TreePath[] paths=trLayers_.getSelectionPaths();
+// if (paths!=null) {
+// for (TreePath path : paths) {
+// nds.remove((LayerNode)path.getLastPathComponent());
+// }
+// }
+//
+// for (LayerNode nd : nds) {
+// loader_.setOption(CtuluArkLoader.OPTION_LAYER_IGNORE+nd.name_,CtuluLibString.toString(true));
+// }
+// }
+ return true;
+ }
+
+// private List<LayerNode> getChildrenLeafs(LayerNode _nd) {
+// List<LayerNode> r=new ArrayList<LayerNode>();
+// int nb=_nd.getChildCount();
+// for (int i=0; i<nb; i++) {
+// LayerNode nd=(LayerNode)_nd.getChildAt(i);
+// if (nd.isLeaf()) {
+// r.add(nd);
+// }
+// else {
+// List<LayerNode> ls=getChildrenLeafs(nd);
+// r.addAll(ls);
+// }
+// }
+// return r;
+// }
+
+ private boolean isFileOK() {
+ final File f = pn_.getFile();
+ if (f == null) {
+ setErrorText(CtuluLib.getS("Donnez un nom au fichier d'exportation"));
+ return false;
+ }
+ if (f.exists() && !ui_.question(CtuluLib.getS("Attention"), CtuluLib.getS("Le fichier {0} existe d\xE9j\xE0. Voulez-vous l'\xE9craser?",
+ pn_.getFile().toString()))) {
+ return false;
+ }
+ boolean bextok=false;
+ for (int i=0; i<filters_.length; i++) {
+ if (filters_[i].accept(f)) {
+ selectedFilter_=filters_[i];
+ bextok=true;
+ }
+ }
+ if (!bextok) {
+ setErrorText(TrResource.getS("Le fichier choisi a une extension inconnue"));
+ return false;
+ }
+ setErrorText(null);
+ return true;
+ }
+
+ public File getFile() {
+ return pn_.getFile();
+ }
+
+ public FSigLayerExporter getSelectedExporter() {
+ return (FSigLayerExporter)filter2Exporter_.get(selectedFilter_);
+ }
+
+ public boolean isAllLayers() {
+ return rbAllLayers_.isSelected();
+ }
+
+ public boolean isSelectedLayers() {
+ return rbSelectedLayers_.isSelected();
+ }
+
+ public boolean isVisibleLayers() {
+ return rbVisibleLayers_.isSelected();
+ }
+// private FudaaSaveZipLoader loadFile() {
+// if (loader_!=null) return loader_;
+//
+// try {
+// loader_=new FudaaSaveZipLoader(pn_.getFile());
+// }
+// catch (IOException _exc) {
+// setErrorText(TrResource.getS("Le fichier n'est pas accessible"));
+// }
+// return loader_;
+// }
+
+ public void changedUpdate(final DocumentEvent _e) {
+// valide();
+ }
+
+ public void insertUpdate(final DocumentEvent _e) {
+// valide();
+ }
+
+ public void removeUpdate(final DocumentEvent _e) {
+// valide();
+ }
+
+// public FudaaSaveZipLoader getLoader() throws IOException {
+// return loader_;
+// }
+}
Property changes on: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlProjectExportPanel.java
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigLayerExporter.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigLayerExporter.java 2008-07-09 16:21:37 UTC (rev 3677)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigLayerExporter.java 2008-07-10 07:42:43 UTC (rev 3678)
@@ -18,26 +18,35 @@
import com.memoire.fu.FuEmptyArrays;
import com.memoire.fu.FuLog;
+import org.fudaa.ctulu.CtuluAnalyze;
import org.fudaa.ctulu.CtuluIOOperationSynthese;
+import org.fudaa.ctulu.CtuluLib;
import org.fudaa.ctulu.CtuluLibFile;
import org.fudaa.ctulu.CtuluLibString;
import org.fudaa.ctulu.CtuluUI;
import org.fudaa.ctulu.ProgressionInterface;
+import org.fudaa.ctulu.fileformat.FileFormatUnique;
+import org.fudaa.ctulu.gis.GISAttributeConstants;
+import org.fudaa.ctulu.gis.GISAttributeInterface;
import org.fudaa.ctulu.gis.GISDataModel;
+import org.fudaa.ctulu.gis.GISDataModelFilterAdapter;
import org.fudaa.ctulu.gis.GISDataModelMultiAdapter;
-import org.fudaa.ctulu.gis.GISDataModelZoneAdapter;
+import org.fudaa.ctulu.gis.GISDataModelPointMultiPointAdapter;
import org.fudaa.ctulu.gis.GISZone;
import org.fudaa.ctulu.gis.GISZoneCollection;
import org.fudaa.ctulu.gis.factory.GISExportDataStoreFactory;
import org.fudaa.ctulu.gis.gml.GISGMLZoneExporter;
import org.fudaa.ctulu.gis.mif.MIFDataStoreFactory;
+import org.fudaa.dodico.rubar.io.RubarSEMFileFormat;
+import org.fudaa.dodico.rubar.io.RubarSEMWriterGISAdapter;
import org.fudaa.dodico.rubar.io.RubarStCnFileFormat;
import org.fudaa.dodico.telemac.io.SinusxFileFormat;
import org.fudaa.ebli.calque.ZCalqueAffichageDonneesInterface;
import org.fudaa.fudaa.commun.FudaaLib;
+import org.fudaa.fudaa.sig.FSigResource;
/**
* @author fred deniger
@@ -68,6 +77,7 @@
int idx = 0;
final List total = new ArrayList(_filter.pointCq_);
total.addAll(_filter.polyCq_);
+ total.addAll(_filter.mlptsCq_);
final int nb = total.size();
for (int i = 0; i < nb; i++) {
final ZCalqueAffichageDonneesInterface oi = (ZCalqueAffichageDonneesInterface) total.get(i);
@@ -127,17 +137,139 @@
}
}
- public static class ToSt extends FSigLayerExporter {
+ /**
+ * Export des g\xE9om\xE9tries vers les fichiers Rubar (ST, SEM, CN).
+ * @author Bertrand Marchand
+ * @version $Id:$
+ */
+ public static class ToRubar extends FSigLayerExporter {
CtuluIOOperationSynthese exportTo(final FSigLayerFilter _filter, final CtuluUI _impl, final File _f,
final ProgressionInterface _prog) {
- File f = CtuluLibFile.appendExtensionIfNeeded(_f, "st");
- final int nb = _filter.polyCq_.size();
- final GISDataModel[] models = new GISDataModel[nb];
+ CtuluIOOperationSynthese synt=new CtuluIOOperationSynthese();
+ File f = CtuluLibFile.getSansExtension(_f);
+ CtuluAnalyze ana=new CtuluAnalyze();
+ synt.setAnalyze(ana);
+
+ // Regroupement des mod\xE8les suivant leur nature.
+ List<GISDataModel> mdlprofs=new ArrayList<GISDataModel>();
+ List<GISDataModel> mdlniv=new ArrayList<GISDataModel>();
+ List<GISDataModel> mdlligdir=new ArrayList<GISDataModel>();
+ List<GISDataModel> mdlsemis=new ArrayList<GISDataModel>();
+ List<GISDataModel> mdlautres=new ArrayList<GISDataModel>();
+
+ for (int i=0; i<_filter.pointCq_.size(); i++) {
+ mdlsemis.add(new GISDataModelPointMultiPointAdapter(
+ GISDataModelFilterAdapter.buildAdapter(_filter.getCollect(_filter.mlptsCq_.get(i)), null)));
+ }
+ for (int i = 0; i < _filter.mlptsCq_.size(); i++) {
+ mdlsemis.add(GISDataModelFilterAdapter.buildAdapter(_filter.getCollect(_filter.mlptsCq_.get(i)), null));
+ }
+ for (int i=0; i<_filter.polyCq_.size(); i++) {
+ GISZoneCollection col=_filter.getCollect(_filter.polyCq_.get(i));
+ if (col.getNbGeometries()==0) continue;
+ int idxAtt=col.getIndiceOf(GISAttributeConstants.NATURE);
+ if (idxAtt==-1) {
+ mdlautres.add(GISDataModelFilterAdapter.buildAdapter(_filter.getCollect(_filter.polyCq_.get(i)),
+ new GISAttributeInterface[]{GISAttributeConstants.TITRE}));
+ }
+ else {
+ GISDataModel mdl=GISDataModelFilterAdapter.buildAdapter(_filter.getCollect(_filter.polyCq_.get(i)),
+ new GISAttributeInterface[]{GISAttributeConstants.TITRE,GISAttributeConstants.NATURE});
+ if (FSigResource.ATT_NATURE_CN.equals(col.getValue(idxAtt,0))) {
+ mdlniv.add(mdl);
+ }
+ else if (FSigResource.ATT_NATURE_PF.equals(col.getValue(idxAtt,0))) {
+ mdlprofs.add(mdl);
+ }
+ else if (FSigResource.ATT_NATURE_LD.equals(col.getValue(idxAtt,0))) {
+ mdlligdir.add(mdl);
+ }
+ else {
+ mdlautres.add(mdl);
+ }
+ }
+ }
+
+ FileFormatUnique ff;
+
+ // Les semis
+ if (mdlsemis.size()>0) {
+ ff=new RubarSEMFileFormat();
+ GISDataModel mdl=new GISDataModelMultiAdapter(mdlsemis.toArray(new GISDataModel[0]));
+ ana=ff.write(CtuluLibFile.appendExtensionIfNeeded(f, ff.getExtensions()[0]),
+ new RubarSEMWriterGISAdapter(mdl), _prog).getAnalyze();
+ synt.getAnalyze().merge(ana);
+ if (synt.containsFatalError()) return synt;
+ }
+
+ // Les profils et lignes directrices
+ if (mdlprofs.size()>0) {
+ ff=new RubarStCnFileFormat();
+ GISDataModel[] mdl=new GISDataModel[2];
+ mdl[0]=new GISDataModelMultiAdapter(mdlprofs.toArray(new GISDataModel[0]));
+ mdl[1]=mdlligdir.size()==0 ? null:new GISDataModelMultiAdapter(mdlligdir.toArray(new GISDataModel[0]));
+ ana=ff.write(CtuluLibFile.appendExtensionIfNeeded(f, ff.getExtensions()[0]), mdl, _prog).getAnalyze();
+ synt.getAnalyze().merge(ana);
+ if (synt.containsFatalError()) return synt;
+ }
+
+ // Les courbes de niveau
+ if (mdlniv.size()>0) {
+ ff=new RubarStCnFileFormat();
+ GISDataModel[] mdl=new GISDataModel[2];
+ mdl[0]=new GISDataModelMultiAdapter(mdlniv.toArray(new GISDataModel[0]));
+ mdl[1]=null;
+ ana=ff.write(CtuluLibFile.appendExtensionIfNeeded(f, ff.getExtensions()[1]), mdl, _prog).getAnalyze();
+ synt.getAnalyze().merge(ana);
+ if (synt.containsFatalError()) return synt;
+ }
+
+ // Les autres polylignes => dans un fichier _autres.st
+ if (mdlautres.size()>0) {
+ ff=new RubarStCnFileFormat();
+ GISDataModel[] mdl=new GISDataModel[2];
+ mdl[0]=new GISDataModelMultiAdapter(mdlautres.toArray(new GISDataModel[0]));
+ mdl[1]=null;
+ ana=ff.write(CtuluLibFile.appendExtensionIfNeeded(
+ new File(f.getPath()+"_"+CtuluLib.getS("autres")),ff.getExtensions()[0]), mdl, _prog).getAnalyze();
+ synt.getAnalyze().merge(ana);
+ if (synt.containsFatalError()) return synt;
+ }
+
+ // Les polylignes.
+/* int nb = _filter.polyCq_.size();
+ GISDataModel[] models = new GISDataModel[nb];
+ FileFormatUnique ff=new RubarStCnFileFormat();
for (int i = 0; i < nb; i++) {
- models[i] = new GISDataModelZoneAdapter(_filter.getCollect(_filter.polyCq_.get(i)), FuEmptyArrays.INT0);
+ models[i]=GISDataModelFilterAdapter.buildAdapter(_filter.getCollect(_filter.polyCq_.get(i)),
+ new GISAttributeInterface[]{GISAttributeConstants.TITRE, GISAttributeConstants.NATURE});
+// models[i] = new GISDataModelZoneAdapter(_filter.getCollect(_filter.polyCq_.get(i)), FuEmptyArrays.INT0);
}
- return new RubarStCnFileFormat().write(f, new GISDataModelMultiAdapter(models), _prog);
-
+ if (models.length>0) {
+ ana=ff.write(CtuluLibFile.appendExtensionIfNeeded(f, ff.getExtensions()[0]), new GISDataModelMultiAdapter(models), _prog)
+ .getAnalyze();
+ synt.getAnalyze().merge(ana);
+ if (synt.containsFatalError()) return synt;
+ }
+
+ // Les semis => Tous dans le m\xEAme fichier.
+ models = new GISDataModel[_filter.mlptsCq_.size()+_filter.pointCq_.size()];
+ ff=new RubarSEMFileFormat();
+ int nbMlt = _filter.mlptsCq_.size();
+ for (int i = 0; i < nbMlt; i++) {
+ models[i]=GISDataModelFilterAdapter.buildAdapter(_filter.getCollect(_filter.mlptsCq_.get(i)), null);
+ }
+ int nbPts = _filter.pointCq_.size();
+ for (int i = 0; i < nbPts; i++) {
+ models[i+nbMlt]=new GISDataModelPointMultiPointAdapter(
+ GISDataModelFilterAdapter.buildAdapter(_filter.getCollect(_filter.pointCq_.get(i)), null));
+ }
+ if (models.length>0) {
+ ana=ff.write(CtuluLibFile.appendExtensionIfNeeded(f, ff.getExtensions()[0]),
+ new RubarSEMWriterGISAdapter(new GISDataModelMultiAdapter(models)), _prog).getAnalyze();
+ synt.getAnalyze().merge(ana);
+ }*/
+ return synt;
}
}
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigLayerFilter.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigLayerFilter.java 2008-07-09 16:21:37 UTC (rev 3677)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigLayerFilter.java 2008-07-10 07:42:43 UTC (rev 3678)
@@ -14,6 +14,7 @@
import java.util.Set;
import com.vividsolutions.jts.geom.LineString;
+import com.vividsolutions.jts.geom.MultiPoint;
import com.vividsolutions.jts.geom.Point;
import org.fudaa.ctulu.CtuluIOOperationSynthese;
@@ -27,6 +28,7 @@
import org.fudaa.ebli.calque.ZModeleGeom;
/**
+ * Un filtre sur les calques a exporter. Les calques a exporter peuvent \xEAtre uniquement les calques visibles.
* @author Fred Deniger
* @version $Id: FSigLayerFilter.java,v 1.4 2007-04-30 14:22:39 deniger Exp $
*/
@@ -35,6 +37,8 @@
final Set cq_ = new HashSet();
List pointCq_ = new ArrayList();
List polyCq_ = new ArrayList();
+ List mlptsCq_=new ArrayList();
+ boolean bonlyVisible_=false;
/**
*
@@ -47,11 +51,11 @@
* @return true si vide
*/
public boolean isEmpty() {
- return pointCq_.size() == 0 && polyCq_.size() == 0;
+ return pointCq_.size() == 0 && polyCq_.size() == 0 && mlptsCq_.size()==0;
}
public int getNbZone() {
- return pointCq_.size() + polyCq_.size();
+ return pointCq_.size() + polyCq_.size() + mlptsCq_.size();
}
public CtuluIOOperationSynthese exportTo(final FSigLayerExporter _exporter, final CtuluUI _impl, final File _file,
@@ -73,19 +77,18 @@
return getCollect((ZCalqueAffichageDonneesInterface) _o);
}
- ZCalqueAffichageDonneesInterface[] getPointCalques() {
- final ZCalqueAffichageDonneesInterface[] res = new ZCalqueAffichageDonneesInterface[pointCq_.size()];
- pointCq_.toArray(res);
- return res;
+ /**
+ * Le traitement ne s'applique qu'aux seuls calques visibles.
+ * @param _b True : Uniquement les calques visibles sont consid\xE9r\xE9s.
+ */
+ public void setTreatmentOnlyOnVisible(boolean _b) {
+ bonlyVisible_=_b;
}
- ZCalqueAffichageDonneesInterface[] getLignesCalques() {
- final ZCalqueAffichageDonneesInterface[] res = new ZCalqueAffichageDonneesInterface[polyCq_.size()];
- polyCq_.toArray(res);
- return res;
- }
-
public boolean visit(final BCalque _cq) {
+ // Calque non trait\xE9 si invisible.
+ if (bonlyVisible_ && !_cq.isVisible()) return true;
+
if (!cq_.contains(_cq) && _cq instanceof ZCalqueAffichageDonneesInterface
&& ((ZCalqueAffichageDonneesInterface) _cq).modeleDonnees() instanceof ZModeleGeom) {
final ZModeleGeom geom = (ZModeleGeom) ((ZCalqueAffichageDonneesInterface) _cq).modeleDonnees();
@@ -93,6 +96,8 @@
pointCq_.add(_cq);
} else if (LineString.class.isAssignableFrom(geom.getGeomData().getDataStoreClass())) {
polyCq_.add(_cq);
+ } else if (MultiPoint.class.isAssignableFrom(geom.getGeomData().getDataStoreClass())) {
+ mlptsCq_.add(_cq);
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2008-07-09 16:21:29
|
Revision: 3677
http://fudaa.svn.sourceforge.net/fudaa/?rev=3677&view=rev
Author: bmarchan
Date: 2008-07-09 09:21:37 -0700 (Wed, 09 Jul 2008)
Log Message:
-----------
Ajout de l'attribut Nature
Modified Paths:
--------------
branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeConstants.java
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeConstants.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeConstants.java 2008-07-09 16:20:58 UTC (rev 3676)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeConstants.java 2008-07-09 16:21:37 UTC (rev 3677)
@@ -30,7 +30,7 @@
}
public static String toString(final GISAttributeInterface _att) {
- if (_att == TITRE || _att == BATHY) {
+ if (_att == TITRE || _att == BATHY || _att == NATURE) {
return _att.getID();
}
final String attributeSep = getAttributeSep();
@@ -49,6 +49,9 @@
if (BATHY.getID().equals(_saveName)) {
return BATHY;
}
+ if (NATURE.getID().equals(_saveName)) {
+ return NATURE;
+ }
return null;
}
@@ -76,6 +79,9 @@
if (TITRE.isSameContent(res)) {
res = TITRE;
}
+ else if (NATURE.isSameContent(res)) {
+ res = NATURE;
+ }
}
return res;
@@ -85,11 +91,12 @@
final ArrayList l = new ArrayList(2);
l.add(BATHY);
l.add(TITRE);
+ l.add(NATURE);
return l;
}
public static boolean isConstant(final GISAttributeInterface _att) {
- return _att == TITRE || _att == BATHY;
+ return _att == TITRE || _att == BATHY || _att == NATURE;
}
/**
@@ -100,10 +107,6 @@
private int numid_=0;
String def_ = CtuluLib.getS("<Defaut>");
- protected Object readResolve() {
- return TITRE;
- }
-
public String getID() {
return "ATTRIBUTE_TITLE";
}
@@ -125,14 +128,23 @@
};
/**
+ * Un attribut nature, global.
+ */
+ public final static GISAttributeString NATURE = new GISAttributeString(CtuluLib.getS("Nature"), false) {
+ public String getID() {
+ return "ATTRIBUTE_NATURE";
+ }
+
+ public boolean isEditable() {
+ return false;
+ }
+ };
+
+ /**
* Un attribut bathy, atomique.
*/
public final static GISAttributeDouble BATHY = new GISAttributeDouble(CtuluLib.getS("z"), true) {
- protected Object readResolve() {
- return BATHY;
- }
-
public String getID() {
return "ATTRIBUTE_Z";
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2008-07-09 16:20:50
|
Revision: 3676
http://fudaa.svn.sourceforge.net/fudaa/?rev=3676&view=rev
Author: bmarchan
Date: 2008-07-09 09:20:58 -0700 (Wed, 09 Jul 2008)
Log Message:
-----------
Des constantes pour l'attribut Nature.
Modified Paths:
--------------
branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/FSigResource.java
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/FSigResource.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/FSigResource.java 2008-07-09 16:17:56 UTC (rev 3675)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/FSigResource.java 2008-07-09 16:20:58 UTC (rev 3676)
@@ -18,6 +18,24 @@
*/
public final class FSigResource extends FudaaResource {
+ /** Nature Semis */
+ public final static String ATT_NATURE_SM="SM";
+ /** Nature Courbe niveau */
+ public final static String ATT_NATURE_CN="CN";
+ /** Nature Profil */
+ public final static String ATT_NATURE_PF="PF";
+ /** Nature Ligne directrice */
+ public final static String ATT_NATURE_LD="LD";
+ /** Nature Ligne de contrainte */
+ public final static String ATT_NATURE_LC="LC";
+ /** Nature Trace de profil */
+ public final static String ATT_NATURE_TP="TP";
+ /** Nature Zone */
+ public final static String ATT_NATURE_ZN="ZN";
+ /** Nature Contour d'\xE9tude */
+ public final static String ATT_NATURE_CE="CE";
+
+
public final static FSigResource FSIG = new FSigResource(FudaaResource.FUDAA);
private FSigResource(final BuResource _b) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2008-07-09 16:17:50
|
Revision: 3675
http://fudaa.svn.sourceforge.net/fudaa/?rev=3675&view=rev
Author: bmarchan
Date: 2008-07-09 09:17:56 -0700 (Wed, 09 Jul 2008)
Log Message:
-----------
Ecriture/lecture de fichiers ST Rubar
Modified Paths:
--------------
branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/fortran/FileOpWriterCharSimpleAbstract.java
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/fortran/FileOpWriterCharSimpleAbstract.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/fortran/FileOpWriterCharSimpleAbstract.java 2008-07-09 16:09:26 UTC (rev 3674)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/fortran/FileOpWriterCharSimpleAbstract.java 2008-07-09 16:17:56 UTC (rev 3675)
@@ -53,7 +53,7 @@
return lineSep_;
}
- public final void setFile(final File _f) {
+ public void setFile(final File _f) {
analyze_ = new CtuluAnalyze();
analyze_.setResource(_f.getAbsolutePath());
FileWriter out = null;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2008-07-09 16:09:18
|
Revision: 3674
http://fudaa.svn.sourceforge.net/fudaa/?rev=3674&view=rev
Author: bmarchan
Date: 2008-07-09 09:09:26 -0700 (Wed, 09 Jul 2008)
Log Message:
-----------
Nouvelle m?\195?\169thode getDistance3D()
Modified Paths:
--------------
branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/CtuluLibGeometrie.java
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/CtuluLibGeometrie.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/CtuluLibGeometrie.java 2008-07-09 16:05:52 UTC (rev 3673)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/CtuluLibGeometrie.java 2008-07-09 16:09:26 UTC (rev 3674)
@@ -1,240 +1,254 @@
-/*
- * @file CtuluGeometrie.java
- * @creation 29 janv. 2004
- * @modification $Date: 2006-10-24 12:47:38 $
- * @license GNU General Public License 2
- * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
- * @mail de...@fu...
- */
-package org.fudaa.ctulu;
-
-import java.awt.geom.AffineTransform;
-import java.awt.geom.Point2D;
-
-import com.vividsolutions.jts.geom.Coordinate;
-import com.vividsolutions.jts.geom.Point;
-
-import com.memoire.fu.FuLog;
-
-/**
- * @author deniger
- * @version $Id: CtuluLibGeometrie.java,v 1.13 2006-10-24 12:47:38 deniger Exp $
- */
-public final class CtuluLibGeometrie {
-
- private CtuluLibGeometrie() {}
-
- /**
- * @param _x1 x du point 1
- * @param _y1 y du point 1
- * @param _x2 x du point 2
- * @param _y2 y du point 2
- * @return Renvoie la distance entre le point p1(_x1,_y1) et le point p2(_x2,_y2)
- */
- public static double getDistance(final double _x1, final double _y1, final double _x2, final double _y2) {
- return Math.sqrt((_x2 - _x1) * (_x2 - _x1) + (_y2 - _y1) * (_y2 - _y1));
- }
-
- public static double getDistanceAuCarre(final double _x1, final double _y1, final double _x2, final double _y2) {
- return (_x2 - _x1) * (_x2 - _x1) + (_y2 - _y1) * (_y2 - _y1);
- }
-
- public static double getDistanceXY(final Coordinate _c1, final Coordinate _c2) {
- return getDistance(_c1.x, _c1.y, _c2.x, _c2.y);
- }
-
- /**
- * @param _x1 x du point 1
- * @param _y1 y du point 1
- * @param _x2 x du point 2
- * @param _y2 y du point 2
- * @return Renvoie la norme au carre.
- */
- public static double getD2(final double _x1, final double _y1, final double _x2, final double _y2) {
- return (_x2 - _x1) * (_x2 - _x1) + (_y2 - _y1) * (_y2 - _y1);
- }
-
- public static double getD2(final Coordinate _c1, final Coordinate _c2) {
- return getD2(_c1.x, _c1.y, _c2.x, _c2.y);
- }
-
- public static double getD2(final Point _c1, final Point _c2) {
- return getD2(_c1.getX(), _c1.getY(), _c2.getX(), _c2.getY());
- }
-
- /**
- * @param _segX1 x du point 1 du segment
- * @param _segY1 y du point 1 du segment
- * @param _segX2 x du point 2 du segment
- * @param _segY2 y du point 2 du segment
- * @param _x x du point a considerer
- * @param _y y du point a considerer
- * @return Renvoie la distance entre le point p(_x,_y) et le segment [P1,P2] P1=_segX1,_segY1. Tester dans ebli
- */
- public static double distanceFromSegment(final double _segX1, final double _segY1, final double _segX2,
- final double _segY2, final double _x, final double _y) {
- return Math.sqrt(distanceAuCarreFromSegment(_segX1, _segY1, _segX2, _segY2, _x, _y));
- }
-
- public static double distanceAuCarreFromSegment(final double _segX1, final double _segY1, final double _segX2,
- final double _segY2, final double _x, final double _y) {
- if ((_segX1 == _segX2) && (_segY1 == _segY2)) {
- return getDistanceAuCarre(_segX1, _segY1, _x, _y);
- }
- // P1=(_x1,_y1)
- // P2=(_x2,_y2)
- // X=thisPoint
- // vecteur A=X-P1
- // vecteur B=P2-P1
- // On calcule la projection de A sur B
- // le produit scalaire
- double p = (_x - _segX1) * (_segX2 - _segX1) + (_y - _segY1) * (_segY2 - _segY1);
- // si le point est "en dehors" du segment ,on prend la distance X P1
- if (p < 0) {
- return getDistanceAuCarre(_x, _y, _segX1, _segY1);
- }
-
- // le produit scalaire/norme de B
- p = p / ((_segX2 - _segX1) * (_segX2 - _segX1) + (_segY2 - _segY1) * (_segY2 - _segY1));
- // si p>1 p est en dehors du segment
- if (p > 1) {
- return getDistanceAuCarre(_x, _y, _segX2, _segY2);
- }
- // le vecteur projete a pour coordonnees PROJ:
- double projx = p * (_segX2 - _segX1);
- double projy = p * (_segY2 - _segY1);
- // le vecteur de norme (on reutilise le variable projx)
- projx = (_x - _segX1) - projx;
- projy = (_y - _segY1) - projy;
- return projx * projx + projy * projy;
- }
-
- /**
- * Tester dans dodico TestMaillage.
- *
- * @param _x1 x de P1
- * @param _y1 y de P1
- * @param _x2 x de P2
- * @param _y2 y de P2
- * @param _x3 x de P3
- * @param _y3 y de P3
- * @return l'aire du triangle P1P2P3
- */
- public static double aireTriangle(final double _x1, final double _y1, final double _x2, final double _y2,
- final double _x3, final double _y3) {
- // ERROR aie
- double p = (_x3 - _x1) * (_x2 - _x1) + (_y3 - _y1) * (_y2 - _y1);
- final double d1d2 = getDistance(_x1, _y1, _x2, _y2);
- // le produit scalaire/norme de B
- p = p / (d1d2 * d1d2);
- // le vecteur projete a pour coordonnees PROJ:
- double projx = p * (_x2 - _x1);
- double projy = p * (_y2 - _y1);
- // le vecteur de norme (on reutilise le variable projx)
- projx = (_x3 - _x1) - projx;
- projy = (_y3 - _y1) - projy;
- return d1d2 * Math.sqrt(projx * projx + projy * projy) / 2;
- }
-
- /**
- * Donne la valeur de l'angle <code>_angleInit</code> dans l'intervalle [-360;360].
- *
- * @param _angleInit l'angle a ajuster dans l'intervalle [-360;360]
- * @return l'equivalent dans l'intervalle [-360;360]
- */
- public static double getAngle(final double _angleInit) {
- return ((_angleInit > 360) || (_angleInit < -360)) ? _angleInit % 360 : _angleInit;
- }
-
- public static AffineTransform projection(final Point2D[] _ptImages, final Point2D[] _ptReels)
- throws IllegalArgumentException {
- double[] proj = new double[6];
- if (_ptImages == null || _ptReels == null) {
- return null;
- // double[] projInv = new double[6];
- // double[] m_MatZoom = new double[6];
- // initialiser avec la matrice I
- /*
- * m_MatZoom[0]=1; m_MatZoom[4]=1;
- */
- }
-
- if ((_ptImages.length != _ptReels.length) || (_ptImages.length < 3)) {
- throw new IllegalArgumentException("badData");
- }
-
- if (_ptImages.length == 3) {
- try {
- // modif Gilbert : la division par 0 ne leve plus d'exception !!!
- final double diviseur = -_ptImages[2].getY() * _ptImages[0].getX() + _ptImages[2].getY() * _ptImages[1].getX()
- - _ptImages[0].getY() * _ptImages[1].getX() + _ptImages[1].getY() * _ptImages[0].getX()
- + _ptImages[0].getY() * _ptImages[2].getX() - _ptImages[1].getY() * _ptImages[2].getX();
-
- if (Math.abs(diviseur) < 0.0001) {
- throw new Exception("div0");
- }
- proj[0] = (float) ((-_ptImages[1].getY() * _ptReels[2].getX() - _ptImages[0].getY() * _ptReels[1].getX()
- + _ptImages[2].getY() * _ptReels[1].getX() + _ptImages[1].getY() * _ptReels[0].getX() + _ptImages[0].getY()
- * _ptReels[2].getX() - _ptImages[2].getY() * _ptReels[0].getX()) / diviseur);
-
- proj[1] = (float) (-(-_ptImages[1].getX() * _ptReels[2].getX() + _ptImages[2].getX() * _ptReels[1].getX()
- + _ptImages[1].getX() * _ptReels[0].getX() - _ptImages[0].getX() * _ptReels[1].getX() + _ptImages[0].getX()
- * _ptReels[2].getX() - _ptImages[2].getX() * _ptReels[0].getX()) / diviseur);
-
- proj[2] = (float) ((_ptImages[2].getX() * _ptImages[0].getY() * _ptReels[1].getX() - _ptImages[1].getX()
- * _ptImages[0].getY() * _ptReels[2].getX() + _ptImages[1].getY() * _ptImages[0].getX() * _ptReels[2].getX()
- + _ptImages[2].getY() * _ptImages[1].getX() * _ptReels[0].getX() - _ptImages[2].getY()
- * _ptImages[0].getX() * _ptReels[1].getX() - _ptImages[1].getY() * _ptImages[2].getX() * _ptReels[0].getX()) / diviseur);
-
- proj[3] = (float) (-1 / diviseur * (_ptImages[1].getY() * _ptReels[2].getY() - _ptImages[0].getY()
- * _ptReels[2].getY() - _ptImages[2].getY() * _ptReels[1].getY() - _ptImages[1].getY() * _ptReels[0].getY()
- + _ptImages[0].getY() * _ptReels[1].getY() + _ptImages[2].getY() * _ptReels[0].getY()));
-
- proj[4] = (float) ((_ptImages[1].getX() * _ptReels[2].getY() - _ptImages[1].getX() * _ptReels[0].getY()
- + _ptImages[0].getX() * _ptReels[1].getY() - _ptImages[0].getX() * _ptReels[2].getY() + _ptImages[2].getX()
- * _ptReels[0].getY() - _ptImages[2].getX() * _ptReels[1].getY()) / diviseur);
-
- proj[5] = (float) (-(_ptImages[2].getY() * _ptImages[0].getX() * _ptReels[1].getY() - _ptImages[2].getY()
- * _ptImages[1].getX() * _ptReels[0].getY() + _ptImages[1].getY() * _ptImages[2].getX() * _ptReels[0].getY()
- - _ptImages[1].getY() * _ptImages[0].getX() * _ptReels[2].getY() + _ptImages[1].getX()
- * _ptImages[0].getY() * _ptReels[2].getY() - _ptImages[2].getX() * _ptImages[0].getY() * _ptReels[1].getY()) / diviseur);
-
- } catch (final Exception e) {
- // MsgInfo erW = new MsgInfo(parent, MsgInfo.ERROR,"Verifiez que les points ne sont pas alignes !");
- throw new IllegalArgumentException("checkPts");
- // throw e;
- }
- } else {
- try {
- final int n = _ptImages.length;
- final int nc = 6;
- final double[] a = new double[2 * n * 6];
- final double[] b = new double[2 * n];
- for (int i = 0; i < n; i++) {
- b[2 * i] = _ptReels[i].getX();
- b[2 * i + 1] = _ptReels[i].getY();
- a[0 + 2 * i * nc] = _ptImages[i].getX();
- a[1 + 2 * i * nc] = _ptImages[i].getY();
- a[2 + 2 * i * nc] = 1.0;
- a[3 + (2 * i + 1) * nc] = _ptImages[i].getX();
- a[4 + (2 * i + 1) * nc] = _ptImages[i].getY();
- a[5 + (2 * i + 1) * nc] = 1.0;
- }
- proj = LocalSolve.leastsquare(a, b, 2 * n, nc);
-
- /*
- * System.out.println(ResourceManager.get("projMatrix")+"\n"+proj[0]+" "+proj[1]+" "+proj[2]+" ");
- * System.out.println(proj[3]+" "+proj[4]+" "+proj[5]+" ");
- */
- } catch (final Exception e) {
- FuLog.error(e);
- /*
- * //MsgInfo erW = new MsgInfo(parent, MsgInfo.ERROR,"Verifiez que les points ne sont pas alignes !"); throw new
- * Exception(ResourceManager.get("checkPts"));
- */
- }
- }
- return new AffineTransform(proj[0], proj[3], proj[1], proj[4], proj[2], proj[5]);
- }
-
-}
+/*
+ * @file CtuluGeometrie.java
+ * @creation 29 janv. 2004
+ * @modification $Date: 2006-10-24 12:47:38 $
+ * @license GNU General Public License 2
+ * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
+ * @mail de...@fu...
+ */
+package org.fudaa.ctulu;
+
+import java.awt.geom.AffineTransform;
+import java.awt.geom.Point2D;
+
+import com.vividsolutions.jts.geom.Coordinate;
+import com.vividsolutions.jts.geom.Point;
+
+import com.memoire.fu.FuLog;
+
+/**
+ * @author deniger
+ * @version $Id: CtuluLibGeometrie.java,v 1.13 2006-10-24 12:47:38 deniger Exp $
+ */
+public final class CtuluLibGeometrie {
+
+ private CtuluLibGeometrie() {}
+
+ /**
+ * @param _x1 x du point 1
+ * @param _y1 y du point 1
+ * @param _x2 x du point 2
+ * @param _y2 y du point 2
+ * @return Renvoie la distance entre le point p1(_x1,_y1) et le point p2(_x2,_y2)
+ */
+ public static double getDistance(final double _x1, final double _y1, final double _x2, final double _y2) {
+ return Math.sqrt((_x2 - _x1) * (_x2 - _x1) + (_y2 - _y1) * (_y2 - _y1));
+ }
+
+ /**
+ * @param _x1 x du point 1
+ * @param _y1 y du point 1
+ * @param _z1 z du point 1
+ * @param _x2 x du point 2
+ * @param _y2 y du point 2
+ * @param _z2 z du point 2
+ * @return Renvoie la distance entre le point p1(_x1,_y1,_z1) et le point p2(_x2,_y2,_z2)
+ */
+ public static double getDistance3D(final double _x1, final double _y1,final double _z1,
+ final double _x2, final double _y2, final double _z2) {
+ return Math.sqrt((_x2 - _x1) * (_x2 - _x1) + (_y2 - _y1) * (_y2 - _y1) + (_z2 - _z1) * (_z2 - _z1));
+ }
+
+ public static double getDistanceAuCarre(final double _x1, final double _y1, final double _x2, final double _y2) {
+ return (_x2 - _x1) * (_x2 - _x1) + (_y2 - _y1) * (_y2 - _y1);
+ }
+
+ public static double getDistanceXY(final Coordinate _c1, final Coordinate _c2) {
+ return getDistance(_c1.x, _c1.y, _c2.x, _c2.y);
+ }
+
+ /**
+ * @param _x1 x du point 1
+ * @param _y1 y du point 1
+ * @param _x2 x du point 2
+ * @param _y2 y du point 2
+ * @return Renvoie la norme au carre.
+ */
+ public static double getD2(final double _x1, final double _y1, final double _x2, final double _y2) {
+ return (_x2 - _x1) * (_x2 - _x1) + (_y2 - _y1) * (_y2 - _y1);
+ }
+
+ public static double getD2(final Coordinate _c1, final Coordinate _c2) {
+ return getD2(_c1.x, _c1.y, _c2.x, _c2.y);
+ }
+
+ public static double getD2(final Point _c1, final Point _c2) {
+ return getD2(_c1.getX(), _c1.getY(), _c2.getX(), _c2.getY());
+ }
+
+ /**
+ * @param _segX1 x du point 1 du segment
+ * @param _segY1 y du point 1 du segment
+ * @param _segX2 x du point 2 du segment
+ * @param _segY2 y du point 2 du segment
+ * @param _x x du point a considerer
+ * @param _y y du point a considerer
+ * @return Renvoie la distance entre le point p(_x,_y) et le segment [P1,P2] P1=_segX1,_segY1. Tester dans ebli
+ */
+ public static double distanceFromSegment(final double _segX1, final double _segY1, final double _segX2,
+ final double _segY2, final double _x, final double _y) {
+ return Math.sqrt(distanceAuCarreFromSegment(_segX1, _segY1, _segX2, _segY2, _x, _y));
+ }
+
+ public static double distanceAuCarreFromSegment(final double _segX1, final double _segY1, final double _segX2,
+ final double _segY2, final double _x, final double _y) {
+ if ((_segX1 == _segX2) && (_segY1 == _segY2)) {
+ return getDistanceAuCarre(_segX1, _segY1, _x, _y);
+ }
+ // P1=(_x1,_y1)
+ // P2=(_x2,_y2)
+ // X=thisPoint
+ // vecteur A=X-P1
+ // vecteur B=P2-P1
+ // On calcule la projection de A sur B
+ // le produit scalaire
+ double p = (_x - _segX1) * (_segX2 - _segX1) + (_y - _segY1) * (_segY2 - _segY1);
+ // si le point est "en dehors" du segment ,on prend la distance X P1
+ if (p < 0) {
+ return getDistanceAuCarre(_x, _y, _segX1, _segY1);
+ }
+
+ // le produit scalaire/norme de B
+ p = p / ((_segX2 - _segX1) * (_segX2 - _segX1) + (_segY2 - _segY1) * (_segY2 - _segY1));
+ // si p>1 p est en dehors du segment
+ if (p > 1) {
+ return getDistanceAuCarre(_x, _y, _segX2, _segY2);
+ }
+ // le vecteur projete a pour coordonnees PROJ:
+ double projx = p * (_segX2 - _segX1);
+ double projy = p * (_segY2 - _segY1);
+ // le vecteur de norme (on reutilise le variable projx)
+ projx = (_x - _segX1) - projx;
+ projy = (_y - _segY1) - projy;
+ return projx * projx + projy * projy;
+ }
+
+ /**
+ * Tester dans dodico TestMaillage.
+ *
+ * @param _x1 x de P1
+ * @param _y1 y de P1
+ * @param _x2 x de P2
+ * @param _y2 y de P2
+ * @param _x3 x de P3
+ * @param _y3 y de P3
+ * @return l'aire du triangle P1P2P3
+ */
+ public static double aireTriangle(final double _x1, final double _y1, final double _x2, final double _y2,
+ final double _x3, final double _y3) {
+ // ERROR aie
+ double p = (_x3 - _x1) * (_x2 - _x1) + (_y3 - _y1) * (_y2 - _y1);
+ final double d1d2 = getDistance(_x1, _y1, _x2, _y2);
+ // le produit scalaire/norme de B
+ p = p / (d1d2 * d1d2);
+ // le vecteur projete a pour coordonnees PROJ:
+ double projx = p * (_x2 - _x1);
+ double projy = p * (_y2 - _y1);
+ // le vecteur de norme (on reutilise le variable projx)
+ projx = (_x3 - _x1) - projx;
+ projy = (_y3 - _y1) - projy;
+ return d1d2 * Math.sqrt(projx * projx + projy * projy) / 2;
+ }
+
+ /**
+ * Donne la valeur de l'angle <code>_angleInit</code> dans l'intervalle [-360;360].
+ *
+ * @param _angleInit l'angle a ajuster dans l'intervalle [-360;360]
+ * @return l'equivalent dans l'intervalle [-360;360]
+ */
+ public static double getAngle(final double _angleInit) {
+ return ((_angleInit > 360) || (_angleInit < -360)) ? _angleInit % 360 : _angleInit;
+ }
+
+ public static AffineTransform projection(final Point2D[] _ptImages, final Point2D[] _ptReels)
+ throws IllegalArgumentException {
+ double[] proj = new double[6];
+ if (_ptImages == null || _ptReels == null) {
+ return null;
+ // double[] projInv = new double[6];
+ // double[] m_MatZoom = new double[6];
+ // initialiser avec la matrice I
+ /*
+ * m_MatZoom[0]=1; m_MatZoom[4]=1;
+ */
+ }
+
+ if ((_ptImages.length != _ptReels.length) || (_ptImages.length < 3)) {
+ throw new IllegalArgumentException("badData");
+ }
+
+ if (_ptImages.length == 3) {
+ try {
+ // modif Gilbert : la division par 0 ne leve plus d'exception !!!
+ final double diviseur = -_ptImages[2].getY() * _ptImages[0].getX() + _ptImages[2].getY() * _ptImages[1].getX()
+ - _ptImages[0].getY() * _ptImages[1].getX() + _ptImages[1].getY() * _ptImages[0].getX()
+ + _ptImages[0].getY() * _ptImages[2].getX() - _ptImages[1].getY() * _ptImages[2].getX();
+
+ if (Math.abs(diviseur) < 0.0001) {
+ throw new Exception("div0");
+ }
+ proj[0] = (float) ((-_ptImages[1].getY() * _ptReels[2].getX() - _ptImages[0].getY() * _ptReels[1].getX()
+ + _ptImages[2].getY() * _ptReels[1].getX() + _ptImages[1].getY() * _ptReels[0].getX() + _ptImages[0].getY()
+ * _ptReels[2].getX() - _ptImages[2].getY() * _ptReels[0].getX()) / diviseur);
+
+ proj[1] = (float) (-(-_ptImages[1].getX() * _ptReels[2].getX() + _ptImages[2].getX() * _ptReels[1].getX()
+ + _ptImages[1].getX() * _ptReels[0].getX() - _ptImages[0].getX() * _ptReels[1].getX() + _ptImages[0].getX()
+ * _ptReels[2].getX() - _ptImages[2].getX() * _ptReels[0].getX()) / diviseur);
+
+ proj[2] = (float) ((_ptImages[2].getX() * _ptImages[0].getY() * _ptReels[1].getX() - _ptImages[1].getX()
+ * _ptImages[0].getY() * _ptReels[2].getX() + _ptImages[1].getY() * _ptImages[0].getX() * _ptReels[2].getX()
+ + _ptImages[2].getY() * _ptImages[1].getX() * _ptReels[0].getX() - _ptImages[2].getY()
+ * _ptImages[0].getX() * _ptReels[1].getX() - _ptImages[1].getY() * _ptImages[2].getX() * _ptReels[0].getX()) / diviseur);
+
+ proj[3] = (float) (-1 / diviseur * (_ptImages[1].getY() * _ptReels[2].getY() - _ptImages[0].getY()
+ * _ptReels[2].getY() - _ptImages[2].getY() * _ptReels[1].getY() - _ptImages[1].getY() * _ptReels[0].getY()
+ + _ptImages[0].getY() * _ptReels[1].getY() + _ptImages[2].getY() * _ptReels[0].getY()));
+
+ proj[4] = (float) ((_ptImages[1].getX() * _ptReels[2].getY() - _ptImages[1].getX() * _ptReels[0].getY()
+ + _ptImages[0].getX() * _ptReels[1].getY() - _ptImages[0].getX() * _ptReels[2].getY() + _ptImages[2].getX()
+ * _ptReels[0].getY() - _ptImages[2].getX() * _ptReels[1].getY()) / diviseur);
+
+ proj[5] = (float) (-(_ptImages[2].getY() * _ptImages[0].getX() * _ptReels[1].getY() - _ptImages[2].getY()
+ * _ptImages[1].getX() * _ptReels[0].getY() + _ptImages[1].getY() * _ptImages[2].getX() * _ptReels[0].getY()
+ - _ptImages[1].getY() * _ptImages[0].getX() * _ptReels[2].getY() + _ptImages[1].getX()
+ * _ptImages[0].getY() * _ptReels[2].getY() - _ptImages[2].getX() * _ptImages[0].getY() * _ptReels[1].getY()) / diviseur);
+
+ } catch (final Exception e) {
+ // MsgInfo erW = new MsgInfo(parent, MsgInfo.ERROR,"Verifiez que les points ne sont pas alignes !");
+ throw new IllegalArgumentException("checkPts");
+ // throw e;
+ }
+ } else {
+ try {
+ final int n = _ptImages.length;
+ final int nc = 6;
+ final double[] a = new double[2 * n * 6];
+ final double[] b = new double[2 * n];
+ for (int i = 0; i < n; i++) {
+ b[2 * i] = _ptReels[i].getX();
+ b[2 * i + 1] = _ptReels[i].getY();
+ a[0 + 2 * i * nc] = _ptImages[i].getX();
+ a[1 + 2 * i * nc] = _ptImages[i].getY();
+ a[2 + 2 * i * nc] = 1.0;
+ a[3 + (2 * i + 1) * nc] = _ptImages[i].getX();
+ a[4 + (2 * i + 1) * nc] = _ptImages[i].getY();
+ a[5 + (2 * i + 1) * nc] = 1.0;
+ }
+ proj = LocalSolve.leastsquare(a, b, 2 * n, nc);
+
+ /*
+ * System.out.println(ResourceManager.get("projMatrix")+"\n"+proj[0]+" "+proj[1]+" "+proj[2]+" ");
+ * System.out.println(proj[3]+" "+proj[4]+" "+proj[5]+" ");
+ */
+ } catch (final Exception e) {
+ FuLog.error(e);
+ /*
+ * //MsgInfo erW = new MsgInfo(parent, MsgInfo.ERROR,"Verifiez que les points ne sont pas alignes !"); throw new
+ * Exception(ResourceManager.get("checkPts"));
+ */
+ }
+ }
+ return new AffineTransform(proj[0], proj[3], proj[1], proj[4], proj[2], proj[5]);
+ }
+
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2008-07-09 16:05:59
|
Revision: 3673
http://fudaa.svn.sourceforge.net/fudaa/?rev=3673&view=rev
Author: bmarchan
Date: 2008-07-09 09:05:52 -0700 (Wed, 09 Jul 2008)
Log Message:
-----------
Correctif pour correspondre au contrat GISDataModel
Modified Paths:
--------------
branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISDataModelAbstract.java
branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISDataModelFilterAdapter.java
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISDataModelAbstract.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISDataModelAbstract.java 2008-07-09 15:56:30 UTC (rev 3672)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISDataModelAbstract.java 2008-07-09 16:05:52 UTC (rev 3673)
@@ -39,8 +39,9 @@
}
public final int getIndiceOf(final GISAttributeInterface _att) {
+ if (_att==null) return -1;
for (int i = getNbAttributes() - 1; i >= 0; i--) {
- if (getAttribute(i).equals(_att)) {
+ if (_att.equals(getAttribute(i))) {
return i;
}
}
@@ -52,11 +53,16 @@
}
public final GISAttributeInterface getAttribute(final int _idxAtt) {
- return model_.getAttribute(attShown_ == null ? _idxAtt : attShown_[_idxAtt]);
+ int idx=getRealAttributIndex(_idxAtt);
+ if (idx<0 || idx>model_.getNbAttributes()) return null;
+ return model_.getAttribute(idx);
}
public Envelope getEnvelopeInternal() {
return model_.getEnvelopeInternal();
}
-
+
+ protected int getRealAttributIndex(final int _idxAtt) {
+ return attShown_ == null ? _idxAtt : attShown_[_idxAtt];
+ }
}
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISDataModelFilterAdapter.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISDataModelFilterAdapter.java 2008-07-09 15:56:30 UTC (rev 3672)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISDataModelFilterAdapter.java 2008-07-09 16:05:52 UTC (rev 3673)
@@ -1,188 +1,188 @@
-/*
- * @creation 6 juin 2005
- * @modification $Date: 2007-01-10 08:58:47 $
- * @license GNU General Public License 2
- * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
- * @mail de...@fu...
- */
-package org.fudaa.ctulu.gis;
-
-import java.util.BitSet;
-
-import com.vividsolutions.jts.geom.Geometry;
-
-import org.fudaa.ctulu.CtuluLibArray;
-
-/**
- * Un filtre permettant d'exposer certains attributs d'un mod\xE8le de donn\xE9es
- * et/ou certaines g\xE9om\xE9tries.<p>
- * <b>Important</b> : Le filtre autorise des attributs qui ne sont pas dans le modele d'origine.
- * Pour ces attributs, les valeurs retourn\xE9es pour chaque g\xE9om\xE9trie sont nulles.
- * @author Fred Deniger
- * @version $Id: GISDataModelFilterAdapter.java,v 1.1 2007-01-10 08:58:47 deniger Exp $
- */
-public class GISDataModelFilterAdapter extends GISDataModelAbstract {
-
- /**
- * Cr\xE9ation d'un filtre conservant toutes les g\xE9om\xE9tries et seulement les attributs donn\xE9s.
- */
- public static GISDataModelFilterAdapter buildAdapter(final GISDataModel _collection,
- final GISAttributeInterface[] _att) {
- return buildAdapter(_collection, _att, null);
- }
-
- /**
- * Cr\xE9ation d'un filtre ne conservant que les g\xE9om\xE9tries d'indices donn\xE9s et les attributs donn\xE9s.
- * @param _collection la zone a adapter
- * @param _att les attributs dans l'ordre voulu.
- * @param _idxGeom Les indices des seules g\xE9om\xE9tries \xE0 exposer.
- * @return l'adapteur
- */
- public static GISDataModelFilterAdapter buildAdapter(final GISDataModel _collection,
- final GISAttributeInterface[] _att, final int[] _idxGeom) {
-
- final int[] idx = _att == null ? null : new int[_att.length];
- if (_att != null) {
- for (int i = _att.length - 1; i >= 0; i--) {
- idx[i] = _collection.getIndiceOf(_att[i]);
- }
- }
- return new GISDataModelFilterAdapter(_collection, idx, _idxGeom);
-
- }
-
- /**
- * Cr\xE9ation d'un filtre ne conservant que les lignes et les d'attributs donn\xE9s.
- */
- public static GISDataModelFilterAdapter buildLigneAdapter(final GISDataModel _collection,
- final GISAttributeInterface[] _att) {
- boolean allLigneBrisee = true;
- final GISVisitorChooser chooser = new GISVisitorChooser();
- final int nb = _collection.getNumGeometries();
- final BitSet set = new BitSet(nb);
- for (int i = 0; i < nb; i++) {
- ((GISGeometry) _collection.getGeometry(i)).accept(chooser);
- if (chooser.isPolyligne() || chooser.isPolygone()) {
- set.set(i);
- } else {
- allLigneBrisee = false;
- }
- }
- if (allLigneBrisee) {
- return buildAdapter(_collection, _att, null);
- }
- return buildAdapter(_collection, _att, CtuluLibArray.getSelectedIdx(set));
- }
-
- /**
- * Cr\xE9ation d'un filtre ne conservant que les lignes ferm\xE9es et les d'attributs donn\xE9s.
- */
- public static GISDataModelFilterAdapter buildLigneFermeeAdapter(final GISDataModel _collection,
- final GISAttributeInterface[] _att) {
- boolean allLigneFermee = true;
- final GISVisitorChooser chooser = new GISVisitorChooser();
- final int nb = _collection.getNumGeometries();
- final BitSet set = new BitSet(nb);
- for (int i = 0; i < nb; i++) {
- ((GISGeometry) _collection.getGeometry(i)).accept(chooser);
- if (chooser.isPolygone()) {
- set.set(i);
- } else {
- allLigneFermee = false;
- }
- }
- if (allLigneFermee) {
- return buildAdapter(_collection, _att, null);
- }
- return buildAdapter(_collection, _att, CtuluLibArray.getSelectedIdx(set));
- }
-
- /**
- * Cr\xE9ation d'un filtre ne conservant que les lignes ferm\xE9es et les d'attributs donn\xE9s.
- */
- public static GISDataModelFilterAdapter buildLigneOuverteAdapter(final GISDataModel _collection,
- final GISAttributeInterface[] _att) {
- boolean allLigneBrisee = true;
- final GISVisitorChooser chooser = new GISVisitorChooser();
- final int nb = _collection.getNumGeometries();
- final BitSet set = new BitSet(nb);
- for (int i = 0; i < nb; i++) {
- ((GISGeometry) _collection.getGeometry(i)).accept(chooser);
- if (chooser.isPolyligne()) {
- set.set(i);
- } else {
- allLigneBrisee = false;
- }
- }
- if (allLigneBrisee) {
- return buildAdapter(_collection, _att, null);
- }
- return buildAdapter(_collection, _att, CtuluLibArray.getSelectedIdx(set));
- }
-
- /**
- * Cr\xE9ation d'un filtre ne conservant que les points et les d'attributs donn\xE9s.
- */
- public static GISDataModelFilterAdapter buildPointAdapter(final GISDataModel _collection,
- final GISAttributeInterface[] _att) {
- boolean allPoint = true;
- final GISVisitorChooser chooser = new GISVisitorChooser();
- final int nb = _collection.getNumGeometries();
- final BitSet set = new BitSet(nb);
- for (int i = 0; i < nb; i++) {
- ((GISGeometry) _collection.getGeometry(i)).accept(chooser);
- if (chooser.isPt()) {
- set.set(i);
- } else {
- allPoint = false;
- }
- }
- if (allPoint) {
- return buildAdapter(_collection, _att, null);
- }
- return buildAdapter(_collection, _att, CtuluLibArray.getSelectedIdx(set));
- }
-
- final int[] geometryShown_;
-
- /**
- * @param _model
- * @param _idxAtt
- */
- public GISDataModelFilterAdapter(final GISDataModel _model, final int[] _idxAtt, final int[] _idxGeom) {
- super(_idxAtt, _model);
-
- geometryShown_ = _idxGeom;
- }
-
- private int getRealGeometryIndex(final int _init) {
- return geometryShown_ == null ? _init : geometryShown_[_init];
- }
-
- // geom
-
- public double getDoubleValue(final int _idxAtt, final int _idxGeom) {
- final int idx = attShown_ == null ? _idxAtt : attShown_[_idxAtt];
- if (idx < 0 || idx >= model_.getNbAttributes()) {
- return 0;
- }
- return model_.getDoubleValue(idx, getRealGeometryIndex(_idxGeom));
- }
-
- public Geometry getGeometry(final int _idxGeom) {
- return model_.getGeometry(getRealGeometryIndex(_idxGeom));
- }
-
- public int getNumGeometries() {
- return geometryShown_ == null ? model_.getNumGeometries() : geometryShown_.length;
- }
-
- public Object getValue(final int _idxAtt, final int _idxGeom) {
- final int idx = attShown_ == null ? _idxAtt : attShown_[_idxAtt];
- if (idx < 0 || idx >= model_.getNbAttributes()) {
- return null;
- }
- return model_.getValue(idx, getRealGeometryIndex(_idxGeom));
- }
-
-}
+/*
+ * @creation 6 juin 2005
+ * @modification $Date: 2007-01-10 08:58:47 $
+ * @license GNU General Public License 2
+ * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
+ * @mail de...@fu...
+ */
+package org.fudaa.ctulu.gis;
+
+import java.util.BitSet;
+
+import com.vividsolutions.jts.geom.Geometry;
+
+import org.fudaa.ctulu.CtuluLibArray;
+
+/**
+ * Un filtre permettant d'exposer certains attributs d'un mod\xE8le de donn\xE9es
+ * et/ou certaines g\xE9om\xE9tries.<p>
+ * <b>Important</b> : Le filtre autorise des attributs qui ne sont pas dans le modele d'origine.
+ * Pour ces attributs, les valeurs retourn\xE9es pour chaque g\xE9om\xE9trie sont nulles.
+ * @author Fred Deniger
+ * @version $Id: GISDataModelFilterAdapter.java,v 1.1 2007-01-10 08:58:47 deniger Exp $
+ */
+public class GISDataModelFilterAdapter extends GISDataModelAbstract {
+
+ /**
+ * Cr\xE9ation d'un filtre conservant toutes les g\xE9om\xE9tries et seulement les attributs donn\xE9s.
+ */
+ public static GISDataModelFilterAdapter buildAdapter(final GISDataModel _collection,
+ final GISAttributeInterface[] _att) {
+ return buildAdapter(_collection, _att, null);
+ }
+
+ /**
+ * Cr\xE9ation d'un filtre ne conservant que les g\xE9om\xE9tries d'indices donn\xE9s et les attributs donn\xE9s.
+ * @param _collection la zone a adapter
+ * @param _att les attributs dans l'ordre voulu.
+ * @param _idxGeom Les indices des seules g\xE9om\xE9tries \xE0 exposer, dans l'ordre souhait\xE9.
+ * @return l'adapteur
+ */
+ public static GISDataModelFilterAdapter buildAdapter(final GISDataModel _collection,
+ final GISAttributeInterface[] _att, final int[] _idxGeom) {
+
+ final int[] idx = _att == null ? null : new int[_att.length];
+ if (_att != null) {
+ for (int i = _att.length - 1; i >= 0; i--) {
+ idx[i] = _collection.getIndiceOf(_att[i]);
+ }
+ }
+ return new GISDataModelFilterAdapter(_collection, idx, _idxGeom);
+
+ }
+
+ /**
+ * Cr\xE9ation d'un filtre ne conservant que les lignes et les d'attributs donn\xE9s.
+ */
+ public static GISDataModelFilterAdapter buildLigneAdapter(final GISDataModel _collection,
+ final GISAttributeInterface[] _att) {
+ boolean allLigneBrisee = true;
+ final GISVisitorChooser chooser = new GISVisitorChooser();
+ final int nb = _collection.getNumGeometries();
+ final BitSet set = new BitSet(nb);
+ for (int i = 0; i < nb; i++) {
+ ((GISGeometry) _collection.getGeometry(i)).accept(chooser);
+ if (chooser.isPolyligne() || chooser.isPolygone()) {
+ set.set(i);
+ } else {
+ allLigneBrisee = false;
+ }
+ }
+ if (allLigneBrisee) {
+ return buildAdapter(_collection, _att, null);
+ }
+ return buildAdapter(_collection, _att, CtuluLibArray.getSelectedIdx(set));
+ }
+
+ /**
+ * Cr\xE9ation d'un filtre ne conservant que les lignes ferm\xE9es et les d'attributs donn\xE9s.
+ */
+ public static GISDataModelFilterAdapter buildLigneFermeeAdapter(final GISDataModel _collection,
+ final GISAttributeInterface[] _att) {
+ boolean allLigneFermee = true;
+ final GISVisitorChooser chooser = new GISVisitorChooser();
+ final int nb = _collection.getNumGeometries();
+ final BitSet set = new BitSet(nb);
+ for (int i = 0; i < nb; i++) {
+ ((GISGeometry) _collection.getGeometry(i)).accept(chooser);
+ if (chooser.isPolygone()) {
+ set.set(i);
+ } else {
+ allLigneFermee = false;
+ }
+ }
+ if (allLigneFermee) {
+ return buildAdapter(_collection, _att, null);
+ }
+ return buildAdapter(_collection, _att, CtuluLibArray.getSelectedIdx(set));
+ }
+
+ /**
+ * Cr\xE9ation d'un filtre ne conservant que les lignes ferm\xE9es et les d'attributs donn\xE9s.
+ */
+ public static GISDataModelFilterAdapter buildLigneOuverteAdapter(final GISDataModel _collection,
+ final GISAttributeInterface[] _att) {
+ boolean allLigneBrisee = true;
+ final GISVisitorChooser chooser = new GISVisitorChooser();
+ final int nb = _collection.getNumGeometries();
+ final BitSet set = new BitSet(nb);
+ for (int i = 0; i < nb; i++) {
+ ((GISGeometry) _collection.getGeometry(i)).accept(chooser);
+ if (chooser.isPolyligne()) {
+ set.set(i);
+ } else {
+ allLigneBrisee = false;
+ }
+ }
+ if (allLigneBrisee) {
+ return buildAdapter(_collection, _att, null);
+ }
+ return buildAdapter(_collection, _att, CtuluLibArray.getSelectedIdx(set));
+ }
+
+ /**
+ * Cr\xE9ation d'un filtre ne conservant que les points et les d'attributs donn\xE9s.
+ */
+ public static GISDataModelFilterAdapter buildPointAdapter(final GISDataModel _collection,
+ final GISAttributeInterface[] _att) {
+ boolean allPoint = true;
+ final GISVisitorChooser chooser = new GISVisitorChooser();
+ final int nb = _collection.getNumGeometries();
+ final BitSet set = new BitSet(nb);
+ for (int i = 0; i < nb; i++) {
+ ((GISGeometry) _collection.getGeometry(i)).accept(chooser);
+ if (chooser.isPt()) {
+ set.set(i);
+ } else {
+ allPoint = false;
+ }
+ }
+ if (allPoint) {
+ return buildAdapter(_collection, _att, null);
+ }
+ return buildAdapter(_collection, _att, CtuluLibArray.getSelectedIdx(set));
+ }
+
+ final int[] geometryShown_;
+
+ /**
+ * @param _model
+ * @param _idxAtt
+ */
+ public GISDataModelFilterAdapter(final GISDataModel _model, final int[] _idxAtt, final int[] _idxGeom) {
+ super(_idxAtt, _model);
+
+ geometryShown_ = _idxGeom;
+ }
+
+ private int getRealGeometryIndex(final int _init) {
+ return geometryShown_ == null ? _init : geometryShown_[_init];
+ }
+
+ // geom
+
+ public double getDoubleValue(final int _idxAtt, final int _idxGeom) {
+ final int idx = getRealAttributIndex(_idxAtt);
+ if (idx < 0 || idx >= model_.getNbAttributes()) {
+ return 0;
+ }
+ return model_.getDoubleValue(idx, getRealGeometryIndex(_idxGeom));
+ }
+
+ public Geometry getGeometry(final int _idxGeom) {
+ return model_.getGeometry(getRealGeometryIndex(_idxGeom));
+ }
+
+ public int getNumGeometries() {
+ return geometryShown_ == null ? model_.getNumGeometries() : geometryShown_.length;
+ }
+
+ public Object getValue(final int _idxAtt, final int _idxGeom) {
+ final int idx = getRealAttributIndex(_idxAtt);
+ if (idx < 0 || idx >= model_.getNbAttributes()) {
+ return null;
+ }
+ return model_.getValue(idx, getRealGeometryIndex(_idxGeom));
+ }
+
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2008-07-09 15:56:41
|
Revision: 3672
http://fudaa.svn.sourceforge.net/fudaa/?rev=3672&view=rev
Author: bmarchan
Date: 2008-07-09 08:56:30 -0700 (Wed, 09 Jul 2008)
Log Message:
-----------
Ecriture/lecture de fichiers ST Rubar
Modified Paths:
--------------
branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/rubar/io/RubarStReader.java
branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/rubar/io/RubarStWriter.java
Added Paths:
-----------
branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/rubar/io/RubarSEMWriterGISAdapter.java
Added: branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/rubar/io/RubarSEMWriterGISAdapter.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/rubar/io/RubarSEMWriterGISAdapter.java (rev 0)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/rubar/io/RubarSEMWriterGISAdapter.java 2008-07-09 15:56:30 UTC (rev 3672)
@@ -0,0 +1,82 @@
+/*
+ * @creation 2 juil. 2008
+ * @modification $Date:$
+ * @license GNU General Public License 2
+ * @copyright (c)1998-2008 CETMEF 2 bd Gambetta F-60231 Compiegne
+ * @mail fud...@li...
+ */
+package org.fudaa.dodico.rubar.io;
+
+import org.fudaa.ctulu.CtuluNumberFormatFortran;
+import org.fudaa.ctulu.CtuluNumberFormatI;
+import org.fudaa.ctulu.collection.CDoubleArrayList;
+import org.fudaa.ctulu.collection.CtuluCollectionDouble;
+import org.fudaa.ctulu.gis.GISCollectionPointDataDoubleInterface;
+import org.fudaa.ctulu.gis.GISDataModel;
+import org.fudaa.ctulu.gis.GISMultiPoint;
+import org.fudaa.dodico.fortran.FortranDoubleReaderResultInterface;
+
+import com.vividsolutions.jts.geom.CoordinateSequence;
+import com.vividsolutions.jts.geom.Geometry;
+
+/**
+ * Un adapteur pour ecrire sur un fichier Rubar SEM a partir d'un modele de multipoints.
+ * @author Bertrand Marchand
+ * @version $Id:$
+ */
+public class RubarSEMWriterGISAdapter implements FortranDoubleReaderResultInterface {
+ CDoubleArrayList[] values_=new CDoubleArrayList[3];
+ CtuluNumberFormatFortran doubleFormater_ = new CtuluNumberFormatFortran(13);
+
+ /**
+ * Le mod\xE8le ne doit contenir que des multipoints. Le reste n'est pas trait\xE9.
+ * @param _mdl
+ */
+ public RubarSEMWriterGISAdapter(GISDataModel _mdl) {
+ initVals(_mdl);
+ }
+
+ private void initVals(GISDataModel _mdl) {
+ int nblines=0;
+ int nb=_mdl.getNumGeometries();
+ for (int i=0; i<nb; i++)
+ nblines+=_mdl.getGeometry(i).getNumPoints();
+
+ for (int i=0; i<3; i++)
+ values_[i]=new CDoubleArrayList(nblines);
+
+ for (int i=0; i<nb; i++) {
+ GISMultiPoint g=(GISMultiPoint)_mdl.getGeometry(i);
+ CoordinateSequence seq=g.getCoordinateSequence();
+ int nbpts=seq.size();
+ for (int j=0; j<nbpts; j++) {
+ for (int k=0; k<3; k++)
+ values_[k].add(seq.getOrdinate(j,k));
+ }
+ }
+ }
+
+ public GISCollectionPointDataDoubleInterface createXYValuesInterface() {
+ throw new IllegalAccessError("This method shouldn't be accessed");
+ }
+
+ public CtuluCollectionDouble getCollectionFor(int _col) {
+ return values_[_col];
+ }
+
+ public CtuluNumberFormatI getFormat(int _col) {
+ return doubleFormater_;
+ }
+
+ public int getNbColonne() {
+ return 3; // X,Y,Z.
+ }
+
+ public int getNbLigne() {
+ return values_[0].size();
+ }
+
+ public double getValue(int _ligne, int _col) {
+ return getCollectionFor(_col).getValue(_ligne);
+ }
+}
Property changes on: branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/rubar/io/RubarSEMWriterGISAdapter.java
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/rubar/io/RubarStReader.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/rubar/io/RubarStReader.java 2008-07-09 15:48:54 UTC (rev 3671)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/rubar/io/RubarStReader.java 2008-07-09 15:56:30 UTC (rev 3672)
@@ -56,11 +56,12 @@
/**
* Lit les profils et les lignes directrices.
- * @return Un tableau GISZoneCollectionLigneBrisee[2]. [0] : la collection des profils, [1] : la collection de lignes directrices.
+ * @return Un tableau GISZoneCollectionLigneBrisee[2]. [0] : la collection des profils (ou null si aucun profil),
+ * [1] : la collection de lignes directrices (ou null si aucune ligne directrice).
*/
protected Object internalRead() {
// Remarque : Cette impl\xE9mentation empeche des noms semblables (les noms sont stock\xE9s comme cl\xE9 de Map) sur les lignes
- // directrices (ce qui peut \xEAtre normal puisque c'est le m\xEAme nom en un point de chaque profil qui permet de constituer
+ // directrices. Ce qui peut \xEAtre normal puisque c'est le m\xEAme nom en un point de chaque profil qui permet de constituer
// la ligne.
if (in_ == null) {
return null;
@@ -95,8 +96,8 @@
// dans les fichier st, il se peut qu'il y ait des points en double, donc on fait ce test:
if (last == null || !last.equals2D(coordinate)) {
coordinatesEnCours.add(coordinate);
+ last = coordinate;
}
- last = coordinate;
// Ligne directrice eventuelle. Pas de controle que la ligne directrice est bien sur tous les profils.
String namedir=in_.stringField(4).trim();
@@ -106,7 +107,7 @@
coordldir=new ArrayList(200);
mdirs.put(namedir,coordldir);
}
- coordldir.add(coordinate.clone());
+ coordldir.add(last.clone());
}
in_.readFields(fmt);
@@ -117,7 +118,7 @@
if (str != null) {
lignes.add(str);
if ("".equals(name)) {
- names.add(CtuluLib.getS("_P")+((GISGeometry)str).getId());
+ names.add(CtuluLib.getS(isSt_?"_P":"_N")+((GISGeometry)str).getId());
}
else {
names.add(name);
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/rubar/io/RubarStWriter.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/rubar/io/RubarStWriter.java 2008-07-09 15:48:54 UTC (rev 3671)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/rubar/io/RubarStWriter.java 2008-07-09 15:56:30 UTC (rev 3672)
@@ -7,53 +7,115 @@
*/
package org.fudaa.dodico.rubar.io;
+import java.io.File;
import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
-import com.vividsolutions.jts.geom.CoordinateSequence;
-import com.vividsolutions.jts.geom.LineString;
-
+import org.fudaa.ctulu.CtuluLib;
+import org.fudaa.ctulu.CtuluLibGeometrie;
import org.fudaa.ctulu.CtuluNumberFormatI;
import org.fudaa.ctulu.fileformat.FortranLib;
+import org.fudaa.ctulu.gis.GISAttributeConstants;
import org.fudaa.ctulu.gis.GISDataModel;
-
+import org.fudaa.ctulu.gis.GISDataModelFilterAdapter;
import org.fudaa.dodico.fortran.FileOpWriterCharSimpleAbstract;
import org.fudaa.dodico.fortran.FortranWriter;
+import com.vividsolutions.jts.geom.CoordinateSequence;
+import com.vividsolutions.jts.geom.LineString;
+
/**
- * @author fred deniger
+ * Une classe pour ecrire les donn\xE9es Rubar St. Si le mod\xE8le poss\xE8de un attribut TITRE, alors il est \xE9crit comme
+ * nom du profil.
+ *
+ * @author fred deniger, Bertrand Marchand
* @version $Id: RubarStWriter.java,v 1.4 2007-05-04 13:47:30 deniger Exp $
*/
public class RubarStWriter extends FileOpWriterCharSimpleAbstract {
+ /** Pour chaque profil, association entre l'indice de certains points et des indices de lignes directrices.*/
+ HashMap<Integer,ArrayList<Integer>>[] pts2lds_=null;
+ /** Le mod\xE8le de profils, une fois r\xE9ordonn\xE9, ou identique si non r\xE9ordonn\xE9. */
+ GISDataModel profs_=null;
+ /** Le fichier est de type ST */
+ boolean isSt_;
+
+ public void setFile(final File _f) {
+ isSt_ = !_f.getName().toLowerCase().endsWith(".cn");
+ super.setFile(_f);
+ }
+
+ /**
+ * Ecrit les profils et les lignes directrices.
+ * param _o Un tableau GISDataModel[2].
+ * [0] : le modele des profils (ou null si aucun profil),
+ * [1] : le modele de lignes directrices (ou null si aucune ligne directrice).
+ */
protected void internalWrite(final Object _o) {
- if (!(_o instanceof GISDataModel)) {
+ if (!(_o instanceof GISDataModel[]) || ((GISDataModel[])_o).length!=2) {
donneesInvalides(_o);
return;
}
- final GISDataModel ligne = (GISDataModel) _o;
- final int[] fmtEntete = new int[] { 6, 6, 6, 6, 11 };
- final int[] fmt = new int[] { 13, 13, 13, 3 };
+
+ GISDataModel lines=((GISDataModel[])_o)[1];
+ // Lignes directrices ou non ?
+ boolean bldirs=lines!=null;
+ // Si pb avec les lignes directrices => Pas d'\xE9criture de fichier.
+ if (!prepareWrite((GISDataModel[])_o)) return;
+
+// profs_ = ((GISDataModel[])_o)[0];
+
+ final int attName=profs_.getIndiceOf(GISAttributeConstants.TITRE);
+ final int attNameLines=bldirs?lines.getIndiceOf(GISAttributeConstants.TITRE):-1;
+
+ final int[] fmtEntete = new int[] { 6, 6, 6, 6, 13, 1, 42 };
+ final int[] fmt = new int[] { 13, 13, 13, 1, 3 };
final FortranWriter writer = new FortranWriter(out_);
writer.setSpaceBefore(true);
- // erreur dans la doc
- writer.setSpaceBefore(true);
final CtuluNumberFormatI numbFmt = FortranLib.getFortranFormat(12, 3);
final String sep = "999.999";
try {
- for (int i = 0; i < ligne.getNumGeometries(); i++) {
- writer.doubleField(4, 0);
- writer.intField(3, 0);
- writer.intField(2, 0);
- writer.intField(1, 0);
- writer.intField(0, i + 1);
- writer.writeFields(fmtEntete);
- final CoordinateSequence str = ((LineString) ligne.getGeometry(i)).getCoordinateSequence();
+ for (int i = 0; i < profs_.getNumGeometries(); i++) {
+ HashMap<Integer,ArrayList<Integer>> pts2ld=bldirs?pts2lds_[i]:null;
+ String name;
+ if (isSt_) {
+ if (attName==-1||(name=(String)profs_.getValue(attName, i))==null) name="";
+ writer.setSpaceBefore(false);
+ writer.stringField(6, name);
+ writer.stringField(5, "");
+ writer.doubleField(4, 0);
+ writer.intField(3, 0);
+ writer.intField(2, 0);
+ writer.intField(1, 0);
+ writer.intField(0, i+1);
+ writer.writeFields(fmtEntete);
+ writer.setSpaceBefore(true);
+ }
+ final CoordinateSequence str = ((LineString) profs_.getGeometry(i)).getCoordinateSequence();
for (int k = 0; k < str.size(); k++) {
- writer.stringField(2, numbFmt.format(str.getOrdinate(k, 2)));
- writer.stringField(1, numbFmt.format(str.getOrdinate(k, 1)));
- writer.stringField(0, numbFmt.format(str.getOrdinate(k, 0)));
- writer.writeFields(fmt);
+ // Un m\xEAme point de profil peut \xEAtre partag\xE9 par plusieurs lignes directrices => On duplique ce point.
+ ArrayList<Integer> idxline=bldirs?pts2ld.get(k):null;
+ if (idxline!=null) {
+ for (int il=0; il<idxline.size(); il++) {
+ if (attNameLines==-1 || (name=(String)lines.getValue(attNameLines,idxline.get(il)))==null ||
+ name.length()>3) name="D"+idxline.get(il);
+ writer.stringField(4, name);
+ writer.stringField(3, "");
+ writer.stringField(2, numbFmt.format(str.getOrdinate(k, 2)));
+ writer.stringField(1, numbFmt.format(str.getOrdinate(k, 1)));
+ writer.stringField(0, numbFmt.format(str.getOrdinate(k, 0)));
+ writer.writeFields(fmt);
+ }
+ }
+ else {
+ writer.stringField(2, numbFmt.format(str.getOrdinate(k, 2)));
+ writer.stringField(1, numbFmt.format(str.getOrdinate(k, 1)));
+ writer.stringField(0, numbFmt.format(str.getOrdinate(k, 0)));
+ writer.writeFields(fmt);
+ }
}
writer.stringField(2, sep);
writer.stringField(1, sep);
@@ -63,8 +125,106 @@
}
} catch (final IOException _evt) {
analyze_.manageException(_evt);
+ }
+ }
+
+ /**
+ * Controle que les lignes directrices et profils d\xE9finissent bien une trame correcte. R\xE9ordonne les profils et les
+ * lignes directrices. D\xE9finit les liens entre les points des profils et des lignes directrices eventuelles.<p>
+ *
+ * @param _mdls Les mod\xE8les de lignes directrices et profils.
+ * @return true si ok.
+ */
+ private boolean prepareWrite(GISDataModel[] _mdls) {
+ GISDataModel ldirs=_mdls[1];
+ profs_=_mdls[0];
+
+ pts2lds_=null;
+ if (ldirs==null) return true; // On ne peut rien controler sans lignes directrices.
+
+ // Les lignes directrices doivent avoir m\xEAme nombre de points.
+ int nbpts=-1;
+ for (int i=0; i<ldirs.getNumGeometries(); i++) {
+ if (nbpts==-1) {
+ nbpts=ldirs.getGeometry(i).getNumPoints();
+ }
+ else if (ldirs.getGeometry(i).getNumPoints()!=nbpts) {
+ analyze_.addError(CtuluLib.getS("Les lignes directrices doivent avoir le m\xEAme nombre de points"), 0);
+ break;
+ }
+ }
+ // Le nombre de profils doit \xEAtre \xE9gal au nombre de points des lignes directrices.
+ if (nbpts!=profs_.getNumGeometries()) {
+ analyze_.addError(CtuluLib.getS("Le nombre de points sur les lignes directrices doit \xEAtre \xE9gal au nombre de profils"), 0);
+ }
+ if (analyze_.containsErrors()) return false;
+
+ List<Integer> ordProfs=new ArrayList<Integer>(profs_.getNumGeometries());
+ CoordinateSequence firstLine=((LineString)ldirs.getGeometry(0)).getCoordinateSequence();
+ // On r\xE9ordonne les profils suivant la 1ere ligne directrice.
+ NEXT_LD_COORD:
+ for (int i=0; i<firstLine.size(); i++) {
+ double x1=firstLine.getOrdinate(i,CoordinateSequence.X);
+ double y1=firstLine.getOrdinate(i,CoordinateSequence.Y);
+ double z1=firstLine.getOrdinate(i,CoordinateSequence.Z);
+ for (int j=0; j<profs_.getNumGeometries(); j++) {
+ if (ordProfs.contains(j)) continue;
+ CoordinateSequence seq=((LineString)profs_.getGeometry(j)).getCoordinateSequence();
+ for (int k=0; k<seq.size(); k++) {
+ double x2=seq.getOrdinate(k,CoordinateSequence.X);
+ double y2=seq.getOrdinate(k,CoordinateSequence.Y);
+ double z2=seq.getOrdinate(k,CoordinateSequence.Z);
+ if (CtuluLibGeometrie.getDistance3D(x1,y1,z1,x2,y2,z2)<1.E-6) {
+ ordProfs.add(j);
+ continue NEXT_LD_COORD;
+ }
+ }
+ }
+ analyze_.addError(CtuluLib.getS("Les lignes directrices ne sont probablement pas connect\xE9es aux profils"), 0);
+ return false;
+ }
+
+ int[] iprofs=new int[ordProfs.size()];
+ for (int i=0; i<iprofs.length; i++) iprofs[i]=ordProfs.get(i).intValue();
+ profs_=GISDataModelFilterAdapter.buildAdapter(profs_, null, iprofs);
+
+ // Les profils sont r\xE9ordonn\xE9s => On associe un index de ligne directrice aux points qui en contiennent.
+ pts2lds_=new HashMap[profs_.getNumGeometries()];
+ for (int i=0; i<profs_.getNumGeometries(); i++) {
+ pts2lds_[i]=new HashMap<Integer,ArrayList<Integer>>();
+ CoordinateSequence seqprof=((LineString)profs_.getGeometry(i)).getCoordinateSequence();
+
+ NEXT_LD:
+ for (int j=0; j<ldirs.getNumGeometries(); j++) {
+ CoordinateSequence seqline=((LineString)ldirs.getGeometry(j)).getCoordinateSequence();
+ double x1=seqline.getOrdinate(i,CoordinateSequence.X);
+ double y1=seqline.getOrdinate(i,CoordinateSequence.Y);
+ double z1=seqline.getOrdinate(i,CoordinateSequence.Z);
+ for (int k=0; k<seqprof.size(); k++) {
+ double x2=seqprof.getOrdinate(k,CoordinateSequence.X);
+ double y2=seqprof.getOrdinate(k,CoordinateSequence.Y);
+ double z2=seqprof.getOrdinate(k,CoordinateSequence.Z);
+ if (CtuluLibGeometrie.getDistance3D(x1,y1,z1,x2,y2,z2)<1.E-6) {
+ ArrayList<Integer> idxlines=pts2lds_[i].get(k);
+ if (idxlines==null) {
+ idxlines=new ArrayList<Integer>();
+ pts2lds_[i].put(k,idxlines);
+ }
+ idxlines.add(j);
+ continue NEXT_LD;
+ }
+ }
+ int attNameLines=ldirs.getIndiceOf(GISAttributeConstants.TITRE);
+ String name;
+ if (attNameLines==-1) name=""+j;
+ else name=(String)ldirs.getValue(attNameLines,j);
+ analyze_.addError(
+ CtuluLib.getS("La ligne directrice {0} n'est pas connect\xE9e \xE0 un profil au sommet {1}",name,""+(i+1)), 0);
+ return false;
+ }
}
-
+ if (analyze_.containsErrors()) return false;
+ return true;
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2008-07-09 15:48:46
|
Revision: 3671
http://fudaa.svn.sourceforge.net/fudaa/?rev=3671&view=rev
Author: bmarchan
Date: 2008-07-09 08:48:54 -0700 (Wed, 09 Jul 2008)
Log Message:
-----------
Implementent GISCoordinateSequenceContainerInterface pour traitements g?\195?\169n?\195?\169riques.
Modified Paths:
--------------
branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISLigneBrisee.java
branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISMultiPoint.java
branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISPoint.java
Added Paths:
-----------
branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISCoordinateSequenceContainerInterface.java
Added: branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISCoordinateSequenceContainerInterface.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISCoordinateSequenceContainerInterface.java (rev 0)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISCoordinateSequenceContainerInterface.java 2008-07-09 15:48:54 UTC (rev 3671)
@@ -0,0 +1,24 @@
+/*
+ * @creation 11 f\xE9vr. 2004
+ * @modification $Date: 2006-02-09 08:59:28 $
+ * @license GNU General Public License 2
+ * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
+ * @mail de...@fu...
+ */
+package org.fudaa.ctulu.gis;
+
+import com.vividsolutions.jts.geom.CoordinateSequence;
+
+/**
+ * Interface definissant des g\xE9om\xE9tries \xE0 base de {@link CoordinateSequence}.
+ *
+ * @author Bertrand Marchand
+ * @version $Id: GISPointContainerInterface.java,v 1.3 2006-02-09 08:59:28 deniger Exp $
+ */
+public interface GISCoordinateSequenceContainerInterface {
+
+ /**
+ * @return La sequence de coordonn\xE9es pour la g\xE9om\xE9trie.
+ */
+ public CoordinateSequence getCoordinateSequence();
+}
Property changes on: branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISCoordinateSequenceContainerInterface.java
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISLigneBrisee.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISLigneBrisee.java 2008-07-08 14:47:31 UTC (rev 3670)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISLigneBrisee.java 2008-07-09 15:48:54 UTC (rev 3671)
@@ -12,7 +12,7 @@
* @author Fred Deniger
* @version $Id: GISLigneBrisee.java,v 1.2 2006-02-09 08:59:28 deniger Exp $
*/
-public interface GISLigneBrisee extends GISGeometry{
+public interface GISLigneBrisee extends GISGeometry, GISCoordinateSequenceContainerInterface{
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISMultiPoint.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISMultiPoint.java 2008-07-08 14:47:31 UTC (rev 3670)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISMultiPoint.java 2008-07-09 15:48:54 UTC (rev 3671)
@@ -18,7 +18,7 @@
* @author Bertrand Marchand
* @version $Id: GISMultiPoint.java,v 1.8.6.2 2008-04-01 17:09:56 bmarchan Exp $
*/
-public class GISMultiPoint extends MultiPoint implements GISGeometry {
+public class GISMultiPoint extends MultiPoint implements GISGeometry, GISCoordinateSequenceContainerInterface {
CoordinateSequence seq_=null;
protected long id_=GISGeometryFactory.INSTANCE.getNewId();
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISPoint.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISPoint.java 2008-07-08 14:47:31 UTC (rev 3670)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISPoint.java 2008-07-09 15:48:54 UTC (rev 3671)
@@ -17,7 +17,7 @@
* @author deniger
* @version $Id: GISPoint.java,v 1.5 2006-07-13 13:34:35 deniger Exp $
*/
-public class GISPoint extends Point implements GISGeometry {
+public class GISPoint extends Point implements GISGeometry, GISCoordinateSequenceContainerInterface {
protected long id_=GISGeometryFactory.INSTANCE.getNewId();
public long getId() {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2008-07-08 14:49:28
|
Revision: 3670
http://fudaa.svn.sourceforge.net/fudaa/?rev=3670&view=rev
Author: bmarchan
Date: 2008-07-08 07:47:31 -0700 (Tue, 08 Jul 2008)
Log Message:
-----------
Suppression de FIXME corrig?\195?\169s.
Modified Paths:
--------------
branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/GenarrModeleTable.java
branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3DataSimulation.java
branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3DessinerPort.java
branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3DonneesGeneralesParametres.java
branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3FrameSaisieHoraires.java
branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3ModeleDurManeuvreEclEntrant.java
branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3ModeleDurManeuvreEclSortant.java
branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3ModeleExcel.java
branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3ModeleVitesseBiefAvalant.java
branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3ModeleVitesseBiefMontant.java
branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3Modeletrajets.java
branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sipor/GenarrModeleTable.java
branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sipor/SiporDataSimulation.java
branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sipor/SiporDessinerPort.java
branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sipor/SiporDonneesGeneralesParametres.java
branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sipor/SiporFrameSaisieHoraires.java
branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sipor/SiporModeleDureeParcoursCercles.java
branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sipor/SiporModeleDureeParcoursChenaux.java
branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sipor/SiporModeleExcel.java
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/GenarrModeleTable.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/GenarrModeleTable.java 2008-07-08 14:19:35 UTC (rev 3669)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/GenarrModeleTable.java 2008-07-08 14:47:31 UTC (rev 3670)
@@ -231,15 +231,7 @@
return null;
}
String s = o.toString();
- //FIXME fred + court et + efficace
if(CtuluLibString.isEmpty(s)) return null;
-/* if (s == null) {
- return null;
- }
- s = s.trim();
- if (s.length() == 0) {
- return null;
- }*/
try {
return new Number(_colXls, _rowXls, Double.parseDouble(s));
} catch (final NumberFormatException e) {}
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3DataSimulation.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3DataSimulation.java 2008-07-08 14:19:35 UTC (rev 3669)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3DataSimulation.java 2008-07-08 14:47:31 UTC (rev 3670)
@@ -68,8 +68,8 @@
/**
* donn\xE9es generales du port.
*/
- // FIXME: fred jamais utilise
- Sinavi3DonneesGenerales donneesGenerales_ = new Sinavi3DonneesGenerales();
+ // Fred jamais utilise
+// Sinavi3DonneesGenerales donneesGenerales_ = new Sinavi3DonneesGenerales();
/**
* Tableau de catgories de Navires.
@@ -80,14 +80,14 @@
/**
* Liste d'horaires saisis par l'utilisateur par defaut une cinquantaine ce qui est plus que amplement suffisant.
*/
- // FIXME: FRED JAMAIS UTILISE
- Sinavi3ListeHoraires listeHoraire_ = new Sinavi3ListeHoraires();
+ // FRED: JAMAIS UTILISE
+// Sinavi3ListeHoraires listeHoraire_ = new Sinavi3ListeHoraires();
/**
* Nombres d'horaires choisis si cet indice est a zro, cela prouve que l'utilisateur n'as toujours pas retr de donnes
* horaires, on ne peut donc pas passer la suite.
*/
- // FIXME: FRED JAMAIS UTILISE
- int nbHoraires_;
+ // FRED: JAMAIS UTILISE
+// int nbHoraires_;
/**
* les donn\xE9es des gares.
@@ -122,8 +122,8 @@
* Liste d'horaires pour les categories de navires ces horaires ne sont pas enregistr\xE9 dans les sauvegardes, ils
* servent juste a rendre la saisie plus rapide et ergonomique.
*/
- // FIXME: FRED JAMAIS UTILISE
- ArrayList listeHorairesNavires_ = new ArrayList();
+ // FRED: JAMAIS UTILISE
+// ArrayList listeHorairesNavires_ = new ArrayList();
/**
* Interface parent sinavi.
@@ -247,18 +247,18 @@
}
// A: initialisation des donn\xE9es
- donneesGenerales_ = new Sinavi3DonneesGenerales();
+// donneesGenerales_ = new Sinavi3DonneesGenerales();
listeBateaux_ = new Sinavi3Navires();
- listeHoraire_ = new Sinavi3ListeHoraires();
- nbHoraires_ = 0;
+// listeHoraire_ = new Sinavi3ListeHoraires();
+// nbHoraires_ = 0;
listeGare_ = new Sinavi3Gares();
listeBief_ = new Sinavi3Biefs();
listeEcluse_ = new Sinavi3Ecluses();
// final Sinavi3StrutureReglesDureesParcours reglesDureesParcoursChenal_ = new Sinavi3StrutureReglesDureesParcours();
// final Sinavi3StrutureReglesDureesParcours reglesDureesParcoursCercle_ = new Sinavi3StrutureReglesDureesParcours();
- listeHorairesNavires_ = new ArrayList();
+// listeHorairesNavires_ = new ArrayList();
// Ajoute le projet qui vient d'etre ouvert et en fait le projet courant.
this.application_.liste_.ajouteSimulation(nomFichierVoulu, projet);
@@ -642,11 +642,11 @@
void getParametresProjet() {
// A: initialisation des donn\xE9es
- donneesGenerales_ = new Sinavi3DonneesGenerales();
+// donneesGenerales_ = new Sinavi3DonneesGenerales();
listeBateaux_ = new Sinavi3Navires();
- listeHoraire_ = new Sinavi3ListeHoraires();
- nbHoraires_ = 0;
+// listeHoraire_ = new Sinavi3ListeHoraires();
+// nbHoraires_ = 0;
listeGare_ = new Sinavi3Gares();
listeBief_ = new Sinavi3Biefs();
@@ -655,7 +655,7 @@
reglesVitesseBiefMontant_= new Sinavi3StrutureReglesDureesParcours();
durManeuvreEclEntrant_ = new Sinavi3StrutureReglesDureesParcours();
durManeuvreEclSortant_ = new Sinavi3StrutureReglesDureesParcours();
- listeHorairesNavires_ = new ArrayList();
+// listeHorairesNavires_ = new ArrayList();
/** recopiage des donn\xE9es des gares */
@@ -2036,11 +2036,11 @@
SSimulationSinavi2 simuOld=(SSimulationSinavi2) listeSimulationsSinavi2_.get(0);
//A: initialisation des donn\xE9es
- donneesGenerales_ = new Sinavi3DonneesGenerales();
+// donneesGenerales_ = new Sinavi3DonneesGenerales();
listeBateaux_ = new Sinavi3Navires();
- listeHoraire_ = new Sinavi3ListeHoraires();
- nbHoraires_ = 0;
+// listeHoraire_ = new Sinavi3ListeHoraires();
+// nbHoraires_ = 0;
listeGare_ = new Sinavi3Gares();
listeBief_ = new Sinavi3Biefs();
@@ -2049,7 +2049,7 @@
reglesVitesseBiefMontant_= new Sinavi3StrutureReglesDureesParcours();
durManeuvreEclEntrant_ = new Sinavi3StrutureReglesDureesParcours();
durManeuvreEclSortant_ = new Sinavi3StrutureReglesDureesParcours();
- listeHorairesNavires_ = new ArrayList();
+// listeHorairesNavires_ = new ArrayList();
//-- recopiage des donn\xE9es --//
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3DessinerPort.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3DessinerPort.java 2008-07-08 14:19:35 UTC (rev 3669)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3DessinerPort.java 2008-07-08 14:47:31 UTC (rev 3670)
@@ -182,7 +182,6 @@
* Methode d implementation de CtuluImageProducer retourne null on ne s'en pr\xE9occupe pas.
*/
public Dimension getDefaultImageDimension() {
- // TODO Auto-generated method stub
return this.getSize();
}
@@ -1142,7 +1141,7 @@
* @return
*/
int nombreEcluses2arcsIdentiques(final int _arcEcluse) {
- // FIXME: FRED JAMAIS UTILISE
+ // FRED: JAMAIS UTILISE
// final int indiceColoriage = 2;
int compteurEcluses = 0;
final int gare1 = this.donnees_.params_.grapheTopologie.graphe[_arcEcluse].numGare1;
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3DonneesGeneralesParametres.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3DonneesGeneralesParametres.java 2008-07-08 14:19:35 UTC (rev 3669)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3DonneesGeneralesParametres.java 2008-07-08 14:47:31 UTC (rev 3670)
@@ -149,8 +149,6 @@
tfTitre2.setText(dg.titre2);
tfTitre3.setText(dg.titre3);
boxNombrePassages.setSelectedItem(new Integer(dg.nombrePassages));
- //FIXME aie inutile
-// tfGraineDepart.setText((new Integer(dg.graineDepart)).toString());
tfGraineDepart.setText(Integer.toString(dg.graineDepart));
boxPremierJour.setSelectedIndex(dg.premierJourSimulation);
dfDureeInitSimul.setDureeField(dg.heureDebutReelSimulation);
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3FrameSaisieHoraires.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3FrameSaisieHoraires.java 2008-07-08 14:19:35 UTC (rev 3669)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3FrameSaisieHoraires.java 2008-07-08 14:47:31 UTC (rev 3670)
@@ -104,7 +104,6 @@
.setToolTipText("Saisissez le nombre correspondant l'horaire de fermeture. Par exemple, si vous voulez rentrer 8h46, tapez 8.46");
if (horaire_.semaineCreneau1HeureArrivee != -1 && horaire_.semaineCreneau2HeureArrivee != -1
- //FIXME Fred & remplace par &&
&& horaire_.semaineCreneau1HeureDep != -1 && horaire_.semaineCreneau2HeureDep != -1) {
// valeur recuperee de la structure horaire
this.creneau1debut_.setText("" + (float) horaire_.semaineCreneau1HeureDep);
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3ModeleDurManeuvreEclEntrant.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3ModeleDurManeuvreEclEntrant.java 2008-07-08 14:19:35 UTC (rev 3669)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3ModeleDurManeuvreEclEntrant.java 2008-07-08 14:47:31 UTC (rev 3670)
@@ -159,15 +159,7 @@
return null;
}
String s = o.toString();
- //FIXME fred + court et + efficace
if(CtuluLibString.isEmpty(s)) return null;
- /* if (s == null) {
- return null;
- }
- s = s.trim();
- if (s.length() == 0) {
- return null;
- }*/
try {
return new Number(_colXls, _rowXls, Double.parseDouble(s));
} catch (final NumberFormatException e) {}
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3ModeleDurManeuvreEclSortant.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3ModeleDurManeuvreEclSortant.java 2008-07-08 14:19:35 UTC (rev 3669)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3ModeleDurManeuvreEclSortant.java 2008-07-08 14:47:31 UTC (rev 3670)
@@ -157,15 +157,7 @@
return null;
}
String s = o.toString();
- //FIXME fred + court et + efficace
if(CtuluLibString.isEmpty(s)) return null;
- /* if (s == null) {
- return null;
- }
- s = s.trim();
- if (s.length() == 0) {
- return null;
- }*/
try {
return new Number(_colXls, _rowXls, Double.parseDouble(s));
} catch (final NumberFormatException e) {}
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3ModeleExcel.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3ModeleExcel.java 2008-07-08 14:19:35 UTC (rev 3669)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3ModeleExcel.java 2008-07-08 14:47:31 UTC (rev 3670)
@@ -171,15 +171,7 @@
return null;
}
String s = o.toString();
- //FIXME fred + court et + efficace
if(CtuluLibString.isEmpty(s)) return null;
-/* if (s == null) {
- return null;
- }
- s = s.trim();
- if (s.length() == 0) {
- return null;
- }*/
try {
return new Number(_colXls, _rowXls, Double.parseDouble(s));
} catch (final NumberFormatException e) {}
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3ModeleVitesseBiefAvalant.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3ModeleVitesseBiefAvalant.java 2008-07-08 14:19:35 UTC (rev 3669)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3ModeleVitesseBiefAvalant.java 2008-07-08 14:47:31 UTC (rev 3670)
@@ -157,15 +157,7 @@
return null;
}
String s = o.toString();
- //FIXME fred + court et + efficace
if(CtuluLibString.isEmpty(s)) return null;
- /* if (s == null) {
- return null;
- }
- s = s.trim();
- if (s.length() == 0) {
- return null;
- }*/
try {
return new Number(_colXls, _rowXls, Double.parseDouble(s));
} catch (final NumberFormatException e) {}
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3ModeleVitesseBiefMontant.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3ModeleVitesseBiefMontant.java 2008-07-08 14:19:35 UTC (rev 3669)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3ModeleVitesseBiefMontant.java 2008-07-08 14:47:31 UTC (rev 3670)
@@ -156,15 +156,7 @@
return null;
}
String s = o.toString();
- //FIXME fred + court et + efficace
if(CtuluLibString.isEmpty(s)) return null;
- /* if (s == null) {
- return null;
- }
- s = s.trim();
- if (s.length() == 0) {
- return null;
- }*/
try {
return new Number(_colXls, _rowXls, Double.parseDouble(s));
} catch (final NumberFormatException e) {}
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3Modeletrajets.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3Modeletrajets.java 2008-07-08 14:19:35 UTC (rev 3669)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3Modeletrajets.java 2008-07-08 14:47:31 UTC (rev 3670)
@@ -110,15 +110,7 @@
return null;
}
String s = o.toString();
- //FIXME fred + court et + efficace
if(CtuluLibString.isEmpty(s)) return null;
- /* if (s == null) {
- return null;
- }
- s = s.trim();
- if (s.length() == 0) {
- return null;
- }*/
try {
return new Number(_colXls, _rowXls, Double.parseDouble(s));
} catch (final NumberFormatException e) {}
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sipor/GenarrModeleTable.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sipor/GenarrModeleTable.java 2008-07-08 14:19:35 UTC (rev 3669)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sipor/GenarrModeleTable.java 2008-07-08 14:47:31 UTC (rev 3670)
@@ -216,15 +216,7 @@
return null;
}
String s = o.toString();
- //FIXME fred + court et + efficace
if(CtuluLibString.isEmpty(s)) return null;
-/* if (s == null) {
- return null;
- }
- s = s.trim();
- if (s.length() == 0) {
- return null;
- }*/
try {
return new Number(_colXls, _rowXls, Double.parseDouble(s));
} catch (final NumberFormatException e) {}
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sipor/SiporDataSimulation.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sipor/SiporDataSimulation.java 2008-07-08 14:19:35 UTC (rev 3669)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sipor/SiporDataSimulation.java 2008-07-08 14:47:31 UTC (rev 3670)
@@ -86,8 +86,8 @@
/**
* donn\xE9es generales du port.
*/
- // FIXME: fred jamais utilise
- SiporDonneesGenerales donneesGenerales_ = new SiporDonneesGenerales();
+ // fred : jamais utilise
+// SiporDonneesGenerales donneesGenerales_ = new SiporDonneesGenerales();
/**
* Tableau de catgories de Navires.
@@ -102,14 +102,14 @@
/**
* Liste d'horaires saisis par l'utilisateur par defaut une cinquantaine ce qui est plus que amplement suffisant.
*/
- // FIXME: FRED JAMAIS UTILISE
- SiporListeHoraires listeHoraire_ = new SiporListeHoraires();
+ // FRED: JAMAIS UTILISE
+// SiporListeHoraires listeHoraire_ = new SiporListeHoraires();
/**
* Nombres d'horaires choisis si cet indice est a zro, cela prouve que l'utilisateur n'as toujours pas retr de donnes
* horaires, on ne peut donc pas passer la suite.
*/
- // FIXME: FRED JAMAIS UTILISE
- int nbHoraires_;
+ // FRED: JAMAIS UTILISE
+// int nbHoraires_;
/**
* les donn\xE9es des bassins.
@@ -146,8 +146,8 @@
* Liste d'horaires pour les categories de navires ces horaires ne sont pas enregistr\xE9 dans les sauvegardes, ils
* servent juste a rendre la saisie plus rapide et ergonomique.
*/
- // FIXME: FRED JAMAIS UTILISE
- ArrayList listeHorairesNavires_ = new ArrayList();
+ // FRED: JAMAIS UTILISE
+// ArrayList listeHorairesNavires_ = new ArrayList();
/**
* Interface parent SIPOR.
@@ -275,11 +275,11 @@
}
// A: initialisation des donn\xE9es
- donneesGenerales_ = new SiporDonneesGenerales();
+// donneesGenerales_ = new SiporDonneesGenerales();
categoriesNavires_ = new SiporNavires();
lQuais_ = new SiporListeQuais();
- listeHoraire_ = new SiporListeHoraires();
- nbHoraires_ = 0;
+// listeHoraire_ = new SiporListeHoraires();
+// nbHoraires_ = 0;
listebassin_ = new SiporBassins();
listeGare_ = new SiporGares();
listeCercle_ = new SiporCercles();
@@ -287,7 +287,7 @@
listeEcluse_ = new SiporEcluses();
// final SiporStrutureReglesDureesParcours reglesDureesParcoursChenal_ = new SiporStrutureReglesDureesParcours();
// final SiporStrutureReglesDureesParcours reglesDureesParcoursCercle_ = new SiporStrutureReglesDureesParcours();
- listeHorairesNavires_ = new ArrayList();
+// listeHorairesNavires_ = new ArrayList();
// Ajoute le projet qui vient d'etre ouvert et en fait le projet courant.
this.application_.liste_.ajouteSimulation(nomFichierVoulu, projet);
@@ -649,11 +649,11 @@
void getParametresProjet() {
// A: initialisation des donn\xE9es
- donneesGenerales_ = new SiporDonneesGenerales();
+// donneesGenerales_ = new SiporDonneesGenerales();
categoriesNavires_ = new SiporNavires();
lQuais_ = new SiporListeQuais();
- listeHoraire_ = new SiporListeHoraires();
- nbHoraires_ = 0;
+// listeHoraire_ = new SiporListeHoraires();
+// nbHoraires_ = 0;
listebassin_ = new SiporBassins();
listeGare_ = new SiporGares();
listeCercle_ = new SiporCercles();
@@ -661,7 +661,7 @@
listeEcluse_ = new SiporEcluses();
reglesDureesParcoursChenal_ = new SiporStrutureReglesDureesParcours();
reglesDureesParcoursCercle_ = new SiporStrutureReglesDureesParcours();
- listeHorairesNavires_ = new ArrayList();
+// listeHorairesNavires_ = new ArrayList();
/** recopiage des donn\xE9es des gares */
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sipor/SiporDessinerPort.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sipor/SiporDessinerPort.java 2008-07-08 14:19:35 UTC (rev 3669)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sipor/SiporDessinerPort.java 2008-07-08 14:47:31 UTC (rev 3670)
@@ -1293,7 +1293,7 @@
* @return
*/
int nombreEcluses2arcsIdentiques(final int _arcEcluse) {
- // FIXME: FRED JAMAIS UTILISE
+ // FRED: JAMAIS UTILISE
// final int indiceColoriage = 2;
int compteurEcluses = 0;
final int gare1 = this.donnees_.params_.grapheTopologie.graphe[_arcEcluse].numGare1;
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sipor/SiporDonneesGeneralesParametres.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sipor/SiporDonneesGeneralesParametres.java 2008-07-08 14:19:35 UTC (rev 3669)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sipor/SiporDonneesGeneralesParametres.java 2008-07-08 14:47:31 UTC (rev 3670)
@@ -149,8 +149,6 @@
tfTitre2.setText(dg.titre2);
tfTitre3.setText(dg.titre3);
boxNombrePassages.setSelectedItem(new Integer(dg.nombrePassages));
- //FIXME aie inutile
-// tfGraineDepart.setText((new Integer(dg.graineDepart)).toString());
tfGraineDepart.setText(Integer.toString(dg.graineDepart));
boxPremierJour.setSelectedIndex(dg.premierJourSimulation);
dfDureeInitSimul.setDureeField(dg.heureDebutReelSimulation);
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sipor/SiporFrameSaisieHoraires.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sipor/SiporFrameSaisieHoraires.java 2008-07-08 14:19:35 UTC (rev 3669)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sipor/SiporFrameSaisieHoraires.java 2008-07-08 14:47:31 UTC (rev 3670)
@@ -104,7 +104,6 @@
.setToolTipText("Saisissez le nombre correspondant l'horaire de fermeture. Par exemple, si vous voulez rentrer 8h46, tapez 8.46");
if (horaire_.semaineCreneau1HeureArrivee != -1 && horaire_.semaineCreneau2HeureArrivee != -1
- //FIXME Fred & remplace par &&
&& horaire_.semaineCreneau1HeureDep != -1 && horaire_.semaineCreneau2HeureDep != -1) {
// valeur recuperee de la structure horaire
this.creneau1debut_.setText("" + (float) horaire_.semaineCreneau1HeureDep);
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sipor/SiporModeleDureeParcoursCercles.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sipor/SiporModeleDureeParcoursCercles.java 2008-07-08 14:19:35 UTC (rev 3669)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sipor/SiporModeleDureeParcoursCercles.java 2008-07-08 14:47:31 UTC (rev 3670)
@@ -154,15 +154,7 @@
return null;
}
String s = o.toString();
- //FIXME fred + court et + efficace
if(CtuluLibString.isEmpty(s)) return null;
- /* if (s == null) {
- return null;
- }
- s = s.trim();
- if (s.length() == 0) {
- return null;
- }*/
try {
return new Number(_colXls, _rowXls, Double.parseDouble(s));
} catch (final NumberFormatException e) {}
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sipor/SiporModeleDureeParcoursChenaux.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sipor/SiporModeleDureeParcoursChenaux.java 2008-07-08 14:19:35 UTC (rev 3669)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sipor/SiporModeleDureeParcoursChenaux.java 2008-07-08 14:47:31 UTC (rev 3670)
@@ -157,15 +157,7 @@
return null;
}
String s = o.toString();
- //FIXME fred + court et + efficace
if(CtuluLibString.isEmpty(s)) return null;
- /* if (s == null) {
- return null;
- }
- s = s.trim();
- if (s.length() == 0) {
- return null;
- }*/
try {
return new Number(_colXls, _rowXls, Double.parseDouble(s));
} catch (final NumberFormatException e) {}
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sipor/SiporModeleExcel.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sipor/SiporModeleExcel.java 2008-07-08 14:19:35 UTC (rev 3669)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sipor/SiporModeleExcel.java 2008-07-08 14:47:31 UTC (rev 3670)
@@ -171,15 +171,7 @@
return null;
}
String s = o.toString();
- //FIXME fred + court et + efficace
if(CtuluLibString.isEmpty(s)) return null;
-/* if (s == null) {
- return null;
- }
- s = s.trim();
- if (s.length() == 0) {
- return null;
- }*/
try {
return new Number(_colXls, _rowXls, Double.parseDouble(s));
} catch (final NumberFormatException e) {}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2008-07-08 14:21:22
|
Revision: 3669
http://fudaa.svn.sourceforge.net/fudaa/?rev=3669&view=rev
Author: bmarchan
Date: 2008-07-08 07:19:35 -0700 (Tue, 08 Jul 2008)
Log Message:
-----------
Suppression de FIXME corrig?\195?\169s.
Modified Paths:
--------------
branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3FrameSaisieHorairesComplet.java
branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3FrameSaisieHorairesCompletSemaine.java
branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sipor/SiporFrameSaisieHorairesComplet.java
branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sipor/SiporFrameSaisieHorairesCompletSemaine.java
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3FrameSaisieHorairesComplet.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3FrameSaisieHorairesComplet.java 2008-07-04 08:59:20 UTC (rev 3668)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3FrameSaisieHorairesComplet.java 2008-07-08 14:19:35 UTC (rev 3669)
@@ -105,7 +105,6 @@
if (horaire_.samediCreneau1HeureArrivee != -1 && horaire_.samediCreneau2HeureArrivee != -1
&& horaire_.samediCreneau3HeureArrivee != -1 && horaire_.samediCreneau1HeureDep != -1
- //FIXME pourquoi un seul &
&& horaire_.samediCreneau2HeureDep != -1 && horaire_.samediCreneau3HeureDep != -1) {
// valeur recuperee de la structure horaire
this.screneau1debut_.setText("" + (float) horaire_.samediCreneau1HeureDep);
@@ -419,7 +418,6 @@
if (horaire_.dimancheCreneau1HeureArrivee != -1 && horaire_.dimancheCreneau2HeureArrivee != -1
&& horaire_.dimancheCreneau3HeureArrivee != -1 && horaire_.dimancheCreneau1HeureDep != -1
-// FIXME pourquoi un seul &
&& horaire_.dimancheCreneau2HeureDep != -1 && horaire_.dimancheCreneau3HeureDep != -1) {
// valeur recuperee de la structure horaire
this.dcreneau1debut_.setText("" + (float) horaire_.dimancheCreneau1HeureDep);
@@ -731,7 +729,6 @@
if (horaire_.ferieCreneau1HeureArrivee != -1 && horaire_.ferieCreneau2HeureArrivee != -1
&& horaire_.ferieCreneau3HeureArrivee != -1 && horaire_.ferieCreneau1HeureDep != -1
-// FIXME pourquoi un seul &
&& horaire_.ferieCreneau2HeureDep != -1 && horaire_.ferieCreneau3HeureDep != -1) {
// valeur recuperee de la structure horaire
this.fcreneau1debut_.setText("" + (float) horaire_.ferieCreneau1HeureDep);
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3FrameSaisieHorairesCompletSemaine.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3FrameSaisieHorairesCompletSemaine.java 2008-07-04 08:59:20 UTC (rev 3668)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sinavi3/Sinavi3FrameSaisieHorairesCompletSemaine.java 2008-07-08 14:19:35 UTC (rev 3669)
@@ -201,7 +201,6 @@
if (horaire_.lundiCreneau1HeureArrivee != -1 && horaire_.lundiCreneau2HeureArrivee != -1
&& horaire_.lundiCreneau3HeureArrivee != -1 && horaire_.lundiCreneau1HeureDep != -1
-// FIXME pourquoi un seul &
&& horaire_.lundiCreneau2HeureDep != -1 && horaire_.lundiCreneau3HeureDep != -1) {
// valeur recuperee de la structure horaire
this.lundicreneau1debut_.setText("" + (float) horaire_.lundiCreneau1HeureDep);
@@ -510,7 +509,6 @@
if (horaire_.mardiCreneau1HeureArrivee != -1 && horaire_.mardiCreneau2HeureArrivee != -1
&& horaire_.mardiCreneau3HeureArrivee != -1 && horaire_.mardiCreneau1HeureDep != -1
-// FIXME pourquoi un seul &
&& horaire_.mardiCreneau2HeureDep != -1 && horaire_.mardiCreneau3HeureDep != -1) {
// valeur recuperee de la structure horaire
this.mardicreneau1debut_.setText("" + (float) horaire_.mardiCreneau1HeureDep);
@@ -823,7 +821,6 @@
if (horaire_.mercrediCreneau1HeureArrivee != -1 && horaire_.mercrediCreneau2HeureArrivee != -1
&& horaire_.mercrediCreneau3HeureArrivee != -1 && horaire_.mercrediCreneau1HeureDep != -1
-// FIXME pourquoi un seul &
&& horaire_.mercrediCreneau2HeureDep != -1 && horaire_.mercrediCreneau3HeureDep != -1) {
// valeur recuperee de la structure horaire
this.mercredicreneau1debut_.setText("" + (float) horaire_.mercrediCreneau1HeureDep);
@@ -1135,7 +1132,6 @@
if (horaire_.jeudiCreneau1HeureArrivee != -1 && horaire_.jeudiCreneau2HeureArrivee != -1
&& horaire_.jeudiCreneau3HeureArrivee != -1 && horaire_.jeudiCreneau1HeureDep != -1
-// FIXME pourquoi un seul &
&& horaire_.jeudiCreneau2HeureDep != -1 && horaire_.jeudiCreneau3HeureDep != -1) {
// valeur recuperee de la structure horaire
this.jeudicreneau1debut_.setText("" + (float) horaire_.jeudiCreneau1HeureDep);
@@ -1448,7 +1444,6 @@
if (horaire_.vendrediCreneau1HeureArrivee != -1 && horaire_.vendrediCreneau2HeureArrivee != -1
&& horaire_.vendrediCreneau3HeureArrivee != -1 && horaire_.vendrediCreneau1HeureDep != -1
-// FIXME pourquoi un seul &
&& horaire_.vendrediCreneau2HeureDep != -1 && horaire_.vendrediCreneau3HeureDep != -1) {
// valeur recuperee de la structure horaire
this.vendredicreneau1debut_.setText("" + (float) horaire_.vendrediCreneau1HeureDep);
@@ -1759,7 +1754,6 @@
if (horaire_.samediCreneau1HeureArrivee != -1 && horaire_.samediCreneau2HeureArrivee != -1
&& horaire_.samediCreneau3HeureArrivee != -1 && horaire_.samediCreneau1HeureDep != -1
-// FIXME pourquoi un seul &
&& horaire_.samediCreneau2HeureDep != -1 && horaire_.samediCreneau3HeureDep != -1) {
// valeur recuperee de la structure horaire
this.screneau1debut_.setText("" + (float) horaire_.samediCreneau1HeureDep);
@@ -2069,7 +2063,6 @@
if (horaire_.dimancheCreneau1HeureArrivee != -1 && horaire_.dimancheCreneau2HeureArrivee != -1
&& horaire_.dimancheCreneau3HeureArrivee != -1 && horaire_.dimancheCreneau1HeureDep != -1
-// FIXME pourquoi un seul &
&& horaire_.dimancheCreneau2HeureDep != -1 && horaire_.dimancheCreneau3HeureDep != -1) {
// valeur recuperee de la structure horaire
this.dcreneau1debut_.setText("" + (float) horaire_.dimancheCreneau1HeureDep);
@@ -2377,7 +2370,6 @@
if (horaire_.ferieCreneau1HeureArrivee != -1 && horaire_.ferieCreneau2HeureArrivee != -1
&& horaire_.ferieCreneau3HeureArrivee != -1 && horaire_.ferieCreneau1HeureDep != -1
-// FIXME pourquoi un seul &
&& horaire_.ferieCreneau2HeureDep != -1 && horaire_.ferieCreneau3HeureDep != -1) {
// valeur recuperee de la structure horaire
this.fcreneau1debut_.setText("" + (float) horaire_.ferieCreneau1HeureDep);
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sipor/SiporFrameSaisieHorairesComplet.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sipor/SiporFrameSaisieHorairesComplet.java 2008-07-04 08:59:20 UTC (rev 3668)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sipor/SiporFrameSaisieHorairesComplet.java 2008-07-08 14:19:35 UTC (rev 3669)
@@ -105,7 +105,6 @@
if (horaire_.samediCreneau1HeureArrivee != -1 && horaire_.samediCreneau2HeureArrivee != -1
&& horaire_.samediCreneau3HeureArrivee != -1 && horaire_.samediCreneau1HeureDep != -1
- //FIXME pourquoi un seul &
&& horaire_.samediCreneau2HeureDep != -1 && horaire_.samediCreneau3HeureDep != -1) {
// valeur recuperee de la structure horaire
this.screneau1debut_.setText("" + (float) horaire_.samediCreneau1HeureDep);
@@ -419,7 +418,6 @@
if (horaire_.dimancheCreneau1HeureArrivee != -1 && horaire_.dimancheCreneau2HeureArrivee != -1
&& horaire_.dimancheCreneau3HeureArrivee != -1 && horaire_.dimancheCreneau1HeureDep != -1
-// FIXME pourquoi un seul &
&& horaire_.dimancheCreneau2HeureDep != -1 && horaire_.dimancheCreneau3HeureDep != -1) {
// valeur recuperee de la structure horaire
this.dcreneau1debut_.setText("" + (float) horaire_.dimancheCreneau1HeureDep);
@@ -731,7 +729,6 @@
if (horaire_.ferieCreneau1HeureArrivee != -1 && horaire_.ferieCreneau2HeureArrivee != -1
&& horaire_.ferieCreneau3HeureArrivee != -1 && horaire_.ferieCreneau1HeureDep != -1
-// FIXME pourquoi un seul &
&& horaire_.ferieCreneau2HeureDep != -1 && horaire_.ferieCreneau3HeureDep != -1) {
// valeur recuperee de la structure horaire
this.fcreneau1debut_.setText("" + (float) horaire_.ferieCreneau1HeureDep);
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sipor/SiporFrameSaisieHorairesCompletSemaine.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sipor/SiporFrameSaisieHorairesCompletSemaine.java 2008-07-04 08:59:20 UTC (rev 3668)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sipor/SiporFrameSaisieHorairesCompletSemaine.java 2008-07-08 14:19:35 UTC (rev 3669)
@@ -201,7 +201,6 @@
if (horaire_.lundiCreneau1HeureArrivee != -1 && horaire_.lundiCreneau2HeureArrivee != -1
&& horaire_.lundiCreneau3HeureArrivee != -1 && horaire_.lundiCreneau1HeureDep != -1
-// FIXME pourquoi un seul &
&& horaire_.lundiCreneau2HeureDep != -1 && horaire_.lundiCreneau3HeureDep != -1) {
// valeur recuperee de la structure horaire
this.lundicreneau1debut_.setText("" + (float) horaire_.lundiCreneau1HeureDep);
@@ -510,7 +509,6 @@
if (horaire_.mardiCreneau1HeureArrivee != -1 && horaire_.mardiCreneau2HeureArrivee != -1
&& horaire_.mardiCreneau3HeureArrivee != -1 && horaire_.mardiCreneau1HeureDep != -1
-// FIXME pourquoi un seul &
&& horaire_.mardiCreneau2HeureDep != -1 && horaire_.mardiCreneau3HeureDep != -1) {
// valeur recuperee de la structure horaire
this.mardicreneau1debut_.setText("" + (float) horaire_.mardiCreneau1HeureDep);
@@ -823,7 +821,6 @@
if (horaire_.mercrediCreneau1HeureArrivee != -1 && horaire_.mercrediCreneau2HeureArrivee != -1
&& horaire_.mercrediCreneau3HeureArrivee != -1 && horaire_.mercrediCreneau1HeureDep != -1
-// FIXME pourquoi un seul &
&& horaire_.mercrediCreneau2HeureDep != -1 && horaire_.mercrediCreneau3HeureDep != -1) {
// valeur recuperee de la structure horaire
this.mercredicreneau1debut_.setText("" + (float) horaire_.mercrediCreneau1HeureDep);
@@ -1135,7 +1132,6 @@
if (horaire_.jeudiCreneau1HeureArrivee != -1 && horaire_.jeudiCreneau2HeureArrivee != -1
&& horaire_.jeudiCreneau3HeureArrivee != -1 && horaire_.jeudiCreneau1HeureDep != -1
-// FIXME pourquoi un seul &
&& horaire_.jeudiCreneau2HeureDep != -1 && horaire_.jeudiCreneau3HeureDep != -1) {
// valeur recuperee de la structure horaire
this.jeudicreneau1debut_.setText("" + (float) horaire_.jeudiCreneau1HeureDep);
@@ -1448,7 +1444,6 @@
if (horaire_.vendrediCreneau1HeureArrivee != -1 && horaire_.vendrediCreneau2HeureArrivee != -1
&& horaire_.vendrediCreneau3HeureArrivee != -1 && horaire_.vendrediCreneau1HeureDep != -1
-// FIXME pourquoi un seul &
&& horaire_.vendrediCreneau2HeureDep != -1 && horaire_.vendrediCreneau3HeureDep != -1) {
// valeur recuperee de la structure horaire
this.vendredicreneau1debut_.setText("" + (float) horaire_.vendrediCreneau1HeureDep);
@@ -1759,7 +1754,6 @@
if (horaire_.samediCreneau1HeureArrivee != -1 && horaire_.samediCreneau2HeureArrivee != -1
&& horaire_.samediCreneau3HeureArrivee != -1 && horaire_.samediCreneau1HeureDep != -1
-// FIXME pourquoi un seul &
&& horaire_.samediCreneau2HeureDep != -1 && horaire_.samediCreneau3HeureDep != -1) {
// valeur recuperee de la structure horaire
this.screneau1debut_.setText("" + (float) horaire_.samediCreneau1HeureDep);
@@ -2069,7 +2063,6 @@
if (horaire_.dimancheCreneau1HeureArrivee != -1 && horaire_.dimancheCreneau2HeureArrivee != -1
&& horaire_.dimancheCreneau3HeureArrivee != -1 && horaire_.dimancheCreneau1HeureDep != -1
-// FIXME pourquoi un seul &
&& horaire_.dimancheCreneau2HeureDep != -1 && horaire_.dimancheCreneau3HeureDep != -1) {
// valeur recuperee de la structure horaire
this.dcreneau1debut_.setText("" + (float) horaire_.dimancheCreneau1HeureDep);
@@ -2377,7 +2370,6 @@
if (horaire_.ferieCreneau1HeureArrivee != -1 && horaire_.ferieCreneau2HeureArrivee != -1
&& horaire_.ferieCreneau3HeureArrivee != -1 && horaire_.ferieCreneau1HeureDep != -1
-// FIXME pourquoi un seul &
&& horaire_.ferieCreneau2HeureDep != -1 && horaire_.ferieCreneau3HeureDep != -1) {
// valeur recuperee de la structure horaire
this.fcreneau1debut_.setText("" + (float) horaire_.ferieCreneau1HeureDep);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2008-07-04 08:59:15
|
Revision: 3668
http://fudaa.svn.sourceforge.net/fudaa/?rev=3668&view=rev
Author: bmarchan
Date: 2008-07-04 01:59:20 -0700 (Fri, 04 Jul 2008)
Log Message:
-----------
Am?\195?\169lioration sur les noms d'objets cr?\195?\169?\195?\169s
Modified Paths:
--------------
branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeConstants.java
branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollectionMultiPoint.java
branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZModeleLigneBriseeEditable.java
branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZModeleMultiPointEditable.java
branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZModelePointEditable.java
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeConstants.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeConstants.java 2008-07-03 13:19:32 UTC (rev 3667)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeConstants.java 2008-07-04 08:59:20 UTC (rev 3668)
@@ -93,12 +93,13 @@
}
/**
- * Un attribut nom, non atomique.
+ * Un attribut nom, global.
*/
public final static GISAttributeString TITRE = new GISAttributeString(CtuluLib.getS("Nom")) {
+ /** Numero d'identifiant, incr\xE9ment\xE9 \xE0 chaque nouvelle cr\xE9ation de nom. */
+ private int numid_=0;
+ String def_ = CtuluLib.getS("<Defaut>");
- String def_ = CtuluLib.getS("_Nouveau");
-
protected Object readResolve() {
return TITRE;
}
@@ -106,7 +107,18 @@
public String getID() {
return "ATTRIBUTE_TITLE";
}
+
+ protected Object createGlobalValues(final Object _initValues) {
+ Object r = _initValues;
+ // Si la valeur en entr\xE9e est la valeur par d\xE9faut, alors une nouvelle valeur en sortie est cr\xE9\xE9e.
+ // Ceci permet d'affecter automatiquement un nom nouveau \xE0 une g\xE9om\xE9trie cr\xE9\xE9e.
+ if (r == null || def_.equals(r)) {
+ r="Geom_"+(++numid_);
+ }
+ return r;
+ }
+
public Object getDefaultValue() {
return def_;
}
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollectionMultiPoint.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollectionMultiPoint.java 2008-07-03 13:19:32 UTC (rev 3667)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollectionMultiPoint.java 2008-07-04 08:59:20 UTC (rev 3668)
@@ -112,7 +112,7 @@
*
* @param _init Les valeurs d'initialisation, dans l'ordre et au nombre des mod\xE8les d'attributs.
* Si null, les valeurs par d\xE9faut sont affect\xE9es (voir {@link GISAttributeInterface#getDefaultValue()})
- * @param _dest La g\xE9ometrie polyligne ou polygone.
+ * @param _dest La g\xE9ometrie.
* @param _isClosed Param\xE8tre inutilis\xE9.
* @return
*/
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZModeleLigneBriseeEditable.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZModeleLigneBriseeEditable.java 2008-07-03 13:19:32 UTC (rev 3667)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZModeleLigneBriseeEditable.java 2008-07-04 08:59:20 UTC (rev 3668)
@@ -765,6 +765,7 @@
Object[] vals=new Object[geometries_.getNbAttributes()];
for (int iatt=0; iatt<geometries_.getNbAttributes(); iatt++) {
Object val=geometries_.getValue(iatt,idx);
+ if (geometries_.getAttribute(iatt).equals(GISAttributeConstants.TITRE)) val=CtuluLib.getS("Copie de")+" "+val;
int nbpt=geom.getNumPoints();
vals[iatt]=geometries_.getAttribute(iatt).createDataForGeom(val, nbpt);
}
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZModeleMultiPointEditable.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZModeleMultiPointEditable.java 2008-07-03 13:19:32 UTC (rev 3667)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZModeleMultiPointEditable.java 2008-07-04 08:59:20 UTC (rev 3668)
@@ -823,6 +823,7 @@
Object[] vals=new Object[geometries_.getNbAttributes()];
for (int iatt=0; iatt<geometries_.getNbAttributes(); iatt++) {
Object val=geometries_.getValue(iatt,idx);
+ if (geometries_.getAttribute(iatt).equals(GISAttributeConstants.TITRE)) val=CtuluLib.getS("Copie de")+" "+val;
int nbpt=geom.getNumPoints();
vals[iatt]=geometries_.getAttribute(iatt).createDataForGeom(val, nbpt);
}
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZModelePointEditable.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZModelePointEditable.java 2008-07-03 13:19:32 UTC (rev 3667)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZModelePointEditable.java 2008-07-04 08:59:20 UTC (rev 3668)
@@ -25,7 +25,7 @@
import org.fudaa.ctulu.CtuluLibGeometrie;
import org.fudaa.ctulu.CtuluLibString;
import org.fudaa.ctulu.CtuluListSelectionInterface;
-import org.fudaa.ctulu.gis.GISMultiPoint;
+import org.fudaa.ctulu.gis.GISAttributeConstants;
import org.fudaa.ctulu.gis.GISPoint;
import org.fudaa.ctulu.gis.GISZoneCollection;
import org.fudaa.ctulu.gis.GISZoneCollectionPoint;
@@ -247,6 +247,7 @@
Object[] vals=new Object[pts_.getNbAttributes()];
for (int iatt=0; iatt<pts_.getNbAttributes(); iatt++) {
Object val=pts_.getValue(iatt,idx);
+ if (pts_.getAttribute(iatt).equals(GISAttributeConstants.TITRE)) val=CtuluLib.getS("Copie de")+" "+val;
int nbpt=geom.getNumPoints();
vals[iatt]=pts_.getAttribute(iatt).createDataForGeom(val, nbpt);
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2008-07-03 13:19:24
|
Revision: 3667
http://fudaa.svn.sourceforge.net/fudaa/?rev=3667&view=rev
Author: bmarchan
Date: 2008-07-03 06:19:32 -0700 (Thu, 03 Jul 2008)
Log Message:
-----------
Ticket#22 : Action Split applicable aussi aux multipoints.
Modified Paths:
--------------
branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZScene.java
branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZCalqueEditable.java
branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZCalqueLigneBriseeEditable.java
branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZCalqueMultiPointEditable.java
branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZCalquePointEditable.java
branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZEditorDefault.java
branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZModeleMultiPointEditable.java
branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZSceneEditor.java
branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dLine.java
branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigEditor.java
Added Paths:
-----------
branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/SceneSplitAction.java
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZScene.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZScene.java 2008-07-01 14:44:38 UTC (rev 3666)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZScene.java 2008-07-03 13:19:32 UTC (rev 3667)
@@ -58,6 +58,18 @@
}
/**
+ * @return La liste de selection des atomiques pour la g\xE9om\xE9trie unique s\xE9lectionn\xE9e. <code>null</code> si plusieurs g\xE9om\xE9tries
+ * ou pas en mode atomique.
+ */
+ public CtuluListSelectionInterface getUniqueAtomicSelection() {
+ if (!ZScene.this.isAtomicMode()) return null;
+ int idGeom=getUniqueSelectedIdx();
+ if (idGeom==-1) return null;
+
+ return ZScene.this.getLayerSelectionMulti().getSelection(idGeom);
+ }
+
+ /**
* @return Le nombre d'atomiques s\xE9lectionn\xE9s, ou 0 si mode global.
*/
public int getNbAtomicSelected() {
Added: branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/SceneSplitAction.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/SceneSplitAction.java (rev 0)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/SceneSplitAction.java 2008-07-03 13:19:32 UTC (rev 3667)
@@ -0,0 +1,72 @@
+/*
+ * @creation 3 juil. 2008
+ * @modification $Date:$
+ * @license GNU General Public License 2
+ * @copyright (c)1998-2008 CETMEF 2 bd Gambetta F-60231 Compiegne
+ * @mail fud...@li...
+ */
+package org.fudaa.ebli.calque.action;
+
+import java.awt.event.ActionEvent;
+
+import javax.swing.Action;
+
+import org.fudaa.ctulu.CtuluLib;
+import org.fudaa.ctulu.gis.GISMultiPoint;
+import org.fudaa.ctulu.gis.GISPolyligne;
+import org.fudaa.ebli.calque.ZScene;
+import org.fudaa.ebli.calque.ZScene.SceneSelectionHelper;
+import org.fudaa.ebli.calque.edition.ZCalqueEditable;
+import org.fudaa.ebli.calque.edition.ZSceneEditor;
+import org.fudaa.ebli.commun.EbliActionSimple;
+
+import com.memoire.bu.BuResource;
+
+/**
+ * Une action pour scinder une g\xE9om\xE9trie sur le sommet d\xE9sign\xE9. Valable uniquement sur des calques
+ * {@link ZCalqueEditable}. Ne fonctionne pas sur des polygones.
+ * @author Bertrand Marchand
+ */
+public class SceneSplitAction extends EbliActionSimple {
+ ZSceneEditor editor_;
+
+ public SceneSplitAction(ZSceneEditor _editor) {
+ super(BuResource.BU.getString("Scinder"), BuResource.BU.getIcon("couperligne"), "GIS_SPLIT");
+ editor_=_editor;
+ setDefaultToolTip(CtuluLib.getS("Scinder la g\xE9om\xE9trie"));
+ }
+
+ public void actionPerformed(final ActionEvent _e) {
+ editor_.splitSelectedObject();
+ }
+
+ public void updateStateBeforeShow() {
+ ZScene scn=editor_.getScene();
+ SceneSelectionHelper hlp=editor_.getScene().getSelectionHelper();
+ int idGeom=-1;
+
+ boolean b=true;
+ // Si la selection n'est pas null et atomique
+ b=b && !scn.isSelectionEmpty() && scn.isAtomicMode();
+ // Si la selection est sur le m\xEAme objet.
+ b=b && (idGeom=hlp.getUniqueSelectedIdx())!=-1;
+ // Si le nombre d'atomiques est de 2 cons\xE9cutifs sur une g\xE9om\xE9trie de type polyligne.
+ if (b && scn.getObject(idGeom) instanceof GISPolyligne) {
+ b=b && hlp.getNbAtomicSelected()==2;
+ b=b && Math.abs(hlp.getUniqueAtomicSelection().getMinIndex()-hlp.getUniqueAtomicSelection().getMaxIndex())==1;
+ if (b) putValue(Action.NAME, BuResource.BU.getString("Scinder la polyligne"));
+ }
+ // Si ou est sur un multipoint
+ else {
+ b=b && (scn.getObject(idGeom) instanceof GISMultiPoint);
+ if (b) putValue(Action.NAME, BuResource.BU.getString("Scinder le multipoint"));
+ }
+ if (!b) putValue(Action.NAME, BuResource.BU.getString("Scinder"));
+
+ setEnabled(b);
+ }
+
+ public String getEnableCondition() {
+ return CtuluLib.getS("S\xE9lectionner 2 sommets consecutifs d'une polyligne<br>ou les sommets d'un multipoint");
+ }
+}
Property changes on: branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/SceneSplitAction.java
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZCalqueEditable.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZCalqueEditable.java 2008-07-01 14:44:38 UTC (rev 3666)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZCalqueEditable.java 2008-07-03 13:19:32 UTC (rev 3667)
@@ -68,6 +68,14 @@
public boolean copySelectedObjects(CtuluCommandContainer _cmd, CtuluUI _ui);
/**
+ * Scinde une geometrie.
+ * @param _cmd le receveur de commande
+ * @param _ui l'interface utilisateur
+ * @return true is commande reussie
+ */
+ public boolean splitSelectedObject(CtuluCommandContainer _cmd, CtuluUI _ui);
+
+ /**
* Retourne si la forme d'un certain type peut \xEAtre ajout\xE9e.
* @param _typeForme Le type de forme
* @return true si ce type de forme peut \xEAtre ajout\xE9.
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZCalqueLigneBriseeEditable.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZCalqueLigneBriseeEditable.java 2008-07-01 14:44:38 UTC (rev 3666)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZCalqueLigneBriseeEditable.java 2008-07-03 13:19:32 UTC (rev 3667)
@@ -63,7 +63,7 @@
* @param _cmd La pile de commandes.
* @return true si le la polyligne a \xE9t\xE9 scind\xE9e.
*/
- public boolean splitGeometry(final CtuluCommandContainer _cmd) {
+ public boolean splitSelectedObject(CtuluCommandContainer _cmd, CtuluUI _ui) {
if (isSelectionEmpty() || !isAtomicMode()) return false;
int idxLine=selectionMulti_.getIdxSelected()[0];
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZCalqueMultiPointEditable.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZCalqueMultiPointEditable.java 2008-07-01 14:44:38 UTC (rev 3666)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZCalqueMultiPointEditable.java 2008-07-03 13:19:32 UTC (rev 3667)
@@ -203,6 +203,22 @@
}
/**
+ * Scinde en 2 une multipoint dont plusieurs sommets sont s\xE9lectionn\xE9s. Les attributs sont copi\xE9s.
+ * @param _cmd La pile de commandes.
+ * @return true si le multipoint a \xE9t\xE9 scind\xE9e.
+ */
+ public boolean splitSelectedObject(CtuluCommandContainer _cmd, CtuluUI _ui) {
+ if (isSelectionEmpty() || !isAtomicMode()) return false;
+
+ int idxGeom=selectionMulti_.getIdxSelected()[0];
+ int[] idxSels=selectionMulti_.get(idxGeom).getSelectedIndex();
+
+ // On vide la selection, le multipoint est supprim\xE9es par le split.
+ clearSelection();
+ return getMultiPointModel().splitGeometry(idxGeom, idxSels, _cmd)!=null;
+ }
+
+ /**
* Dessine le deplacement pour les sommets selectionn\xE9s.
* @param _g2d Le contexte graphique.
* @param _dx Le delta suivant X
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZCalquePointEditable.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZCalquePointEditable.java 2008-07-01 14:44:38 UTC (rev 3666)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZCalquePointEditable.java 2008-07-03 13:19:32 UTC (rev 3667)
@@ -288,4 +288,9 @@
public final void setEditor(final ZEditorInterface _editor) {
editor_ = _editor;
}
+
+ /* Sans objet */
+ public boolean splitSelectedObject(CtuluCommandContainer _cmd, CtuluUI _ui) {
+ return false;
+ }
}
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZEditorDefault.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZEditorDefault.java 2008-07-01 14:44:38 UTC (rev 3666)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZEditorDefault.java 2008-07-03 13:19:32 UTC (rev 3667)
@@ -102,7 +102,7 @@
CtuluCommandManager mng_;
- ZSceneEditor sceneEditor_=null;
+ protected ZSceneEditor sceneEditor_=null;
ZCalqueDeplacement move_;
@@ -168,17 +168,28 @@
return target_;
}
+ public ZEditorDefault(final ZEbliCalquesPanel _panel) {
+ this(_panel,new ZSceneEditor(_panel.getScene()));
+ }
+
/**
* @param _panel le panneau des calques
*/
- public ZEditorDefault(final ZEbliCalquesPanel _panel) {
+ public ZEditorDefault(final ZEbliCalquesPanel _panel, final ZSceneEditor _editor) {
super();
panel_ = _panel;
- sceneEditor_=new ZSceneEditor(panel_.getScene());
+ sceneEditor_=_editor;
// panel_.addKeyListener(this);
buildDeletesAction();
EbliLib.updateMapKeyStroke(_panel, getDeleteActions());
+ installSceneActions();
}
+
+ /**
+ * Installation des actions de scene. En particulier, rend visible les actions de scene
+ * dans le menu contextuel de la fenetre 2D.
+ */
+ protected void installSceneActions() {}
private void activeCurrentState() {
boolean updateDessinLayer = false;
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZModeleMultiPointEditable.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZModeleMultiPointEditable.java 2008-07-01 14:44:38 UTC (rev 3666)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZModeleMultiPointEditable.java 2008-07-03 13:19:32 UTC (rev 3667)
@@ -18,7 +18,6 @@
import com.vividsolutions.jts.geom.CoordinateSequence;
import com.vividsolutions.jts.geom.Envelope;
import com.vividsolutions.jts.geom.Geometry;
-import com.vividsolutions.jts.geom.LineString;
import com.memoire.bu.BuTable;
import com.memoire.fu.FuLog;
@@ -28,9 +27,11 @@
import org.fudaa.ctulu.CtuluCommandContainer;
import org.fudaa.ctulu.CtuluLib;
import org.fudaa.ctulu.CtuluLibString;
+import org.fudaa.ctulu.CtuluListSelection;
import org.fudaa.ctulu.CtuluListSelectionInterface;
import org.fudaa.ctulu.CtuluUI;
import org.fudaa.ctulu.collection.CtuluCollection;
+import org.fudaa.ctulu.gis.GISAttributeConstants;
import org.fudaa.ctulu.gis.GISAttributeInterface;
import org.fudaa.ctulu.gis.GISAttributeModel;
import org.fudaa.ctulu.gis.GISAttributeModelDoubleArray;
@@ -531,6 +532,86 @@
}
/**
+ * Scinde en 2 un multipoint. Les attributs globaux sont recopi\xE9es dans chacune des 2
+ * polylignes, les attributs atomiques sont dispatch\xE9s.<br>
+ * Si tous les points du multipoint sont selectionn\xE9s, alors aucun split n'est r\xE9alis\xE9.
+ *
+ * @param _geomIdx L'index de geometrie.
+ * @param _idx Les indices des sommets de multipoints.
+ * @param _cmd Le conteneur de commandes.
+ * @return Les indices des 2 nouvelles g\xE9om\xE9tries cr\xE9\xE9es si tout s'est bien pass\xE9, null sinon.
+ */
+ public int[] splitGeometry(final int _geomIdx, final int[] _idx, final CtuluCommandContainer _cmd){
+ if (geometries_ == null) {
+ return null;
+ }
+ GISMultiPoint geom=(GISMultiPoint)geometries_.getGeometry(_geomIdx); // Old g\xE9ometrie
+ if (geom==null) return null;
+ CoordinateSequence cgeom=geom.getCoordinateSequence();
+ if (_idx.length<0 || _idx.length>=cgeom.size()) return null;
+
+ final CtuluCommandComposite cmp = new CtuluCommandComposite();
+ CtuluListSelection sel=new CtuluListSelection(_idx);
+
+ // Les coordonn\xE9es
+ Coordinate[] cgeom1=new Coordinate[_idx.length];
+ Coordinate[] cgeom2=new Coordinate[cgeom.size()-cgeom1.length];
+ int idgeom1=0;
+ int idgeom2=0;
+ for (int i=0; i<cgeom.size(); i++) {
+ if (sel.isSelected(i))
+ cgeom1[idgeom1++]=cgeom.getCoordinateCopy(i);
+ else
+ cgeom2[idgeom2++]=cgeom.getCoordinateCopy(i);
+ }
+
+ // Les datas
+ Object[] datageom1=new Object[getAttributeNb()];
+ Object[] datageom2=new Object[getAttributeNb()];
+ for (int i=0; i<getAttributeNb(); i++) {
+ GISAttributeModel attmodel=geometries_.getModel(i);
+ if (attmodel.getAttribute().isAtomicValue()) {
+ GISAttributeModel atomModel1=attmodel.getAttribute().createAtomicModel(null,cgeom1.length);
+ GISAttributeModel atomModel2=attmodel.getAttribute().createAtomicModel(null,cgeom2.length);
+
+ idgeom1=0;
+ idgeom2=0;
+ for (int j=0; j<cgeom.size(); j++) {
+ Object data=((GISAttributeModel)attmodel.getObjectValueAt(_geomIdx)).getObjectValueAt(j);
+ if (sel.isSelected(j))
+ atomModel1.setObject(idgeom1++,data,null);
+ else
+ atomModel2.setObject(idgeom2++,data,null);
+ }
+ datageom1[i]=atomModel1;
+ datageom2[i]=atomModel2;
+ }
+ else {
+ // Cas particulier de l'attribut TITRE => <TITRE_GEOM>_1 et <TITRE_GEOM>_2
+ if (attmodel.getAttribute()==GISAttributeConstants.TITRE) {
+ String name=(String)attmodel.getObjectValueAt(_geomIdx);
+ datageom1[i]=name+"_1";
+ datageom2[i]=name+"_2";
+ }
+ else {
+ datageom1[i]=attmodel.getAttribute().createDataForGeom(attmodel.getObjectValueAt(_geomIdx),1);
+ datageom2[i]=attmodel.getAttribute().createDataForGeom(attmodel.getObjectValueAt(_geomIdx),1);
+ }
+ }
+ }
+
+ // Remplacement dans la collection.
+ geometries_.removeGeometries(new int[]{_geomIdx}, cmp);
+ geometries_.addGeometry(GISGeometryFactory.INSTANCE.createMultiPoint(cgeom1), datageom1, cmp);
+ geometries_.addGeometry(GISGeometryFactory.INSTANCE.createMultiPoint(cgeom2), datageom2, cmp);
+
+ if (_cmd != null) {
+ _cmd.addCmd(cmp.getSimplify());
+ }
+ return new int[]{geometries_.getNbGeometries()-2,geometries_.getNbGeometries()-1};
+ }
+
+ /**
* @param _selection la selection
* @param _dx dx reel
* @param _dy dy reel
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZSceneEditor.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZSceneEditor.java 2008-07-01 14:44:38 UTC (rev 3666)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZSceneEditor.java 2008-07-03 13:19:32 UTC (rev 3667)
@@ -7,8 +7,6 @@
*/
package org.fudaa.ebli.calque.edition;
-import java.lang.reflect.Method;
-
import org.fudaa.ctulu.CtuluCommandComposite;
import org.fudaa.ctulu.CtuluCommandContainer;
import org.fudaa.ctulu.CtuluCommandManager;
@@ -99,6 +97,18 @@
}
}
+ /**
+ * Scinde une g\xE9om\xE9trie en 2 distinctes.<p>
+ * Principe : <br>
+ * Pour un multipoint, selection de plusieurs sommets d'un multipoint, et s\xE9paration.<br>
+ * Pour une polyligne, selection de 2 sommets cons\xE9cutifs, et s\xE9paration.
+ */
+ public void splitSelectedObject() {
+ int idx=getScene().getLayerSelectionMulti().isSelectionInOneBloc();
+ ZCalqueEditable cq=(ZCalqueEditable)getScene().getLayerForId(idx);
+ cq.splitSelectedObject(mng_,ui_);
+ }
+
protected void methodNotImplemented() {
StackTraceElement stel=new Throwable().getStackTrace()[1];
String name=stel.getClassName()+"."+stel.getMethodName();
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dLine.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dLine.java 2008-07-01 14:44:38 UTC (rev 3666)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dLine.java 2008-07-03 13:19:32 UTC (rev 3667)
@@ -57,7 +57,6 @@
FSigEditor editor=(FSigEditor)getEditor();
ArrayList vacts=new ArrayList();
vacts.addAll(Arrays.asList(editor.getEditAction()));
- vacts.add(editor.getSplitAction());
vacts.add(editor.getJoinAction());
vacts.add(null);
vacts.add(editor.getImportAction());
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigEditor.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigEditor.java 2008-07-01 14:44:38 UTC (rev 3666)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigEditor.java 2008-07-03 13:19:32 UTC (rev 3667)
@@ -21,9 +21,6 @@
import com.memoire.bu.BuWizardDialog;
import com.memoire.fu.Fu;
import com.memoire.fu.FuLog;
-import com.vividsolutions.jts.geom.LineString;
-
-import org.apache.tools.ant.taskdefs.condition.IsSet;
import org.fudaa.ctulu.CtuluCommandManager;
import org.fudaa.ctulu.CtuluIOOperationSynthese;
import org.fudaa.ctulu.CtuluRunnable;
@@ -47,15 +44,14 @@
import org.fudaa.ebli.calque.BCalque;
import org.fudaa.ebli.calque.ZCalqueAffichageDonnees;
import org.fudaa.ebli.calque.ZCalqueAffichageDonneesInterface;
-import org.fudaa.ebli.calque.ZCalqueLigneBrisee;
import org.fudaa.ebli.calque.ZEbliCalquesPanel;
import org.fudaa.ebli.calque.ZModeleGeom;
import org.fudaa.ebli.calque.edition.ZCalqueEditable;
import org.fudaa.ebli.calque.edition.ZCalqueEditionGroup;
import org.fudaa.ebli.calque.edition.ZCalqueLigneBriseeEditable;
import org.fudaa.ebli.calque.edition.ZEditorDefault;
+import org.fudaa.ebli.calque.edition.ZSceneEditor;
import org.fudaa.ebli.commun.EbliActionSimple;
-import org.fudaa.ebli.commun.EbliListeSelectionMultiInterface;
import org.fudaa.ebli.geometrie.GrBoite;
import org.fudaa.fudaa.commun.FudaaLib;
@@ -71,6 +67,14 @@
/**
* @param _panel
*/
+ public FSigEditor(final ZEbliCalquesPanel _panel, final ZSceneEditor _editor, final CtuluCommandManager _cmd) {
+ super(_panel,_editor);
+ setMng(_cmd);
+ }
+
+ /**
+ * @param _panel
+ */
public FSigEditor(final ZEbliCalquesPanel _panel, final CtuluCommandManager _cmd) {
super(_panel);
setMng(_cmd);
@@ -136,7 +140,7 @@
dialog.pack();
dialog.setModal(true);
dialog.setLocationRelativeTo(getPanel());
- dialog.show();
+ dialog.setVisible(true);
}
@@ -160,7 +164,7 @@
final Map filterExporter = new HashMap(5);// pour l'instant .....
filterExporter.put(sx, new FSigLayerExporter.ToSinusX());
- filterExporter.put(st, new FSigLayerExporter.ToSt());
+ filterExporter.put(st, new FSigLayerExporter.ToRubar());
final Map dataStores = GISExportDataStoreFactory.buildFileFilterMap(false);
if (dataStores.size() == 0) {
if (FuLog.isTrace()) {
@@ -205,8 +209,6 @@
EbliActionSimple importAction_;
- EbliActionSimple splitAction_;
-
EbliActionSimple joinAction_;
/**
@@ -241,17 +243,6 @@
}
/**
- * Une action pour scinder une polyligne. N'est pas dans les actions par defaut.
- * @return L'action
- */
- public EbliActionSimple getSplitAction() {
- if (splitAction_ == null) {
- splitAction_ = new SplitAction();
- }
- return splitAction_;
- }
-
- /**
* Une action pour joindre 2 polylignes. N'est pas dans les actions par defaut.
* @return L'action
*/
@@ -350,45 +341,6 @@
}
/**
- * Une action pour scinder une polyligne sur le sommet d\xE9sign\xE9. Valable uniquement sur des calques
- * {@link ZCalqueLigneBriseeEditable}. Ne fonctionne pas sur des polygones.
- * @author Bertrand Marchand
- */
- private class SplitAction extends EbliActionSimple {
-
- protected SplitAction() {
- super(BuResource.BU.getString("Scinder"), BuResource.BU.getIcon("couperligne"), "GIS_SPLIT");
- setDefaultToolTip(FudaaLib.getS("Scinder la polyligne"));
- }
-
- public void actionPerformed(final ActionEvent _e) {
- splitSelectedLayer();
- }
-
- public void updateStateBeforeShow() {
- if (Fu.DEBUG && FuLog.isDebug()) {
- FuLog.debug("FTR gis target= " + FSigEditor.this.getTarget());
- }
-
- ZCalqueLigneBriseeEditable cq=null;
- if (getSupport().getCalqueActif() instanceof ZCalqueLigneBriseeEditable) cq=(ZCalqueLigneBriseeEditable)getSupport().getCalqueActif();
- EbliListeSelectionMultiInterface multiSelect_=null;
- super.setEnabled(cq!=null &&
- FSigEditor.this.isEditable(cq) &&
- cq.isAtomicMode() &&
- (multiSelect_=cq.getLayerSelectionMulti())!=null &&
- multiSelect_.getNbSelectedItem()==2 &&
- Math.abs(multiSelect_.getSelection(multiSelect_.getIdxSelected()[0]).getMinIndex()-multiSelect_.getSelection(multiSelect_.getIdxSelected()[0]).getMaxIndex())==1 &&
- // Uniquement les polylignes.
- (((GISZoneCollectionLigneBrisee)cq.getModele().getGeomData()).getGeometry(multiSelect_.isSelectionInOneBloc()) instanceof GISPolyligne));
- }
-
- public String getEnableCondition() {
- return FudaaLib.getS("S\xE9lectionner 2 sommets consecutifs d'une polyligne");
- }
- }
-
- /**
* Une action pour joindre 2 polylignes \xE0 partir de leurs extremit\xE9s. Valable uniquement sur des calques
* {@link ZCalqueLigneBriseeEditable}. Ne fonctionne pas sur des polygones.
* @author Bertrand Marchand
@@ -446,17 +398,7 @@
ZCalqueLigneBriseeEditable cq=(ZCalqueLigneBriseeEditable)getSupport().getCalqueActif();
cq.joinGeometries(getMng());
}
-
- /**
- * Scinde une polyligne en 2 polylignes distinctes.
- */
- protected void splitSelectedLayer() {
- if (!(getSupport().getCalqueActif() instanceof ZCalqueLigneBriseeEditable)) return;
- ZCalqueLigneBriseeEditable cq=(ZCalqueLigneBriseeEditable)getSupport().getCalqueActif();
- cq.splitGeometry(getMng());
- }
-
protected boolean canExportSelectedLayer() {
final BCalque[] parent = super.getPanel().getArbreCalqueModel().getSelection();
if (parent == null) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2008-07-01 14:45:05
|
Revision: 3666
http://fudaa.svn.sourceforge.net/fudaa/?rev=3666&view=rev
Author: bmarchan
Date: 2008-07-01 07:44:38 -0700 (Tue, 01 Jul 2008)
Log Message:
-----------
Bug#30 : Cr?\195?\169ation/modification semis de points puis sauvegarde : le Z est a pr?\195?\169sent restitu?\195?\169.
Modified Paths:
--------------
branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISMultiPoint.java
Added Paths:
-----------
branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISSequencesCoordinateSequence.java
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISMultiPoint.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISMultiPoint.java 2008-06-27 15:25:48 UTC (rev 3665)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISMultiPoint.java 2008-07-01 14:44:38 UTC (rev 3666)
@@ -15,22 +15,20 @@
/**
* Un multipoint est un ensemble de points, qui peut \xEAtre r\xE9duit \xE0 1 point seulement.
- * @author Fred Deniger
+ * @author Bertrand Marchand
* @version $Id: GISMultiPoint.java,v 1.8.6.2 2008-04-01 17:09:56 bmarchan Exp $
*/
public class GISMultiPoint extends MultiPoint implements GISGeometry {
- CoordinateSequence seq_;
+ CoordinateSequence seq_=null;
protected long id_=GISGeometryFactory.INSTANCE.getNewId();
public GISMultiPoint() {
super(null, GISGeometryFactory.INSTANCE);
- seq_=GISGeometryFactory.INSTANCE.getCoordinateSequenceFactory().create(this.getCoordinates());
}
public GISMultiPoint(final Point[] _points) {
super(_points, GISGeometryFactory.INSTANCE);
- seq_=GISGeometryFactory.INSTANCE.getCoordinateSequenceFactory().create(this.getCoordinates());
}
public long getId() {
@@ -43,9 +41,18 @@
/**
* Cette methode est ajout\xE9e pour des questions de performance lors du rafraichissement de multipoints
- * avec beaucoup de points.
+ * avec beaucoup de points. La sequence agit directement sur les implementations internes des Point.
*/
public CoordinateSequence getCoordinateSequence() {
+ if (seq_==null) {
+ // Doit g\xE9rer des CoordinateSequence[]. Sinon, un getCoordinateSequence().setOrdinate(i,2) n'affecte pas le Z du multipoint,
+ // mais le Z d'une copie des coordonn\xE9es du multipoint.
+// seq_=GISGeometryFactory.INSTANCE.getCoordinateSequenceFactory().create(this.getCoordinates());
+ Point[] pts=new Point[getNumGeometries()];
+ for (int i=0; i<getNumGeometries(); i++)
+ pts[i]=(Point)getGeometryN(i);
+ seq_=new GISSequencesCoordinateSequence(pts);
+ }
return seq_;
}
@@ -55,7 +62,6 @@
*/
public GISMultiPoint(final Point[] _points, final GeometryFactory _factory) {
super(_points, _factory);
- seq_=GISGeometryFactory.INSTANCE.getCoordinateSequenceFactory().create(this.getCoordinates());
}
public boolean fillListWithPoint(final GISCollectionPointInteface _listToFill) {
Added: branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISSequencesCoordinateSequence.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISSequencesCoordinateSequence.java (rev 0)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISSequencesCoordinateSequence.java 2008-07-01 14:44:38 UTC (rev 3666)
@@ -0,0 +1,119 @@
+/*
+ * @creation 18 mars 2005
+ * @modification $Date: 2006-09-19 14:36:53 $
+ * @license GNU General Public License 2
+ * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
+ * @mail de...@fu...
+ */
+package org.fudaa.ctulu.gis;
+
+import com.vividsolutions.jts.geom.Coordinate;
+import com.vividsolutions.jts.geom.CoordinateSequence;
+import com.vividsolutions.jts.geom.Envelope;
+import com.vividsolutions.jts.geom.Point;
+
+/**
+ * Une sequence de coordonn\xE9es bas\xE9e sur des sequences unique.<p>
+ *
+ * Ceci permet notamment de modifier les coordonn\xE9es d'un {@link GISMultiPoint} qui s'appuie sur les <code>Point</code>.
+ * La modification des coordonn\xE9es d'un {@link Point} ne ne peut se faire qu'au travers de sa {@link CoordinateSequence},
+ * la Coordinate n'\xE9tant qu'une copie de son impl\xE9mentation interne.
+ *
+ * @author Bertrand Marchand
+ * @version $Id: GISCoordinateSequenceUnique.java,v 1.9 2006-09-19 14:36:53 deniger Exp $
+ */
+public class GISSequencesCoordinateSequence implements CoordinateSequence {
+
+ CoordinateSequence[] seqs_;
+
+ /**
+ * Construction a partir de sequences. Les sequences doivent \xEAtre des {@link GISCoordinateSequenceUnique} (non control\xE9).
+ * @param _seqs Les s\xE9quences.
+ */
+ public GISSequencesCoordinateSequence(CoordinateSequence[] _seqs) {
+ seqs_=_seqs;
+ }
+
+ /**
+ * Construction a partir de points.
+ * @param _pts Les points.
+ */
+ public GISSequencesCoordinateSequence(Point[] _pts) {
+ seqs_=new CoordinateSequence[_pts.length];
+ for (int i=0; i<_pts.length; i++) {
+ seqs_[i]=_pts[i].getCoordinateSequence();
+ }
+ }
+
+ public int getDimension() {
+ return 3;
+ }
+
+ public Object clone() {
+ return new GISSequencesCoordinateSequence(seqs_);
+ }
+
+ public Envelope expandEnvelope(final Envelope _env) {
+ for (int i=0; i<seqs_.length; i++) {
+ _env.expandToInclude(seqs_[i].getX(0),seqs_[i].getY(0));
+ }
+ return _env;
+ }
+
+ public void getCoordinate(final int _index, final Coordinate _coord) {
+ _coord.x = seqs_[_index].getOrdinate(0,0);
+ _coord.y = seqs_[_index].getOrdinate(0,1);
+ _coord.z = seqs_[_index].getOrdinate(0,2);
+ }
+
+ public Coordinate getCoordinate(final int _index) {
+ return seqs_[_index].getCoordinate(0);
+ }
+
+ public Coordinate getCoordinateCopy(final int _index) {
+ return (Coordinate)getCoordinate(_index).clone();
+ }
+
+ public double getOrdinate(final int _index, final int _ordinateIndex) {
+ switch (_ordinateIndex) {
+ case CoordinateSequence.X:
+ case CoordinateSequence.Y:
+ case CoordinateSequence.Z:
+ return seqs_[_index].getOrdinate(0, _ordinateIndex);
+ default:
+ throw new IllegalArgumentException("bad ordinate");
+ }
+ }
+
+ public double getX(final int _index) {
+ return seqs_[_index].getOrdinate(0,0);
+ }
+
+ public double getY(final int _index) {
+ return seqs_[_index].getOrdinate(0,1);
+ }
+
+ public void setOrdinate(final int _index, final int _ordinateIndex, final double _value) {
+ switch (_ordinateIndex) {
+ case CoordinateSequence.X:
+ case CoordinateSequence.Y:
+ case CoordinateSequence.Z:
+ seqs_[_index].setOrdinate(0,_ordinateIndex,_value);
+ break;
+ default:
+ throw new IllegalArgumentException("bad ordinate");
+ }
+ }
+
+ public int size() {
+ return seqs_.length;
+ }
+
+ public Coordinate[] toCoordinateArray() {
+ Coordinate[] coords=new Coordinate[seqs_.length];
+ for (int i=0; i<coords.length; i++) {
+ coords[i]=seqs_[i].getCoordinate(0);
+ }
+ return coords;
+ }
+}
\ No newline at end of file
Property changes on: branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISSequencesCoordinateSequence.java
___________________________________________________________________
Name: svn:eol-style
+ native
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2008-06-27 15:25:45
|
Revision: 3665
http://fudaa.svn.sourceforge.net/fudaa/?rev=3665&view=rev
Author: bmarchan
Date: 2008-06-27 08:25:48 -0700 (Fri, 27 Jun 2008)
Log Message:
-----------
Track#32, Track#33 : Lecture des lignes directrices + des noms de geometries
Modified Paths:
--------------
branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/rubar/io/RubarStReader.java
branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/wizard/FSigFileLoaderRubarSt.java
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/rubar/io/RubarStReader.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/rubar/io/RubarStReader.java 2008-06-27 15:22:32 UTC (rev 3664)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/dodico/src/org/fudaa/dodico/rubar/io/RubarStReader.java 2008-06-27 15:25:48 UTC (rev 3665)
@@ -11,21 +11,27 @@
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import com.vividsolutions.jts.geom.Coordinate;
import com.vividsolutions.jts.geom.LineString;
+import org.fudaa.ctulu.CtuluLib;
import org.fudaa.ctulu.CtuluLibString;
import org.fudaa.ctulu.gis.GISAttributeConstants;
import org.fudaa.ctulu.gis.GISAttributeInterface;
+import org.fudaa.ctulu.gis.GISAttributeModel;
+import org.fudaa.ctulu.gis.GISGeometry;
import org.fudaa.ctulu.gis.GISLib;
import org.fudaa.ctulu.gis.GISZoneCollectionLigneBrisee;
import org.fudaa.dodico.fortran.FileOpReadCharSimpleAbstract;
/**
- * @author fred deniger
+ * Un reader pour un fichier Rubar (ST, ou CN).
+ * @author fred deniger, Bertrand Marchand
* @version $Id: RubarStReader.java,v 1.5 2007-06-11 13:07:05 deniger Exp $
*/
public class RubarStReader extends FileOpReadCharSimpleAbstract {
@@ -48,7 +54,14 @@
return _s.equals(sep_) || _s.equals(sep1_);
}
+ /**
+ * Lit les profils et les lignes directrices.
+ * @return Un tableau GISZoneCollectionLigneBrisee[2]. [0] : la collection des profils, [1] : la collection de lignes directrices.
+ */
protected Object internalRead() {
+ // Remarque : Cette impl\xE9mentation empeche des noms semblables (les noms sont stock\xE9s comme cl\xE9 de Map) sur les lignes
+ // directrices (ce qui peut \xEAtre normal puisque c'est le m\xEAme nom en un point de chaque profil qui permet de constituer
+ // la ligne.
if (in_ == null) {
return null;
}
@@ -58,15 +71,21 @@
in_.setJumpCommentLine(true);
final List lignes = new ArrayList(200);
+ final List names=new ArrayList(200);
final List coordinatesEnCours = new ArrayList();
+ // Contient les listes de coordonn\xE9es pour les lignes directrices (Map<String,ArrayList<Coordinate>> en Java 1.5)
+ final Map mdirs=new HashMap(20);
- final int[] fmt = new int[] { 13, 13, 13, 3 };
+ final int[] fmt = new int[] { 13, 13, 13, 1, 3 };
+ final int[] fmt1Line=new int[]{6,6,6,6,13,1,42};
Coordinate last = null;
+ String name="";
try {
while (true) {
if (isSt_) {
- in_.readLine();
+ in_.readFields(fmt1Line);
+ name=in_.stringField(6).trim();
}
String first = CtuluLibString.EMPTY_STRING;
String sec = CtuluLibString.EMPTY_STRING;
@@ -78,6 +97,18 @@
coordinatesEnCours.add(coordinate);
}
last = coordinate;
+
+ // Ligne directrice eventuelle. Pas de controle que la ligne directrice est bien sur tous les profils.
+ String namedir=in_.stringField(4).trim();
+ if (!"".equals(namedir)) {
+ List coordldir=(List)mdirs.get(namedir);
+ if (coordldir==null) {
+ coordldir=new ArrayList(200);
+ mdirs.put(namedir,coordldir);
+ }
+ coordldir.add(coordinate.clone());
+ }
+
in_.readFields(fmt);
first = in_.stringField(0);
sec = in_.stringField(1);
@@ -85,6 +116,12 @@
final LineString str = GISLib.createLineOrLinearFromList(coordinatesEnCours);
if (str != null) {
lignes.add(str);
+ if ("".equals(name)) {
+ names.add(CtuluLib.getS("_P")+((GISGeometry)str).getId());
+ }
+ else {
+ names.add(name);
+ }
}
coordinatesEnCours.clear();
}
@@ -96,14 +133,51 @@
final LineString str = GISLib.createLineOrLinearFromList(coordinatesEnCours);
if (str != null) {
lignes.add(str);
+ if ("".equals(name)) {
+ names.add(CtuluLib.getS("_P")+((GISGeometry)str).getId());
+ }
+ else {
+ names.add(name);
+ }
}
+
+ GISZoneCollectionLigneBrisee[] ret=new GISZoneCollectionLigneBrisee[2];
+ // Profils
if (lignes.size() > 0) {
- final GISZoneCollectionLigneBrisee res = new GISZoneCollectionLigneBrisee(null);
- res.setAttributes(new GISAttributeInterface[] { GISAttributeConstants.BATHY }, null);
- res.addAllLineStringClosedOrNode((LineString[]) lignes.toArray(new LineString[lignes.size()]), null);
- res.postImport(0);
- return res;
+ final GISZoneCollectionLigneBrisee zligs = new GISZoneCollectionLigneBrisee(null);
+ zligs.addAllLineStringClosedOrNode((LineString[]) lignes.toArray(new LineString[lignes.size()]), null);
+ zligs.setAttributes(new GISAttributeInterface[] { GISAttributeConstants.BATHY, GISAttributeConstants.TITRE}, null);
+ zligs.postImport(0);
+
+ // Affectation de l'attribut titre.
+ GISAttributeModel attmod=zligs.getModel(GISAttributeConstants.TITRE);
+ for (int i=0; i<names.size(); i++) {
+ attmod.setObject(i,attmod.getAttribute().createDataForGeom(names.get(i),1),null);
+ }
+ ret[0]=zligs;
}
- return null;
+
+ // Lignes directrices
+ if (mdirs.size()>0) {
+ final GISZoneCollectionLigneBrisee zdirs = new GISZoneCollectionLigneBrisee(null);
+ // Pour \xEAtre sur de la correspondance nom/coordonn\xE9es
+ String[] namedirs=(String[])mdirs.keySet().toArray(new String[0]);
+ LineString[] ldirs=new LineString[namedirs.length];
+ for (int i=0; i<namedirs.length; i++) {
+ ldirs[i]=GISLib.createLineOrLinearFromList((List)(mdirs.get(namedirs[i])));
+ }
+
+ zdirs.addAllLineStringClosedOrNode(ldirs, null);
+ zdirs.setAttributes(new GISAttributeInterface[] { GISAttributeConstants.BATHY, GISAttributeConstants.TITRE}, null);
+ zdirs.postImport(0);
+
+ // Affectation de l'attribut titre.
+ GISAttributeModel attmod=zdirs.getModel(GISAttributeConstants.TITRE);
+ for (int i=0; i<namedirs.length; i++) {
+ attmod.setObject(i,attmod.getAttribute().createDataForGeom(namedirs[i],1),null);
+ }
+ ret[1]=zdirs;
+ }
+ return ret;
}
}
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/wizard/FSigFileLoaderRubarSt.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/wizard/FSigFileLoaderRubarSt.java 2008-06-27 15:22:32 UTC (rev 3664)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/wizard/FSigFileLoaderRubarSt.java 2008-06-27 15:25:48 UTC (rev 3665)
@@ -52,17 +52,21 @@
_analyze.merge(op.getAnalyze());
return;
}
- final GISZoneCollectionLigneBrisee res = (GISZoneCollectionLigneBrisee) op.getSource();
- if (res==null || res.getNumGeometries() == 0) {
- return;
+ final GISZoneCollectionLigneBrisee[] res = (GISZoneCollectionLigneBrisee[]) op.getSource();
+
+ boolean blines=false;
+ final GISVisitorCount counter=new GISVisitorCount();
+ for (int i=0; i<res.length; i++) {
+ if (res[i]==null||res[i].getNumGeometries()==0) continue;
+ blines=true;
+ res[i].accept(counter);
+ _r.nbPoint_+=counter.nbPt_;
+ _r.nbPointTotal_+=counter.nbPt_;
+ _r.nbPolygones_+=counter.nbPolygone_;
+ _r.nbPolylignes_+=counter.nbPolyligne_;
+ _r.ligneModel_.add(res[i]);
}
- _r.addUsedAttributes(new GISAttributeInterface[] { GISAttributeConstants.BATHY });
- final GISVisitorCount counter = new GISVisitorCount();
- res.accept(counter);
- _r.nbPoint_ += counter.nbPt_;
- _r.nbPointTotal_ += counter.nbPt_;
- _r.nbPolygones_ += counter.nbPolygone_;
- _r.nbPolylignes_ += counter.nbPolyligne_;
- _r.ligneModel_.add(res);
+ if (blines)
+ _r.addUsedAttributes(new GISAttributeInterface[]{GISAttributeConstants.BATHY, GISAttributeConstants.TITRE});
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2008-06-27 15:22:25
|
Revision: 3664
http://fudaa.svn.sourceforge.net/fudaa/?rev=3664&view=rev
Author: bmarchan
Date: 2008-06-27 08:22:32 -0700 (Fri, 27 Jun 2008)
Log Message:
-----------
Les attributs sont r?\195?\169cup?\195?\169r?\195?\169s sur les imports.
Modified Paths:
--------------
branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlWizardImport.java
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlWizardImport.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlWizardImport.java 2008-06-27 15:21:44 UTC (rev 3663)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlWizardImport.java 2008-06-27 15:22:32 UTC (rev 3664)
@@ -81,7 +81,7 @@
@Override
protected void importData(ProgressionInterface _prog) {
- final GISAttributeInterface[] attChosen = new GISAttributeInterface[]{GISAttributeConstants.BATHY};
+ final GISAttributeInterface[] attChosen = new GISAttributeInterface[]{GISAttributeConstants.BATHY, GISAttributeConstants.TITRE};
data_.preload(attChosen, _prog);
final CtuluCommandComposite cmp = new CtuluCommandComposite();
@@ -92,10 +92,7 @@
final int nb = pts.length;
for (int i = 0; i < nb; i++) {
final GISDataModel model = new GISDataModelPointMultiPointAdapter(pts[i]);
- for (int j=0; j<model.getNumGeometries(); j++)
- col.addGeometry(model.getGeometry(j),null, cmp);
-// col.addAll(model, cmp, true);
- col.postImport(0);
+ col.addAll(model, cmp, true);
}
}
@@ -106,10 +103,7 @@
final int nb=lines.length;
for (int i=0; i<nb; i++) {
final GISDataModel model=GISDataModelFilterAdapter.buildLigneAdapter(lines[i], attChosen);
- for (int j=0; j<model.getNumGeometries(); j++)
- col.addGeometry(model.getGeometry(j),null, cmp);
-// col.addAll(model, cmp, true);
- col.postImport(0);
+ col.addAll(model, cmp, true);
}
}
if (mng_!=null) mng_.addCmd(cmp.getSimplify());
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2008-06-27 15:21:40
|
Revision: 3663
http://fudaa.svn.sourceforge.net/fudaa/?rev=3663&view=rev
Author: bmarchan
Date: 2008-06-27 08:21:44 -0700 (Fri, 27 Jun 2008)
Log Message:
-----------
Ajout d'une m?\195?\169thode getId() pour retourner identifiant unique sur g?\195?\169om?\195?\169trie. Ceci pour constituer un nom par d?\195?\169faut unique.
Modified Paths:
--------------
branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISGeometry.java
branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISGeometryCollection.java
branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISGeometryFactory.java
branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISMultiPoint.java
branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISMultiPolygoneWithHole.java
branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISMultiPolyligne.java
branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISPoint.java
branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISPolygone.java
branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISPolygoneWithHole.java
branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISPolyligne.java
branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISRien.java
branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZone.java
branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollection.java
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISGeometry.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISGeometry.java 2008-06-27 15:21:09 UTC (rev 3662)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISGeometry.java 2008-06-27 15:21:44 UTC (rev 3663)
@@ -13,6 +13,14 @@
* @version $Id: GISGeometry.java,v 1.2 2006-02-09 08:59:28 deniger Exp $
*/
public interface GISGeometry {
+
+ /**
+ * L'identifiant, unique pour une g\xE9om\xE9trie. Cet identifiant peut \xEAtre utilis\xE9 pour donner
+ * un nom par d\xE9faut \xE0 une g\xE9om\xE9trie.
+ * @see GISGeometryFactory
+ * @return L'identifiant de la g\xE9om\xE9trie.
+ */
+ long getId();
boolean accept(GISVisitor _v);
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISGeometryCollection.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISGeometryCollection.java 2008-06-27 15:21:09 UTC (rev 3662)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISGeometryCollection.java 2008-06-27 15:21:44 UTC (rev 3663)
@@ -24,5 +24,7 @@
public boolean accept(final GISVisitor _v) {
return _v.visitGeometryCollection(this);
}
+
+ public long getId() { return -1; }
}
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISGeometryFactory.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISGeometryFactory.java 2008-06-27 15:21:09 UTC (rev 3662)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISGeometryFactory.java 2008-06-27 15:21:44 UTC (rev 3663)
@@ -16,15 +16,21 @@
*/
public final class GISGeometryFactory extends GeometryFactory {
- /**
- * Singletion.
- */
+ /** Numero d'identifiant, incr\xE9ment\xE9 \xE0 chaque nouvelle cr\xE9ation de g\xE9om\xE9trie.
+ En cas de suppression de g\xE9om\xE9trie, ce num\xE9ro n'est pas d\xE9cr\xE9ment\xE9. */
+ protected long numid_=0;
+ /** Singletion */
public static final GISGeometryFactory INSTANCE = new GISGeometryFactory();
private GISGeometryFactory() {
super(new PrecisionModel(10E6), 0, new GISCoordinateSequenceFactory());
}
+
+ /** Retourne un nouvel identifiant a affecter a la g\xE9om\xE9trie */
+ protected long getNewId() {
+ return ++numid_;
+ }
public Point createPoint(final Coordinate _coordinate){
return new GISPoint(_coordinate);
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISMultiPoint.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISMultiPoint.java 2008-06-27 15:21:09 UTC (rev 3662)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISMultiPoint.java 2008-06-27 15:21:44 UTC (rev 3663)
@@ -21,6 +21,7 @@
public class GISMultiPoint extends MultiPoint implements GISGeometry {
CoordinateSequence seq_;
+ protected long id_=GISGeometryFactory.INSTANCE.getNewId();
public GISMultiPoint() {
super(null, GISGeometryFactory.INSTANCE);
@@ -31,6 +32,10 @@
super(_points, GISGeometryFactory.INSTANCE);
seq_=GISGeometryFactory.INSTANCE.getCoordinateSequenceFactory().create(this.getCoordinates());
}
+
+ public long getId() {
+ return id_;
+ }
public boolean accept(final GISVisitor _v) {
return _v.visitMultiPoint(this);
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISMultiPolygoneWithHole.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISMultiPolygoneWithHole.java 2008-06-27 15:21:09 UTC (rev 3662)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISMultiPolygoneWithHole.java 2008-06-27 15:21:44 UTC (rev 3663)
@@ -17,6 +17,11 @@
* @version $Id: GISMultiPolygoneWithHole.java,v 1.8 2007-01-17 10:45:25 deniger Exp $
*/
public class GISMultiPolygoneWithHole extends MultiPolygon implements GISGeometry {
+ protected long id_=GISGeometryFactory.INSTANCE.getNewId();
+
+ public long getId() {
+ return id_;
+ }
public GISMultiPolygoneWithHole() {
super(null, GISGeometryFactory.INSTANCE);
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISMultiPolyligne.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISMultiPolyligne.java 2008-06-27 15:21:09 UTC (rev 3662)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISMultiPolyligne.java 2008-06-27 15:21:44 UTC (rev 3663)
@@ -17,6 +17,11 @@
* @version $Id: GISMultiPolyligne.java,v 1.8 2007-01-17 10:45:25 deniger Exp $
*/
public class GISMultiPolyligne extends MultiLineString implements GISPointContainerInterface, GISGeometry {
+ protected long id_=GISGeometryFactory.INSTANCE.getNewId();
+
+ public long getId() {
+ return id_;
+ }
public GISMultiPolyligne() {
this(null);
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISPoint.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISPoint.java 2008-06-27 15:21:09 UTC (rev 3662)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISPoint.java 2008-06-27 15:21:44 UTC (rev 3663)
@@ -18,6 +18,12 @@
* @version $Id: GISPoint.java,v 1.5 2006-07-13 13:34:35 deniger Exp $
*/
public class GISPoint extends Point implements GISGeometry {
+ protected long id_=GISGeometryFactory.INSTANCE.getNewId();
+
+ public long getId() {
+ return id_;
+ }
+
/**
* @param _p1 le point 1
* @param _p2 le point 2
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISPolygone.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISPolygone.java 2008-06-27 15:21:09 UTC (rev 3662)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISPolygone.java 2008-06-27 15:21:44 UTC (rev 3663)
@@ -19,6 +19,11 @@
* @version $Id: GISPolygone.java,v 1.10 2007-01-17 10:45:25 deniger Exp $
*/
public class GISPolygone extends LinearRing implements GISPointContainerInterface, GISLigneBrisee {
+ protected long id_=GISGeometryFactory.INSTANCE.getNewId();
+
+ public long getId() {
+ return id_;
+ }
GISPolygone() {
super(GISGeometryFactory.INSTANCE.getCoordinateSequenceFactory().create(
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISPolygoneWithHole.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISPolygoneWithHole.java 2008-06-27 15:21:09 UTC (rev 3662)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISPolygoneWithHole.java 2008-06-27 15:21:44 UTC (rev 3663)
@@ -18,6 +18,11 @@
* @version $Id: GISPolygoneWithHole.java,v 1.6 2007-01-17 10:45:25 deniger Exp $
*/
public class GISPolygoneWithHole extends Polygon implements GISGeometry{
+ protected long id_=GISGeometryFactory.INSTANCE.getNewId();
+
+ public long getId() {
+ return id_;
+ }
public GISPolygoneWithHole() {
super(new GISPolygone(), null, GISGeometryFactory.INSTANCE);
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISPolyligne.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISPolyligne.java 2008-06-27 15:21:09 UTC (rev 3662)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISPolyligne.java 2008-06-27 15:21:44 UTC (rev 3663)
@@ -18,6 +18,11 @@
* @version $Id: GISPolyligne.java,v 1.7 2007-01-17 10:45:25 deniger Exp $
*/
public class GISPolyligne extends LineString implements GISPointContainerInterface, GISLigneBrisee {
+ protected long id_=GISGeometryFactory.INSTANCE.getNewId();
+
+ public long getId() {
+ return id_;
+ }
/**
* @param _points
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISRien.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISRien.java 2008-06-27 15:21:09 UTC (rev 3662)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISRien.java 2008-06-27 15:21:44 UTC (rev 3663)
@@ -21,6 +21,7 @@
* @version $Id: GISRien.java,v 1.5 2007-01-17 10:45:25 deniger Exp $
*/
public final class GISRien extends Geometry implements GISGeometry {
+ public long getId() { return -1; }
public final static GISRien INSTANCE = new GISRien();
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZone.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZone.java 2008-06-27 15:21:09 UTC (rev 3662)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZone.java 2008-06-27 15:21:44 UTC (rev 3663)
@@ -20,6 +20,7 @@
* @version $Id: GISZone.java,v 1.6.8.1 2008-02-01 14:42:44 bmarchan Exp $
*/
public class GISZone extends GISCollection{
+ public long getId() { return -1; }
String nom_;
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollection.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollection.java 2008-06-27 15:21:09 UTC (rev 3662)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollection.java 2008-06-27 15:21:44 UTC (rev 3663)
@@ -64,6 +64,8 @@
public GISZoneCollection(final int _nbObject) {
super(_nbObject);
}
+
+ public long getId() { return -1; }
protected void fireAttributesChanged(final GISAttributeInterface _att) {
if (listener_ != null) {
@@ -175,6 +177,8 @@
/**
* Ne fait pas de verif quant a l'origine des donnees.
+ * Remarque : Le modele a ajouter doit avoir le m\xEAme nombre d'attributs que le mod\xE8le courant. Si ce n'est pas
+ * le cas, une erreur est d\xE9clench\xE9e.
*
* @param _model le model a ajouter
* @param _cmd le receveur de commande
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2008-06-27 15:21:12
|
Revision: 3662
http://fudaa.svn.sourceforge.net/fudaa/?rev=3662&view=rev
Author: bmarchan
Date: 2008-06-27 08:21:09 -0700 (Fri, 27 Jun 2008)
Log Message:
-----------
Un peu de doc...
Modified Paths:
--------------
branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISDataModelAbstract.java
branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISDataModelFilterAdapter.java
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISDataModelAbstract.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISDataModelAbstract.java 2008-06-27 15:16:05 UTC (rev 3661)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISDataModelAbstract.java 2008-06-27 15:21:09 UTC (rev 3662)
@@ -12,6 +12,10 @@
import org.fudaa.ctulu.ProgressionInterface;
/**
+ * Un adapteur permettant d'exposer certains attributs seulement d'un mod\xE8le de donn\xE9es. Seuls des attributs existants dans
+ * le modele original peuvent \xEAtre filtr\xE9s. Les indices des attributs expos\xE9s sont donn\xE9s sous forme d'un tableau,
+ * pas n\xE9cessairement dans un ordre croissant.
+ *
* @author fred deniger
* @version $Id: GISDataModelAbstract.java,v 1.1 2007-01-10 08:58:47 deniger Exp $
*/
@@ -20,6 +24,10 @@
final int[] attShown_;
protected final GISDataModel model_;
+ /**
+ * @param _attShown Les indices des seuls attributs a exposer.
+ * @param _model Le mod\xE8le d'origine.
+ */
public GISDataModelAbstract(final int[] _attShown, final GISDataModel _model) {
super();
attShown_ = _attShown;
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISDataModelFilterAdapter.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISDataModelFilterAdapter.java 2008-06-27 15:16:05 UTC (rev 3661)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISDataModelFilterAdapter.java 2008-06-27 15:21:09 UTC (rev 3662)
@@ -14,19 +14,28 @@
import org.fudaa.ctulu.CtuluLibArray;
/**
+ * Un filtre permettant d'exposer certains attributs d'un mod\xE8le de donn\xE9es
+ * et/ou certaines g\xE9om\xE9tries.<p>
+ * <b>Important</b> : Le filtre autorise des attributs qui ne sont pas dans le modele d'origine.
+ * Pour ces attributs, les valeurs retourn\xE9es pour chaque g\xE9om\xE9trie sont nulles.
* @author Fred Deniger
* @version $Id: GISDataModelFilterAdapter.java,v 1.1 2007-01-10 08:58:47 deniger Exp $
*/
public class GISDataModelFilterAdapter extends GISDataModelAbstract {
+ /**
+ * Cr\xE9ation d'un filtre conservant toutes les g\xE9om\xE9tries et seulement les attributs donn\xE9s.
+ */
public static GISDataModelFilterAdapter buildAdapter(final GISDataModel _collection,
final GISAttributeInterface[] _att) {
return buildAdapter(_collection, _att, null);
}
/**
+ * Cr\xE9ation d'un filtre ne conservant que les g\xE9om\xE9tries d'indices donn\xE9s et les attributs donn\xE9s.
* @param _collection la zone a adapter
* @param _att les attributs dans l'ordre voulu.
+ * @param _idxGeom Les indices des seules g\xE9om\xE9tries \xE0 exposer.
* @return l'adapteur
*/
public static GISDataModelFilterAdapter buildAdapter(final GISDataModel _collection,
@@ -42,6 +51,9 @@
}
+ /**
+ * Cr\xE9ation d'un filtre ne conservant que les lignes et les d'attributs donn\xE9s.
+ */
public static GISDataModelFilterAdapter buildLigneAdapter(final GISDataModel _collection,
final GISAttributeInterface[] _att) {
boolean allLigneBrisee = true;
@@ -62,6 +74,9 @@
return buildAdapter(_collection, _att, CtuluLibArray.getSelectedIdx(set));
}
+ /**
+ * Cr\xE9ation d'un filtre ne conservant que les lignes ferm\xE9es et les d'attributs donn\xE9s.
+ */
public static GISDataModelFilterAdapter buildLigneFermeeAdapter(final GISDataModel _collection,
final GISAttributeInterface[] _att) {
boolean allLigneFermee = true;
@@ -82,6 +97,9 @@
return buildAdapter(_collection, _att, CtuluLibArray.getSelectedIdx(set));
}
+ /**
+ * Cr\xE9ation d'un filtre ne conservant que les lignes ferm\xE9es et les d'attributs donn\xE9s.
+ */
public static GISDataModelFilterAdapter buildLigneOuverteAdapter(final GISDataModel _collection,
final GISAttributeInterface[] _att) {
boolean allLigneBrisee = true;
@@ -102,6 +120,9 @@
return buildAdapter(_collection, _att, CtuluLibArray.getSelectedIdx(set));
}
+ /**
+ * Cr\xE9ation d'un filtre ne conservant que les points et les d'attributs donn\xE9s.
+ */
public static GISDataModelFilterAdapter buildPointAdapter(final GISDataModel _collection,
final GISAttributeInterface[] _att) {
boolean allPoint = true;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bma...@us...> - 2008-06-27 15:16:15
|
Revision: 3661
http://fudaa.svn.sourceforge.net/fudaa/?rev=3661&view=rev
Author: bmarchan
Date: 2008-06-27 08:16:05 -0700 (Fri, 27 Jun 2008)
Log Message:
-----------
Chgt nom par defaut.
Modified Paths:
--------------
branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeConstants.java
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeConstants.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeConstants.java 2008-06-27 14:41:22 UTC (rev 3660)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISAttributeConstants.java 2008-06-27 15:16:05 UTC (rev 3661)
@@ -1,130 +1,130 @@
-/*
- * @creation 7 avr. 2005
- * @modification $Date: 2008-03-28 14:58:56 $
- * @license GNU General Public License 2
- * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
- * @mail de...@fu...
- */
-package org.fudaa.ctulu.gis;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import com.memoire.fu.FuLib;
-
-import org.fudaa.ctulu.CtuluLib;
-import org.fudaa.ctulu.CtuluLibString;
-
-/**
- * Des constantes pour les attributs associables \xE0 des objets GIS. Les attributs constants sont en
- * principe des attributs programme (non construits par l'utilisateur). Dans ce cas, leur ID est
- * ind\xE9pendant de la langue pour \xEAtre correctement sauv\xE9 dans les fichiers GML.
- *
- * @author Fred Deniger
- * @version $Id: GISAttributeConstants.java,v 1.14.8.3 2008-03-28 14:58:56 bmarchan Exp $
- */
-public final class GISAttributeConstants {
-
- private GISAttributeConstants() {
-
- }
-
- public static String toString(final GISAttributeInterface _att) {
- if (_att == TITRE || _att == BATHY) {
- return _att.getID();
- }
- final String attributeSep = getAttributeSep();
- return _att.getDataClass().getName() + attributeSep + FuLib.replace(_att.getName(), attributeSep, "_")
- + attributeSep + CtuluLibString.toString(_att.isAtomicValue());
- }
-
- private static String getAttributeSep() {
- return "|";
- }
-
- public static GISAttributeInterface getConstantAttribute(final String _saveName) {
- if (TITRE.getID().equals(_saveName)) {
- return TITRE;
- }
- if (BATHY.getID().equals(_saveName)) {
- return BATHY;
- }
- return null;
- }
-
- public static GISAttributeInterface restoreFrom(final String _s) {
- GISAttributeInterface res = getConstantAttribute(_s);
- if (res != null) {
- return res;
- }
- final String[] s = CtuluLibString.parseString(_s, getAttributeSep());
- if (s == null || s.length != 3) {
- return null;
- }
- final String clazz = s[0];
- final String name = s[1];
- final boolean atomic = CtuluLibString.toBoolean(s[2]);
- if (clazz.equals(Double.class.getName())) {
- res = new GISAttributeDouble(name, atomic);
- if (BATHY.isSameContent(res)) {
- res = BATHY;
- }
- } else if (clazz.equals(Integer.class.getName())) {
- res = new GISAttributeInteger(name, atomic);
- } else {
- res = new GISAttributeString(name, atomic);
- if (TITRE.isSameContent(res)) {
- res = TITRE;
- }
- }
-
- return res;
- }
-
- public static List getDefaults() {
- final ArrayList l = new ArrayList(2);
- l.add(BATHY);
- l.add(TITRE);
- return l;
- }
-
- public static boolean isConstant(final GISAttributeInterface _att) {
- return _att == TITRE || _att == BATHY;
- }
-
- /**
- * Un attribut nom, non atomique.
- */
- public final static GISAttributeString TITRE = new GISAttributeString(CtuluLib.getS("Nom")) {
-
- String def_ = CtuluLib.getS("Nouveau");
-
- protected Object readResolve() {
- return TITRE;
- }
-
- public String getID() {
- return "ATTRIBUTE_TITLE";
- }
-
- public Object getDefaultValue() {
- return def_;
- }
- };
-
- /**
- * Un attribut bathy, atomique.
- */
- public final static GISAttributeDouble BATHY = new GISAttributeDouble(CtuluLib.getS("z"), true) {
-
- protected Object readResolve() {
- return BATHY;
- }
-
- public String getID() {
- return "ATTRIBUTE_Z";
- }
-
- };
-
-}
+/*
+ * @creation 7 avr. 2005
+ * @modification $Date: 2008-03-28 14:58:56 $
+ * @license GNU General Public License 2
+ * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
+ * @mail de...@fu...
+ */
+package org.fudaa.ctulu.gis;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import com.memoire.fu.FuLib;
+
+import org.fudaa.ctulu.CtuluLib;
+import org.fudaa.ctulu.CtuluLibString;
+
+/**
+ * Des constantes pour les attributs associables \xE0 des objets GIS. Les attributs constants sont en
+ * principe des attributs programme (non construits par l'utilisateur). Dans ce cas, leur ID est
+ * ind\xE9pendant de la langue pour \xEAtre correctement sauv\xE9 dans les fichiers GML.
+ *
+ * @author Fred Deniger
+ * @version $Id: GISAttributeConstants.java,v 1.14.8.3 2008-03-28 14:58:56 bmarchan Exp $
+ */
+public final class GISAttributeConstants {
+
+ private GISAttributeConstants() {
+
+ }
+
+ public static String toString(final GISAttributeInterface _att) {
+ if (_att == TITRE || _att == BATHY) {
+ return _att.getID();
+ }
+ final String attributeSep = getAttributeSep();
+ return _att.getDataClass().getName() + attributeSep + FuLib.replace(_att.getName(), attributeSep, "_")
+ + attributeSep + CtuluLibString.toString(_att.isAtomicValue());
+ }
+
+ private static String getAttributeSep() {
+ return "|";
+ }
+
+ public static GISAttributeInterface getConstantAttribute(final String _saveName) {
+ if (TITRE.getID().equals(_saveName)) {
+ return TITRE;
+ }
+ if (BATHY.getID().equals(_saveName)) {
+ return BATHY;
+ }
+ return null;
+ }
+
+ public static GISAttributeInterface restoreFrom(final String _s) {
+ GISAttributeInterface res = getConstantAttribute(_s);
+ if (res != null) {
+ return res;
+ }
+ final String[] s = CtuluLibString.parseString(_s, getAttributeSep());
+ if (s == null || s.length != 3) {
+ return null;
+ }
+ final String clazz = s[0];
+ final String name = s[1];
+ final boolean atomic = CtuluLibString.toBoolean(s[2]);
+ if (clazz.equals(Double.class.getName())) {
+ res = new GISAttributeDouble(name, atomic);
+ if (BATHY.isSameContent(res)) {
+ res = BATHY;
+ }
+ } else if (clazz.equals(Integer.class.getName())) {
+ res = new GISAttributeInteger(name, atomic);
+ } else {
+ res = new GISAttributeString(name, atomic);
+ if (TITRE.isSameContent(res)) {
+ res = TITRE;
+ }
+ }
+
+ return res;
+ }
+
+ public static List getDefaults() {
+ final ArrayList l = new ArrayList(2);
+ l.add(BATHY);
+ l.add(TITRE);
+ return l;
+ }
+
+ public static boolean isConstant(final GISAttributeInterface _att) {
+ return _att == TITRE || _att == BATHY;
+ }
+
+ /**
+ * Un attribut nom, non atomique.
+ */
+ public final static GISAttributeString TITRE = new GISAttributeString(CtuluLib.getS("Nom")) {
+
+ String def_ = CtuluLib.getS("_Nouveau");
+
+ protected Object readResolve() {
+ return TITRE;
+ }
+
+ public String getID() {
+ return "ATTRIBUTE_TITLE";
+ }
+
+ public Object getDefaultValue() {
+ return def_;
+ }
+ };
+
+ /**
+ * Un attribut bathy, atomique.
+ */
+ public final static GISAttributeDouble BATHY = new GISAttributeDouble(CtuluLib.getS("z"), true) {
+
+ protected Object readResolve() {
+ return BATHY;
+ }
+
+ public String getID() {
+ return "ATTRIBUTE_Z";
+ }
+
+ };
+
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|