qsos-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qsos-commits] qsos/apps/xuleditor/chrome/content Document.js ...


From: Raphaël Semeteys
Subject: [Qsos-commits] qsos/apps/xuleditor/chrome/content Document.js ...
Date: Mon, 11 Dec 2006 18:05:55 +0000

CVSROOT:        /sources/qsos
Module name:    qsos
Changes by:     Raphaël Semeteys <rsemeteys>   06/12/11 18:05:55

Modified files:
        apps/xuleditor/chrome/content: Document.js editor.js editor.xul 
Added files:
        apps/xuleditor/chrome/content: load.js load.xul 

Log message:
        Open Remote QSOS file via http

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/qsos/apps/xuleditor/chrome/content/Document.js?cvsroot=qsos&r1=1.8&r2=1.9
http://cvs.savannah.gnu.org/viewcvs/qsos/apps/xuleditor/chrome/content/editor.js?cvsroot=qsos&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/qsos/apps/xuleditor/chrome/content/editor.xul?cvsroot=qsos&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/qsos/apps/xuleditor/chrome/content/load.js?cvsroot=qsos&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/qsos/apps/xuleditor/chrome/content/load.xul?cvsroot=qsos&rev=1.1

Patches:
Index: Document.js
===================================================================
RCS file: /sources/qsos/qsos/apps/xuleditor/chrome/content/Document.js,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- Document.js 25 Nov 2006 11:37:20 -0000      1.8
+++ Document.js 11 Dec 2006 18:05:55 -0000      1.9
@@ -34,6 +34,7 @@
     
     //Public methods declaration
     this.load = load;
+    this.loadremote = loadremote;
     this.write = write;
     this.getkeytitle = getkeytitle;
     this.getauthors = getauthors;
@@ -109,7 +110,7 @@
 
         var sis = Components.classes["@mozilla.org/scriptableinputstream;1"]
                .createInstance(Components.interfaces.nsIScriptableInputStream);
-        sis.init( is );
+        sis.init(is);
 
        var output = sis.read(sis.available());
 
@@ -122,6 +123,24 @@
        sheet = domParser.parseFromString(output, "text/xml");
     }
     
+    //Load and parse a remote QSOS XML file
+    //ex: loadremote("http://localhost/qedit/xul/kolab.qsos";)
+    //initializes local variable: sheet
+    function loadremote(url) {
+        try {
+            
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
+        } catch (e) {
+            alert("Permission to save file was denied.");
+        }
+        req = new XMLHttpRequest();
+
+        req.open('GET', url, false); 
+        req.overrideMimeType('text/xml');
+        req.send(null);
+       var domParser = new DOMParser();
+       sheet = domParser.parseFromString(req.responseText, "text/xml");
+    }
+    
     //Serialize and write the local QSOS XML file
     function write() {
         try {
@@ -221,17 +240,6 @@
        return string;
    }
     
-    //Load and parse a remote QSOS XML file
-    //ex: loadremote("http://localhost/qedit/xul/kolab.qsos";)
-    //initializes local variable: sheet
-    function loadremote(url) {
-        req = new XMLHttpRequest();
-        req.open('GET', url, false); 
-        req.overrideMimeType('text/xml');
-        req.send(null);
-        sheet = req.responseXML;
-    }
-    
     //Show the XML DOM structure in a dialogbox
     function dump() {
         var serializer = new XMLSerializer();

Index: editor.js
===================================================================
RCS file: /sources/qsos/qsos/apps/xuleditor/chrome/content/editor.js,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- editor.js   22 Jun 2006 23:20:55 -0000      1.9
+++ editor.js   11 Dec 2006 18:05:55 -0000      1.10
@@ -108,8 +108,6 @@
 
        //Draw top-level SVG chart
        drawChart();
-
-       //window.sizeToContent();
     }
 }
 
@@ -126,6 +124,74 @@
        openFile();
 }
 
