svn commit: samba r9635 - in branches/SAMBA_4_0/swat: desktop esptest scripting/client

deryck at samba.org deryck at samba.org
Fri Aug 26 05:25:29 GMT 2005


Author: deryck
Date: 2005-08-26 05:25:29 +0000 (Fri, 26 Aug 2005)
New Revision: 9635

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=9635

Log:
Seperate window logic from registry js file.
This allows for flexibility in display format, 
which will make more sense when I start working 
on windows, tabs, etc. 

Add the beginnings of a document.js object that allows
us to add and remove scripts as we use them, which will
ensure we only load what we need.  A desktop GUI runs
from a single page, so we can't load js files by changing
pages.

deryck

Added:
   branches/SAMBA_4_0/swat/scripting/client/js_scripts.js
Modified:
   branches/SAMBA_4_0/swat/desktop/index.esp
   branches/SAMBA_4_0/swat/esptest/registry.esp
   branches/SAMBA_4_0/swat/scripting/client/regedit.js
   branches/SAMBA_4_0/swat/scripting/client/status.js


Changeset:
Modified: branches/SAMBA_4_0/swat/desktop/index.esp
===================================================================
--- branches/SAMBA_4_0/swat/desktop/index.esp	2005-08-26 04:56:20 UTC (rev 9634)
+++ branches/SAMBA_4_0/swat/desktop/index.esp	2005-08-26 05:25:29 UTC (rev 9635)
@@ -4,8 +4,8 @@
 %>
 
 <script type="text/javascript" src="/scripting/client/encoder.js"></script>
-<script type="text/javascript" src="/scripting/client/regedit.js"></script>
-<script type="text/javascript" src="/scripting/client/status.js"></script>
+<script type="text/javascript" src="/scripting/client/call.js"></script>
+<script type="text/javascript" src="/scripting/client/js_scripts.js"></script>
 
 <script type="text/javascript">
 
@@ -91,6 +91,7 @@
 }
 
 /*** init the page for qooxdoo ***/
+document.js.add('/scripting/client/status.js');
 window.application.main = function()
 {
 	var doc = this.getClientWindow().getClientDocument();
@@ -108,6 +109,12 @@
 
 	// Always open with stats
 	var win = new QxWindow();
+	win._onclosebuttonclick = function(e)
+	{
+		this.close();
+		e.stopPropagation();
+		document.js.remove('/scripting/client/status.js');
+	};
 	with(win) {
 		setTop(50);
 		setRight(50);
@@ -126,9 +133,26 @@
 
 function showReg()
 {
+	document.js.add('/scripting/client/regedit.js');
+
+	var regWin = new QxWindow("Registry Editor");
+	regWin._onclosebuttonclick = function(e)
+	{
+		this.close();
+		e.stopPropagation();
+		document.js.remove('/scripting/client/regedit.js');
+	};
+	with(regWin) {
+		setTop(100);
+		setLeft(100);
+		setMinWidth(450);
+		setMinHeight(450);
+	}
+	
 	var regedit = regedit_widget("ncalrpc:");
-	w.add(regedit);
-	regedit.startup();
+	regWin.add(regedit);
+	w.add(regWin);
+	regWin.setVisible('true');
 }
 
 function startSwat()

Modified: branches/SAMBA_4_0/swat/esptest/registry.esp
===================================================================
--- branches/SAMBA_4_0/swat/esptest/registry.esp	2005-08-26 04:56:20 UTC (rev 9634)
+++ branches/SAMBA_4_0/swat/esptest/registry.esp	2005-08-26 05:25:29 UTC (rev 9635)
@@ -23,9 +23,20 @@
     var btn1 = new QxButton("Registry Editor");
     btn1.set({ top: 20, left : 30 });
     btn1.addEventListener("click", function() {
+            var regWindow = new QxWindow("Registry Editor");
+	    with(regWindow) {
+                setTop(50);
+		setLeft(50);
+                setMinWidth(600);
+		setMinHeight(600);
+		setResizeMethod("frame");
+	    }
+
 	    var regedit = regedit_widget("ncalrpc:");
-	    qwidget.add(regedit);
-	    regedit.startup();
+	    regWindow.add(regedit);
+	    qwidget.add(regWindow);
+	    regWindow.setVisible(true);
+
     });
     qwidget.add(btn1);
     inlineWidget.add(qwidget);

Added: branches/SAMBA_4_0/swat/scripting/client/js_scripts.js
===================================================================
--- branches/SAMBA_4_0/swat/scripting/client/js_scripts.js	2005-08-26 04:56:20 UTC (rev 9634)
+++ branches/SAMBA_4_0/swat/scripting/client/js_scripts.js	2005-08-26 05:25:29 UTC (rev 9635)
@@ -0,0 +1,53 @@
+/*
+   Beginnnigs of a script manager for SWAT.
+
+   Copyright (C) Deryck Hodge 2005
+   released under the GNU GPL Version 2 or later
+*/
+
+var head = document.getElementsByTagName('head')[0];
+var scripts = document.getElementsByTagName('script');
+
+function __has_js_script(file)
+{
+	var i;
+	for (i=0; i<scripts.length; i++) {
+		if (scripts[i].src.indexOf(file) > -1) {
+			return true;
+		} else {
+			return false;
+		}
+	}
+}
+
+function __get_js_script(file)
+{
+	var i;
+	for (i=0; i<scripts.length; i++) {
+		if (scripts[i].src.indexOf(file) > -1) {
+			return scripts[i];
+		}
+	}
+}
+
+function __add_js_script(path)
+{
+	var script = document.createElement('script');
+	script.setAttribute('type', 'text/javascript');
+	script.setAttribute('src', path);
+	head.appendChild(script);
+}
+
+function __remove_js_script(path)
+{
+	var script = __get_js_script(path);
+	script.parentNode.removeChild(script);
+}
+
+document.js = new Object();
+document.js.scripts = scripts;
+document.js.hasScript = __has_js_script;
+document.js.getScript = __get_js_script;
+document.js.add = __add_js_script;
+document.js.remove = __remove_js_script;
+

Modified: branches/SAMBA_4_0/swat/scripting/client/regedit.js
===================================================================
--- branches/SAMBA_4_0/swat/scripting/client/regedit.js	2005-08-26 04:56:20 UTC (rev 9634)
+++ branches/SAMBA_4_0/swat/scripting/client/regedit.js	2005-08-26 05:25:29 UTC (rev 9635)
@@ -121,12 +121,9 @@
 */
 function regedit_widget(binding) 
 {
-	var regedit = new QxWindow("Registry Editor");
-	regedit.setSpace(300, 600, 300, 600);
-
 	var fieldSet = new QxFieldSet();
 
-	regedit.binding = binding;
+	fieldSet.binding = binding;
 
 	with(fieldSet) {
 		setWidth("100%");
@@ -138,19 +135,17 @@
 	gl.setCellPaddingTop(3);
 	gl.setCellPaddingBottom(3);
 
-	regedit.add(fieldSet);
+	var t = __registry_tree(fieldSet.binding);
 
-	var t = __registry_tree(regedit.binding);
-
 	function change_binding(e) {
-		regedit.binding = e.getNewValue();
-		srv_printf("changed binding to %s\\n", regedit.binding);
+		fieldSet.binding = e.getNewValue();
+		srv_printf("changed binding to %s\\n", fieldSet.binding);
 		gl.remove(t);
-		t = __registry_tree(regedit.binding);
+		t = __registry_tree(fieldSet.binding);
 		gl.add(t, { row : 2, col : 1 });
 	}
 
-	var b = new QxTextField(regedit.binding);
+	var b = new QxTextField(fieldSet.binding);
 	b.addEventListener("changeText", change_binding);
 
 	var values = new __values_table();
@@ -160,18 +155,6 @@
 //	gl.add(values, { row : 2, col : 2 });
 	
 	fieldSet.add(gl);
-	regedit.add(fieldSet);
 
-	/* 
-	   call the startup() method to display the widget
-	*/
-	regedit.startup = function() {
-		this.setVisible(true);
-		this.setMoveable(true);
-		this.setResizeable(true);
-		this.setResizeMethod("frame");
-		this.setMoveable(true);
-	}
-
-	return regedit;
+	return fieldSet;
 };

Modified: branches/SAMBA_4_0/swat/scripting/client/status.js
===================================================================
--- branches/SAMBA_4_0/swat/scripting/client/status.js	2005-08-26 04:56:20 UTC (rev 9634)
+++ branches/SAMBA_4_0/swat/scripting/client/status.js	2005-08-26 05:25:29 UTC (rev 9635)
@@ -5,15 +5,6 @@
 */
 
 
-/* Ensure we always include the proper libs
-   Playing with a way to add/del scripts on the fly...
-*/
-var lib = document.createElement('script');
-lib.setAttribute('type', 'text/javascript');
-lib.setAttribute('src', '/scripting/client/call.js');
-var head = document.getElementsByTagName('head')[0];
-head.appendChild(lib);
-
 // Format for a server status table
 var s = [
 	{ id : "server",



More information about the samba-cvs mailing list