Skip to main content
Participating Frequently
December 31, 2019
Question

Indesgin - collapse treeview

  • December 31, 2019
  • 2 replies
  • 1456 views

Hello everobody,

I have build a Window with a TreeView and 2 radio buttons.

1 radio button to expand all nodes // 1 radio button to collapse all nodes

OnClick on each radio button called a specific recursive function that expand or collapse my tree : 

// Expand all treeview nodes 
function expand_tree(my_treeview){
    my_treeview.expanded = true;
    var branches = my_treeview.items;
    for (var i = 0; i < branches.length; i++) {
        if (branches[i].type == 'node') {
            expand_tree (branches[i]);
        }
    }
}
// Collapse all treeview nodes 
function collapse_tree(my_treeview){
    my_treeview.expanded = false;
    var branches = my_treeview.items;
    for (var i = 0; i < branches.length; i++) {
        if (branches[i].type == 'node') {
            collapse_tree (branches[i]);
        }
    }
}

 

expand_tree function expand all nodes into my tree

But, collapse_tree function seems to do nothing…

I think my_treeview.expanded = false is the problem. 

I test it with my_treeview.collapsed = true but unsuccessfully

Do you have any idea ?

Thank you

This topic has been closed for replies.

2 replies

Community Expert
January 7, 2020

Hi Stéphane,

think, we are still lucky with tree view and InDesign.

With PhotoShop it's not available anymore since Flash was removed:

 

February 15, 2017

Photoshop UI toolkit for plug-ins and scripts

Known issues

 

The Flash Player widget is no longer supported. It is not possible to play SWF/Flash/Flex files through the script UI any longer.
Treeview widget is not supported.
Graphics drawing is not supported on Checkbox and Radiobutton widgets.
Button background color cannot be changed.
Font styles on text are not supported

 

https://helpx.adobe.com/photoshop/using/ScriptUI.html#Knownissues

 

Regards,
Uwe Laubender

( ACP )

 

// EDITED: ADDED DETAILS

tjprodAuthor
Participating Frequently
January 7, 2020

Doesn't smell right for a fix…

tjprodAuthor
Participating Frequently
January 6, 2020

Up please ^^

Nobody with same problem ? 

BarlaeDC
Community Expert
Community Expert
January 7, 2020

Hi,

 

I cannot see any obvious problem, are you able to share your whole project so that we have a place to start from?

 

Regards

 

Malcolm

tjprodAuthor
Participating Frequently
January 7, 2020

Hi Malcom,

My "sample" code with problem on collapse Treeview.

Thank you in advance

Stéphane

 

#targetengine 'testengine1'

// DIALOG
// ======
var dialog = new Window('palette','My palett'); 
    dialog.text = "Dialog"; 
    dialog.preferredSize.width = 500; 
    dialog.orientation = "column"; 
    dialog.alignChildren = ["left","top"]; 
    dialog.spacing = 10; 
    dialog.margins = 16; 

// GROUP1
// ======
var group1 = dialog.add("group", undefined, {name: "group1"}); 
    group1.orientation = "row"; 
    group1.alignChildren = ["left","center"]; 
    group1.spacing = 10; 
    group1.margins = 0; 

// TREEVIEW1
// =========
var treeview1 = group1.add("treeview", [0,0,500,200], undefined, {name: "treeview1"}); 

var treeitem1 = treeview1.add("node", "TreeItem"); 
var treeitem2 = treeitem1.add("node", "TreeItem"); 
var treeitem3 = treeitem2.add("item", "TreeItem"); 
var treeitem4 = treeitem2.add("item", "TreeItem"); 
var treeitem5 = treeitem1.add("item", "TreeItem"); 
var treeitem6 = treeview1.add("node", "TreeItem"); 
var treeitem7 = treeitem6.add("item", "TreeItem"); 
var treeitem8 = treeitem6.add("item", "TreeItem"); 
var treeitem9 = treeview1.add("item", "TreeItem"); 
var treeitem10 = treeview1.add("node", "TreeItem"); 
var treeitem11 = treeitem10.add("item", "TreeItem"); 
var treeitem12 = treeitem10.add("node", "TreeItem"); 
var treeitem13 = treeitem12.add("item", "TreeItem"); 
var treeitem14 = treeitem12.add("node", "TreeItem"); 
var treeitem15 = treeitem14.add("item", "TreeItem"); 
var treeitem16 = treeitem14.add("item", "TreeItem"); 
var treeitem17 = treeitem10.add("item", "TreeItem"); 

// FOOTER_GROUP
// ============
var footer_group = dialog.add("group", undefined, {name: "footer_group"}); 
    footer_group.preferredSize.width = 500; 
    footer_group.orientation = "row"; 
    footer_group.alignChildren = ["right","center"]; 
    footer_group.spacing = 10; 
    footer_group.margins = 0; 

// RB_GROUP
// ========
var RB_group = footer_group.add("group", undefined, {name: "RB_group"}); 
    RB_group.preferredSize.width = 400; 
    RB_group.orientation = "row"; 
    RB_group.alignChildren = ["left","center"]; 
    RB_group.spacing = 10; 
    RB_group.margins = 0; 

var RB_expand = RB_group.add("radiobutton", undefined, undefined, {name: "RB_expand"}); 
    RB_expand.text = "Expand"; 

var RB_collapse = RB_group.add("radiobutton", undefined, undefined, {name: "RB_collapse"}); 
    RB_collapse.text = "Collapse"; 
    RB_collapse.value = true;

    RB_expand.onClick = function (){ expand_tree(treeview1); }
    RB_collapse.onClick = function (){ collapse_tree(treeview1); }

// FOOTER_GROUP
// ============
var button1 = footer_group.add("button", undefined, undefined, {name: "close"}); 
    button1.text = "Close"; 
    button1.justify = "right"; 
    button1.onClick = function(){ dialog.close(); }

dialog.show();


// Expand all treeview nodes 
function expand_tree(my_treeview){
    my_treeview.expanded = true;
    var branches = my_treeview.items;
    for (var i = 0; i < branches.length; i++) {
        if (branches[i].type == 'node') {
            expand_tree (branches[i]);
        }
    }
}
// Collapse all treeview nodes 
function collapse_tree(my_treeview){
    my_treeview.expanded = false;
    var branches = my_treeview.items;
    for (var i = 0; i < branches.length; i++) {
        if (branches[i].type == 'node') {
            collapse_tree (branches[i]);
        }
    }
}