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 6904bb2d974e5ced9e36b465e1588f01077dd1a1 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Oct 29 16:13:43 2014 +0100 refs-80 #3561: Introduce a new API to choose files (use it in application-api) --- .../swing/action/AbstractApplicationAction.java | 39 ++++++++++++++++------ .../swing/actionng/ApplicationAction.java | 9 ++++- 2 files changed, 37 insertions(+), 11 deletions(-) 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 0ec82b6..c73d3f3 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 @@ -23,7 +23,6 @@ package org.nuiton.jaxx.application.swing.action; */ import com.google.common.base.Preconditions; -import jaxx.runtime.FileChooserUtil; import org.apache.commons.lang3.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -34,9 +33,12 @@ import org.nuiton.jaxx.application.swing.AbstractApplicationUIHandler; import org.nuiton.jaxx.application.swing.ApplicationUI; import org.nuiton.jaxx.application.swing.ApplicationUIContext; import org.nuiton.jaxx.application.type.ApplicationProgressionModel; +import org.nuiton.jaxx.runtime.JaxxFileChooser; import javax.swing.JOptionPane; +import java.awt.Component; import java.io.File; +import java.util.Arrays; import static org.nuiton.i18n.I18n.t; @@ -53,6 +55,7 @@ public abstract class AbstractApplicationAction<M extends AbstractBean, UI exten private static final Log log = LogFactory.getLog(AbstractApplicationAction.class); public static final String PROPERTY_DONE = "done"; + public static final String MESAGE_FORMAT = "<html>%s</html>"; protected final H handler; @@ -158,16 +161,23 @@ public abstract class AbstractApplicationAction<M extends AbstractBean, UI exten String buttonLabel, String... filters) { - File file = FileChooserUtil.getFile(title, - buttonLabel, - getContext().getMainUI(), - filters); + File file = JaxxFileChooser.forLoadingFile() + .setTitle(title) + .setParent((Component) getUI()) + .setApprovalText(buttonLabel) + .setPatternOrDescriptionFilters(Arrays.asList(filters)) + .choose(); + +// File file = FileChooserUtil.getFile(title, +// buttonLabel, +// getContext().getMainUI(), +// filters); if (log.isDebugEnabled()) { log.debug(title + " : " + file); } if (file != null) { File newDir = file.isDirectory() ? file : file.getParentFile(); - FileChooserUtil.setCurrentDirectory(newDir); + JaxxFileChooser.setCurrentDirectory(newDir); } return file; } @@ -189,10 +199,10 @@ public abstract class AbstractApplicationAction<M extends AbstractBean, UI exten String buttonLabel, String... filters) { - if (defaultFile != null && FileChooserUtil.isCurrentDirectoryDefault()) { + if (defaultFile != null && JaxxFileChooser.isCurrentDirectoryDefault()) { // set default directory to this one - FileChooserUtil.setCurrentDirectory(defaultFile); + JaxxFileChooser.setCurrentDirectory(defaultFile); } File file = saveFile(filename, extension, title, buttonLabel, filters); return file; @@ -216,7 +226,16 @@ public abstract class AbstractApplicationAction<M extends AbstractBean, UI exten boolean withExtension = StringUtils.isNotBlank(extension); String filenameSuffix = withExtension ? "." + extension : ""; - File file = FileChooserUtil.saveFile(filename + filenameSuffix, title, buttonLabel, getContext().getMainUI(), filters); + + File file = JaxxFileChooser.forSaving() + .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); } @@ -234,7 +253,7 @@ public abstract class AbstractApplicationAction<M extends AbstractBean, UI exten if (confirm) { // on conserve le répertoire (pour une prochaine utilisation) - FileChooserUtil.setCurrentDirectory(file.getParentFile()); + JaxxFileChooser.setCurrentDirectory(file.getParentFile()); } else { // l'utilisateur n'a pas confirmé l'écrasement diff --git a/jaxx-application-swing/src/main/java/org/nuiton/jaxx/application/swing/actionng/ApplicationAction.java b/jaxx-application-swing/src/main/java/org/nuiton/jaxx/application/swing/actionng/ApplicationAction.java index 88831fe..0f09cf2 100644 --- a/jaxx-application-swing/src/main/java/org/nuiton/jaxx/application/swing/actionng/ApplicationAction.java +++ b/jaxx-application-swing/src/main/java/org/nuiton/jaxx/application/swing/actionng/ApplicationAction.java @@ -33,7 +33,9 @@ package org.nuiton.jaxx.application.swing.actionng; public interface ApplicationAction { /** - * Hook to + * Before executing the action. + * + * <strong>This code is executed in the Swing thread</strong> * * @return {@code true} if action can be execute, {@code false} otherwise. */ @@ -41,11 +43,16 @@ public interface ApplicationAction { /** * Real action code. + * + * <strong>This code is not executed, you can't then touch to any models or components of UI.</strong> */ void action(); /** * Executed when action ended with success. + * + * <strong>This code is executed in the Swing thread, you can here update</strong> + * */ void done(); -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.