Organizing nodes in the desktop window

How to create an empty folder at the root of a window

     VisualFolder newFolder = new VisualFolder();
     newFolder.setDisplayName("myName");
     VisualFolder rootFolder =  ((AbstractViewerWindow) window).getRootFolder();
     rootFolder.addNode(newFolder);

How to move a visual to another folder

     IVisual visual = ...
     VisualFolder targetVisualFolder = ...
     VisualFolder currentVisualFolder = visual.getParentFolder();
     targetVisualFolder.addNode(0, visual);
     currentVisualFolder.removeNode(visual);

In the default case where the visual is at the root of its window, visual.getParentFolder() returns the same object as ((AbstractViewerWindow) window).getRootFolder()

How to move a visual within its own folder

IVisual visual = ...
VisualFolder visualFolder = visual.getParentFolder();
int pos = visualFolder.indexOf(visual);
visualFolder.moveNode(0, visual); // moves to the top
visualFolder.moveNode(visualFolder.getNodes().length - 1, visual); // moves to the bottom
visualFolder.moveNode(pos + 1, visual); // moves down one position