This is an automated email from the ASF dual-hosted git repository.
hansva pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hop.git
The following commit(s) were added to refs/heads/master by this push:
new 9356ec1e58 Add file history to vfs-dialog, fixes #2222
new a61e8d6fad Merge pull request #3101 from
hansva/#2222-remember-filebrowser-location
9356ec1e58 is described below
commit 9356ec1e58e39f6e49ca8d413cebc96e3ce74728
Author: Hans Van Akelyen <[email protected]>
AuthorDate: Mon Jul 24 11:54:46 2023 +0200
Add file history to vfs-dialog, fixes #2222
---
.../hop/projects/xp/HopGuiFileDefaultFolder.java | 58 +++++++++++++++++-----
.../main/java/org/apache/hop/ui/core/PropsUi.java | 2 -
2 files changed, 45 insertions(+), 15 deletions(-)
diff --git
a/plugins/misc/projects/src/main/java/org/apache/hop/projects/xp/HopGuiFileDefaultFolder.java
b/plugins/misc/projects/src/main/java/org/apache/hop/projects/xp/HopGuiFileDefaultFolder.java
index cf6ad10137..eaf5049e5c 100644
---
a/plugins/misc/projects/src/main/java/org/apache/hop/projects/xp/HopGuiFileDefaultFolder.java
+++
b/plugins/misc/projects/src/main/java/org/apache/hop/projects/xp/HopGuiFileDefaultFolder.java
@@ -17,42 +17,74 @@
package org.apache.hop.projects.xp;
+import java.util.ArrayList;
import org.apache.hop.core.extension.IExtensionPoint;
import org.apache.hop.core.logging.ILogChannel;
+import org.apache.hop.core.logging.LogChannel;
import org.apache.hop.core.util.StringUtil;
import org.apache.hop.core.variables.IVariables;
+import org.apache.hop.history.AuditList;
+import org.apache.hop.history.AuditManager;
import org.apache.hop.projects.config.ProjectsConfig;
import org.apache.hop.projects.config.ProjectsConfigSingleton;
import org.apache.hop.projects.project.ProjectConfig;
+import org.apache.hop.ui.core.PropsUi;
import org.apache.hop.ui.core.dialog.IFileDialog;
import org.apache.hop.ui.core.gui.HopNamespace;
+import org.apache.hop.ui.hopgui.HopGui;
import org.apache.hop.ui.hopgui.delegates.HopGuiFileDialogExtension;
public class HopGuiFileDefaultFolder implements
IExtensionPoint<HopGuiFileDialogExtension> {
+ public static final String BOOKMARKS_AUDIT_TYPE = "vfs-bookmarks";
+
@Override
public void callExtensionPoint(
ILogChannel log, IVariables variables, HopGuiFileDialogExtension ext) {
- // Is there an active project?
- //
+ // return if no projectname
String projectName = HopNamespace.getNamespace();
if (StringUtil.isEmpty(projectName)) {
return;
}
+
+ ProjectsConfig config = ProjectsConfigSingleton.getConfig();
+ ProjectConfig projectConfig = config.findProjectConfig(projectName);
+ // return if no projectConfig is found
+ if (projectConfig == null) {
+ return;
+ }
+
+ // Get last known location from audit history
+ PropsUi props = PropsUi.getInstance();
+ String usedNamespace;
+ java.util.List<String> navigationHistory;
+ int navigationIndex;
+ String filterPath;
+
+ if (props.useGlobalFileBookmarks()) {
+ usedNamespace = HopGui.DEFAULT_HOP_GUI_NAMESPACE;
+ } else {
+ usedNamespace = HopNamespace.getNamespace();
+ }
+
try {
- ProjectsConfig config = ProjectsConfigSingleton.getConfig();
- ProjectConfig projectConfig = config.findProjectConfig(projectName);
- if (projectConfig == null) {
- return;
- }
- String homeFolder = projectConfig.getProjectHome();
- if (homeFolder != null) {
- IFileDialog dialog = ext.getFileDialog();
- dialog.setFilterPath(homeFolder);
- }
+ AuditList auditList =
+ AuditManager.getActive().retrieveList(usedNamespace,
BOOKMARKS_AUDIT_TYPE);
+ navigationHistory = auditList.getNames();
} catch (Exception e) {
- log.logError("Error setting default folder for project " + projectName,
e);
+ LogChannel.GENERAL.logError("Error loading navigation history", e);
+ navigationHistory = new ArrayList<>();
}
+
+ if (!navigationHistory.isEmpty()) {
+ navigationIndex = navigationHistory.size() - 1;
+ filterPath = navigationHistory.get(navigationIndex);
+ } else {
+ filterPath = projectConfig.getProjectHome();
+ }
+
+ IFileDialog dialog = ext.getFileDialog();
+ dialog.setFilterPath(filterPath);
}
}
diff --git a/ui/src/main/java/org/apache/hop/ui/core/PropsUi.java
b/ui/src/main/java/org/apache/hop/ui/core/PropsUi.java
index 81103f9390..97f49df384 100644
--- a/ui/src/main/java/org/apache/hop/ui/core/PropsUi.java
+++ b/ui/src/main/java/org/apache/hop/ui/core/PropsUi.java
@@ -213,8 +213,6 @@ public class PropsUi extends Props {
setProperty(STRING_LINE_WIDTH, "" + getLineWidth());
setProperty(STRING_MAX_UNDO, "" + getMaxUndo());
}
-
- setUseGlobalFileBookmarks(true);
}
public void setFixedFont(FontData fd) {