private void recursiveAddFolder(final Object folder, final Object subFolder) { if (folder != null) { recursiveAddFolder(fsm.getParent(folder), folder); } if (curFolderGroup.getNumChildren() > 0) { Label l = new Label(fsm.getSeparator()); l.setTheme("pathseparator"); curFolderGroup.add(l); } String name = getFolderName(folder); if (name.endsWith(fsm.getSeparator())) { name = name.substring(0, name.length() - 1); } Button btn = new Button(name); btn.addCallback( new Runnable() { public void run() { if (setCurrentFolder(folder)) { selectFolder(subFolder); } listbox.requestKeyboardFocus(); } }); btn.setTheme("pathbutton"); curFolderGroup.add(btn); }