mirror of
https://github.com/jorgevasquezp/AFX_yTools.git
synced 2026-09-16 19:22:42 +00:00
146 lines
3.6 KiB
React
146 lines
3.6 KiB
React
#include "../yScripts/y_JSExtensions.jsx";
|
||
function yFlattenSelectedFolderContentsTool()
|
||
{
|
||
this.info =
|
||
{
|
||
name : "yFlatten",
|
||
version : 0.11,
|
||
stage : "alpha",
|
||
description : "Set the Folder Structure for a new Project",
|
||
url : "yorchnet.com"
|
||
};
|
||
this.appearence =
|
||
{
|
||
buttonHeight : 30,
|
||
buttonWidth : 126
|
||
};
|
||
this.resources =
|
||
{
|
||
icon : new File('yNet.png'),
|
||
};
|
||
this.init = function init()
|
||
{
|
||
//alert("my name is:" + this.info.name);
|
||
this.btnLauyout =
|
||
"button\
|
||
{\
|
||
preferredSize: ['" + this.appearence.buttonWidth + "','" + this.appearence.buttonHeight + "'],\
|
||
text:'" + this.info.name + "',\
|
||
helpTip:'" + this.info.description + "'\
|
||
}";
|
||
|
||
this. res =
|
||
"window\
|
||
{\
|
||
type:'palette',\
|
||
text:'" + this.info.name + ' ' + this.info.ver + ' ' + this.info.stage + "',\
|
||
info: Group \
|
||
{\
|
||
alignment:['center','bottom'],\
|
||
icon: Image \
|
||
{\
|
||
icon:'" + this.resources.icon.path + '/' + this.resources.icon.name + "',\
|
||
preferredSize: [15, 18]\
|
||
},\
|
||
website: StaticText\
|
||
{\
|
||
text:'" + this.info.url + "',\
|
||
alignment:['fill','center']\
|
||
},\
|
||
}\
|
||
}";
|
||
}
|
||
this.createUI = function createUI()
|
||
{
|
||
|
||
|
||
this.window = new Window ( this.res );
|
||
this.window.show() ;
|
||
}
|
||
|
||
this.getSelectedProjectItems = function getSelectedProjectItems (){
|
||
var items = [];
|
||
var p = app.project;
|
||
for ( var i = 1 ; i <= p.numItems ; i ++ ){
|
||
var item = p.item(i);
|
||
if ( item.selected ){
|
||
items.push(item);
|
||
}
|
||
}
|
||
return items;
|
||
}
|
||
this.getAllItems = function getAllItems( folderItem ){
|
||
|
||
var items = [];
|
||
var folders = [];
|
||
|
||
for ( var i = 1 ; i <= folderItem.numItems ; i ++ ){
|
||
var item = folderItem.item(i);
|
||
|
||
if ( (item.typeName != "Folder") ){
|
||
//if ( (isInArray( items ,item )) == false ){
|
||
items.push( item );
|
||
//}
|
||
}else{
|
||
var new_items = yFlattenSelectedFolderContentsTool().getAllItems(item);
|
||
for ( var j = 0 ; j < new_items.length ; j ++ ){
|
||
new_item = new_items[j];
|
||
//if ( (isInArray ( new_item )) == false ){
|
||
items.push ( new_item );
|
||
//}
|
||
}
|
||
}
|
||
}
|
||
return items
|
||
}
|
||
this.flatten = function flatten( items, root ){
|
||
app.beginUndoGroup("Flatten Selected Folder Contents")
|
||
for ( var i = 0; i < items.length ; i ++){
|
||
item = items[i];
|
||
item.parentFolder = root;
|
||
}
|
||
app.endUndoGroup()
|
||
purgeEmptyFolders();
|
||
return
|
||
}
|
||
this.purgeEmptyFolders = function purgeEmptyFolders(){
|
||
//app.beginUndoGroup("Purge Empty Folders")
|
||
var emptyFolders = [];
|
||
|
||
var p = app.project;
|
||
for ( var i = p.numItems ; i >= 1 ; i -- ){
|
||
item = p.item(i);
|
||
if ( item.typeName == "Folder" ){
|
||
if ( item.numItems <= 0 ){
|
||
item.remove();
|
||
}
|
||
}
|
||
}
|
||
|
||
//app.endUndoGroup()
|
||
}
|
||
this.yFlattenSelectedFolderContents = function yFlattenSelectedFolderContents()
|
||
{
|
||
//alert("is this working");
|
||
//app.beginUndoGroup(yFlattenSelectedFolderContentsTool().info.description);
|
||
yFlattenSelectedFolderContentsTool().flatten( yFlattenSelectedFolderContentsTool().getAllItems( yFlattenSelectedFolderContentsTool().getSelectedProjectItems()[0] ) , yFlattenSelectedFolderContentsTool().getSelectedProjectItems()[0] );
|
||
//app.endUndoGroup();
|
||
}
|
||
|
||
this.activate = this.yFlattenSelectedFolderContents;
|
||
|
||
this.init();
|
||
return this;
|
||
}
|
||
|
||
//CHECKS that the toolbox exists, and if it doesn´t it runs the script on its own.
|
||
if (typeof(YTB)=='undefined')
|
||
{
|
||
yFlattenSelectedFolderContentsTool = new yFlattenSelectedFolderContentsTool();
|
||
yFlattenSelectedFolderContentsTool.activate();
|
||
}
|
||
else
|
||
{
|
||
yFlattenSelectedFolderContentsTool = YTB.addTool(new yFlattenSelectedFolderContentsTool());
|
||
}
|