[Pkg-mozext-commits] [firetray] 67/399: tree in option panel: SOMETHING WORKING ! but stil WORK IN PROGRESS

David Prévot taffit at alioth.debian.org
Tue Oct 29 18:23:15 UTC 2013


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to branch dfsg-clean
in repository firetray.

commit 1357e3a817b5b778dbb0d4a48d9f2a862fc91899
Author: foudfou <foudil.newbie+git at gmail.com>
Date:   Mon Oct 3 10:39:25 2011 +0200

    tree in option panel: SOMETHING WORKING ! but stil WORK IN PROGRESS
---
 src/chrome/content/options.js  |   89 ++++++++++++++++++++++++++++------------
 src/chrome/content/options.xul |   26 +++++++-----
 src/install.rdf                |    2 +-
 3 files changed, 80 insertions(+), 37 deletions(-)

diff --git a/src/chrome/content/options.js b/src/chrome/content/options.js
index 71e7433..a23c154 100644
--- a/src/chrome/content/options.js
+++ b/src/chrome/content/options.js
@@ -27,7 +27,8 @@ firetray.UIOptions = {
     }
 
     // setView();
-    populateTree();
+    // initView();
+    populateTreeServerTypes();
   },
 
   hideElement: function(parentId) {
@@ -173,21 +174,46 @@ function saveList(){
 */
 
 /*
+function initView() {
+  let tree = document.getElementById("optTree");
+
+  var oldView = tree.view;
+  var newView = {
+    __proto__: oldView,
+    setCellText: function(row, col, value) {
+      oldView.setCellText(row, col, value);
+      LOG("Text changed for a tree cell!");
+      document.getElementById("pane1").userChangedValue(tree);
+    }
+  };
+  tree.view = newView;
+  LOG("initView");
+}
+*/
+
+/*
  * Save the Schedules List to the "extensions.hpsched.schedules" preference.
  * This is called by the pref's system when the GUI element is altered.
  */
-function saveTree() {
-  let tree = document.getElementById("optTree");
-  let items = document.getElementById("rows").childNodes;
+function saveTreeServerTypes() {
+  let tree = document.getElementById("ui_tree_server_types");
+  let items = document.getElementById("ui_server_types").childNodes;
 
+  LOG("VIEW="+ tree.view);
   let prefObj = {};
-  for (let i=0; i < items.length; i++) {
+  for (let i=0; i < tree.view.rowCount; i++) {
     let cells = items[i].getElementsByTagName("treecell");
-    LOG("CELLS:"+ tree.view.getCellText(i,
-                                        tree.columns["name"]));
-                                        // tree.columns.getColumnAt(0)));
-                                        // tree.columns.getNamedColumn("name")));
-    prefObj[cells[0].label] = {regex: cells[1].label, subs: cells[2].label};
+    let serverTypeExcluded = (
+      tree.view.getCellValue(
+        i, tree.columns.getNamedColumn("server_type_excluded"))
+        === 'true');
+    let serverTypeName = tree.view.getCellText(
+      i, tree.columns.getNamedColumn("server_type_name"));
+    let serverTypeOrder = parseInt(tree.view.getCellText(
+      i, tree.columns.getNamedColumn("server_type_order")));
+    LOG("SUPER: "+serverTypeName+", "+serverTypeExcluded);
+    prefObj[serverTypeName] =
+      { order: serverTypeOrder, excluded: serverTypeExcluded };
   }
 
   let prefStr = JSON.stringify(prefObj);
@@ -199,7 +225,7 @@ function saveTree() {
 }
 
 function addItem() {
-  let targetTree = document.getElementById("rows");
+  let targetTree = document.getElementById("ui_server_types");
 
   let item = document.createElement('treeitem');
   let row = document.createElement('treerow');
@@ -215,38 +241,49 @@ function addItem() {
   targetTree.appendChild(item);
 }
 
-function populateTree() {
+function populateTreeServerTypes() {
   let prefPane = document.getElementById("pane1");
 
-  let prefStr = firetray.Utils.prefService.getCharPref("jsondata");
+  let prefStr = firetray.Utils.prefService.getCharPref("server_types");
   let prefObj = JSON.parse(prefStr);
 
-  let targetTree = document.getElementById("rows");
-  for (r in prefObj) {
-    let name = prefObj[r];
+  let targetTree = document.getElementById("ui_server_types");
+  for (serverTypeName in prefObj) {
+    let name = prefObj[serverTypeName];
 
     let item = document.createElement('treeitem');
     let row = document.createElement('treerow');
     item.appendChild(row);
 
+    // server_type_excluded => checkbox
     let cell = document.createElement('treecell');
-    cell.setAttribute('label',r);
-    cell.addEventListener
-    ('change', function() {
-       LOG("CHANGE: "+ firetray.Utils.prefService.getCharPref("jsondata"));
-       document.getElementById("pane1")
-         .userChangedValue(document.getElementById("optTree"));
+    cell.setAttribute('value',prefObj[serverTypeName].excluded);
+    // FIXME: we need to removeEventListener() !!! onunload ?
+    cell.addEventListener(
+      'DOMAttrModified', function(event) {
+        if (event.attrName == "label") LOG("label changed!");
+        if (event.attrName == "value") LOG("value changed!");
+        document.getElementById("pane1")
+          .userChangedValue(document.getElementById("ui_tree_server_types"));
      });
-    cell.addEventListener('input', LOG("INPUT"));
-    // cell.oninput = 'document.getElementById("pane1").userChangedValue(document.getElementById("optTree"));';
     row.appendChild(cell);
 
+    // server_type_name
     cell = document.createElement('treecell');
-    cell.setAttribute('label',name.regex);
+    cell.setAttribute('label',serverTypeName);
+    // FIXME: refactor !!
+    cell.addEventListener(
+      'DOMAttrModified', function(event) {
+        if (event.attrName == "label") LOG("label changed!");
+        if (event.attrName == "value") LOG("value changed!");
+        document.getElementById("pane1")
+          .userChangedValue(document.getElementById("ui_tree_server_types"));
+     });
     row.appendChild(cell);
 
+    // server_type_order
     cell = document.createElement('treecell');
-    cell.setAttribute('label',name.subs);
+    cell.setAttribute('label',prefObj[serverTypeName].order);
     row.appendChild(cell);
 
     targetTree.appendChild(item);
diff --git a/src/chrome/content/options.xul b/src/chrome/content/options.xul
index 19688cc..155f08a 100644
--- a/src/chrome/content/options.xul
+++ b/src/chrome/content/options.xul
@@ -14,8 +14,8 @@
     <preferences>
       <preference id="pref_bool_close_hides"
                   name="extensions.firetray.close_hides" type="bool"/>
-      <preference id="pref_string_jsondata"
-                  name="extensions.firetray.jsondata" type="string"/>
+      <preference id="pref_string_server_types"
+                  name="extensions.firetray.server_types" type="string"/>
     </preferences>
 
 
@@ -33,18 +33,24 @@
         <button label="Add" oncommand="addItem();"/>
         <button label="Delete" oncommand="deleteSelection();"/>
       <separator class="thin"  />
-      <tree id="optTree" height="200" width="500" flex="1"
+      <tree id="ui_tree_server_types" height="200" width="500" flex="1"
             seltype="single" editable="true"
             preference-editable="true"
-            preference="pref_string_jsondata"
-            onsynctopreference="return saveTree();">
+            preference="pref_string_server_types"
+            onsynctopreference="return saveTreeServerTypes();">
         <treecols>
-          <treecol id="name" label="Name" primary="true" flex="1"
-                   persist="width ordinal hidden" width="50"/>
-          <treecol id="regex" label="Regex" width="100" flex="1"/>
-          <treecol id="subs" label="Subs" width="300" flex="1"/>
+          <treecol id="server_type_excluded" type="checkbox" editable="true"
+                   label="Excluded" primary="true" flex="1" />
+          <treecol id="server_type_name" label="Type" flex="1"
+                   primary="true" tooltiptext="HI"/>
+          <treecol id="server_type_order" label="Order" editable="true"
+                   flex="1" hidden= "true" />
+          <!-- <treecol id="name" label="Name" primary="true" flex="1" -->
+          <!--          persist="width ordinal hidden" width="50"/> -->
+          <!-- <treecol id="regex" label="Regex" width="100" flex="1"/> -->
+          <!-- <treecol id="subs" label="Subs" width="300" flex="1"/> -->
         </treecols>
-        <treechildren id="rows" />
+        <treechildren id="ui_server_types" />
       </tree>
       <separator class="thin" />
       <label value="To edit a item doubleclick on it" />
diff --git a/src/install.rdf b/src/install.rdf
index 7f432a8..7cc8a13 100644
--- a/src/install.rdf
+++ b/src/install.rdf
@@ -5,7 +5,7 @@
     <em:unpack>true</em:unpack> <!-- needed for embedded icons -->
     <em:type>2</em:type>
     <em:name>FireTray</em:name>
-    <em:version>0.4.0a2</em:version>
+    <em:version>0.4.0a3</em:version>
     <em:creator>Hua Luo, Francesco Solero, Foudil BRÉTEL</em:creator>
     <em:contributor>Hua Luo, Francesco Solero (Firetray original authors)</em:contributor>
     <em:homepageURL>https://github.com/foudfou/firetray</em:homepageURL>

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mozext/firetray.git



More information about the Pkg-mozext-commits mailing list