GUI tweaks, flesh out help text
authorAndy Bavier <acb@cs.princeton.edu>
Thu, 17 Jun 2010 20:28:33 +0000 (16:28 -0400)
committerAndy Bavier <acb@cs.princeton.edu>
Thu, 17 Jun 2010 20:31:03 +0000 (16:31 -0400)
HelpPanel.py
LinkPanel.py
NodePanel.py
PlanetLab.py
SfaBrowser.py
SliverPanel.py
SubmitPanel.py
public/SfaGUI.css

index 2237aed..e99ee0b 100644 (file)
@@ -5,18 +5,42 @@ from pyjamas.ui import HasAlignment
 class HelpPanel(VerticalPanel):
     def __init__(self):
         VerticalPanel.__init__(self)
 class HelpPanel(VerticalPanel):
     def __init__(self):
         VerticalPanel.__init__(self)
-        
     def refresh(self):
         pass
                     
 class PlanetLabHelpPanel(HelpPanel):
     def __init__(self):
         HelpPanel.__init__(self)
     def refresh(self):
         pass
                     
 class PlanetLabHelpPanel(HelpPanel):
     def __init__(self):
         HelpPanel.__init__(self)
-        self.add(HTML("This is the PlanetLab help panel"))
+        m = "<div class='infoProse'>Steps to set up your slice:"
+        m += "<ol><li>Use the <b>Nodes</b> tab to select the nodes "
+        m += "on which your slice will run." 
+        m += "<li>Use the <b>Slivers</b> tab to configure sliver attributes."
+        m += "(Note that typical users have insufficient permission to "
+        m += "set most attributes.)"
+        m += "<li>Under the <b>Submit</b> tab, click the <i>Apply</i> button "
+        m += "to submit your changes, or the <i>Reset</i> button to discard "
+        m += "them.</ol></p></div>"
+        self.add(HTML(m))
 
 class VINIHelpPanel(HelpPanel):        
     def __init__(self):
         HelpPanel.__init__(self)
 
 class VINIHelpPanel(HelpPanel):        
     def __init__(self):
         HelpPanel.__init__(self)
-        self.add(HTML("This is the VINI help panel"))
+        m = "<div class='infoProse'>Steps to set up your slice:"
+        m += "<ol><li>Use the <b>Nodes</b> tab to select the nodes "
+        m += "on which your slice will run." 
+        m += "<li>Use the <b>Links</b> tab to create a virtual topology for "
+        m += "your slice, if desired.  The virtual topology will be "
+        m += "computed automatically; virtual links can only be set up "
+        m += "between nodes that are adjacent in the network, and a virtual "
+        m += "link will be added between each pair of adjacent nodes. "
+        m += "You can remove any undesired virtual links or change "
+        m += "the bandwidth reserved to each link.  "
+        m += "<li>Use the <b>Slivers</b> tab to configure sliver attributes."
+        m += "(Note that typical users have insufficient permission to "
+        m += "set most attributes.)"
+        m += "<li>Under the <b>Submit</b> tab, click the <i>Apply</i> button "
+        m += "to submit your changes, or the <i>Reset</i> button to discard "
+        m += "them.</ol></p></div>"
+        self.add(HTML(m))
 
         
 
         
index cf54567..9c3a7d7 100644 (file)
@@ -86,6 +86,7 @@ class LinkPanel(VerticalPanel):
         VerticalPanel.__init__(self)
         self.sfadata = sfadata
         self.defaultbw = 1000
         VerticalPanel.__init__(self)
         self.sfadata = sfadata
         self.defaultbw = 1000
+        self.setStyleName("ks-layouts")
         self.refresh()
 
     def refresh(self):
         self.refresh()
 
     def refresh(self):
index 80a6bf4..3db55fb 100644 (file)
@@ -23,7 +23,6 @@ class NodePanel(DockPanel):
         DockPanel.__init__(self)
         self.sfadata = sfadata
 
         DockPanel.__init__(self)
         self.sfadata = sfadata
 
-        self.setSize("100%", "100%")
         self.setHorizontalAlignment(HasAlignment.ALIGN_CENTER)
         self.setVerticalAlignment(HasAlignment.ALIGN_MIDDLE)
         self.availableRegex = None
         self.setHorizontalAlignment(HasAlignment.ALIGN_CENTER)
         self.setVerticalAlignment(HasAlignment.ALIGN_MIDDLE)
         self.availableRegex = None
@@ -66,6 +65,7 @@ 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):
index 027ae14..dc557fd 100644 (file)
@@ -46,4 +46,4 @@ class PLC(Sink):
         self.initWidget(self.tabs)
 
 def init():
         self.initWidget(self.tabs)
 
 def init():
