gzz-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gzz-commits] fenfire ./TODO-loom org/fenfire/loom/Loom.java ...


From: Benja Fallenstein
Subject: [Gzz-commits] fenfire ./TODO-loom org/fenfire/loom/Loom.java ...
Date: Tue, 11 Mar 2003 17:45:53 -0500

CVSROOT:        /cvsroot/fenfire
Module name:    fenfire
Changes by:     Benja Fallenstein <address@hidden>      03/03/11 17:45:53

Modified files:
        .              : TODO-loom 
        org/fenfire/loom: Loom.java NamespaceMap.java NamespaceMap.test 
Added files:
        org/fenfire/loom: ModelUtil.java ModelUtil.test RDFVocab.java 

Log message:
        Refactor, fix speed, postpone cursor rotation autofix

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/TODO-loom.diff?tr1=1.32&tr2=1.33&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/loom/ModelUtil.java?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/loom/ModelUtil.test?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/loom/RDFVocab.java?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/loom/Loom.java.diff?tr1=1.25&tr2=1.26&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/loom/NamespaceMap.java.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/loom/NamespaceMap.test.diff?tr1=1.1&tr2=1.2&r1=text&r2=text

Patches:
Index: fenfire/TODO-loom
diff -u fenfire/TODO-loom:1.32 fenfire/TODO-loom:1.33
--- fenfire/TODO-loom:1.32      Mon Mar 10 16:54:09 2003
+++ fenfire/TODO-loom   Tue Mar 11 17:45:53 2003
@@ -17,12 +17,6 @@
       is called
     - fix bug: when there are two equal literals connected
       to a node, clicking on one may focus the other.
-    - fix bug: when Cursor.java has an insane rotation
-      (too high or too small), it should fix itself
-      when move() is called.
-
-    - find current bottleneck when viewing big graphs
-      like the w3c SWAD chart & fix
 
     - views proportional to window size
     - in the Wheel views, have a maximum angle, so that
@@ -47,6 +41,10 @@
         This convention is used e.g. by the RDF specs.
 
 later (or now if somebody wants to):
+    - fix bug: when Cursor.java has an insane rotation
+      (too high or too small), it should fix itself
+      when move() is called.
+
     - draw UML diagrams similar to Gzz "Core APIs"
 
     - editing structure and text content
Index: fenfire/org/fenfire/loom/Loom.java
diff -u fenfire/org/fenfire/loom/Loom.java:1.25 
fenfire/org/fenfire/loom/Loom.java:1.26
--- fenfire/org/fenfire/loom/Loom.java:1.25     Tue Mar 11 09:33:44 2003
+++ fenfire/org/fenfire/loom/Loom.java  Tue Mar 11 17:45:53 2003
@@ -51,7 +51,7 @@
     protected ColorScheme colors;
 
     protected Model model;
-    protected Property typeProp;
+    protected RDFVocab rdf;
     protected NamespaceMap names;
 
     protected Cursor cursor;
@@ -65,36 +65,23 @@
                                       IOException, 
                                       org.xml.sax.SAXException {
        model = new ModelMem();
-       typeProp = 
model.createProperty("http://www.w3.org/1999/02/22-rdf-syntax-ns#";,
-                                       "type");
+       rdf = new RDFVocab(model);
+
        model.read(new java.io.FileReader(file), "");
 
        names = new NamespaceMap();
        names.loadMappings(new java.io.FileReader(file));
 
+       Comparator compareByAbbrev = names.getComparator();
 
-       Comparator compareByAbbrev =
-           new Comparator() {
-               public int compare(Object o1, Object o2) {
-                   String s1 = names.getAbbrev(o1.toString());
-                   String s2 = names.getAbbrev(o2.toString());
-                   return s1.compareTo(s2);
-               }
-           };
-
-       Set props = new TreeSet(compareByAbbrev);
        Set classes = new TreeSet(compareByAbbrev);
+       classes.addAll(ModelUtil.getClasses(model));
        
-       for(StmtIterator iter = model.listStatements(); iter.hasNext();) {
-           Statement stmt = iter.next();
-           Property p = stmt.getPredicate();
-           if(!isNumberProp(p)) props.add(p);
-           if(p.toString().equals(
-               "http://www.w3.org/1999/02/22-rdf-syntax-ns#type";) &&
-              stmt.getObject() instanceof Resource)
-               classes.add(stmt.getObject());
-       }
-       properties = new ArrayList(props);
+       properties = new ArrayList(ModelUtil.getProperties(model));
+       Collections.sort(properties, compareByAbbrev);
+
+       numericPropertiesAccepted = true;
+       acceptedProperties = new HashSet(properties);
 
        propList.setMultipleMode(true);
        propList.removeAll();
@@ -115,9 +102,8 @@
                           protected boolean accept(Statement s) {
                               Property p = s.getPredicate();
                               if(isNumberProp(p))
-                                  return propList.isIndexSelected(0);
-                              int i = properties.indexOf(p);
-                              return propList.isIndexSelected(i+1);
+                                  return numericPropertiesAccepted;
+                              return acceptedProperties.contains(p);
                           }
                       },
                       stmt.getSubject(), 1, stmt.getObject());
