Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src/sugar/activity/activityhandle.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/sugar/activity/activityhandle.py')
-rw-r--r--src/sugar/activity/activityhandle.py70
1 files changed, 70 insertions, 0 deletions
diff --git a/src/sugar/activity/activityhandle.py b/src/sugar/activity/activityhandle.py
new file mode 100644
index 0000000..f255fd5
--- /dev/null
+++ b/src/sugar/activity/activityhandle.py
@@ -0,0 +1,70 @@
+# Copyright (C) 2006-2007 Red Hat, Inc.
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the
+# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+# Boston, MA 02111-1307, USA.
+
+"""
+STABLE.
+"""
+
+class ActivityHandle(object):
+ """Data structure storing simple activity metadata"""
+ def __init__(
+ self, activity_id=None, object_id=None, uri=None
+ ):
+ """Initialise the handle from activity_id
+
+ activity_id -- unique id for the activity to be
+ created
+ object_id -- identity of the journal object
+ associated with the activity. It was used by
+ the journal prototype implementation, might
+ change when we do the real one.
+
+ When you resume an activity from the journal
+ the object_id will be passed in. It's optional
+ since new activities does not have an
+ associated object (yet).
+
+ XXX Not clear how this relates to the activity
+ id yet, i.e. not sure we really need both. TBF
+ uri -- URI associated with the activity. Used when
+ opening an external file or resource in the
+ activity, rather than a journal object
+ (downloads stored on the file system for
+ example or web pages)
+ """
+ self.activity_id = activity_id
+ self.object_id = object_id
+ self.uri = uri
+
+ def get_dict(self):
+ """Retrieve our settings as a dictionary"""
+ result = { 'activity_id' : self.activity_id }
+ if self.object_id:
+ result['object_id'] = self.object_id
+ if self.uri:
+ result['uri'] = self.uri
+
+ return result
+
+def create_from_dict(handle_dict):
+ """Create a handle from a dictionary of parameters"""
+ result = ActivityHandle(
+ handle_dict['activity_id'],
+ object_id = handle_dict.get('object_id'),
+ uri = handle_dict.get('uri'),
+ )
+ return result