This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 32ff09907109fa7d0021b7d6889c85def26a1db2 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Sep 5 16:22:59 2016 +0200 Bien utiliser le répertoire donnée pour choisir un répertoire ou un fichier (Fixes #7433) --- .../observe/application/swing/ObserveRunner.java | 5 +- .../ird/observe/application/swing/ui/UIHelper.java | 118 ++++++++++----------- .../swing/ui/storage/tabs/StorageTabUIHandler.java | 7 +- 3 files changed, 60 insertions(+), 70 deletions(-) diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveRunner.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveRunner.java index 95d8b48..b34f0a2 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveRunner.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ObserveRunner.java @@ -30,7 +30,6 @@ import fr.ird.observe.application.swing.ui.UIHelper; import fr.ird.observe.application.swing.ui.actions.StartServerModeAction; import fr.ird.observe.application.swing.ui.util.FloatConverter; import fr.ird.observe.util.ObserveUtil; -import jaxx.runtime.FileChooserUtil; import jaxx.runtime.swing.application.ApplicationRunner; import org.apache.commons.beanutils.ConvertUtils; import org.apache.commons.beanutils.Converter; @@ -222,7 +221,7 @@ public abstract class ObserveRunner extends ApplicationRunner { // 5 - preparation du context applicatif - ObserveSwingApplicationContext applicationContext = new ObserveSwingApplicationContext(config); + new ObserveSwingApplicationContext(config); // 6 - détection de la base locale @@ -417,8 +416,6 @@ public abstract class ObserveRunner extends ApplicationRunner { log.debug("user data directory : " + dataDirectory); } - FileChooserUtil.setCurrentDirectory(dataDirectory); - resourceManager.createParentDirectory(config, DB_DIRECTORY, INITIAL_DB_DUMP); // 2 - tmp directory diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/UIHelper.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/UIHelper.java index 6122be7..4ccf4ef 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/UIHelper.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/UIHelper.java @@ -31,7 +31,6 @@ import fr.ird.observe.services.dto.DataFileDto; import fr.ird.observe.services.dto.IdDto; import fr.ird.observe.services.dto.referential.ReferentialDto; import fr.ird.observe.services.security.InvalidAuthenticationTokenException; -import jaxx.runtime.FileChooserUtil; import jaxx.runtime.JAXXObject; import jaxx.runtime.SwingUtil; import jaxx.runtime.swing.ErrorDialogUI; @@ -41,6 +40,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.jdesktop.swingx.painter.Painter; import org.nuiton.decorator.Decorator; +import org.nuiton.jaxx.runtime.JaxxFileChooser; import javax.swing.JComponent; import javax.swing.JOptionPane; @@ -62,7 +62,7 @@ import java.io.File; import java.io.IOException; import java.net.URISyntaxException; import java.net.URL; -import java.util.Comparator; +import java.util.Arrays; import java.util.List; import static org.nuiton.i18n.I18n.t; @@ -217,23 +217,22 @@ public class UIHelper extends SwingUtil { String buttonLabel, File incoming, String... filters) { - File oldBasedir = FileChooserUtil.getCurrentDirectory(); - if (incoming != null) { - File basedir; - if (incoming.isFile()) { - basedir = incoming.getParentFile(); - } else { - basedir = incoming; - } - if (basedir.exists()) { - FileChooserUtil.setCurrentDirectory(basedir); - } + + JaxxFileChooser.ToLoadFile toLoadFile = JaxxFileChooser.forLoadingFile() + .setParent(parent) + .setTitle(title) + .setApprovalText(buttonLabel) + .setPatternOrDescriptionFilters(Arrays.asList(filters)); + + File parentDirectoryIfExist = getParentDirectoryIfExist(incoming); + if (parentDirectoryIfExist != null) { + toLoadFile.setStartDirectory(parentDirectoryIfExist); } - File file = FileChooserUtil.getFile(title, buttonLabel, parent, filters); + File file = toLoadFile.choose(); + ; if (log.isDebugEnabled()) { log.debug(title + " : " + file); } - FileChooserUtil.setCurrentDirectory(oldBasedir); return file == null ? incoming : file; } @@ -251,7 +250,23 @@ public class UIHelper extends SwingUtil { String title, String buttonLabel, File incoming) { - File oldBasedir = FileChooserUtil.getCurrentDirectory(); + + JaxxFileChooser.ToLoadDirectory toLoadDirectory = JaxxFileChooser.forLoadingDirectory() + .setParent(parent) + .setTitle(title) + .setApprovalText(buttonLabel); + File parentDirectoryIfExist = getParentDirectoryIfExist(incoming); + if (parentDirectoryIfExist != null) { + toLoadDirectory.setStartDirectory(parentDirectoryIfExist); + } + File file = toLoadDirectory.choose(); + if (log.isDebugEnabled()) { + log.debug(title + " : " + file); + } + return file; + } + + private static File getParentDirectoryIfExist(File incoming) { if (incoming != null) { File basedir; if (incoming.isFile()) { @@ -260,15 +275,10 @@ public class UIHelper extends SwingUtil { basedir = incoming; } if (basedir.exists()) { - FileChooserUtil.setCurrentDirectory(basedir); + return basedir; } } - String file = FileChooserUtil.getDirectory(parent, title, buttonLabel); - if (log.isDebugEnabled()) { - log.debug(title + " : " + file); - } - FileChooserUtil.setCurrentDirectory(oldBasedir); - return file == null ? incoming : new File(file); + return null; } /** @@ -344,7 +354,7 @@ public class UIHelper extends SwingUtil { messageDelete, JOptionPane.WARNING_MESSAGE, new Object[]{t("observe.choice.confirm.delete"), - t("observe.choice.cancel")}, + t("observe.choice.cancel")}, 1); if (mainUI != null) { mainUI.setBusy(true); @@ -360,7 +370,7 @@ public class UIHelper extends SwingUtil { t("observe.common.saveFile.overwrite.title"), t("observe.common.saveFile.overwrite"), JOptionPane.OK_CANCEL_OPTION, - new Object[] { + new Object[]{ t("observe.common.saveFile.overwrite.ok"), t("observe.common.saveFile.overwrite.cancel")}, 1) == 0; @@ -395,17 +405,6 @@ public class UIHelper extends SwingUtil { return new DecoratorTableCellRenderer(renderer, decorator); } -// /** -// * Pour trier les types du référentiel selon leur décoration. -// * -// * @param classes les classes à trier -// * @since 1.5 -// */ -// public static void sortReferentiel(List<Class> classes) { -// -// Collections.sort(classes, REFERENTIEL_COMPARATOR); -// } - /** * Copy to clipBoard the content of the given text. * @@ -443,17 +442,6 @@ public class UIHelper extends SwingUtil { return null; } - public static final Comparator<Class> REFERENTIEL_COMPARATOR = new Comparator<Class>() { - - @Override - public int compare(Class o1, Class o2) { - //FIXME Costy operation - String s1 = t(ObserveI18nDecoratorHelper.getTypeI18nKey(o1)); - String s2 = t(ObserveI18nDecoratorHelper.getTypeI18nKey(o2)); - return s1.compareTo(s2); - } - }; - /** * Open a link coming from a {@link HyperlinkEvent}. * @@ -469,9 +457,9 @@ public class UIHelper extends SwingUtil { try { URL u = he.getURL(); if (u.getProtocol().equalsIgnoreCase("mailto") || - u.getProtocol().equalsIgnoreCase("http") || - u.getProtocol().equalsIgnoreCase("ftp") || - u.getProtocol().equalsIgnoreCase("file")) { + u.getProtocol().equalsIgnoreCase("http") || + u.getProtocol().equalsIgnoreCase("ftp") || + u.getProtocol().equalsIgnoreCase("file")) { Desktop.getDesktop().browse(u.toURI()); } } catch (IOException | URISyntaxException e) { @@ -534,24 +522,30 @@ public class UIHelper extends SwingUtil { ObserveMainUI observeMainUI = context.getMainUI(); int result = askUser(observeMainUI, - t("observe.storage.server.sessionExpire.title"), - t("observe.storage.server.sessionExpire"), - JOptionPane.OK_CANCEL_OPTION, - new Object[] { - t("observe.storage.server.sessionExpire.reload"), - t("observe.storage.server.sessionExpire.change"), - t("observe.storage.server.sessionExpire.close")}, - 0); + t("observe.storage.server.sessionExpire.title"), + t("observe.storage.server.sessionExpire"), + JOptionPane.OK_CANCEL_OPTION, + new Object[]{ + t("observe.storage.server.sessionExpire.reload"), + t("observe.storage.server.sessionExpire.change"), + t("observe.storage.server.sessionExpire.close")}, + 0); // FIXME SBavencoff 23/03/2016 est on sùr que l'erreur proviens du main storage ? switch (result) { - case 0 : observeMainUI.getReloadStorageAction().run(); break; - case 1 : observeMainUI.getChangeStorageAction().run(); break; - default: observeMainUI.getCloseStorageAction().run(); break; + case 0: + observeMainUI.getReloadStorageAction().run(); + break; + case 1: + observeMainUI.getChangeStorageAction().run(); + break; + default: + observeMainUI.getCloseStorageAction().run(); + break; } - } else { + } else { ErrorDialogUI.showError(e); } diff --git a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/StorageTabUIHandler.java b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/StorageTabUIHandler.java index 62b9ac6..5fc8650 100644 --- a/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/StorageTabUIHandler.java +++ b/application-swing/src/main/java/fr/ird/observe/application/swing/ui/storage/tabs/StorageTabUIHandler.java @@ -35,9 +35,6 @@ import fr.ird.observe.application.swing.ui.storage.StorageUIModel; import fr.ird.observe.application.swing.ui.tree.DataSelectionTreeSelectionModel; import fr.ird.observe.application.swing.ui.tree.ObserveTreeHelper; import fr.ird.observe.services.configuration.ObserveDataSourceInformation; -import fr.ird.observe.application.swing.db.ObserveSwingDataSource; -import fr.ird.observe.application.swing.db.constants.ConnexionStatus; -import fr.ird.observe.services.configuration.ObserveDataSourceInformation; import jaxx.runtime.swing.editor.MyDefaultCellEditor; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -250,7 +247,9 @@ public class StorageTabUIHandler { t("observe.action.choose.db.dump.directory"), new File(ui.getDirectoryText().getText()) ); - changeDirectory(ui, f); + if (f != null) { + changeDirectory(ui, f); + } } public void changeDirectory(BackupUI ui, File f) { -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.