+//Menu "Load Remote"
+//Shows the loads.xul window in modal mode
+function loadRemoteDialog() {
+       try {
+               
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
+       } catch (e) {
+               alert("Permission to open file was denied.");
+       }
+       
window.openDialog('chrome://qsos-xuled/content/load.xul','Properties','chrome,dialog,modal',myDoc,openRemoteFile);
+}
+
+function openRemoteFile(url) {
+       if (url == "") return;
+
+       myDoc = new Document("");
+       myDoc.loadremote(url);
+
+        //Window's title
+        document.getElementById("QSOS").setAttribute("title", 
strbundle.getString("QSOSEvaluation")+"  "+myDoc.getappname());
+        
+        //Tree population
+        var tree = document.getElementById("mytree");
+       var treechildren = buildtree();
+        tree.appendChild(treechildren);
+       
+       //License
+       var licenses = myDoc.getlicenselist();
+       var mypopuplist = document.getElementById("f-license-popup");
+       for(var i=0; i < licenses.length; i++) {
+               var menuitem = document.createElement("menuitem");
+               menuitem.setAttribute("label", licenses[i]);
+               mypopuplist.appendChild(menuitem);
+       }
+                        
+       var licenseid = myDoc.getlicenseid();
+       var mylist = document.getElementById("f-license");
+        mylist.selectedIndex = licenseid;
+        
+        //Other fields
+        document.getElementById("f-software").value = myDoc.getappname();
+       document.getElementById("f-release").value = myDoc.getrelease();
+       document.getElementById("f-sotwarefamily").value = 
myDoc.getqsosappfamily();
+       document.getElementById("f-desc").value = myDoc.getdesc();
+       document.getElementById("f-url").value = myDoc.geturl();
+       document.getElementById("f-demourl").value = myDoc.getdemourl();
+        
+        freezeGeneric("");
+       //Menu management
+        document.getElementById("file-close").setAttribute("disabled", 
"false");
+       document.getElementById("file-saveas").setAttribute("disabled", 
"false");
+
+       //Draw top-level SVG chart
+       drawChart();
+}
+
+//Checks Document's state before opening a new one
+function checkopenRemoteFile() {
+       if (myDoc) {
+               if (docChanged == "true") {
+                       confirmDialog(strbundle.getString("closeAnyway"), 
closeFile);
+               }
+               else {
+                       closeFile();
+               }
+       }
+       loadRemoteDialog();
+}
+
 //XUL Tree recursive creation function
 function buildtree() {
        var treechildren = document.createElement("treechildren");

Index: editor.xul
===================================================================
RCS file: /sources/qsos/qsos/apps/xuleditor/chrome/content/editor.xul,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- editor.xul  22 Jun 2006 23:20:55 -0000      1.9
+++ editor.xul  11 Dec 2006 18:05:55 -0000      1.10
@@ -18,6 +18,7 @@
              <menu id="file-menu" label="&file-menu.label;" 
onclick="document.getElementById('file-menu').focus();">
           <menupopup id="file-popup">
                  <menuitem id="file-open" label="&file-open.label;" 
onclick="checkopenFile();"/>
+                 <menuitem id="file-open-remote" label="Open remote" 
onclick="checkopenRemoteFile();"/>
                  <menuitem id="file-save" label="&file-save.label;" 
onclick="saveFile();"/>
                  <menuitem id="file-saveas" label="&file-saveas.label;" 
onclick="saveFileAs();"/>
                  <menuitem id="file-close" label="&file-close.label;"  
onclick="checkcloseFile();"/>

Index: load.js
===================================================================
RCS file: load.js
diff -N load.js
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ load.js     11 Dec 2006 18:05:55 -0000      1.1
@@ -0,0 +1,102 @@
+var xmlDoc;
+        
+function init() {
+       try {
+               
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
+       } catch (e) {
+               alert("Permission to open file was denied.");
+       }
+        req = new XMLHttpRequest();
+        req.open('GET', "http://localhost:88/test/OOo/loadremote.php";, false); 
+       //req.overrideMimeType('text/xml');
+        req.send(null);
+
+       var domParser = new DOMParser();
+       xmlDoc = domParser.parseFromString(req.responseText, "text/xml");
+
+       var criteria = getcomplextree();
+       
+       var evalTree = document.getElementById("evalTree");
+
+       var treechildren = buildtree(criteria);
+       evalTree.appendChild(treechildren);
+}
+
+function doOK() {
+       var evalTree = document.getElementById("evalTree");
+       var url = 
evalTree.view.getItemAtIndex(evalTree.currentIndex).firstChild.firstChild.getAttribute("id");
+
+       if (url.substr(0, 7) != "http://";) url = "";
+       //Call window opener callback function
+       window.arguments[1](url);
+}
+
+function getcomplextree() {
+       var criteria = new Array();
+       var items = xmlDoc.evaluate("/children/item", xmlDoc, null, 
XPathResult.ANY_TYPE,null);
+       var item = items.iterateNext();
+       while (item) {
+               var criterion = new Object();
+               criterion.id = item.getAttribute("id");
+               criterion.label =  item.getAttribute("label");
+               criterion.children = getsubcriteria(criterion.id);
+               criteria.push(criterion);
+               item = items.iterateNext();
+       }
+       return criteria;
+}
+
+function getsubcriteria(id) {
+       var subcriteria = new Array();
+       var items = xmlDoc.evaluate("//address@hidden'"+id+"']/children/item", 
xmlDoc, null, XPathResult.ANY_TYPE,null);
+       var item = items.iterateNext();
+       while (item) {
+               var criterion = new Object();
+               criterion.id = item.getAttribute("id");
+               criterion.label =  item.getAttribute("label");
+               criterion.children = getsubcriteria(criterion.id);
+               subcriteria.push(criterion);
+               item = items.iterateNext();
+       }
+       if (subcriteria.length > 0)
+               return subcriteria;
+       else
+               return "null";
+}
+
+//XUL Tree recursive creation function
+function buildtree(criteria) {
+       var treechildren = document.createElement("treechildren");
+       treechildren.setAttribute("id", "myTreechildren");
+       for (var i=0; i < criteria.length; i++) {
+               treeitem = newtreeitem(criteria[i]);
+               treechildren.appendChild(treeitem);
+       }
+       return treechildren;
+}
+
+//XUL Tree recursive creation function
+function newtreeitem(criterion) {
+       var treeitem = document.createElement("treeitem");
+       treeitem.setAttribute("container", "true");
+       treeitem.setAttribute("open", "true");
+       var treerow = document.createElement("treerow");
+       var treecell = document.createElement("treecell");
+       treecell.setAttribute("id", criterion.id);
+       treecell.setAttribute("label", criterion.label);
+       treerow.appendChild(treecell);
+       treeitem.appendChild(treerow);
+       if (criterion.children != "null")
+       treeitem.appendChild(buildsubtree(criterion.children));
+       return treeitem;
+}
+
+//XUL Tree recursive creation function
+function buildsubtree(criteria) {
+       var treechildren = document.createElement("treechildren");
+       for (var i=0; i < criteria.length; i++) {
+               treeitem = newtreeitem(criteria[i]);
+               treechildren.appendChild(treeitem);
+       }
+       return treechildren;
+}
\ No newline at end of file

Index: load.xul
===================================================================
RCS file: load.xul
diff -N load.xul
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ load.xul    11 Dec 2006 18:05:55 -0000      1.1
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
+<!DOCTYPE dialog SYSTEM "chrome://qsos-xuled/locale/about.dtd">
+
+<dialog id="Load" title="Load remote QSOS file"
+        xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
+       buttons="accept"
+       width="300px"
+       height="500px"
+       ondialogaccept="return doOK();"
+       onload="init();">
+
+<script type="application/x-javascript" src="load.js"></script>
+
+<tree id="evalTree" flex="1">
+       <treecols>
+               <treecol id="name" width="300px" label="Available evaluations" 
primary="true" flex="1"/>
+       </treecols>
+</tree>
+
+</dialog>
\ No newline at end of file




reply via email to

[Prev in Thread] Current Thread [Next in Thread]