Hi.
Any idea why generateTreeViewItems funcion is so slow? It takes about 2 seconds to generate treeview once editText field is active. Is it CC2015 or did I do something wrong here?
Thanks.
var myObjectList = { "Group 1" : [ { "name" : "FUI Box Combo", "funck": "FUIboxCombo" }, { "name" : "FUI Combo 1", "funck": "FUIcombo1" }, { "name" : "FUI Combo 2", "funck": "FUIcombo2" }, { "name" : "FUI Combo 3", "funck": "FUIcombo3" }, { "name" : "FUI Combo 4", "funck": "FUIcombo4" }, { "name" : "FUI Combo 5", "funck": "FUIcombo5" }, { "name" : "FUI Combo 6", "funck": "FUIcombo6" }, { "name" : "FUI new to 1.5", "funck": "FUInewTo1_5" } ], "Group 2" : [ { "name" : "BG Crosshairs", "funck": "BGcrosshairs" }, { "name" : "BG CurveSquiggles", "funck": "BGcurveSquiggles" }, { "name" : "BG Diag", "funck": "BGdiag" }, { "name" : "BG Diag Boxed", "funck": "BGdiagBoxed" }, { "name" : "BG Fat Stripes", "funck": "BGfatStripes" }, { "name" : "BG Hex", "funck": "BGhex" }, { "name" : "BG light grid", "funck": "BGlightGrid" }, { "name" : "BG lines", "funck": "BGlines" }, { "name" : "BG Ls", "funck": "BGls" }, { "name" : "BG opengrid", "funck": "BGopengrid" }, { "name" : "BG step squares", "funck": "BGstepSquares" }, { "name" : "BG tri grid", "funck": "BGtriGrid" }, { "name" : "BG waves", "funck": "BGwaves" }, { "name" : "BG zippy squares", "funck": "BGzippySquares" } ], "Group 3" : [ { "name" : "Blocks", "funck": "blocks" }, { "name" : "Boingy-box", "funck": "boingyBox" }, { "name" : "Bracket Box", "funck": "bracketBox" }, { "name" : "Corner Box", "funck": "cornerBox" }, { "name" : "Fake Screen", "funck": "fakeScreen" }, { "name" : "Flashy Table", "funck": "flashyTable" }, { "name" : "OS Frame", "funck": "OSframe" }, { "name" : "Periodic Table", "funck": "periodicTable" }, { "name" : "PhotoFrame 1", "funck": "photoFrame1" }, { "name" : "Point Box", "funck": "pointBox" }, { "name" : "Pointless Box", "funck": "pointlessBox" }, { "name" : "Square Dance", "funck": "squareDance" }, { "name" : "Target Box", "funck": "targetBox" }, { "name" : "Techy Frame", "funck": "techyFrame" }, { "name" : "Triangle Box", "funck": "triangleBox" } ], "Group 3" : [ { "name" : "blips", "funck": "blips" }, { "name" : "Bursty", "funck": "bursty" }, { "name" : "Dot belt", "funck": "dotBelt" }, { "name" : "Earthquake", "funck": "earthquake" }, { "name" : "Fig8. v1", "funck": "fig8v1" }, { "name" : "Fig8. v2", "funck": "fig8v2" }, { "name" : "Fig8. v3", "funck": "fig8v3" }, { "name" : "Fizzy data thing", "funck": "fizzyDataThing" }, { "name" : "Just some dots, relax", "funck": "justSomeDotsRelax" }, { "name" : "Knightrider scan", "funck": "knightriderScan" }, { "name" : "Shoop Shoop lines", "funck": "shoopShoopLines" }, { "name" : "Wobbly", "funck": "wobbly" } ], "Group 4" : [ { "name" : "Elaborate line graph", "funck": "elaborateLineGraph" }, { "name" : "Flickery Pie Slices", "funck": "flickeryPieSlices" }, { "name" : "Meaningless Line Graph", "funck": "meaninglessJerkyLineGraph" }, { "name" : "Nondescript Barchart", "funck": "nondescriptBarchart" }, { "name" : "Overactive line graph", "funck": "overactiveLineGraph" }, { "name" : "RGB Curves", "funck": "RGBCurves" }, { "name" : "Sine Wave", "funck": "sineWave" }, { "name" : "Snappy Line Graph", "funck": "snappyLineGraph" }, { "name" : "Stupid line graph", "funck": "stupidLineGraph" } ], "Group 5" : [ { "name" : "After Effects (kinda)", "funck": "afterEffectsKinda" }, { "name" : "Almost DNA", "funck": "almostDNA" }, { "name" : "Apple Loading", "funck": "appleLoading" }, { "name" : "Atom", "funck": "atom" }, { "name" : "Bunch of knobs", "funck": "bunchOfKnobs" }, { "name" : "Calendar", "funck": "calendar" }, { "name" : "Chevron thing", "funck": "chevronThing" }, { "name" : "Clock", "funck": "clock" }, { "name" : "Complicated Compass", "funck": "complicatedCompass" }, { "name" : "Crap Siri", "funck": "crapSiri" }, { "name" : "Deleting Files", "funck": "deletingFiles" }, { "name" : "Fingerprint", "funck": "fingerprint" }, { "name" : "Flicky Squares", "funck": "flickySquares" }, { "name" : "Flux Capacitor", "funck": "fluxCapacitor" }, { "name" : "Kitt Voice", "funck": "kittVoice" }, { "name" : "Label", "funck": "label" }, { "name" : "Loading (line)", "funck": "loadingLine" }, { "name" : "Plus", "funck": "plus" }, { "name" : "Radar", "funck": "radar" }, { "name" : "Segment thing", "funck": "segmentThing" }, { "name" : "Skype loader", "funck": "skypeLoader" }, { "name" : "Speed thing", "funck": "speedThing" }, { "name" : "Spiral", "funck": "spiral" }, { "name" : "Stay on Target", "funck": "stayOnTarget" }, { "name" : "Techy Spinny Blocks", "funck": "techySpinnyBlocks" }, { "name" : "Temperature thing", "funck": "temperatureThing" }, { "name" : "Warning?", "funck": "warning" }, { "name" : "Wobbly Hexagons", "funck": "wobblyHexagons" } ], "Group 6" : [ { "name" : "Compression Wave", "funck": "compressionWave" }, { "name" : "Connector things", "funck": "connectorThings" }, { "name" : "Diagram indicator", "funck": "diagramIndicator" }, { "name" : "Flickery ********", "funck": "flickeryBullshit" }, { "name" : "Hex thing", "funck": "hexThing" }, { "name" : "Hex thing alt", "funck": "hexThingAlt" }, { "name" : "LineUp", "funck": "lineUp" }, { "name" : "Scanny grid", "funck": "scannyGrid" }, { "name" : "Sciencey looking Analysis", "funck": "scienceyLookingAnalysis" }, { "name" : "Sciencey looking Analysis 2", "funck": "scienceyLookingAnalysis2" }, { "name" : "Triangle", "funck": "triangle" } ], "Group 7" : [ { "name" : "Cafinated Wavey Sliders", "funck": "cafinatedWaveySliders" }, { "name" : "Delightful Tabs", "funck": "delightfulTabs" }, { "name" : "Different sliders", "funck": "differentSliders" }, { "name" : "Graphic EQ", "funck": "graphicEQ" }, { "name" : "Meaningless Sliders", "funck": "meaninglessSliders" }, { "name" : "Side2side", "funck": "side2side" }, { "name" : "Sideways", "funck": "sideways" }, { "name" : "Voice Synth", "funck": "voiceSynth" } ], "Group 8" : [ { "name" : "3D Spinner", "funck": "spinner3D" }, { "name" : "Bouncy rings", "funck": "bouncyRings" }, { "name" : "Clumps?", "funck": "clumps" }, { "name" : "Digital Corona", "funck": "digitalCorona" }, { "name" : "Dot Party", "funck": "dotParty" }, { "name" : "Flippy rings", "funck": "flippyRings" }, { "name" : "Interesting dots + lines", "funck": "interestingDotsLines" }, { "name" : "Interesting Triangles", "funck": "interestingTriangles" }, { "name" : "Jiggly Balls", "funck": "jigglyBalls" }, { "name" : "Misc Rotating thing", "funck": "miscRotatingThing" }, { "name" : "Nice but Useless circle", "funck": "niceButUselessCircle" }, { "name" : "Overanimated Dial", "funck": "overanimatedDial" }, { "name" : "Overanimated Rings", "funck": "OveranimatedRings" }, { "name" : "Simple Dashy Circle", "funck": "simpleDashyCircle" }, { "name" : "Slices", "funck": "slices" }, { "name" : "Spinny Orb with Crosses", "funck": "spinnyOrbWithCrosses" }, { "name" : "Strange Concentric Circles", "funck": "strangeConcentricCircles" }, { "name" : "Undulating thing 1", "funck": "undulatingThing1" }, { "name" : "Undulating thing 2", "funck": "undulatingThing2" }, { "name" : "Undulating thing 3", "funck": "undulatingThing3" }, { "name" : "Woop-Woop", "funck": "woopWoop" }, { "name" : "Zoomy spiral", "funck": "zoomySpiral" } ] } var win = new Window("palette", "Settings", undefined, {resizeable:true}); //dialog win.preferredSize = [150, 300]; var myGroup = win.add("group"); myGroup.alignment = ["fill", "fill"]; myGroup.orientation = "column"; var mySearch = myGroup.add("edittext", undefined, ""); mySearch.alignment = ["fill", "top"]; var myTree = myGroup.add("treeview", undefined, [], {multiSelect:true}); generateTreeItems(myTree, myObjectList); myTree.alignment = ["fill", "fill"]; mySearch.onChanging = function() { var filteredItems = findItems(myObjectList, mySearch.text.toLowerCase()); myTree.removeAll(); generateTreeItems(myTree, filteredItems); for (var i = 0; i < myTree.items.length; i ++) { if (mySearch.text !== "") { myTree.children[i].expanded = true } } } function findItems(myObject, inputString){ var newObject = {}; for (var category in myObject) { for (var i = 0; i < myObject[category].length; i ++) { if (myObject[category][i]["name"].toLowerCase().match(inputString)) { if (!newObject.hasOwnProperty(category)) { newObject[category] = []; } newObject[category].push(myObject[category][i]); } } } return newObject } function generateTreeItems(myTree2, myObject) { for (var category in myObject) { var tempNode = myTree2.add("node", category); for (var animal in myObject[category]) { tempNode.add("item", myObject[category][animal]["name"]); } } } win.onResizing = win.onResize = function () { this.layout.resize(); }; win.show ();