[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gzz-commits] fenfire/org/fenfire demo/actions.py demo/buoyoi...
From: |
Matti Katila |
Subject: |
[Gzz-commits] fenfire/org/fenfire demo/actions.py demo/buoyoi... |
Date: |
Sat, 19 Jul 2003 05:04:37 -0400 |
CVSROOT: /cvsroot/fenfire
Module name: fenfire
Branch:
Changes by: Matti Katila <address@hidden> 03/07/19 05:04:37
Modified files:
org/fenfire/demo: actions.py buoyoing.py fenpdfcontext.py
org/fenfire/util: RDFUtil.java
org/fenfire/view: AreaSelectingView2D.java PageScrollView2D.java
PageSpanLayout.java
Added files:
org/fenfire/util/lava: __init__.py view.py
Log message:
added functionality for annotating pdf. use selection and then Ctrl-A
when pdf is in main node.
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/demo/actions.py.diff?tr1=1.11&tr2=1.12&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/demo/buoyoing.py.diff?tr1=1.95&tr2=1.96&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/demo/fenpdfcontext.py.diff?tr1=1.9&tr2=1.10&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/util/RDFUtil.java.diff?tr1=1.15&tr2=1.16&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/util/lava/__init__.py?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/util/lava/view.py?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/AreaSelectingView2D.java.diff?tr1=1.9&tr2=1.10&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/PageScrollView2D.java.diff?tr1=1.8&tr2=1.9&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/fenfire/fenfire/org/fenfire/view/PageSpanLayout.java.diff?tr1=1.16&tr2=1.17&r1=text&r2=text
Patches:
Index: fenfire/org/fenfire/demo/actions.py
diff -u fenfire/org/fenfire/demo/actions.py:1.11
fenfire/org/fenfire/demo/actions.py:1.12
--- fenfire/org/fenfire/demo/actions.py:1.11 Thu Jul 17 12:28:18 2003
+++ fenfire/org/fenfire/demo/actions.py Sat Jul 19 05:04:36 2003
@@ -111,6 +111,8 @@
xy = self.obj[0].getXYHit(self.oldVS, x,y)
oldXY = self.context.states.getPressPans()
self.obj[1].setArea(oldXY[0], oldXY[1], xy[0], xy[1])
+ p(self.context.states.selection.area)
+ self.context.states.selection.area = [oldXY[0], oldXY[1], xy[0], xy[1]]
self.obj[0].chgFast(self.oldVS, None)
@@ -143,13 +145,9 @@
### Set selection plane
- v = main.getView2D()
- while v != None:
- if isinstance(v, ff.view.AreaSelectingView2D):
- v.setCurrentPlane(main.getPlane())
- self.selection = v
- break
- v = v.getChildView2D()
+ v = ff.util.lava.view.getView(main, ff.view.AreaSelectingView2D)
+ v.setCurrentPlane(main.getPlane())
+ self.selection = v
#### Special case if user has pressed 'Ctrl'
if self.context.states.hasCtrl():
Index: fenfire/org/fenfire/demo/buoyoing.py
diff -u fenfire/org/fenfire/demo/buoyoing.py:1.95
fenfire/org/fenfire/demo/buoyoing.py:1.96
--- fenfire/org/fenfire/demo/buoyoing.py:1.95 Thu Jul 17 12:28:18 2003
+++ fenfire/org/fenfire/demo/buoyoing.py Sat Jul 19 05:04:36 2003
@@ -58,6 +58,7 @@
### debugs
#ff.util.lava.CoordsysCache.dbg = 1
#ff.view.AreaSelectingView2D.dbg = 1
+ff.view.buoy.TransclusionConnector.dbg = 1
vob.putil.demo.usingNormalBindings = 0
Index: fenfire/org/fenfire/demo/fenpdfcontext.py
diff -u fenfire/org/fenfire/demo/fenpdfcontext.py:1.9
fenfire/org/fenfire/demo/fenpdfcontext.py:1.10
--- fenfire/org/fenfire/demo/fenpdfcontext.py:1.9 Tue Jul 15 03:18:11 2003
+++ fenfire/org/fenfire/demo/fenpdfcontext.py Sat Jul 19 05:04:36 2003
@@ -91,6 +91,20 @@
self.makerTypes.append(self.makerTypes.pop(0))
self.states.nodeview.reinit(fen.graph, 100)
self.states.pageview.flush()
+
+ if stroke == 'Ctrl-A':
+ p('Make an annotate.')
+ if self.states.selection.hasSelection():
+ s = self.states.selection.area
+ if isinstance(main, ff.view.buoy.FisheyeMainNode2D):
+ v = ff.util.lava.view.getView(main,
ff.view.PageScrollView2D)
+ layout = v.getLayout(main.getPlane())
+ enf = layout.getSelection( int(s[0]), int(s[1]),
+ int(s[2]), int(s[3]))
+ paper = pp.newPaper()
+ note = Nodes.get(pp.newNote(paper, 0,0, ''))
+ p('enfilade:', enf)
+ fen.txt.set(note, enf)
if acc == None: return
@@ -131,6 +145,18 @@
self.spanImageFactory = spanImageFactory
self.nodeview = nodeview
self.pageview = None
+
+ class Selection:
+ def __init__(self):
+ self.area = [0,0,0,0]
+ self.view = None
+ def getArea(self): return self.area
+ def setArea(self, area): self.area = area
+ def hasSelection(self):
+ a = self.area
+ return (a[0]-a[2]) != 0 and (a[1]-a[3]) != 0
+ self.selection = Selection()
+
def chgCtrl(self):
self.ctrl = not self.ctrl
if self.ctrl:
Index: fenfire/org/fenfire/util/RDFUtil.java
diff -u fenfire/org/fenfire/util/RDFUtil.java:1.15
fenfire/org/fenfire/util/RDFUtil.java:1.16
--- fenfire/org/fenfire/util/RDFUtil.java:1.15 Thu Jul 17 12:28:19 2003
+++ fenfire/org/fenfire/util/RDFUtil.java Sat Jul 19 05:04:36 2003
@@ -99,7 +99,7 @@
/** Special call for structure linked vocabulary to test if node is linked.
* @see STRUCTLINK
*/
- public boolean isLinked(Graph graph, Object node) {
+ static public boolean isLinked(Graph graph, Object node) {
Iterator it = graph.findN_11X_Iter(node, STRUCTLINK.linkedTo);
if (it.hasNext()) return true;
it = graph.findN_X11_Iter(STRUCTLINK.linkedTo, node);
@@ -107,61 +107,5 @@
return false;
}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- /** Split node to two nodes. Enfilade is splitted in ind,
- * i.e. (node, [foobar]) will be with ind 2 be splitted to
- * (node, [foo]) and (split, [bar]). All properties will
- * be copied to split.
- *
- * @return the new node
- * @deprecated
- */
- static public Object splitNode(Fen fen, Object node, int ind) {
- Object split = Nodes.N();
-
- Enfilade1D enf = (Enfilade1D)fen.txtfunc.f(fen.constgraph, node);
- if (ind < 0 || ind >= enf.length())
- throw new Error("Ind is too short or long! "+ind);
-
- Enfilade1D toEnf = enf.sub(ind, enf.length());
- Enfilade1D fromEnf = enf.sub(0, ind);
- fen.txt.set(node, fromEnf);
- fen.txt.set(split, toEnf);
-
- Iterator iter = fen.graph.findN_1XA_Iter(node);
- while (iter.hasNext()) {
- Object predicate = iter.next();
- if (predicate != FF.content) {
- Iterator it = fen.graph.findN_11X_Iter(node, predicate);
- while (it.hasNext()) {
- Object object = it.next();
- if (dbg) p("Pred: " + predicate);
- if (dbg) p(" Obj: "+object);
- fen.graph.add(split, predicate, object);
- }
- }
- }
- return split;
- }
}
Index: fenfire/org/fenfire/view/AreaSelectingView2D.java
diff -u fenfire/org/fenfire/view/AreaSelectingView2D.java:1.9
fenfire/org/fenfire/view/AreaSelectingView2D.java:1.10
--- fenfire/org/fenfire/view/AreaSelectingView2D.java:1.9 Thu Jul 17
12:28:19 2003
+++ fenfire/org/fenfire/view/AreaSelectingView2D.java Sat Jul 19 05:04:36 2003
@@ -29,10 +29,6 @@
private Paper paper;
private GLRen.FixedPaperQuad pq;
- public boolean hasSelection() {
- return x0!=0 || y0!=0 || x1!=0 || y1!=0;
- }
-
public AreaSelectingView2D(View2D child) {
this(child, null);
}
@@ -63,10 +59,9 @@
Object key = vs.matcher.getKey(box2screen);
if (dbg) p("key b2s: "+vs.matcher.getKey(box2screen));
coords.set(key, cs);
- chgFast(vs, key);
- if (current != plane) return;
- if (dbg) p("ok, draw the selection!"+x0+","+y0+","+x1+","+y1);
+ if (current != plane) setArea(0,0,0,0);
+ chgFast(vs, key);
vs.put(pq, cs);
}
Index: fenfire/org/fenfire/view/PageScrollView2D.java
diff -u fenfire/org/fenfire/view/PageScrollView2D.java:1.8
fenfire/org/fenfire/view/PageScrollView2D.java:1.9
--- fenfire/org/fenfire/view/PageScrollView2D.java:1.8 Tue Jul 15 03:18:11 2003
+++ fenfire/org/fenfire/view/PageScrollView2D.java Sat Jul 19 05:04:36 2003
@@ -59,7 +59,11 @@
);
}
-
+ public PageSpanLayout getLayout(Object plane) {
+ PageScrollBlock block = (PageScrollBlock)plane;
+ return (PageSpanLayout)scroll2layout.f(null, block);
+ }
+
public void getSize(Object plane, float[] wh) {
PageScrollBlock block = (PageScrollBlock)plane;
Index: fenfire/org/fenfire/view/PageSpanLayout.java
diff -u fenfire/org/fenfire/view/PageSpanLayout.java:1.16
fenfire/org/fenfire/view/PageSpanLayout.java:1.17
--- fenfire/org/fenfire/view/PageSpanLayout.java:1.16 Mon Jul 7 03:07:55 2003
+++ fenfire/org/fenfire/view/PageSpanLayout.java Sat Jul 19 05:04:36 2003
@@ -222,12 +222,11 @@
/** Get selected area of pagespanlayout in enfilade
*/
- Enfilade1D getSelection(int x, int y, int width, int height) {
+ public Enfilade1D getSelection(int x, int y, int width, int height) {
if (x<0 || y<0) throw new Error ("X or Y smaller than zero, x:"+x+",
y:"+y);
int w=0, wLeft = width, p=0;
- Enfilade1D enf = new Enfilade1DImpl(null);
- Enfilade1D.Maker m = enf.getMaker();
+ Enfilade1D enf = null;
// Go into page where selection starts
for (; p<pages.length; p++)
@@ -240,18 +239,18 @@
if (height > xywh[4*p + 3]) throw new Error("Selection out of
page,"+p+", h:"+height);
// everything ok, so get a clip from page for returning enfilade.
- if (enf.length() == 0) {
+ if (enf == null) {
w = (int)Math.min(wLeft, xywh[4*p + 2] - x);
- enf.plus(m.makeEnfilade(pages[p].subArea(x,y, w, height)));
+ enf = new Enfilade1DImpl(pages[p].subArea(x,y, w, height));
} else {
w = (int)Math.min(wLeft, xywh[4*p + 2]);
+ Enfilade1D.Maker m = enf.getMaker();
enf.plus(m.makeEnfilade(pages[p].subArea(0,y, w, height)));
}
wLeft -= w;
}
return enf;
}
-
}