branch develop updated (85ce95c -> ab1cff7)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository jaxx. See http://git.nuiton.org/jaxx.git from 85ce95c fixes #3571: Updates plexus-util to 3.0.21 fixes #3572: updates nuitonpom to 1.6 new 98187f2 fixes #3569: Add a default directory option in JaxxFileChooser new ab1cff7 fixes #3570: Can save a file giving a starting directory The 2 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit ab1cff77e11760ab093eb3412d1d2950342df5e9 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Nov 16 14:59:47 2014 +0100 fixes #3570: Can save a file giving a starting directory commit 98187f26e466d50c9eb51fddd7e8bd04aedd99e7 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Nov 16 14:59:07 2014 +0100 fixes #3569: Add a default directory option in JaxxFileChooser Summary of changes: .../swing/action/AbstractApplicationAction.java | 62 ++++++++++++++++++++++ .../org/nuiton/jaxx/runtime/JaxxFileChooser.java | 47 ++++++++++++++-- 2 files changed, 106 insertions(+), 3 deletions(-) -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository jaxx. See http://git.nuiton.org/jaxx.git commit 98187f26e466d50c9eb51fddd7e8bd04aedd99e7 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Nov 16 14:59:07 2014 +0100 fixes #3569: Add a default directory option in JaxxFileChooser --- .../org/nuiton/jaxx/runtime/JaxxFileChooser.java | 47 ++++++++++++++++++++-- 1 file changed, 44 insertions(+), 3 deletions(-) diff --git a/jaxx-runtime/src/main/java/org/nuiton/jaxx/runtime/JaxxFileChooser.java b/jaxx-runtime/src/main/java/org/nuiton/jaxx/runtime/JaxxFileChooser.java index 39f23b9..94f4c6c 100644 --- a/jaxx-runtime/src/main/java/org/nuiton/jaxx/runtime/JaxxFileChooser.java +++ b/jaxx-runtime/src/main/java/org/nuiton/jaxx/runtime/JaxxFileChooser.java @@ -114,6 +114,8 @@ public class JaxxFileChooser { ToLoadFile setUseAcceptAllFileFilter(boolean useAcceptAllFileFilter); + ToLoadFile setStartDirectory(File startDirectory); + File choose(); } @@ -126,6 +128,8 @@ public class JaxxFileChooser { ToLoadDirectory setParent(Component parent); + ToLoadDirectory setStartDirectory(File startDirectory); + File choose(); } @@ -152,6 +156,8 @@ public class JaxxFileChooser { ToSave setFilename(String filename); + ToSave setStartDirectory(File startDirectory); + File choose(); } @@ -168,6 +174,8 @@ public class JaxxFileChooser { protected String title; + protected File startDirectory; + protected String approvalText; protected Component parent; @@ -203,6 +211,12 @@ public class JaxxFileChooser { } @Override + public FileChooserBuilderImpl setStartDirectory(File startDirectory) { + this.startDirectory = startDirectory; + return this; + } + + @Override public FileChooserBuilderImpl setParent(Component parent) { this.parent = parent; return this; @@ -311,7 +325,15 @@ public class JaxxFileChooser { try { - JFileChooser chooser = new JFileChooser(currentDirectory); + File directory; + + if (startDirectory == null) { + directory = currentDirectory; + } else { + directory = startDirectory; + } + + JFileChooser chooser = new JFileChooser(directory); chooser.setDialogType(JFileChooser.CUSTOM_DIALOG); if (CollectionUtils.isNotEmpty(fileFilters)) { @@ -359,7 +381,17 @@ public class JaxxFileChooser { protected File chooseToLoadDirectory() { try { - JFileChooser chooser = new JFileChooser(currentDirectory); + + File directory; + + if (startDirectory == null) { + directory = getCurrentDirectory(); + } else { + directory = startDirectory; + } + + JFileChooser chooser = new JFileChooser(directory); + chooser.setDialogType(JFileChooser.CUSTOM_DIALOG); chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); chooser.setDialogTitle(title); @@ -383,7 +415,16 @@ public class JaxxFileChooser { } protected File chooseToSave() { - File selectedFile = new File(getCurrentDirectory(), filename); + + File directory; + + if (startDirectory == null) { + directory = getCurrentDirectory(); + } else { + directory = startDirectory; + } + + File selectedFile = new File(directory, filename); JFileChooser chooser = new JFileChooser(selectedFile); chooser.setDialogType(JFileChooser.SAVE_DIALOG); -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository jaxx. See http://git.nuiton.org/jaxx.git commit ab1cff77e11760ab093eb3412d1d2950342df5e9 Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Nov 16 14:59:47 2014 +0100 fixes #3570: Can save a file giving a starting directory --- .../swing/action/AbstractApplicationAction.java | 62 ++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/jaxx-application-swing/src/main/java/org/nuiton/jaxx/application/swing/action/AbstractApplicationAction.java b/jaxx-application-swing/src/main/java/org/nuiton/jaxx/application/swing/action/AbstractApplicationAction.java index c73d3f3..11d25e5 100644 --- a/jaxx-application-swing/src/main/java/org/nuiton/jaxx/application/swing/action/AbstractApplicationAction.java +++ b/jaxx-application-swing/src/main/java/org/nuiton/jaxx/application/swing/action/AbstractApplicationAction.java @@ -265,6 +265,68 @@ public abstract class AbstractApplicationAction<M extends AbstractBean, UI exten return file; } + /** + * Sauver un fichier via un sélecteur graphique de fichiers, en précisant + * le répertoire où sauvegarder le fichier. + * + * @param startDirectory le répertoire à utiliser pour choisir le fichier + * @param title le titre du dialogue de sélection + * @param buttonLabel le label du boutton d'acceptation + * @param filters les filtres + descriptions sur le sélecteur de + * fichiers + * @return le fichier choisi ou {@code null} si pas de fichier choisi ou + * pas voulu écrasé un fichier existant. + * @since 2.17 + */ + protected File saveFileWithStartDirectory(File startDirectory, + String filename, + String extension, + String title, + String buttonLabel, + String... filters) { + + boolean withExtension = StringUtils.isNotBlank(extension); + String filenameSuffix = withExtension ? "." + extension : ""; + + File file = JaxxFileChooser.forSaving() + .setStartDirectory(startDirectory) + .setTitle(title) + .setParent((Component) getUI()) + .setApprovalText(buttonLabel) + .setPatternOrDescriptionFilters(Arrays.asList(filters)) + .setFilename(filename + filenameSuffix) + .choose(); + + //File file = FileChooserUtil.saveFile(filename + filenameSuffix, title, buttonLabel, getContext().getMainUI(), filters); + if (log.isDebugEnabled()) { + log.debug(title + " : " + file); + } + if (file != null) { + Preconditions.checkState(!file.isDirectory()); + + // add extension if missing + if (withExtension && !file.getName().endsWith(filenameSuffix)) { + file = new File(file.getParentFile(), file.getName() + filenameSuffix); + } + + // ask user to confirm overwrite. + boolean confirm = askOverwriteFile(file); + + if (confirm) { + + // on conserve le répertoire (pour une prochaine utilisation) + JaxxFileChooser.setCurrentDirectory(file.getParentFile()); + } else { + + // l'utilisateur n'a pas confirmé l'écrasement + // donc pas de fichier en retour + file = null; + } + } + + return file; + } + protected boolean askOverwriteFile(File file) { boolean result; if (file.exists()) { -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.
participants (1)
-
nuiton.org scm