private static void refreshTree() { final List<String> openedNodes = new ArrayList<String>(); TreeNode[] allNodes = inputQueueTree.getData().getAllNodes(); for (int i = 0; i < allNodes.length; i++) { if (inputQueueTree.getData().isOpen(allNodes[i])) { openedNodes.add(allNodes[i].getAttributeAsString("path")); } } final ListGridRecord selectedRecord = inputQueueTree.getSelectedRecord(); inputQueueTree.fetchData( null, new DSCallback() { @Override public void execute(DSResponse response, Object rawData, DSRequest request) { inputQueueTree.openSubfolders(openedNodes, null, selectedRecord); } }); }