-    return SinkInfo("PLC", "Specify PlanetLab Central Resources", PLC)
+    return SinkInfo("PlanetLab", "Specify PlanetLab Central Resources", PLC)
index 30442e8..b2053e3 100644 (file)
@@ -12,7 +12,6 @@ class PopupRecord(PopupPanel):
         PopupPanel.__init__(self, True)
         contents = HTML("<pre>" + record + "</pre>")
         self.setWidget(contents)
         PopupPanel.__init__(self, True)
         contents = HTML("<pre>" + record + "</pre>")
         self.setWidget(contents)
-        
         self.setStyleName("ks-popups-Popup")
 
 class SfaItem(TreeItem):
         self.setStyleName("ks-popups-Popup")
 
 class SfaItem(TreeItem):
index a4b2602..9b7502b 100644 (file)
@@ -82,6 +82,7 @@ class SliverPanel(VerticalPanel):
     def __init__(self, sfadata):
         VerticalPanel.__init__(self)
         self.sfadata = sfadata
     def __init__(self, sfadata):
         VerticalPanel.__init__(self)
         self.sfadata = sfadata
+        self.setStyleName("ks-layouts")
         self.refresh()
 
     def refresh(self):
         self.refresh()
 
     def refresh(self):
index 8fa8fa6..47d41df 100644 (file)
@@ -26,6 +26,7 @@ class SubmitPanel(VerticalPanel):
         
         self.add(hp1)
         self.add(hp2)
         
         self.add(hp1)
         self.add(hp2)
+        self.setStyleName("ks-layouts")
         
     def refresh(self):
         pass
         
     def refresh(self):
         pass
index 9449ca0..c62461d 100644 (file)
@@ -125,21 +125,32 @@ a:visited {
 }
 
 .gwt-TabBar .gwt-TabBarItem {
 }
 
 .gwt-TabBar .gwt-TabBarItem {
-  border-top: 1px solid #C3D9FF;
+  background-color: #d2d8e0;
+  border-top: 1px solid #87B3FF;
+  border-left: 1px solid #87B3FF;
+  border-right: 1px solid #87B3FF;
   border-bottom: 1px solid #87B3FF;
   padding: 2px;
   border-bottom: 1px solid #87B3FF;
   padding: 2px;
+  padding-left: 8px;
+  padding-right: 8px;
+  margin-left: 1px;
+  margin-right: 1px;
   cursor: pointer;
   cursor: hand;
 }
 
 .gwt-TabBar .gwt-TabBarItem-selected {
   cursor: pointer;
   cursor: hand;
 }
 
 .gwt-TabBar .gwt-TabBarItem-selected {
-  font-weight: bold;
   background-color: #E8EEF7;
   background-color: #E8EEF7;
+  font-weight: bold;
   border-top: 1px solid #87B3FF;
   border-left: 1px solid #87B3FF;
   border-right: 1px solid #87B3FF;
   border-bottom: 1px solid #E8EEF7;
   padding: 2px;
   border-top: 1px solid #87B3FF;
   border-left: 1px solid #87B3FF;
   border-right: 1px solid #87B3FF;
   border-bottom: 1px solid #E8EEF7;
   padding: 2px;
+  padding-left: 8px;
+  padding-right: 8px;
+  margin-left: 1px;
+  margin-right: 1px;
   cursor: default;
 }
 
   cursor: default;
 }
 
@@ -150,6 +161,7 @@ a:visited {
 }
 
 .gwt-Tree {
 }
 
 .gwt-Tree {
+    padding: 8px;
 }
 
 .gwt-Tree .gwt-TreeItem {
 }
 
 .gwt-Tree .gwt-TreeItem {
@@ -193,9 +205,10 @@ a:visited {
 }
 
 .ks-List .ks-SinkItem {
 }
 
 .ks-List .ks-SinkItem {
+  background-color: #d2d8e0;
   width: 100%;
   padding: 0.3em;
   width: 100%;
   padding: 0.3em;
-  padding-right: 16px;
+  padding-right: 32px;
   cursor: pointer;
   cursor: hand;
 }
   cursor: pointer;
   cursor: hand;
 }
@@ -215,7 +228,9 @@ a:visited {
 }
 
 .ks-layouts {
 }
 
 .ks-layouts {
-  margin: 8px;
+  padding: 8px;
+  width: 100%;
+  height: 100%;
 }
 
 .ks-layouts-Label {
 }
 
 .ks-layouts-Label {
@@ -240,7 +255,7 @@ a:visited {
 }
 
 .infoProse {
 }
 
 .infoProse {
-  margin: 8px;
+  padding: 8px;
 }
 
 /******************************************************
 }
 
 /******************************************************