from pyjamas.ui.HTML import HTML
from SfaData import PlanetLabData
+def alwaysDelegateFocus(elem):
+ return True
+
class PopupRecord(PopupPanel):
def __init__(self, record):
PopupPanel.__init__(self, True)
contents = HTML("<pre>" + record + "</pre>")
self.setWidget(contents)
-
self.setStyleName("ks-popups-Popup")
class SfaItem(TreeItem):
- def __init__(self, hrn, authority = False):
- self.isAuthority = authority
+ def __init__(self, hrn, kind, truncate = True):
+ self.kind = kind
self.hrn = hrn
- last = hrn.split('.')[-1]
- self.label = last
+ if truncate:
+ hrn = hrn.split('.')[-1]
+ if self.kind == "(authority)":
+ self.label = "<b>%s</b>" % hrn
+ elif self.kind == "(slice)":
+ self.label = "<u><i>%s</i></u>" % hrn
+ elif self.kind == "(user)":
+ self.label = "%s" % hrn
+ else:
+ self.label = "<b>%s</b>" % hrn
+
TreeItem.__init__(self, self.label)
- if self.isAuthority:
+ if self.kind == "(authority)":
self.addItem(PendingItem())
class PendingItem(TreeItem):
self.data = PlanetLabData()
self.tree = Tree()
+ self.tree.shouldTreeDelegateFocusToElement = alwaysDelegateFocus
- item = SfaItem("plc", True)
+ item = SfaItem("plc", "(authority)", truncate = False)
+ self.tree.addItem(item)
+
+ item = SfaItem("plc.glc", "(authority)", truncate = False)
+ self.tree.addItem(item)
+
+ item = SfaItem("plc.vini", "(authority)", truncate = False)
+ self.tree.addItem(item)
+
+ item = SfaItem("ple", "(authority)", truncate = False)
self.tree.addItem(item)
- item = SfaItem("ple", True)
+ item = SfaItem("plj", "(authority)", truncate = False)
self.tree.addItem(item)
self.tree.addTreeListener(self)
child = item.getChild(0)
if hasattr(child, "isPendingItem"):
item.removeItem(child)
- hrns = self.data.listChildren(item.hrn)
+ hrns = sorted(self.data.listChildren(item.hrn),
+ key=lambda hrn: hrn[0])
for (hrn, kind) in hrns:
- item.addItem(SfaItem(hrn, (kind=="(authority)")))
+ item.addItem(SfaItem(hrn, kind))
def onShow(self):
pass