[Top][All Lists]
[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
- [Qsos-commits] qsos/apps/xuleditor/chrome/content Document.js ...,
Raphaël Semeteys <=