Revision: 3797
http://vexi.svn.sourceforge.net/vexi/?rev=3797view=rev
Author: jeffbuhrt
Date: 2010-02-10 02:59:37 + (Wed, 10 Feb 2010)
Log Message:
---
sort demo menu items
Modified Paths:
--
trunk/widgets/org.vexi.demo/src/org/vexi/demo/demomenus.t
Modified: trunk/widgets/org.vexi.demo/src/org/vexi/demo/demomenus.t
===
--- trunk/widgets/org.vexi.demo/src/org/vexi/demo/demomenus.t 2010-02-10
01:10:02 UTC (rev 3796)
+++ trunk/widgets/org.vexi.demo/src/org/vexi/demo/demomenus.t 2010-02-10
02:59:37 UTC (rev 3797)
@@ -52,21 +52,43 @@
wi:menuitem text=Credits enabled=false /
/wi:menu
+// sort by category, text
+thisbox.sortfn = function(arg1, arg2) {
+if (arg1.category arg2.category) return -1;
+else if (arg2.category arg1.category) return 1;
+else if (arg1.text arg2.text) return -1;
+else if (arg2.text arg1.text) return 1;
+else return 0;
+}
+
+// load and sort menu items from the 'feature' subdirectory
+var features = .feature;
+var sortedFeatures = [];
var submenus = {};
-
-var features = .feature;
-
+var i = 0;
for (var key in features) {
// in case we encounter .svn
if (key.charAt(0) == '.') continue;
-var m = .demoitem(vexi.box);
-m.load = features[key];
+
+sortedFeatures[i] = .demoitem(vexi.box);
+sortedFeatures[i].load = features[key];
var n = features[key]..name;
-m.text = n ? n : key;
-var s = features[key]..category;
-if (s == Test Cases)
- m.testcase = true;
-if (!s) s = Default;
+sortedFeatures[i].text = n ? n : key;
+
+var cat = features[key]..category;
+if (cat == Test Cases)
+sortedFeatures[i].testcase = true;
+if (!cat)
+cat = Default;
+sortedFeatures[i].category = cat;
+i++;
+}
+
+sortedFeatures.sort(thisbox.sortfn);
+
+for(var i = 0; sortedFeatures.length i; i++) {
+var m = sortedFeatures[i];
+var s = m.category;
if (!submenus[s]) {
submenus[s] = wi.submenu(vexi.box);
submenus[s].text = s;
@@ -75,5 +97,10 @@
submenus[s][0] = m;
}
-/wi:toolbar
+// not reference again, good style given demomenus lives until the
demo is closed
+features = null;
+sortedFeatures = null;
+submenus = null;
+
+/wi:toolbar
/vexi
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
--
SOLARIS 10 is the OS for Data Centers - provides features such as DTrace,
Predictive Self Healing and Award Winning ZFS. Get Solaris 10 NOW
http://p.sf.net/sfu/solaris-dev2dev
___
Vexi-svn mailing list
Vexi-svn@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/vexi-svn