|
From: <bma...@us...> - 2011-07-05 09:27:54
|
Revision: 6320
http://fudaa.svn.sourceforge.net/fudaa/?rev=6320&view=rev
Author: bmarchan
Date: 2011-07-05 09:27:45 +0000 (Tue, 05 Jul 2011)
Log Message:
-----------
Add : Methode GISAttribute.getComparator()
Modified Paths:
--------------
trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/GISAttribute.java
trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/GISAttributeConstants.java
trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/GISAttributeInterface.java
Modified: trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/GISAttribute.java
===================================================================
--- trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/GISAttribute.java 2011-07-05 09:25:29 UTC (rev 6319)
+++ trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/GISAttribute.java 2011-07-05 09:27:45 UTC (rev 6320)
@@ -8,6 +8,7 @@
package org.fudaa.ctulu.gis;
import java.util.Arrays;
+import java.util.Comparator;
import org.fudaa.ctulu.CtuluLib;
import org.fudaa.ctulu.CtuluLibString;
@@ -257,4 +258,24 @@
isUserVisible_ = _isUserVisible;
}
+ /**
+ * @return Un comparateur g\xE9n\xE9rique des valeurs stock\xE9es par le modele.
+ */
+ public Comparator<?> getComparator() {
+ if (Comparable.class.isAssignableFrom(getDataClass())) {
+ return new Comparator<Object>() {
+ public int compare(Object o1, Object o2) {
+ return ((Comparable)o1).compareTo(o2);
+ }
+ };
+ }
+ else {
+ return new Comparator<Object>() {
+ public int compare(Object o1, Object o2) {
+ return o1==null ? (o2==null ? 0 : 1) : (o2==null ? -1 : o1.toString().compareTo(o2.toString()));
+ }
+ };
+ }
+ }
+
}
Modified: trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/GISAttributeConstants.java
===================================================================
--- trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/GISAttributeConstants.java 2011-07-05 09:25:29 UTC (rev 6319)
+++ trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/GISAttributeConstants.java 2011-07-05 09:27:45 UTC (rev 6320)
@@ -9,6 +9,7 @@
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Comparator;
import java.util.List;
import org.fudaa.ctulu.CtuluLib;
@@ -165,9 +166,25 @@
* Un attribut commentaire hydraulique, utilis\xE9 dans la lecture/ecriture des fichiers.
*/
public final static GISAttributeString COMMENTAIRE_HYDRO = new GISAttributeString(CtuluLib.getS("Commentaire hydro"), false) {
+ @Override
public String getID() {
return "ATTRIBUTE_HYDRO_COMMENT";
}
+
+ /**
+ * La comparaison se fait uniquement sur le PK pour le moment.
+ */
+ @Override
+ public Comparator<?> getComparator() {
+ return new Comparator<String>() {
+ public int compare(String o1, String o2) {
+ double v=GISLib.getHydroCommentDouble(o1,ATT_COMM_HYDRO_PK)-GISLib.getHydroCommentDouble(o2,ATT_COMM_HYDRO_PK);
+ return v==0 ? 0 : v>0 ? 1 : -1;
+ }
+ };
+ }
+
+
};
/**
Modified: trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/GISAttributeInterface.java
===================================================================
--- trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/GISAttributeInterface.java 2011-07-05 09:25:29 UTC (rev 6319)
+++ trunk/framework/ctulu-gis/src/main/java/org/fudaa/ctulu/gis/GISAttributeInterface.java 2011-07-05 09:27:45 UTC (rev 6320)
@@ -7,6 +7,7 @@
*/
package org.fudaa.ctulu.gis;
+import java.util.Comparator;
import org.fudaa.ctulu.CtuluVariable;
import org.fudaa.ctulu.editor.CtuluValueEditorI;
@@ -92,6 +93,11 @@
* @return l'\xE9diteur associe
*/
CtuluValueEditorI getEditor();
+
+ /**
+ * @return Le comparateur de valeur, pour le tri sur un modele par exemple.
+ */
+ Comparator<?> getComparator();
/**
* @return le nombre de chiffres apr\xE8s la virgule
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|