X-Git-Url: https://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Ffanfix_swing%2Fgui%2Fbrowser%2FBasicTab.java;h=86b4a02062ff4da9cf16a2bfa35893fbbedbc4ea;hb=d6c8579cb5debbdf7657d405e6529ba324903fcd;hp=e9e8edc018f8f4e7880affb2c6c10bc10eaa32a7;hpb=2a03ecc0ae449a05763db2d47935a4c256cd092f;p=fanfix.git diff --git a/src/be/nikiroo/fanfix_swing/gui/browser/BasicTab.java b/src/be/nikiroo/fanfix_swing/gui/browser/BasicTab.java index e9e8edc..86b4a02 100644 --- a/src/be/nikiroo/fanfix_swing/gui/browser/BasicTab.java +++ b/src/be/nikiroo/fanfix_swing/gui/browser/BasicTab.java @@ -98,7 +98,20 @@ public abstract class BasicTab extends ListenerPanel { } public void reloadData() { - final TreeSnapshot snapshot = new TreeSnapshot(tree); + final TreeSnapshot snapshot = new TreeSnapshot(tree) { + @Override + protected boolean isSamePath(TreePath oldPath, TreePath newPath) { + String oldString = oldPath.toString(); + if (oldString.endsWith("/]")) + oldString = oldString.substring(0, oldString.length() - 2) + "]"; + + String newString = newPath.toString(); + if (newString.endsWith("/]")) + newString = newString.substring(0, newString.length() - 2) + "]"; + + return oldString.equals(newString); + } + }; SwingWorker>, Integer> worker = new SwingWorker>, Integer>() { @Override protected Map> doInBackground() throws Exception { @@ -114,8 +127,6 @@ public abstract class BasicTab extends ListenerPanel { // TODO: error } - // TODO: update is flickering... - root.removeAllChildren(); totalCount = loadData(root, data, searchBar.getText()); ((DefaultTreeModel) tree.getModel()).reload(); @@ -205,8 +216,7 @@ public abstract class BasicTab extends ListenerPanel { } String display = value == null ? "" : value.toString(); - if (!display.isEmpty()) - display = keyToDisplay(display); + display = keyToDisplay(display); return super.getTreeCellRendererComponent(tree, display, selected, expanded, leaf, row, hasFocus); }