git://git.onelab.eu
/
sfa-gui.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'master' of ssh://git.onelab.eu/git/sfa-gui
[sfa-gui.git]
/
NodePanel.py
diff --git
a/NodePanel.py
b/NodePanel.py
index
a4c11e1
..
3db55fb
100644
(file)
--- a/
NodePanel.py
+++ b/
NodePanel.py
@@
-8,6
+8,7
@@
from pyjamas.ui.ListBox import ListBox
from pyjamas.ui.TextBox import TextBox
from pyjamas.ui.HTML import HTML
from pyjamas.ui import HasAlignment
from pyjamas.ui.TextBox import TextBox
from pyjamas.ui.HTML import HTML
from pyjamas.ui import HasAlignment
+from SfaData import ViniData
import re
def faster_clear(self):
import re
def faster_clear(self):
@@
-18,40
+19,39
@@
def faster_clear(self):
ListBox.clear = faster_clear
class NodePanel(DockPanel):
ListBox.clear = faster_clear
class NodePanel(DockPanel):
- def __init__(self, sfadata
, rspec
):
+ def __init__(self, sfadata):
DockPanel.__init__(self)
DockPanel.__init__(self)
- self.data = sfadata
- self.rspec = rspec
+ self.sfadata = sfadata
- self.setSize("100%", "100%")
self.setHorizontalAlignment(HasAlignment.ALIGN_CENTER)
self.setVerticalAlignment(HasAlignment.ALIGN_MIDDLE)
self.setHorizontalAlignment(HasAlignment.ALIGN_CENTER)
self.setVerticalAlignment(HasAlignment.ALIGN_MIDDLE)
- self.regex = None
+ self.availableRegex = None
+ self.selectedRegex = None
leftpanel = VerticalPanel()
leftpanel = VerticalPanel()
- leftcap = CaptionPanel("Available nodes")
+
self.
leftcap = CaptionPanel("Available nodes")
self.leftlist = ListBox(MultipleSelect=True, VisibleItemCount=20)
self.leftlist = ListBox(MultipleSelect=True, VisibleItemCount=20)
- leftcap.add(self.leftlist)
- leftpanel.add(leftcap)
+
self.
leftcap.add(self.leftlist)
+ leftpanel.add(
self.
leftcap)
hp1 = HorizontalPanel()
hp1 = HorizontalPanel()
- filterButton = Button("Filter", self.filter)
- self.
r
egExBox = TextBox()
+ filterButton = Button("Filter", self.filter
Left
)
+ self.
leftR
egExBox = TextBox()
hp1.add(filterButton)
hp1.add(filterButton)
- hp1.add(self.
r
egExBox)
+ hp1.add(self.
leftR
egExBox)
leftpanel.add(hp1)
rightpanel = VerticalPanel()
leftpanel.add(hp1)
rightpanel = VerticalPanel()
- rightcap = CaptionPanel("Selected nodes")
+
self.
rightcap = CaptionPanel("Selected nodes")
self.rightlist = ListBox(MultipleSelect=True, VisibleItemCount=20)
self.rightlist = ListBox(MultipleSelect=True, VisibleItemCount=20)
- rightcap.add(self.rightlist)
- rightpanel.add(rightcap)
+
self.
rightcap.add(self.rightlist)
+ rightpanel.add(
self.
rightcap)
hp2 = HorizontalPanel()
hp2 = HorizontalPanel()
-
applyButton = Button("Apply", self.apply
)
-
resetButton = Button("Reset", self.reset
)
- hp2.add(
apply
Button)
- hp2.add(
resetButton
)
+
filterButton = Button("Filter", self.filterRight
)
+
self.rightRegExBox = TextBox(
)
+ hp2.add(
filter
Button)
+ hp2.add(
self.rightRegExBox
)
rightpanel.add(hp2)
addButton = Button(">>", self.addNodes)
rightpanel.add(hp2)
addButton = Button(">>", self.addNodes)
@@
-65,15
+65,26
@@
class NodePanel(DockPanel):
self.add(rightpanel, DockPanel.EAST)
self.add(vertpanel, DockPanel.CENTER)
self.add(rightpanel, DockPanel.EAST)
self.add(vertpanel, DockPanel.CENTER)
+ self.setStyleName("ks-layouts")
self.refresh()
def refresh(self):
self.refresh()
def refresh(self):
- slivers = self.sortNodes(self.rspec.get_sliver_list())
- all = self.rspec.get_node_list()
+ rspec = self.sfadata.getRSpec()
+
+ slivers = self.sortNodes(rspec.get_sliver_list())
+ self.rightcap.setCaption("Selected nodes (%s)" % len(slivers))
+ all = rspec.get_node_list()
available = self.sortNodes(filter(lambda x:x not in slivers,all))
available = self.sortNodes(filter(lambda x:x not in slivers,all))
- if self.regex:
- pattern = re.compile(self.regex)
+ self.leftcap.setCaption("Available nodes (%s)" % len(available))
+
+ if self.availableRegex:
+ pattern = re.compile(self.availableRegex)
available = filter(pattern.search, available)
available = filter(pattern.search, available)
+
+ if self.selectedRegex:
+ pattern = re.compile(self.selectedRegex)
+ slivers = filter(pattern.search, slivers)
+
self.leftlist.clear()
for i in available:
self.leftlist.addItem(i)
self.leftlist.clear()
for i in available:
self.leftlist.addItem(i)
@@
-96,24
+107,23
@@
class NodePanel(DockPanel):
return got
def addNodes(self, sender):
return got
def addNodes(self, sender):
+ rspec = self.sfadata.getRSpec()
nodes = self.getSelected(self.leftlist)
for node in nodes:
nodes = self.getSelected(self.leftlist)
for node in nodes:
-
self.
rspec.add_sliver(node)
+ rspec.add_sliver(node)
self.refresh()
def removeNodes(self, sender):
self.refresh()
def removeNodes(self, sender):
+ rspec = self.sfadata.getRSpec()
nodes = self.getSelected(self.rightlist)
for node in nodes:
nodes = self.getSelected(self.rightlist)
for node in nodes:
-
self.
rspec.remove_sliver(node)
+ rspec.remove_sliver(node)
self.refresh()
self.refresh()
- def apply(self, sender):
- self.data.applyRSpec(self.rspec)
-
- def reset(self, sender):
- self.rspec = self.data.getRSpec()
+ def filterLeft(self, sender):
+ self.availableRegex = self.leftRegExBox.getText()
self.refresh()
self.refresh()
- def filter(self, sender):
- self.
regex = self.r
egExBox.getText()
+ def filter
Right
(self, sender):
+ self.
selectedRegex = self.rightR
egExBox.getText()
self.refresh()
self.refresh()