sugar-toolkit-gtk3/src/sugar3/activity/activityhandle.py

76 lines
2.6 KiB
Python
Raw Normal View History

# 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.
'''
Provides a class for storing activity metadata such as activity id's,
journal object id's,
'''
2009-08-25 21:12:40 +02:00
class ActivityHandle(object):
'''
Data structure storing simple activity metadata
Args:
activity_id (string): unique id for the activity to be
created
object_id (string): identity of the journal object
associated with the activity.
When you resume an activity from the journal
the object_id will be passed in. It is optional
since new activities does not have an
associated object.
uri (string): 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)
invited (bool): True if the activity is being
launched for handling an invite from the network
'''
2009-08-25 21:12:40 +02:00
def __init__(self, activity_id=None, object_id=None, uri=None,
invited=False):
self.activity_id = activity_id
self.object_id = object_id
self.uri = uri
self.invited = invited
def get_dict(self):
'''Returns activity settings as a dictionary in format
{activity_id:XXXX, object_id:XXXX, uri:XXXX, invited:BOOL}'''
result = {'activity_id': self.activity_id, 'invited': self.invited}
2007-03-02 21:58:36 +01:00
if self.object_id:
result['object_id'] = self.object_id
if self.uri:
result['uri'] = self.uri
return result
2009-08-25 21:12:40 +02:00
def create_from_dict(handle_dict):
'''Returns an activity handle from a dictionary of parameters'''
2009-08-25 21:12:40 +02:00
result = ActivityHandle(handle_dict['activity_id'],
2013-05-17 07:16:36 +02:00
object_id=handle_dict.get('object_id'),
uri=handle_dict.get('uri'),
invited=handle_dict.get('invited'))
return result