Author: tchemit Date: 2013-11-28 16:46:05 +0100 (Thu, 28 Nov 2013) New Revision: 1403 Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1403 Log: use UIHandler JAXX API Modified: application/trunk/application-swing/pom.xml application/trunk/application-swing/src/main/java/fr/ifremer/shared/application/swing/AbstractApplicationUIHandler.java application/trunk/application-swing/src/main/java/fr/ifremer/shared/application/swing/action/ApplicationActionUI.jaxx application/trunk/application-swing/src/main/java/fr/ifremer/shared/application/swing/action/ApplicationActionUIHandler.java application/trunk/application-swing/src/main/java/fr/ifremer/shared/application/swing/util/ApplicationUIUtil.java Modified: application/trunk/application-swing/pom.xml =================================================================== --- application/trunk/application-swing/pom.xml 2013-11-26 18:26:35 UTC (rev 1402) +++ application/trunk/application-swing/pom.xml 2013-11-28 15:46:05 UTC (rev 1403) @@ -48,6 +48,7 @@ <jaxx.generateSearch>false</jaxx.generateSearch> <jaxx.autoImportCss>true</jaxx.autoImportCss> <jaxx.autoRecurseInCss>false</jaxx.autoRecurseInCss> + <jaxx.addAutoHandlerUI>true</jaxx.addAutoHandlerUI> <!-- Post Release configuration --> <skipPostRelease>false</skipPostRelease> Modified: application/trunk/application-swing/src/main/java/fr/ifremer/shared/application/swing/AbstractApplicationUIHandler.java =================================================================== --- application/trunk/application-swing/src/main/java/fr/ifremer/shared/application/swing/AbstractApplicationUIHandler.java 2013-11-26 18:26:35 UTC (rev 1402) +++ application/trunk/application-swing/src/main/java/fr/ifremer/shared/application/swing/AbstractApplicationUIHandler.java 2013-11-28 15:46:05 UTC (rev 1403) @@ -30,11 +30,13 @@ import fr.ifremer.shared.application.swing.action.ApplicationActionUI; import fr.ifremer.shared.application.swing.computable.ComputableDataEditor; import fr.ifremer.shared.application.swing.table.ColumnIdentifier; +import fr.ifremer.shared.application.swing.util.ApplicationUIUtil; import fr.ifremer.shared.application.swing.util.Cancelable; import fr.ifremer.shared.application.type.ApplicationProgressionModel; import fr.ifremer.shared.application.type.WeightUnit; import jaxx.runtime.JAXXUtil; import jaxx.runtime.SwingUtil; +import jaxx.runtime.spi.UIHandler; import jaxx.runtime.swing.JAXXWidgetUtil; import jaxx.runtime.swing.editor.FileEditor; import jaxx.runtime.swing.editor.NumberEditor; @@ -125,16 +127,16 @@ * @author Tony Chemit <chemit@codelutin.com> * @since 1.0 */ -public abstract class AbstractApplicationUIHandler<M, UI extends ApplicationUI<M, ?>> { +public abstract class AbstractApplicationUIHandler<M, UI extends ApplicationUI<M, ?>> implements UIHandler<UI> { /** Logger. */ private static final Log log = LogFactory.getLog(AbstractApplicationUIHandler.class); - public abstract void beforeInitUI(); +// public abstract void beforeInit(UI ui); +// +// public abstract void afterInit(UI ui); - public abstract void afterInitUI(); - public abstract void onCloseUI(); public abstract SwingValidator<M> getValidator(); @@ -160,17 +162,17 @@ /** * Global application context. */ - private final ApplicationUIContext context; + private ApplicationUIContext context; /** * UI handled. */ - protected final UI ui; + protected UI ui; - protected AbstractApplicationUIHandler(ApplicationUIContext context, UI ui) { - this.context = context; - this.ui = ui; - } +// protected AbstractApplicationUIHandler(ApplicationUIContext context, UI ui) { +// this.context = context; +// this.ui = ui; +// } //------------------------------------------------------------------------// //-- Public methods --// @@ -188,7 +190,15 @@ return ui; } + @Override + public void beforeInit(UI ui) { + this.ui = ui; + } + public ApplicationUIContext getContext() { + if (context == null) { + context = ApplicationUIUtil.getApplicationContext(ui); + } return context; } @@ -636,7 +646,7 @@ (data == null ? 0 : data.size())); } - comboBox.setI18nPrefix(context.getI18nPrefix()); + comboBox.setI18nPrefix(getContext().getI18nPrefix()); // add data list to combo box comboBox.init((JXPathDecorator<E>) decorator, data); @@ -675,7 +685,7 @@ (data == null ? 0 : data.size())); } - list.setI18nPrefix(context.getI18nPrefix()); + list.setI18nPrefix(getContext().getI18nPrefix()); // add data list to combo box list.init((JXPathDecorator<E>) decorator, @@ -754,7 +764,7 @@ if (log.isDebugEnabled()) { log.debug("disable JXDatePicker editor" + picker.getName()); } - String dateFormat = context.getDateFormat(); + String dateFormat = getContext().getDateFormat(); picker.setFormats(dateFormat); picker.setToolTipText(_("application.common.datefield.tip", dateFormat)); picker.getEditor().addFocusListener(new FocusAdapter() { Modified: application/trunk/application-swing/src/main/java/fr/ifremer/shared/application/swing/action/ApplicationActionUI.jaxx =================================================================== --- application/trunk/application-swing/src/main/java/fr/ifremer/shared/application/swing/action/ApplicationActionUI.jaxx 2013-11-26 18:26:35 UTC (rev 1402) +++ application/trunk/application-swing/src/main/java/fr/ifremer/shared/application/swing/action/ApplicationActionUI.jaxx 2013-11-28 15:46:05 UTC (rev 1403) @@ -28,6 +28,7 @@ fr.ifremer.shared.application.swing.ApplicationUI fr.ifremer.shared.application.swing.ApplicationUIContext + fr.ifremer.shared.application.swing.util.ApplicationUIUtil jaxx.runtime.swing.BlockingLayerUI @@ -38,9 +39,10 @@ public ApplicationActionUI(JFrame frame, ApplicationUIContext context) { super(frame, true); - ApplicationActionUIHandler handler = new ApplicationActionUIHandler(context, this); - setContextValue(handler); - handler.beforeInitUI(); + ApplicationUIUtil.setApplicationContext(this, context); + //ApplicationActionUIHandler handler = new ApplicationActionUIHandler(context, this); + //setContextValue(handler); + //handler.beforeInitUI(); } public void open(AbstractApplicationAction action) { @@ -50,18 +52,11 @@ public void close() { getModel().clear(); } - - protected void $afterCompleteSetup() { - handler.afterInitUI(); - } ]]></script> <BlockingLayerUI id='busyBlockLayerUI'/> - <ApplicationActionUIHandler id='handler' - initializer='getContextValue(ApplicationActionUIHandler.class)'/> - <ApplicationActionUIModel id='model' initializer='getContextValue(ApplicationActionUIModel.class)'/> Modified: application/trunk/application-swing/src/main/java/fr/ifremer/shared/application/swing/action/ApplicationActionUIHandler.java =================================================================== --- application/trunk/application-swing/src/main/java/fr/ifremer/shared/application/swing/action/ApplicationActionUIHandler.java 2013-11-26 18:26:35 UTC (rev 1402) +++ application/trunk/application-swing/src/main/java/fr/ifremer/shared/application/swing/action/ApplicationActionUIHandler.java 2013-11-28 15:46:05 UTC (rev 1403) @@ -25,7 +25,6 @@ */ import fr.ifremer.shared.application.swing.AbstractApplicationUIHandler; -import fr.ifremer.shared.application.swing.ApplicationUIContext; import fr.ifremer.shared.application.type.ApplicationProgressionModel; import jaxx.runtime.SwingUtil; import jaxx.runtime.validator.swing.SwingValidator; @@ -33,7 +32,6 @@ import org.apache.commons.logging.LogFactory; import org.nuiton.decorator.Decorator; -import javax.swing.AbstractButton; import javax.swing.JComponent; import java.awt.Component; import java.awt.Cursor; @@ -55,9 +53,9 @@ private static final Log log = LogFactory.getLog(ApplicationActionUIHandler.class); - public ApplicationActionUIHandler(ApplicationUIContext context, ApplicationActionUI ui) { - super(context, ui); - } +// public ApplicationActionUIHandler(ApplicationUIContext context, ApplicationActionUI ui) { +// super(context, ui); +// } protected PropertyChangeListener progressionListener = new PropertyChangeListener() { @Override @@ -126,7 +124,8 @@ //------------------------------------------------------------------------// @Override - public void beforeInitUI() { + public void beforeInit(ApplicationActionUI ui) { + this.ui = ui; ApplicationActionUIModel model = new ApplicationActionUIModel(); ui.setContextValue(model); @@ -171,11 +170,11 @@ if (newValue == null) { // remove progression model - ui.getTaskPanel().setVisible(false); + ApplicationActionUIHandler.this.ui.getTaskPanel().setVisible(false); } else { // use progression model - ui.getTaskPanel().setVisible(true); + ApplicationActionUIHandler.this.ui.getTaskPanel().setVisible(true); newValue.addPropertyChangeListener(progressionListener); } @@ -184,14 +183,14 @@ } @Override - public void afterInitUI() { + public void afterInit(ApplicationActionUI ui) { - initUI(ui); + initUI(this.ui); // installation layer de blocage en mode busy - SwingUtil.setLayerUI(ui.getRootPanel(), ui.getBusyBlockLayerUI()); + SwingUtil.setLayerUI(this.ui.getRootPanel(), this.ui.getBusyBlockLayerUI()); - ui.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); + this.ui.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); } @Override Modified: application/trunk/application-swing/src/main/java/fr/ifremer/shared/application/swing/util/ApplicationUIUtil.java =================================================================== --- application/trunk/application-swing/src/main/java/fr/ifremer/shared/application/swing/util/ApplicationUIUtil.java 2013-11-26 18:26:35 UTC (rev 1402) +++ application/trunk/application-swing/src/main/java/fr/ifremer/shared/application/swing/util/ApplicationUIUtil.java 2013-11-28 15:46:05 UTC (rev 1403) @@ -25,6 +25,8 @@ */ import fr.ifremer.shared.application.ApplicationTechnicalException; +import fr.ifremer.shared.application.swing.ApplicationUIContext; +import jaxx.runtime.JAXXObject; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.jdesktop.swingx.JXTable; @@ -57,6 +59,14 @@ // avoid instanciate util class } + public static void setApplicationContext(JAXXObject ui, ApplicationUIContext context) { + ui.setContextValue(context, "applicationContext"); + } + + public static ApplicationUIContext getApplicationContext(JAXXObject ui) { + return ui.getContextValue(ApplicationUIContext.class, "applicationContext"); + } + public static Highlighter newBackgroundColorHighlighter(HighlightPredicate predicate, Color color) { return new ApplicationColorHighlighter(predicate, color, false); }