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
rpy-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rpy-list

Reply via email to