X-Git-Url: http://git.onelab.eu/?p=sfa-gui.git;a=blobdiff_plain;f=SliverPanel.py;h=9b7502bd14a9ea51447e243a5bfa5a44219614c5;hp=2ca4bbf5e1b0a1121135f565934afd17234ddf42;hb=c0217389c3dae807a95f21df56b989c6f5609b0e;hpb=7ce5cc20aaa8c2504abff63921268c0f6fa8a676 diff --git a/SliverPanel.py b/SliverPanel.py index 2ca4bbf..9b7502b 100644 --- a/SliverPanel.py +++ b/SliverPanel.py @@ -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: