summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--webapps/swat/source/class/swat/module/netmgr/Fsm.js47
-rw-r--r--webapps/swat/source/class/swat/module/netmgr/Gui.js68
2 files changed, 81 insertions, 34 deletions
diff --git a/webapps/swat/source/class/swat/module/netmgr/Fsm.js b/webapps/swat/source/class/swat/module/netmgr/Fsm.js
index b5844ced37..f35e644241 100644
--- a/webapps/swat/source/class/swat/module/netmgr/Fsm.js
+++ b/webapps/swat/source/class/swat/module/netmgr/Fsm.js
@@ -62,7 +62,9 @@ qx.Proto.buildFsm = function(module)
"appear" :
{
"swat.main.canvas" :
- "Transition_Idle_to_AwaitRpcResult_via_canvas_appear"
+ "Transition_Idle_to_AwaitRpcResult_via_canvas_appear",
+ "vlayout":
+ "Transition_Idle_to_AwaitRpcResult_via_vlayout_appear"
},
"changeSelection" :
@@ -80,14 +82,29 @@ qx.Proto.buildFsm = function(module)
"Transition_Idle_to_AwaitRpcResult_via_canvas_appear",
{
"nextState" : "State_AwaitRpcResult",
-
+
+ "ontransition" : function(fsm, event)
+ {
+ var request = _this.callRpc(fsm, "samba.ejsnet", "NetContext", []);
+ request.setUserData("requestType", "NetContext");
+ }
+ });
+
+ // Add the new transition
+ state.addTransition(trans);
+
+ var trans = new qx.util.fsm.Transition(
+ "Transition_Idle_to_AwaitRpcResult_via_vlayout_appear",
+ {
+ "nextState" : "State_AwaitRpcResult",
+
"ontransition" :
- function(fsm, event)
- {
+ function(fsm, event)
+ {
// Request our netbios name to add proper node to the tree
var request = _this.callRpc(fsm, "samba.config", "lp_get", [ "netbios name" ]);
request.setUserData("requestType", "hostname");
- }
+ }
});
// Add the new transition
@@ -98,25 +115,15 @@ qx.Proto.buildFsm = function(module)
{
"nextState" : "State_AwaitRpcResult",
- "ontransition" :
- function(fsm, event)
+ "ontransition" : function(fsm, event)
{
var nodes = event.getData();
var selectedNode = nodes[0];
var gui = swat.module.netmgr.Gui.getInstance();
var parentNode = gui.getParentNode(module, selectedNode);
-
- if (typeof(parentNode.credentials) == "object")
- {
- var creds = parentNode.credentials;
- var request = _this.callRpc("samba.ejsnet", "NetContext", [ creds ]);
- request.setUserData("requestType", "NetContext");
- }
- else
- {
- // TODO: display a login dialog
- }
+
+ var params = (parentNode.credentials == undefined) ? [] : [ parentNode.credentials ];
}
});
@@ -128,10 +135,12 @@ qx.Proto.buildFsm = function(module)
{
"appear":
{
- "tree" : qx.util.fsm.FiniteStateMachine.EventHandling.BLOCKED
+ "tree" : qx.util.fsm.FiniteStateMachine.EventHandling.BLOCKED,
+ "vlayout" : qx.util.fsm.FiniteStateMachine.EventHandling.BLOCKED
}
}
+ // Add blocked events
this.addAwaitRpcResultState(module, blockedEvents);
};
diff --git a/webapps/swat/source/class/swat/module/netmgr/Gui.js b/webapps/swat/source/class/swat/module/netmgr/Gui.js
index 74a6eede33..44bba3f5ab 100644
--- a/webapps/swat/source/class/swat/module/netmgr/Gui.js
+++ b/webapps/swat/source/class/swat/module/netmgr/Gui.js
@@ -13,22 +13,22 @@ function()
//qx.OO.addProperty({ name : "_tree", type : "object" });
+//qx.OO.addProperty({ name : "_panel", type : "object" });
qx.Proto.buildGui = function(module)
{
var fsm = module.fsm;
- // We need a horizontal box layout for the database name
- var vlayout = new qx.ui.layout.VerticalBoxLayout();
- vlayout.set({
- top: 20,
- left: 20,
- right: 20,
- bottom: 20
+ var hlayout = new qx.ui.layout.HorizontalBoxLayout();
+ hlayout.set({
+ top: 0,
+ left: 0,
+ right: 0,
+ height: "80%"
});
-
+
// Create a hosts tree
- this._tree = new qx.ui.treevirtual.TreeVirtual(["Net"]);
+ this._tree = new qx.ui.treevirtual.TreeVirtual(["Hosts"]);
var tree = this._tree;
// Set the tree's properties
@@ -36,8 +36,8 @@ qx.Proto.buildGui = function(module)
backgroundColor: 255,
border: qx.renderer.border.BorderPresets.getInstance().thinInset,
overflow: "hidden",
- width: "30%",
- height: "1*",
+ width: "20%",
+ height: "100%",
alwaysShowOpenCloseSymbol: true
});
@@ -48,9 +48,43 @@ qx.Proto.buildGui = function(module)
// Give a tree widget nicer name to handle
fsm.addObject("tree", tree, "swat.main.fsmUtils.disable_during_rpc");
+
+ // "Panel" for list view
+ this._panel = new qx.ui.layout.VerticalBoxLayout();
+ var panel = this._panel;
+
+ panel.set({
+ top: 0,
+ right: 20,
+ width: "80%",
+ height: "100%"
+ });
- // Add the label to the horizontal layout
- vlayout.add(tree);
+ // Add the tree view and panel for list view to the layout
+ hlayout.add(tree);
+ hlayout.add(panel);
+
+ var statusLayout = new qx.ui.layout.HorizontalBoxLayout();
+ statusLayout.set({
+ top: 0,
+ left: 0,
+ right: 0,
+ height: "100%"
+ });
+
+ var vlayout = new qx.ui.layout.VerticalBoxLayout();
+ vlayout.set({
+ top: 20,
+ left: 20,
+ width: "100%",
+ bottom: 20
+ });
+
+ vlayout.add(hlayout);
+ vlayout.add(statusLayout);
+
+ vlayout.addEventListener("appear", fsm.eventListener, fsm);
+ fsm.addObject("vlayout", vlayout);
module.canvas.add(vlayout);
};
@@ -73,7 +107,8 @@ qx.Proto.displayData = function(module, rpcRequest)
switch (requestType)
{
case "hostname":
- this._addHostNode(module, rpcRequest);
+ // Add local host node
+ this._addHostNode(module, rpcRequest, true);
break;
case "NetContext":
@@ -105,7 +140,7 @@ qx.Proto.getParentNode = function(module, node)
};
-qx.Proto._addHostNode = function(module, rpcRequest)
+qx.Proto._addHostNode = function(module, rpcRequest, local)
{
var fsm = module.fsm;
var hostname = rpcRequest.getUserData("result").data;
@@ -126,7 +161,10 @@ qx.Proto._addHostNode = function(module, rpcRequest)
tree.addEventListener("changeSelection", fsm.eventListener, fsm);
var hostNode = dataModel.getData()[hostNodeId];
+
+ // Set host-specific properties
hostNode.credentials = undefined;
+ hostNode.local = local
};