From cf1cbab9b6453da178b63f1e3b9e5fb279780362 Mon Sep 17 00:00:00 2001 From: =?utf8?q?St=C3=A9phane=20Mottelet?= Date: Fri, 24 Jan 2020 15:57:02 +0100 Subject: [PATCH] [ui_data] prevent spurious FileBrowser ScrollBar reset after 93c93ccf Also fix missing semicolon in chdir command used by navigation arrows. Change-Id: I1be0491c0402c8db4231217f245cc2202449621a --- .../filebrowser/ScilabFileBrowserHistory.java | 2 +- .../ui_data/filebrowser/SwingScilabTreeTable.java | 12 +++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/scilab/modules/ui_data/src/java/org/scilab/modules/ui_data/filebrowser/ScilabFileBrowserHistory.java b/scilab/modules/ui_data/src/java/org/scilab/modules/ui_data/filebrowser/ScilabFileBrowserHistory.java index a39fc49..6e1be80 100644 --- a/scilab/modules/ui_data/src/java/org/scilab/modules/ui_data/filebrowser/ScilabFileBrowserHistory.java +++ b/scilab/modules/ui_data/src/java/org/scilab/modules/ui_data/filebrowser/ScilabFileBrowserHistory.java @@ -197,7 +197,7 @@ public class ScilabFileBrowserHistory { private static final void chDir(String path) { File f = new File(path); if (f.exists() && f.isDirectory() && f.canRead()) { - InterpreterManagement.requestScilabExec("chdir('" + path + "')"); + InterpreterManagement.requestScilabExec("chdir('" + path + "');"); } } diff --git a/scilab/modules/ui_data/src/java/org/scilab/modules/ui_data/filebrowser/SwingScilabTreeTable.java b/scilab/modules/ui_data/src/java/org/scilab/modules/ui_data/filebrowser/SwingScilabTreeTable.java index 45695bc..9810ba6 100644 --- a/scilab/modules/ui_data/src/java/org/scilab/modules/ui_data/filebrowser/SwingScilabTreeTable.java +++ b/scilab/modules/ui_data/src/java/org/scilab/modules/ui_data/filebrowser/SwingScilabTreeTable.java @@ -91,13 +91,14 @@ public class SwingScilabTreeTable extends JTable { private SwingWorker dirRefresher; private ScilabFileBrowserModel model; + private boolean resetScrollBar = true; private Method isLocationInExpandControl; protected ScilabTreeTableCellRenderer tree; protected ScilabFileSelectorComboBox combobox; protected ScilabFileBrowserHistory history; - + /** * Default Constructor * @param treeTableModel the tree table model @@ -318,10 +319,12 @@ public class SwingScilabTreeTable extends JTable { if (model != null) { File f = new File(baseDir); if (cancelled || (f.exists() && f.isDirectory() && f.canRead())) { + boolean sameDir = baseDir.equals(model.getBaseDir()); tree.setModel(null); - if (addInHistory) { + if (!sameDir && addInHistory) { history.addPathInHistory(baseDir); } + resetScrollBar = !sameDir; model.setBaseDir(baseDir, this); } } @@ -348,7 +351,10 @@ public class SwingScilabTreeTable extends JTable { tree.setLargeModel(true); TreePath path = new TreePath(model.getRoot()); tree.collapsePath(path); - ((JScrollPane) SwingUtilities.getAncestorOfClass(JScrollPane.class, this)).getVerticalScrollBar().setValue(0); + if (resetScrollBar) { + ((JScrollPane) SwingUtilities.getAncestorOfClass(JScrollPane.class, this)).getVerticalScrollBar().setValue(0); + } + resetScrollBar = true; tree.expandPath(path); if (getRowCount() >= 1) { repaint(tree.getRowBounds(0)); -- 1.7.9.5