uses registry and slicemgr from the sfi config
[sfa-gui.git] / SliverPanel.py
index 2ca4bbf..9b7502b 100644 (file)
@@ -5,6 +5,7 @@ from pyjamas.ui.ListBox import ListBox
 from pyjamas.ui.TextBox import TextBox
 from pyjamas.ui.Button import Button
 from pyjamas.ui.HTML import HTML
+from pyjamas.ui.Image import Image
 from pyjamas.ui import HasAlignment
 
 class AddPanel(CaptionPanel):
@@ -15,7 +16,8 @@ class AddPanel(CaptionPanel):
         hp = HorizontalPanel()
         self.nodes = ListBox()
         self.nodes.addItem("All nodes")
-        for sliver in self.top.rspec.get_sliver_list():
+        rspec = self.top.sfadata.getRSpec()
+        for sliver in rspec.get_sliver_list():
             self.nodes.addItem(sliver)
 
         self.attrs = ListBox()
@@ -43,11 +45,12 @@ class AddPanel(CaptionPanel):
         name = self.attrs.getItemText(self.attrs.getSelectedIndex())
         value = self.value.getText()
         nodeindex = self.nodes.getSelectedIndex()
+        rspec = self.top.sfadata.getRSpec()
         if nodeindex == 0:
-            self.top.rspec.add_default_sliver_attribute(name, value)
+            rspec.add_default_sliver_attribute(name, value)
         else:
             node = self.nodes.getItemText(nodeindex)
-            self.top.rspec.add_sliver_attribute(node, name, value)
+            rspec.add_sliver_attribute(node, name, value)
         self.top.refresh()
         
 
@@ -61,38 +64,37 @@ class AttributePanel(HorizontalPanel):
 
         self.setSpacing(5)
         self.setVerticalAlignment(HasAlignment.ALIGN_MIDDLE)
-        if not node:
-            b = Button("X", self.delete_all)
-        else:
-            b = Button("X", self.delete)
-        self.add(b)
+        delete = Image("./images/cancel.png")
+        delete.addClickListener(self)
+        self.add(delete)
         self.add(HTML("%s: %s" % (self.name, self.value)))
 
-    def delete_all(self, sender):
-        self.top.rspec.remove_default_sliver_attribute(self.name, self.value)
-        self.top.refresh()
-
-    def delete(self, sender):
-        self.top.rspec.remove_sliver_attribute(self.node, self.name, self.value)
+    def onClick(self, sender):
+        rspec = self.top.sfadata.getRSpec()
+        if self.node:
+            rspec.remove_sliver_attribute(self.node, self.name, self.value)
+        else:
+            rspec.remove_default_sliver_attribute(self.name, self.value)
         self.top.refresh()
-
+        
 
 class SliverPanel(VerticalPanel):
-    def __init__(self, sfadata, rspec):
+    def __init__(self, sfadata):
         VerticalPanel.__init__(self)
-        self.data = sfadata
-        self.rspec = rspec
+        self.sfadata = sfadata
+        self.setStyleName("ks-layouts")
         self.refresh()
 
     def refresh(self):
         self.clear()
         self.add(AddPanel(self))
 
-        allattrs = self.rspec.get_default_sliver_attributes()
+        rspec = self.sfadata.getRSpec()
+        allattrs = rspec.get_default_sliver_attributes()
         attrdict = {}
-        slivers = self.rspec.get_sliver_list()
+        slivers = rspec.get_sliver_list()
         for sliver in slivers:
-            attrs = self.rspec.get_sliver_attributes(sliver)
+            attrs = rspec.get_sliver_attributes(sliver)
             attrdict[sliver] = attrs
 
         if allattrs: