r20346: This is the beginnings of a framework for a complete SWAT. It will provide
authorDerrell Lipman <derrell@samba.org>
Sun, 24 Dec 2006 21:42:02 +0000 (21:42 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 19:29:42 +0000 (14:29 -0500)
for easily adding modules, and using as much common code as possible.
Although all modules are loaded to the browser as part of the application,
modules are not actually initialized, their finite state machines generated,
or their graphical user interfaces built until they are selected to be viewed
for the first time.

I'm checking this in at this early stage because I promised Brad some
check-ins a week ago, and the flu has kept me unable to do anything for the
past 10 days.  Now that I'm back in working order, I hope to be building on
this regularly over the next few days.

Derrell

swat/apps/swat/Makefile [new file with mode: 0644]
swat/apps/swat/source/class/swat/main/Gui.js [new file with mode: 0644]
swat/apps/swat/source/class/swat/main/Main.js [new file with mode: 0644]
swat/apps/swat/source/class/swat/module/AbstractModule.js [new file with mode: 0644]
swat/apps/swat/source/class/swat/module/stats/Fsm.js [new file with mode: 0644]
swat/apps/swat/source/class/swat/module/stats/Statistics.js [new file with mode: 0644]
swat/apps/swat/source/index.html [new file with mode: 0644]
swat/apps/swat/source/script/swat.js [new file with mode: 0644]

diff --git a/swat/apps/swat/Makefile b/swat/apps/swat/Makefile
new file mode 100644 (file)
index 0000000..648c95a
--- /dev/null
@@ -0,0 +1,213 @@
+###################################################################################
+# PUBLIC VARIABLES
+###################################################################################
+
+QOOXDOO = ../qooxdoo-0.6.3-sdk
+SCRIPTNAME = swat.js
+APPCLASS = swat.Application
+INCLUDEALL = true
+OPTIMIZESTRINGS = true
+OPTIMIZEVARIABLES = true
+SOURCELOADER=
+NICE=10
+
+
+###################################################################################
+# PRIVATE VARIABLES
+###################################################################################
+
+FRONTEND = $(QOOXDOO)/frontend
+FRAMEWORK = $(FRONTEND)/framework
+API = $(FRONTEND)/api
+CACHE = $(FRAMEWORK)/.cache
+GENERATOR = $(FRAMEWORK)/tool/generator.py
+
+
+ifeq ($(INCLUDEALL),false)
+  INCLUDE = --include $(APPCLASS)
+else
+  INCLUDE =
+endif
+
+ifeq ($(OPTIMIZESTRINGS),true)
+  OPTIMIZESTR = --optimize-strings
+else
+  OPTIMIZESTR =
+endif
+
+ifeq ($(OPTIMIZEVARIABLES),true)
+  OPTIMIZEVAR = --optimize-variables
+else
+  OPTIMIZEVAR =
+endif
+
+ifneq ($(SOURCELOADER),)
+  SOURCELDR = --source-loader-type $(SOURCELOADER)
+else
+  SOURCELDR =
+endif
+
+
+###################################################################################
+# DEFAULT TARGET
+###################################################################################
+
+all: build
+
+
+
+###################################################################################
+# COMMON TARGETS
+###################################################################################
+
+source: info-source generate-script-source
+build: info-build generate-script-build copy-build-files fix-build-rights
+
+api: generate-api-build generate-api-data
+       @echo
+       @echo "  CREATE COPY OF HTML FILE"
+       @echo "----------------------------------------------------------------------------"
+       @echo "  * Copying file..."
+       @cp -f $(API)/source/index.html api/index.html
+
+pretty: generate-pretty
+fix: generate-fix
+
+
+
+###################################################################################
+# CLEANUP TARGETS
+###################################################################################
+
+clean:
+       @echo
+       @echo "  CLEANUP OF GENERATED FILES"
+       @echo "----------------------------------------------------------------------------"
+       @echo "  * Deleting files..."
+       @rm -f source/script/$(SCRIPTNAME) build/script/$(SCRIPTNAME)
+
+realclean: clean
+       @echo
+       @echo "  CLEANUP OF GENERATED FILES (REAL)"
+       @echo "----------------------------------------------------------------------------"
+       @echo "  * Deleting files..."
+       @nice -n $(NICE) rm -rf build
+
+distclean: realclean
+       @echo
+       @echo "  CLEANUP OF GENERATED FILES (DIST)"
+       @echo "----------------------------------------------------------------------------"
+       @echo "  * Deleting files..."
+       @nice -n $(NICE) find . -name "*~" -o -name "*.bak" -o -name "*.old" | xargs rm -rf
+       @nice -n $(NICE) rm -rf $(CACHE)
+
+
+
+###################################################################################
+# GENERATOR TARGETS
+###################################################################################
+
+generate-script-source:
+       @chmod u+x $(GENERATOR) && nice -n $(NICE) $(GENERATOR) \
+         --script-input $(FRAMEWORK)/source/class \
+         --source-script-path ../$(FRAMEWORK)/source/class \
+         --script-input source/class \
+         --source-script-path class \
+         --generate-source-script $(SOURCELDR) \
+         $(INCLUDE) \
+         --source-script-file source/script/$(SCRIPTNAME) \
+         --define-runtime-setting qx.manager.object.AliasManager.resourceUri:../$(FRAMEWORK)/source/resource \
+         --cache-directory $(CACHE)
+
+generate-script-build:
+       @chmod u+x $(GENERATOR) && nice -n $(NICE) $(GENERATOR) \
+         --script-input $(FRAMEWORK)/source/class \
+         --script-input source/class \
+         --generate-compiled-script \
+         $(INCLUDE) $(OPTIMIZESTR) $(OPTIMIZEVAR) \
+         --compiled-script-file build/script/$(SCRIPTNAME) \
+         --copy-resources \
+         --resource-input $(FRAMEWORK)/source/resource \
+         --resource-output build/resource \
+         --define-runtime-setting qx.manager.object.AliasManager.resourceUri:./resource \
+         --cache-directory $(CACHE)
+
+generate-api-build:
+       @chmod u+x $(GENERATOR) && nice -n $(NICE) $(GENERATOR) \
+         --script-input $(FRAMEWORK)/source/class \
+         --resource-input $(FRAMEWORK)/source/resource \
+         --resource-output api/resource/qooxdoo \
+         --script-input $(API)/source/class \
+         --resource-input $(API)/source/resource \
+         --resource-output api/resource \
+         --include api \
+         $(OPTIMIZESTR) $(OPTIMIZEVAR) \
+         --generate-compiled-script \
+         --compiled-script-file api/script/api.js \
+         --define-runtime-setting qx.manager.object.AliasManager.resourceUri:resource/qooxdoo \
+         --define-runtime-setting api.Viewer.title:Sample \
+         --copy-resources \
+         --cache-directory $(CACHE)
+
+generate-api-data:
+       @chmod u+x $(GENERATOR) && nice -n $(NICE) $(GENERATOR) \
+         --script-input $(FRAMEWORK)/source/class \
+         --script-input source/class \
+         --generate-api-documentation \
+         --api-documentation-json-file api/script/data.js \
+         --cache-directory $(CACHE)
+
+generate-pretty:
+       @chmod u+x $(GENERATOR) && nice -n $(NICE) $(GENERATOR) \
+         --script-input source/class \
+         --script-input $(FRAMEWORK)/source/class \
+         --include-without-dependencies api.* \
+         --pretty-print \
+         --cache-directory $(CACHE)
+
+generate-fix:
+       @chmod u+x $(GENERATOR) && nice -n $(NICE) $(GENERATOR) \
+         --script-input source/class \
+         --script-input $(FRAMEWORK)/source/class \
+         --include-without-dependencies api.* \
+         --fix-source \
+         --cache-directory $(CACHE)
+
+
+
+###################################################################################
+# ADDITIONAL TARGETS
+###################################################################################
+
+copy-build-files:
+       @echo
+       @echo "  CREATE COPY OF HTML FILE"
+       @echo "----------------------------------------------------------------------------"
+       @echo "  * Copying file..."
+       @cp -f source/index.html build/index.html
+
+fix-build-rights:
+       @echo
+       @echo "  FIX RIGHTS ON BUILD FILES"
+       @echo "----------------------------------------------------------------------------"
+       @echo "  * Fixing file rights..."
+       @nice -n $(NICE) find build -type d | xargs chmod a+rx
+       @nice -n $(NICE) find build -type f | xargs chmod a+r
+
+
+
+
+
+###################################################################################
+# INFO TARGETS
+###################################################################################
+
+info-build:
+       @echo "****************************************************************************"
+       @echo "  GENERATING SAMPLE 1 BUILD"
+       @echo "****************************************************************************"
+
+info-source:
+       @echo "****************************************************************************"
+       @echo "  GENERATING SAMPLE 1 SOURCE"
+       @echo "****************************************************************************"
diff --git a/swat/apps/swat/source/class/swat/main/Gui.js b/swat/apps/swat/source/class/swat/main/Gui.js
new file mode 100644 (file)
index 0000000..408082d
--- /dev/null
@@ -0,0 +1,189 @@
+/**
+ * The graphical user interface for the main menu
+ */
+qx.OO.defineClass("swat.main.Gui");
+
+
+qx.Class.buildGui = function(modules)
+{
+  var o;
+
+  // TODO: these predefined yellow and blue colors are the wrong shade.  find
+  // the correct colors.
+  var topColor = new qx.renderer.color.Color("yellow");
+  var bottomColor = new qx.renderer.color.Color("blue");
+
+  // Create the yellow bar at the top
+  o = new qx.ui.basic.Terminator();
+  o.set({
+            top: 0,
+            left: 0,
+            right: 0,
+            height: 40,
+        });
+  o.setBackgroundColor(topColor);
+  o.addToDocument();
+
+  // Create the tag line
+  var title = new qx.ui.basic.Label("Samba Web Administration Tool");
+  title.set({
+            top: 12,
+            left: 20
+        });
+  title.setBackgroundColor(topColor);
+  title.setFont("bold");
+  title.addToDocument();
+
+  // Create a small black separator between the yellow and blue bars
+  o = new qx.ui.basic.Terminator();
+  o.set({
+            top: 40,
+            left: 0,
+            right: 0,
+            height: 1
+        });
+  o.setBackgroundColor("black");
+  o.addToDocument();
+
+  // Create the yellow bar at the top
+  o = new qx.ui.basic.Terminator();
+  o.set({
+            top: 41,
+            left: 0,
+            right: 0,
+            height: 60
+        });
+  o.setBackgroundColor(bottomColor);
+  o.addToDocument();
+
+  // Create the "Samba" image
+  o = new qx.ui.basic.Image("../../../images/logo.png");
+  o.set({
+            top: 16,
+            right: 20
+        });
+  o.setZIndex(100000000);
+  o.addToDocument();
+
+  // Create a menu bar
+  var menubar = new qx.ui.toolbar.ToolBar();
+  menubar.set({
+                  top: 100,
+                  height: 20,
+                  left: 0,
+                  right: 0
+              });
+  menubar.addToDocument();
+      
+  // Create a menu item for selecting the requested module 
+  var menubutton = new qx.ui.toolbar.MenuButton("Modules");
+  menubar.add(menubutton);
+
+  // Create a Command to be executed upon any menu selection
+  var command = new qx.client.Command();
+  //  command.addEventListener("execute", fsm.eventListener, fsm);
+      
+  // Create a radio manager for selecting one of the modules
+  var moduleManager = new qx.manager.selection.RadioManager("main.gui.Module");
+
+  // Create a menu containing the subitems
+  var menu = new qx.ui.menu.Menu();
+
+  // We'll also track the current module's canvas in the modules object
+  modules.currentCanvas = null;
+
+  // For each menu item...
+  for (moduleName in modules.list)
+  {
+    // create a radio button menu item
+    o = new qx.ui.menu.RadioButton(moduleName, null, command);
+
+    // Associate this button menu item with the module list
+    o.moduleName = moduleName;
+
+    // Associate the menu item with the radio manager
+    moduleManager.add(o);
+
+    // Create this module's canvas
+    var canvas = new qx.ui.layout.CanvasLayout();
+    canvas.set({
+                   top: 120,
+                   bottom: 0,
+                   left: 0,
+                   right: 0
+               });
+    canvas.setBackgroundColor("white");
+    canvas.setDisplay(false); // initially not displayed
+
+    var fsm = modules.list[moduleName].fsm;
+    fsm.addObject("canvas", canvas);
+    canvas.addEventListener("appear", fsm.eventListener, fsm);
+    canvas.addEventListener("disappear", fsm.eventListener, fsm);
+
+    // Save the canvas
+    modules.list[moduleName].canvas = canvas;
+
+    // Add the canvas to the document
+    canvas.addToDocument();
+
+    // When a Module menu item is selected:
+    o.addEventListener("changeChecked", function(e)
+                       {
+                         // If there's a current canvas, ...
+                         if (modules.currentCanvas)
+                         {
+                           // ... then remove display of it.
+                           modules.currentCanvas.setDisplay(false);
+                           
+                           // Dispatch an event on the canvas to notify old
+                           // module it's coming into disuse.
+                           canvas.createDispatchEvent("disappear");
+                         }
+
+                         // If we are being selected...
+                         if (e.getData())
+                         {
+                           // then display our canvas
+                           var canvas = modules.list[this.moduleName].canvas;
+                           canvas.setDisplay(true);
+
+                           // Track the current canvas (now ours)
+                           modules.currentCanvas = canvas;
+
+                           // Set the application title
+                           title.setHtml("<span>" +
+                                         "Samba Web Administration Tool" +
+                                         " &raquo; " +
+                                         this.moduleName +
+                                         "</span>");
+                           
+                           // Dispatch an event on the canvas to notify new
+                           // module it's coming into use.
+                           canvas.createDispatchEvent("appear");
+                         }
+                       });
+
+    // Add the menu item to the menu
+    menu.add(o);
+  }
+
+  // We've built a complete menu.  Add it to the document.
+  menu.addToDocument();
+
+  // Specify that the menu is to be displayed upon menu button selection
+  menubutton.setMenu(menu);
+
+  // Create a menu item for selecting debug options
+  var menubutton = new qx.ui.toolbar.MenuButton("Debug");
+  menubar.add(menubutton);
+
+  // Create a menu containing the subitems
+  var menu = new qx.ui.menu.Menu;
+  var menu_01 = new qx.ui.menu.Button("Show Debug Window", null, command);
+  menu.add(menu_01);
+  menu.addToDocument();
+
+  // Specify that the menu is to be displayed upon menu button selection
+  menubutton.setMenu(menu);
+
+};
diff --git a/swat/apps/swat/source/class/swat/main/Main.js b/swat/apps/swat/source/class/swat/main/Main.js
new file mode 100644 (file)
index 0000000..b39471a
--- /dev/null
@@ -0,0 +1,96 @@
+/*
+#module(swat)
+#require(swat.module.AbstractModule)
+#require(swat.module.stats.Statistics)
+*/
+
+/**
+ * Swat main menu
+ */
+qx.OO.defineClass("swat.main.Main", qx.component.AbstractApplication,
+function()
+{
+  qx.component.AbstractApplication.call(this);
+});
+
+
+/**
+ * The list of supported modules
+ */
+var moduleSystemStatus =
+{
+  "canvas" : null,
+  "fsm"    : null,
+  "class"  : swat.module.stats.Statistics
+};
+
+/*
+var moduleLdbView =
+{
+  "canvas" : null,
+  "fsm"    : null,
+  "class"  : swat.module.ldbview.LdbView
+};
+*/
+
+qx.Class.modules =
+{
+  list :
+  {
+    "System Status" : moduleSystemStatus
+  }
+};
+
+
+/*
+---------------------------------------------------------------------------
+  METHODS
+---------------------------------------------------------------------------
+*/
+
+qx.Proto.initialize = function()
+{
+  var modules = swat.main.Main.modules;
+  var o = new qx.ui.basic.Label("hello world");
+
+  // For each module...
+  for (moduleName in modules.list)
+  {
+    // ... add the module's name to the module object, ...
+    modules.list[moduleName].name = moduleName;
+
+    // ... and call the module's buildInitialFsm() function
+    var module = modules.list[moduleName]["class"].getInstance();
+    module.buildInitialFsm(modules.list[moduleName]);
+  }
+};
+
+
+qx.Proto.main = function()
+{
+  var modules = swat.main.Main.modules;
+
+  // Initialize the gui for the main menu
+  swat.main.Gui.buildGui(modules);
+
+  // Similarly, now that we have a canvas for each module, ...
+  for (moduleName in modules.list)
+  {
+    // ... call the module's buildInitialGui() function
+    var module = modules.list[moduleName]["class"].getInstance();
+    module.buildInitialGui(modules.list[moduleName]);
+  }
+};
+
+
+qx.Proto.finalize = function()
+{
+  var modules = swat.main.Main.modules;
+
+  // Call each module's finalization function
+  for (moduleName in modules.list)
+  {
+    var module = modules.list[moduleName]["class"].getInstance();
+    module.finalize(modules.list[moduleName]);
+  }
+}
diff --git a/swat/apps/swat/source/class/swat/module/AbstractModule.js b/swat/apps/swat/source/class/swat/module/AbstractModule.js
new file mode 100644 (file)
index 0000000..9f1b4f3
--- /dev/null
@@ -0,0 +1,147 @@
+/**
+ * Abstract Module class.  All modules should extend this class.
+ */
+qx.OO.defineClass("swat.module.AbstractModule", qx.core.Object,
+function()
+{
+  qx.core.Object.call(this);
+  this.debug("AbstractModule constructor");
+});
+
+
+/**
+ * Build the initial finite state machine.
+ *
+ * In order to prevent long load times, as minimal as possible of an initial
+ * FSM should be created.  The FSM will receive a "visible" event when the
+ * module is first selected (and each subsequent time), and the FSM can use
+ * that event to build the complete FSM.
+ *
+ * @param module {Object}
+ *   An object containing at least the following properties:
+ *     fsm -
+ *       The finite state machine for this module.  It should be filled in
+ *       by this function.
+ *     canvas -
+ *       The canvas on which to create the gui for this module
+ *     name -
+ *       The name of this module
+ *     class -
+ *       The class for this module
+ *
+ */
+qx.Proto.buildInitialFsm = function(module)
+{
+  // Create a new finite state machine
+  var fsm = new qx.util.fsm.FiniteStateMachine(module.name);
+
+  // For this simple example application, show all debug messages.
+  qx.Settings.setCustomOfClass(
+    "qx.util.fsm.FiniteStateMachine",
+    "debugFlags",
+    (qx.util.fsm.FiniteStateMachine.DebugFlags.EVENTS |
+     qx.util.fsm.FiniteStateMachine.DebugFlags.TRANSITIONS |
+     qx.util.fsm.FiniteStateMachine.DebugFlags.FUNCTION_DETAIL |
+     qx.util.fsm.FiniteStateMachine.DebugFlags.OBJECT_NOT_FOUND));
+
+  /*
+   * State: Idle
+   *
+   * Transition on:
+   *  "execute" on button_send
+   */
+  var state = new qx.util.fsm.State(
+    "State_Idle",
+    {
+      "events" :
+        {
+          // If the send button is pressed, go to new state state where we
+          // will await the RPC result
+          "appear"  :
+          {
+            "canvas" :
+              "Transition_Idle_to_Idle_Load_Gui"
+          }
+        }
+    });
+  fsm.addState(state);
+
+  /*
+   * Transition: Idle to (replaced) Idle
+   *
+   * Cause: "appear" on canvas for the first time
+   *
+   * Action:
+   *  Load module's finite state machine and graphical user interface
+   */
+  var thisModule = this;
+  var trans = new qx.util.fsm.Transition(
+    "Transition_Idle_to_AwaitRpcResult_via_button_send",
+    {
+      "nextState" :
+        qx.util.fsm.FiniteStateMachine.StateChange.CURRENT_STATE,
+
+      "ontransition" :
+        function(fsm, event)
+        {
+          // Call the module's initialAppear function to build FSM and GUI.
+          // That function should *replace* this state, State_Idle, to which
+          // we'll transition.
+          thisModule.initialAppear(module);
+        }
+    });
+  state.addTransition(trans);
+
+  // Save the finite state machine for this module
+  module.fsm = fsm;
+  fsm.addObject("swat.module.fsm", fsm);
+  fsm.start();
+};
+
+/**
+ * Build the initial graphical user interface.
+ *
+ * In order to prevent long load times, as minimal as possible of an initial
+ * GUI should be created.  Generally, this is just a "Loading..." message.
+ *
+ * @param module {Object}
+ *   An object containing at least the following properties:
+ *     fsm -
+ *       The finite state machine for this module.  It should be filled in
+ *       by this function.
+ *     canvas -
+ *       The canvas on which to create the gui for this module
+ *     name -
+ *       The name of this module
+ *     class -
+ *       The class for this module
+ *
+ */
+qx.Proto.buildInitialGui = function(module)
+{
+  // For now, just create the "Loading" text
+  var o = new qx.ui.basic.Label("Loading module '" + module.name + "'...");
+  o.set({
+            top: 12,
+            left: 20
+        });
+  o.setFont("bold");
+  module.canvas.add(o);
+};
+
+qx.Proto.finalize = function(module)
+{
+  this.debug("AbstractModule.finalize()");
+};
+
+
+/*
+---------------------------------------------------------------------------
+  DEFER SINGLETON INSTANCE
+---------------------------------------------------------------------------
+*/
+
+/**
+ * Singleton Instance Getter
+ */
+qx.Class.getInstance = qx.util.Return.returnInstance;
diff --git a/swat/apps/swat/source/class/swat/module/stats/Fsm.js b/swat/apps/swat/source/class/swat/module/stats/Fsm.js
new file mode 100644 (file)
index 0000000..2de4501
--- /dev/null
@@ -0,0 +1,18 @@
+/**
+ * Swat statistics class finite state machine
+ */
+qx.OO.defineClass("swat.module.stats.Fsm", qx.core.Object);
+
+
+qx.Proto.buildFsm = function(module)
+{
+  var fsm = module.fsm;
+
+  
+};
+
+
+/**
+ * Singleton Instance Getter
+ */
+qx.Class.getInstance = qx.util.Return.returnInstance;
diff --git a/swat/apps/swat/source/class/swat/module/stats/Statistics.js b/swat/apps/swat/source/class/swat/module/stats/Statistics.js
new file mode 100644 (file)
index 0000000..24b056a
--- /dev/null
@@ -0,0 +1,33 @@
+/**
+ * Swat statistics class
+ */
+qx.OO.defineClass("swat.module.stats.Statistics",
+                  swat.module.AbstractModule, function()
+{
+  swat.module.AbstractModule.call(this);
+});
+
+
+/**
+ * Create the module's finite state machine and graphical user interface.
+ *
+ * This function is called the first time a module is actually selected to
+ * appear.  Creation of the module's actual FSM and GUI have been deferred
+ * until they were actually needed (now) so we need to create them.
+ *
+ * @param module {Object} @see AbstractModule
+ */
+qx.Proto.initialAppear = function(module)
+{
+  // Replace the existing (temporary) finite state machine with the real one
+  swat.module.stats.Fsm.getInstance().buildFsm(module);
+
+  // Create the real gui
+  swat.module.stats.Gui.getInstance().buildGui(module);
+};
+
+
+/**
+ * Singleton Instance Getter
+ */
+qx.Class.getInstance = qx.util.Return.returnInstance;
diff --git a/swat/apps/swat/source/index.html b/swat/apps/swat/source/index.html
new file mode 100644 (file)
index 0000000..ea7bcfe
--- /dev/null
@@ -0,0 +1,14 @@
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+    <title>Swat</title>
+    <script type="text/javascript" src="script/swat.js"></script>
+  </head>
+  <body>
+    <script type="text/javascript">
+
+    qx.core.Init.getInstance().setApplication(swat.main.Main);
+
+    </script>
+  </body>
+</html>
diff --git a/swat/apps/swat/source/script/swat.js b/swat/apps/swat/source/script/swat.js
new file mode 100644 (file)
index 0000000..8f893f1
--- /dev/null
@@ -0,0 +1 @@
+if(!window.qx)qx={};if(!qx.Settings)qx.Settings={};if(!qx.Settings._customSettings)qx.Settings._customSettings={};if(!qx.Settings._customSettings["qx.manager.object.AliasManager"])qx.Settings._customSettings["qx.manager.object.AliasManager"]={};qx.Settings._customSettings["qx.manager.object.AliasManager"]["resourceUri"]="../../qooxdoo-0.6.3-sdk/frontend/framework/source/resource";(function(sources){var parentNode=document.getElementsByTagName('body')[0]||document.getElementsByTagName('head')[0];var clientEngine=null;if(window.opera&&/Opera[\s\/]([0-9\.]*)/.test(navigator.userAgent))clientEngine="opera";else if(typeof navigator.vendor==="string"&&navigator.vendor==="KDE"&&/KHTML\/([0-9-\.]*)/.test(navigator.userAgent))clientEngine="khtml";else if(navigator.userAgent.indexOf("AppleWebKit")!=-1&&/AppleWebKit\/([0-9-\.]*)/.test(navigator.userAgent))clientEngine="webkit";else if(window.controllers&&typeof navigator.product==="string"&&navigator.product==="Gecko"&&/rv\:([^\);]+)(\)|;)/.test(navigator.userAgent))clientEngine="gecko";else if(/MSIE\s+([^\);]+)(\)|;)/.test(navigator.userAgent))clientEngine="mshtml";switch(clientEngine){case "opera": case "gecko":if(document.createElementNS&&parentNode.namespaceURI)var includeJs=function(src){var js=document.createElementNS(parentNode.namespaceURI,"script");js.type="text/javascript";js.src=src;parentNode.appendChild(js)};else var includeJs=function(src){var js=document.createElement("script");js.type="text/javascript";js.src=src;parentNode.appendChild(js)};break;case "webkit": case "khtml": case "mshtml": default:var includeJs=function(src){document.write('<script type="text/javascript" src="'+src+'"></script>')};break;}for(var i=0;i<sources.length;++i)includeJs(sources[i])})(["../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/Settings.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/OO.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/lang/String.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/util/Validation.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/lang/Array.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/lang/Object.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/lang/Core.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/util/Return.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/core/Object.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dev/log/LogEventProcessor.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dev/log/Filter.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dev/log/DefaultFilter.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dev/log/Appender.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dev/log/WindowAppender.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dev/log/Logger.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/core/Target.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/event/type/Event.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/event/type/DataEvent.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/sys/Client.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dom/EventRegistration.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/core/Init.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/component/AbstractComponent.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/component/init/AbstractInitComponent.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/component/init/BasicInitComponent.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/component/AbstractApplication.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/component/DummyApplication.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/core/Version.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/color/ColorCache.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/color/Color.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/color/ColorObject.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/object/ObjectManager.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/object/ColorManager.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/theme/ColorTheme.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/theme/color/WindowsRoyale.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/border/BorderCache.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/border/Border.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/border/BorderObject.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/object/AppearanceManager.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/theme/AppearanceTheme.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/theme/appearance/Classic.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/border/BorderPresets.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/component/init/InterfaceInitComponent.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/event/type/DomEvent.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/event/type/KeyEvent.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/event/handler/KeyEventHandler.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/event/handler/EventHandler.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/core/Widget.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dom/Style.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/core/Parent.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/event/type/FocusEvent.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/basic/Terminator.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/layout/CanvasLayout.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/LayoutImpl.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/lang/Number.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/CanvasLayoutImpl.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dom/StyleSheet.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/core/ClientDocument.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/core/ClientDocumentBlocker.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/event/handler/FocusHandler.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dom/Location.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dom/Scroll.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dom/Dimension.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/object/AliasManager.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/net/Protocol.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dom/Offset.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dom/ScrollIntoView.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dom/Node.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/event/type/MouseEvent.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/object/IframeManager.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/image/PreloaderSystem.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/client/Timer.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/object/ImagePreloaderManager.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/image/Preloader.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/object/ImageManager.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/theme/IconTheme.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/theme/icon/CrystalSvg.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/theme/WidgetTheme.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/theme/widget/Windows.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/font/FontCache.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/font/Font.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/font/FontObject.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/embed/HtmlEmbed.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/embed/LinkEmbed.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/layout/BoxLayout.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/VerticalBoxLayoutImpl.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/HorizontalBoxLayoutImpl.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/basic/Atom.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/basic/Label.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dom/Element.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/basic/Image.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/form/ListItem.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/util/Compare.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/util/Normalization.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/remote/AbstractRemoteTransport.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/remote/Exchange.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/remote/XmlHttpTransport.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/Json.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/remote/IframeTransport.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dom/Iframe.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/remote/ScriptTransport.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/net/Http.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/remote/Request.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/remote/RequestQueue.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/remote/Response.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/layout/VerticalBoxLayout.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/menu/Layout.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/MenuLayoutImpl.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/layout/FlowLayout.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/FlowLayoutImpl.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/AbstractPane.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/buttonview/Pane.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/AbstractButton.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/selection/RadioManager.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/popup/Popup.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/object/PopupManager.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dev/log/AlertAppender.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/AbstractBar.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/tabview/Bar.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/layout/HorizontalBoxLayout.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/toolbar/Part.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/toolbar/PartHandle.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/TablePaneHeader.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/listview/ContentCellLink.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/lang/MshtmlEmu.js","class/swat/module/AbstractModule.js","class/swat/module/stats/Statistics.js","class/swat/main/Main.js","class/swat/main/Gui.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/toolbar/ToolBar.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/menu/Menu.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/object/MenuManager.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/menu/Separator.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/menu/Button.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/MenuButtonLayoutImpl.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/form/Button.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/toolbar/Button.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/toolbar/MenuButton.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/client/Command.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/menu/CheckBox.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/menu/RadioButton.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dev/log/RingBufferAppender.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/DataRowRenderer.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/DefaultDataRowRenderer.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/Table.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/SelectionManager.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/SelectionModel.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/HeaderCellRenderer.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/DefaultHeaderCellRenderer.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/DataCellRenderer.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/AbstractDataCellRenderer.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/TablePane.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/util/format/Format.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/util/format/NumberFormat.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/DefaultDataCellRenderer.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/util/format/DateFormat.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/CellEditorFactory.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/TextFieldCellEditorFactory.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/form/TextField.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/TableColumnModel.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/TableModel.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/TablePaneModel.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/TablePaneScroller.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/core/ScrollBar.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/form/ComboBoxEx.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/AbstractTableModel.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/SimpleTableModel.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/form/CheckBox.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/form/InputCheckSymbol.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/popup/PopupAtom.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/popup/ToolTip.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/object/ToolTipManager.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/window/Window.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/basic/HorizontalSpacer.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/object/WindowManager.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/selection/SelectionManager.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/type/Selection.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/selection/VirtualSelectionManager.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/layout/GridLayout.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/GridLayoutImpl.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/tabview/Button.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/embed/NodeEmbed.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/selection/TreeSelectionManager.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/tree/AbstractTreeElement.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/tree/TreeFolder.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/tree/Tree.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/tree/TreeFile.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/theme/color/WindowsLunaGreen.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/splitpane/SplitPane.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/listview/ContentCellImage.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/AbstractPageView.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/listview/Header.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/listview/HeaderCell.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/listview/HeaderSeparator.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/local/CookieApi.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/AbstractPage.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/buttonview/Page.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/util/fsm/FiniteStateMachine.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/util/fsm/State.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/util/fsm/Transition.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/resizer/Resizer.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/embed/Iframe.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/component/DateChooser.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/tabview/Pane.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/form/TextArea.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/buttonview/ButtonView.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/buttonview/Bar.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/tabview/TabView.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/remote/Rpc.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dev/Pollution.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/form/RepeatButton.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/util/FormUtil.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/component/ColorSelector.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/groupbox/GroupBox.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/form/Spinner.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/type/Range.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/util/ColorUtil.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/theme/color/WindowsLunaBlue.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/selection/TreeFullControlSelectionManager.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/treefullcontrol/AbstractTreeElement.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/treefullcontrol/TreeRowStructure.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/treefullcontrol/TreeFolder.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/treefullcontrol/Tree.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/treefullcontrol/TreeFile.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dev/log/ForwardAppender.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/menubar/Button.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/type/Version.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/lang/Generics.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dom/Window.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/client/NativeWindow.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/theme/color/WindowsLunaSilver.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/component/ColorPopup.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/splitpane/VerticalSplitPane.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/groupbox/RadioGroupBox.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/form/RadioButton.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/theme/icon/Nuvola.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/manager/selection/DomSelectionManager.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/theme/color/System.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/listview/ListView.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/listview/ListViewPane.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/basic/Inline.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/lang/Prototypes.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/toolbar/CheckBox.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/toolbar/RadioButton.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/listview/ContentCellHtml.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/tabview/Page.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/CheckBoxCellEditorFactory.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/embed/Flash.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/theme/color/WindowsClassic.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/form/ComboBox.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/form/List.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dev/TimeTracker.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/toolbar/Separator.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/type/StringBuilder.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/RemoteTableModel.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/embed/TextEmbed.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/groupbox/CheckGroupBox.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/util/Textile.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/embed/Gallery.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/client/History.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/event/type/DragEvent.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/event/handler/DragAndDropHandler.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/io/local/CookieTransport.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/splitpane/HorizontalSplitPane.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/menubar/MenuBar.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/xml/Core.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/IconHeaderCellRenderer.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/IconDataCellRenderer.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/lang/XmlEmu.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/listview/ContentCellText.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dev/log/FireBugAppender.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/renderer/layout/DockLayoutImpl.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dev/log/DivAppender.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/pageview/buttonview/Button.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/embed/IconHtmlEmbed.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/xml/Namespace.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/table/BooleanDataCellRenderer.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/form/PasswordField.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/embed/GalleryList.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/dom/ElementFromPoint.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/basic/VerticalSpacer.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/layout/DockLayout.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/ui/listview/ContentCellIconHtml.js","../../qooxdoo-0.6.3-sdk/frontend/framework/source/class/qx/client/Builder.js"]);
\ No newline at end of file