Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAgustin Zubiaga <aguz@sugarlabs.org>2012-04-13 01:07:25 (GMT)
committer Agustin Zubiaga <aguz@sugarlabs.org>2012-04-13 01:07:25 (GMT)
commit0aa9a1fb143949216724844ebff1626f7775d1c8 (patch)
tree5a740cae0704605030b41deac42565f2d0a61e93
parent4b8abdbd863134618ab10f875d057e942450a1c9 (diff)
More simple: graph from clipboard
-rw-r--r--activity.py4
-rw-r--r--readers.py34
2 files changed, 37 insertions, 1 deletions
diff --git a/activity.py b/activity.py
index 185dcc3..97b7541 100644
--- a/activity.py
+++ b/activity.py
@@ -48,6 +48,7 @@ from sugar.datastore import datastore
from charts import Chart
from readers import StopWatchReader
from readers import MeasureReader
+from readers import ClipboardReader
import simplegraphhelp
# Mime types
@@ -108,7 +109,8 @@ class ChartArea(gtk.DrawingArea):
def _drag_data_received(self, w, context, x, y, data, info, time):
if data and data.format == 8:
io_file = StringIO(data.data)
- self._parent.load_from_file(io_file)
+ reader = ClipboardReader(io_file)
+ self._parent._graph_from_reader(reader)
context.finish(True, False, time)
else:
context.finish(False, False, time)
diff --git a/readers.py b/readers.py
index 0b19b80..7da8c08 100644
--- a/readers.py
+++ b/readers.py
@@ -127,3 +127,37 @@ class MeasureReader():
h_label = _('Samples')
return v_label, h_label
+
+
+class ClipboardReader():
+
+ def __init__(self, file):
+ """Import chart data from file."""
+
+ self._reader = csv.reader(file)
+ self.xlabel = ""
+ self.ylabel = ""
+
+ def get_chart_data(self):
+ """Return data suitable for pyCHA."""
+
+ chart_data = []
+
+ for row in self._reader:
+ label, value = row[0].split(": ")
+
+ if label == "XLabel":
+ self.xlabel = value
+
+ elif label == "YLabel":
+ self.ylabel = value
+
+ else:
+ chart_data.append((label, float(value)))
+
+ return chart_data
+
+ def get_labels_name(self):
+ """Return the h_label and y_label names."""
+
+ return self.xlabel, self.ylabel