selectPath.cs 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. function SelectAssetPath::onWake(%this)
  2. {
  3. }
  4. //SelectAssetPath.showDialog();
  5. function SelectAssetPath::showDialog(%this, %startingPath, %callback)
  6. {
  7. if(!isObject(%this.dirHandler))
  8. %this.dirHandler = makedirectoryHandler(SelectAssetPath-->folderTree, "Core,Tools,cache,shaderCache", "");
  9. SelectAssetPath-->folderTree.clear();
  10. SelectAssetPath-->folderTree.buildIconTable( ":tools/classIcons/Prefab:tools/classIcons/Prefab" @
  11. ":tools/classIcons/SimSet:tools/classIcons/SimSet");
  12. %this.dirHandler.currentPath = %startingPath;
  13. %this.callback = %callback;
  14. %dataItem = SelectAssetPath-->folderTree.insertItem(0, "Data");
  15. %this.dirHandler.loadFolders("Data", %dataItem);
  16. %this.dirHandler.expandTreeToAddress(%startingPath);
  17. %id = %this.dirHandler.getFolderTreeItemFromAddress(%startingPath);
  18. %this.dirHandler.treeCtrl.clearSelection();
  19. %this.dirHandler.treeCtrl.selectItem(%id);
  20. Canvas.pushDialog(SelectAssetPath);
  21. }
  22. function selectAssetPathTree::onSelect(%this, %itemId)
  23. {
  24. if(%itemId == 1)
  25. //can't select root
  26. return;
  27. SelectAssetPath.selectedTreeItem = %itemId;
  28. }
  29. function SelectAssetPath::selectPath(%this)
  30. {
  31. //do callback
  32. %selectedId = %this.selectedTreeItem;
  33. %selectedPath = %this-->folderTree.getItemValue(%selectedId) @ "/" @ %this-->folderTree.getItemText(%selectedId);
  34. if(%this.callback !$= "")
  35. {
  36. eval( "" @ %this.callback @ "(\"" @ %selectedPath @ "\");");
  37. }
  38. Canvas.popDialog(SelectAssetPath);
  39. }
  40. function SelectAssetPath::newFolder(%this)
  41. {
  42. AssetBrowser_newFolderNameTxt.text = "NewFolder";
  43. Canvas.pushDialog(AssetBrowser_newFolder);
  44. }