Mercurial > code > home > repos > light9
comparison bin/curvecalc @ 778:a2c1dc358bb1
support dragging in a url to make curves and subterms
Ignore-this: 8cb0583c1350d8d414d8ef2995524c68
author | drewp@bigasterisk.com |
---|---|
date | Sat, 16 Jun 2012 23:46:03 +0000 |
parents | 24db623e2097 |
children | d3f6830f55a2 |
comparison
equal
deleted
inserted
replaced
777:5aac3227f9a9 | 778:a2c1dc358bb1 |
---|---|
14 from twisted.internet import gtk2reactor | 14 from twisted.internet import gtk2reactor |
15 gtk2reactor.install() | 15 gtk2reactor.install() |
16 from twisted.internet import reactor | 16 from twisted.internet import reactor |
17 | 17 |
18 import time, textwrap, os, optparse, gtk, linecache, signal, traceback, json | 18 import time, textwrap, os, optparse, gtk, linecache, signal, traceback, json |
19 from urlparse import parse_qsl | |
19 import louie as dispatcher | 20 import louie as dispatcher |
20 from rdflib import URIRef, Graph, Literal, RDF, RDFS | 21 from rdflib import URIRef, Graph, Literal, RDF, RDFS |
21 import logging | 22 import logging |
22 log = logging.getLogger() | 23 log = logging.getLogger() |
23 | 24 |
91 # may not work | 92 # may not work |
92 wtree.get_object("paned1").set_position(600) | 93 wtree.get_object("paned1").set_position(600) |
93 | 94 |
94 def onDataReceived(self, widget, context, x, y, selection, | 95 def onDataReceived(self, widget, context, x, y, selection, |
95 targetType, time): | 96 targetType, time): |
96 uri = URIRef(selection.data.strip()) | 97 data = selection.data.strip() |
98 if '?' in data: | |
99 self.handleSubtermDrop(data) | |
100 return | |
101 uri = URIRef(data) | |
97 subName = self.graph.label(uri) | 102 subName = self.graph.label(uri) |
98 | |
99 | 103 |
100 if not list(self.graph.subjects(L9['sub'], uri)): | 104 if not list(self.graph.subjects(L9['sub'], uri)): |
101 # might be a new one just created in KC | 105 # might be a new one just created in KC |
102 print "didn't find %r, reloading subs" % uri | 106 print "didn't find %r, reloading subs" % uri |
103 self.onReloadSubs() | 107 self.onReloadSubs() |
109 curveView = self.curvesetView.row(subName).curveView | 113 curveView = self.curvesetView.row(subName).curveView |
110 t = self.lastSeenInputTime # curveView.current_time() # new curve hasn't heard the time yet. this has gotten too messy- everyone just needs to be able to reach the time source | 114 t = self.lastSeenInputTime # curveView.current_time() # new curve hasn't heard the time yet. this has gotten too messy- everyone just needs to be able to reach the time source |
111 print "time", t | 115 print "time", t |
112 curveView.add_points([(t - .5, 0), | 116 curveView.add_points([(t - .5, 0), |
113 (t, 1)]) | 117 (t, 1)]) |
114 | 118 |
119 def handleSubtermDrop(self, data): | |
120 params = parse_qsl(data.split('?')[1]) | |
121 flattened = dict(params) | |
122 self.makeSubterm(flattened['subtermName'], | |
123 expr=flattened['subtermExpr']) | |
124 | |
125 for cmd, name in params: | |
126 if cmd == 'curve': | |
127 self.curveset.new_curve(name) | |
115 | 128 |
116 def onNewCurve(self, *args): | 129 def onNewCurve(self, *args): |
117 dialog = self.wtree.get_object("newCurve") | 130 dialog = self.wtree.get_object("newCurve") |
118 entry = self.wtree.get_object("newCurveName") | 131 entry = self.wtree.get_object("newCurveName") |
119 # if you don't have songx, that should be the suggested name | 132 # if you don't have songx, that should be the suggested name |
133 newname = entry.get_text() | 146 newname = entry.get_text() |
134 wc = self.wtree.get_object("newSubtermMakeCurve").get_active() | 147 wc = self.wtree.get_object("newSubtermMakeCurve").get_active() |
135 self.makeSubterm(newname, withCurve=wc) | 148 self.makeSubterm(newname, withCurve=wc) |
136 dialog.hide() | 149 dialog.hide() |
137 | 150 |
138 def makeSubterm(self, newname, withCurve=False): | 151 def makeSubterm(self, newname, withCurve=False, expr=None): |
139 uri = L9['sub/%s' % newname] | 152 uri = L9['sub/%s' % newname] |
140 if (uri, RDF.type, L9.Subterm) in self.graph: | 153 if (uri, RDF.type, L9.Subterm) in self.graph: |
141 raise SubtermExists("already have a subterm named %r" % newname) | 154 raise SubtermExists("already have a subterm named %r" % newname) |
142 self.graph.add((uri, RDF.type, L9.Subterm)) | 155 self.graph.add((uri, RDF.type, L9.Subterm)) |
143 self.graph.add((uri, RDFS.label, Literal(newname))) | 156 self.graph.add((uri, RDFS.label, Literal(newname))) |
144 add_one_subterm(self.graph, uri, | 157 add_one_subterm(self.graph, uri, |
145 self.curveset, self.subterms, | 158 self.curveset, self.subterms, |
146 self.wtree.get_object("subterms"), | 159 self.wtree.get_object("subterms"), |
147 None, show=True) | 160 expr=expr, show=True) |
148 if withCurve: | 161 if withCurve: |
149 self.curveset.new_curve(newname) | 162 self.curveset.new_curve(newname) |
150 | 163 |
151 def refreshTheme(self): | 164 def refreshTheme(self): |
152 gtk.rc_reparse_all() | 165 gtk.rc_reparse_all() |