Quantcast
Channel: Adobe Community : Discussion List - After Effects Scripting
Viewing all articles
Browse latest Browse all 2143

generating TreeView is very slow

$
0
0

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 ();

Viewing all articles
Browse latest Browse all 2143

Trending Articles