cancel
Showing results for 
Search instead for 
Did you mean: 

How to iterate through recursion node?

DeeptiChavare
Active Participant
0 Kudos

I have a recursion node. I want to access all elements added to the node.

How can i accomplish this?

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

At runtime, the recursion node has vanished. Just traverse the context like you do for non-singleton child nodes.

Example: A node for storing a list of folders.


Folders (node)
-- Name (attribute)
-- Files (node, singleton=false)
---- Name (attribute)
-- Subfolders (recursion node --> Folders)

void traverse(IFoldersElement folder)
{
  // traverse files in this folder
  for (int i = 0; i < folder.nodeFiles().size(); ++i)
  {
    IFilesElement file = folder.nodeFiles().getFilesElementAt(i);
    ...
  }
  // traverse sub folders
  for (int i = 0; i < folder.nodeFolders().size(); ++i)
  {
    IFoldersElement subfolder = folder.nodeFolders().getFoldersElementAt(i);
    traverse(subfolder);
  }
}

Armin

Answers (2)

Answers (2)

Former Member
0 Kudos

Hi,

Iterator it = wdContext.nodeRecurisveNode().iterateChildNodes();

while(it.hasNext()){
IPrivateXXXView.IRecursiveNodeNode childnode = (IPrivateXXXView.IRecursiveNodeNode)it.next();
int size=wdContext.nodeRecursiveNode().size();
for(int i=0;i<size;i++){
wdContext.nodeRecursiveNode().getRecursiveElementAt(i).get attrib1();
wdContext.nodeRecursiveNode().getRecursiveElementAt(i).get attrib2();

}
}

Regards,

Naga

Former Member
0 Kudos

Hi deepti..

Try this code..

Public void buildRecursiveNodes ()

{

//Get reference to statically defined FileSystemNode

IFileSystemNodeNode fsNode = wdContext.nodeFileSystemNode ();

//Perform 4 levels of recursion

For(int i = 0; I <= 4; i ++){

//Create an element in the current FileSystemNode

IFileSystemNodeElement fsNodeEl = fsNode.createFileSystemNodeElement();

//Set the file name based on the recursion level

fsNodeEl.setName("File at level " + i );

//Bind the element to the node collection

fsNode.bind(fsNodeEl);

//Change fsNode to refer to its own recursive child node

fsNode = fsNode.nodeSubdirectory();

}

}

Urs GS