Revision: 554
http://rpy.svn.sourceforge.net/rpy/?rev=554&view=rev
Author: lgautier
Date: 2008-06-08 01:22:28 -0700 (Sun, 08 Jun 2008)
Log Message:
-----------
R GUI demo: the console is now working (somehow)
Modified Paths:
--------------
branches/rpy_nextgen/demos/radmin.py
Modified: branches/rpy_nextgen/demos/radmin.py
===================================================================
--- branches/rpy_nextgen/demos/radmin.py 2008-06-08 07:36:11 UTC (rev
553)
+++ branches/rpy_nextgen/demos/radmin.py 2008-06-08 08:22:28 UTC (rev
554)
@@ -427,6 +427,7 @@
tag_out=gtk.TextTag("output")
tag_out.set_property("foreground","blue")
tag_out.set_property("font","monospace 10")
+ tag_out.set_property("editable", False)
t_table.add(tag_out)
tag_in=gtk.TextTag("input")
@@ -434,21 +435,54 @@
tag_in.set_property("font","monospace 10")
t_table.add(tag_in)
+ self.tag_table = t_table
+
self._buffer = gtk.TextBuffer(t_table)
self._view = gtk.TextView(buffer = self._buffer)
self._view.connect("key_press_event", self.actionKeyPress)
self._view.show()
s_window.add(self._view)
self.add(s_window)
- self.append("> ")
+ evalButton = gtk.Button("Evaluate")
+ evalButton.connect("clicked", self.evaluateAction, "evaluate")
+ evalButton.show()
+ self.pack_start(evalButton, False, False, 0)
+ self._evalButton = evalButton
+ self.append("> ", "input")
+ location = self._buffer.get_end_iter()
+ self._start_mark = self._buffer.create_mark("beginCode",
+ location,
left_gravity=True)
+
def actionKeyPress(self, view, event):
pass
- def append(self, text):
- pos=self._buffer.get_end_iter()
- self._buffer.insert(pos, text)
+ def append(self, text, tag):
+ tag = self.tag_table.lookup(tag)
+ buffer = self._buffer
+ end_iter = buffer.get_end_iter()
+ mark = buffer.create_mark("beginMark", end_iter, left_gravity=True)
+ self._buffer.insert(end_iter, text)
+ self._buffer.apply_tag(tag, buffer.get_iter_at_mark(mark),
+ buffer.get_end_iter())
+ buffer.delete_mark(mark)
+ def evaluateAction(self, widget, data=None):
+ buffer = self._buffer
+ start_iter = buffer.get_iter_at_mark(self._start_mark)
+ stop_iter = buffer.get_iter_at_offset(buffer.get_char_count())
+ rcode = buffer.get_text(start_iter, stop_iter)
+
+ res = robjects.r(rcode)
+
+ self.append(str(res), "output")
+
+ self.append("\n> ", "input")
+
+ buffer.move_mark(self._start_mark,
+ buffer.get_iter_at_offset(buffer.get_char_count()))
+
+
class Main(object):
def __init__(self):
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
rpy-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/rpy-list