I'm trying to move selected items from one tree to another. Items are disappearing from the source tree, but not getting added to the destination tree. Looks like once the tree item is rendered, it is not getting added to the new TreeItemUI element anymore, even if it was previously removed from another tree.
This is the sample code. It does not look really pretty, but illustrates the issue.
Code:
public void onModuleLoad() {
Viewport viewport = new Viewport();
viewport.setLayout(new FitLayout());
HorizontalPanel mainPanel = new HorizontalPanel();
final Tree<SingleTreeSelectionModel> source = new Tree<SingleTreeSelectionModel>();
TreeItem item = new TreeItem("Move this item");
item.setId("id0");
source.getRootItem().add(item);
source.setSize(200, 200);
mainPanel.add(source);
Button move = new Button("Move");
mainPanel.add(move,
new TableData(Style.HorizontalAlignment.CENTER, Style.VerticalAlignment.MIDDLE));
final Tree<SingleTreeSelectionModel> dest = new Tree<SingleTreeSelectionModel>();
dest.setItemIconStyle("icon-music");
dest.setSize(200, 200);
mainPanel.add(dest);
move.addListener(Events.Select, new Listener<ComponentEvent>(){
public void handleEvent(ComponentEvent be) {
TreeItem item = source.getItemById("id0");
source.remove(item);
dest.getRootItem().add(item);
}
});
viewport.add(mainPanel);
viewport.layout(true);
RootPanel.get().add(viewport);
}