@@ -152,6 +138,9 @@
     }
 
     protected List properties;
+    protected Set acceptedProperties;
+    protected boolean numericPropertiesAccepted;
+
     protected Frame propFrame = new Frame("Properties");
     protected java.awt.List propList = new java.awt.List();
 
@@ -236,6 +225,17 @@
        propFrame.add(propList);
        propList.addItemListener(new ItemListener() {
                public void itemStateChanged(ItemEvent e) {
+                   numericPropertiesAccepted = false;
+                   acceptedProperties = new HashSet();
+
+                   int[] indexes = propList.getSelectedIndexes();
+                   for(int i=0; i<indexes.length; i++) {
+                       if(indexes[i] == 0)
+                           numericPropertiesAccepted = true;
+                       else
+                           
acceptedProperties.add(properties.get(indexes[i]-1));
+                   }
+
                    // the rotation cannot be sanely kept
                    // when properties are added or removed
                    cursor.rotation = 0; 
@@ -272,7 +272,7 @@
 
                        try {
                            Statement typeStmt =
-                               ((Resource)node).getProperty(typeProp);
+                               ((Resource)node).getProperty(rdf.type);
 
                            RDFNode type = typeStmt.getObject();
                            Property by = (Property)showClassBy.get(type);
Index: fenfire/org/fenfire/loom/NamespaceMap.java
diff -u fenfire/org/fenfire/loom/NamespaceMap.java:1.1 
fenfire/org/fenfire/loom/NamespaceMap.java:1.2
--- fenfire/org/fenfire/loom/NamespaceMap.java:1.1      Sat Mar  8 19:57:59 2003
+++ fenfire/org/fenfire/loom/NamespaceMap.java  Tue Mar 11 17:45:53 2003
@@ -74,4 +74,16 @@
        xr.setContentHandler(h);
        xr.parse(new InputSource(r));
     }
+
+    public Comparator getComparator() {
+       return new CompareByAbbrev();
+    }
+
+    public class CompareByAbbrev implements Comparator {
+       public int compare(Object o1, Object o2) {
+           String s1 = getAbbrev(o1.toString());
+           String s2 = getAbbrev(o2.toString());
+           return s1.compareTo(s2);
+       }
+    }
 }
Index: fenfire/org/fenfire/loom/NamespaceMap.test
diff -u fenfire/org/fenfire/loom/NamespaceMap.test:1.1 
fenfire/org/fenfire/loom/NamespaceMap.test:1.2
--- fenfire/org/fenfire/loom/NamespaceMap.test:1.1      Sat Mar  8 19:57:59 2003
+++ fenfire/org/fenfire/loom/NamespaceMap.test  Tue Mar 11 17:45:53 2003
@@ -69,3 +69,19 @@
     assert map.getAbbrev("mailto:address@hidden";) == "two:example.org"
     assert map.getAbbrev("urn:x-foo:foo") == "urn:x-foo:foo"
     
+
+def testCompareByAbbrev():
+    map = gzz.loom.NamespaceMap()
+    map.put("one", "http://example.com/";)
+    map.put("two", "mailto:foo@";)
+
+    cmp = map.getComparator().compare
+
+    assert cmp("foo", "foo") == 0
+    assert cmp("foo", "bar") > 0
+
+    assert cmp("kabba", "http://example.com";) > 0
+    assert cmp("kabba", "http://example.com/innamespace";) < 0
+
+    assert cmp("http://example.com/1";, "mailto:address@hidden";) < 0
+    assert cmp("http://example.com/17";, "http://example.com/17";) == 0




reply via email to

[Prev in Thread] Current Thread [Next in Thread]