diff options
Diffstat (limited to 'listview.py')
-rwxr-xr-x | listview.py | 144 |
1 files changed, 0 insertions, 144 deletions
diff --git a/listview.py b/listview.py deleted file mode 100755 index 67b6d6a..0000000 --- a/listview.py +++ /dev/null @@ -1,144 +0,0 @@ -#!/usr/bin/python - -# ZetCode PyGTK tutorial -# -# This example shows a TreeView widget -# in a list view mode -# -# author: jan bodnar -# website: zetcode.com -# last edited: February 2009 - -import sys, os -import gtk -import objectfetch -import urllib2 -from BeautifulSoup import BeautifulSoup -from xml.dom.minidom import parse, parseString -from sugar.activity import activity -from sugar.datastore import datastore -from path import path - -ACTIVITYPATH = path(activity.get_bundle_path()) -global online -online = False - -class PyApp(gtk.Window): - def __init__(self): - super(PyApp, self).__init__() - self.set_size_request(350, 250) - self.set_position(gtk.WIN_POS_CENTER) - - self.connect("destroy", gtk.main_quit) - self.set_title("DataManager") - - vbox = gtk.VBox(False, 8) - - sw = gtk.ScrolledWindow() - sw.set_shadow_type(gtk.SHADOW_ETCHED_IN) - sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) - - vbox.pack_start(sw, True, True, 0) - - store = self.create_model() - - treeView = gtk.TreeView(store) - treeView.connect("row-activated", self.on_activated) - treeView.set_rules_hint(True) - sw.add(treeView) - - self.create_columns(treeView) - self.statusbar = gtk.Statusbar() - - vbox.pack_start(self.statusbar, False, False, 0) - - self.add(vbox) - self.show_all() - - - def create_model(self): - global online - store = gtk.ListStore(str, str, str) - #let's display objects from the schoolserver - pth = ACTIVITYPATH / 'xoconfig' - configf = open(pth, "r") - config = configf.read() - configf.close() - pos = config.find('[Server]') - if pos < 0: - print 'schoolserver not found' - xoserial = None - store.append(["schoolserver not found", "",""]) - else: - pos = pos + 8 - print 'config', config[pos:] - pos1 = pos + config[pos:].find("= ") + 2 - pos2 = pos + config[pos:].find("@") - xoserial = config[pos1:pos2] - print 'xoserial', xoserial, config[pos1:pos2+1] - #temp for testing - xoserial = 'SHC84201F3B' - if xoserial: - url = "http://schoolserver/ds-restore/" + xoserial + "/datastore-latest" - print 'url', url - try: - response = urllib2.urlopen(url) - except: - print 'schoolserver not found' - response = None - if response: - soup = BeautifulSoup(response) - online = True - else: - print 'schoolserver not found at', url - if online: - print 'soup=', soup.prettify() - entries = soup.findAll("li") - print len(entries) - for i in range(10): - print len(entries[i].contents), entries[i].contents - colx = str(entries[i].contents[0]) - pos1 = colx.find('<') - pos2 = colx.find('>') - col0 = colx[pos1:pos2] - col1 = 'col1' + colx[pos2+1:] - temp = entries[i].contents[1].split(' ') - col2 = 'col2:' + temp[0] - col3 = 'col3:' + temp[1] - store.append([col1, col2, col3]) - #print 'sample', entries[0].toprettyxml() - #objects from the local datastore - results, count = datastore.find(dict()) - print 'number of datastore items', count - for f in results: - obj = datastore.get(f.object_id) - f.destroy() - store.append([obj.get_file_path(), obj.metadata['title'], obj.metadata['mime_type']]) - #ignore for the moment - return store - - - def create_columns(self, treeView): - - rendererText = gtk.CellRendererText() - column = gtk.TreeViewColumn("Title", rendererText, text=1) - column.set_sort_column_id(0) - treeView.append_column(column) - - rendererText = gtk.CellRendererText() - column = gtk.TreeViewColumn("Mime_type", rendererText, text=2) - column.set_sort_column_id(1) - treeView.append_column(column) - - - def on_activated(self, widget, row, col): - - model = widget.get_model() - text = model[row][0] + ", " + model[row][1] + ", " + model[row][2] - self.statusbar.push(0, text) - - - -PyApp() -gtk.main() - |