[Top][All Lists]
[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