Jaxx-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
August 2010
- 1 participants
- 19 discussions
r2045 - in trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config: . model
by tchemit@users.nuiton.org 29 Aug '10
by tchemit@users.nuiton.org 29 Aug '10
29 Aug '10
Author: tchemit
Date: 2010-08-29 09:00:07 +0200 (Sun, 29 Aug 2010)
New Revision: 2045
Url: http://nuiton.org/repositories/revision/jaxx/2045
Log:
Evolution #827: Add a closeAction in ConfigUI api + improve code
Modified:
trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigUIHandler.java
trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigUIHelper.java
trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/model/ConfigUIModel.java
trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/model/ConfigUIModelBuilder.java
Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigUIHandler.java
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigUIHandler.java 2010-08-29 06:57:46 UTC (rev 2044)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigUIHandler.java 2010-08-29 07:00:07 UTC (rev 2045)
@@ -27,13 +27,29 @@
import jaxx.runtime.SwingUtil;
import jaxx.runtime.context.JAXXInitialContext;
-import jaxx.runtime.swing.editor.config.model.*;
+import jaxx.runtime.swing.editor.config.model.CallBackEntry;
+import jaxx.runtime.swing.editor.config.model.CallBackMap;
+import jaxx.runtime.swing.editor.config.model.CategoryModel;
+import jaxx.runtime.swing.editor.config.model.ConfigUIModel;
+import jaxx.runtime.swing.editor.config.model.OptionModel;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import javax.swing.*;
+import javax.swing.AbstractAction;
+import javax.swing.Action;
+import javax.swing.DefaultSingleSelectionModel;
+import javax.swing.JButton;
+import javax.swing.JComponent;
+import javax.swing.JDialog;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JRootPane;
+import javax.swing.JTabbedPane;
+import javax.swing.KeyStroke;
+import javax.swing.SwingUtilities;
import javax.swing.event.ChangeEvent;
-import java.awt.*;
+import java.awt.Frame;
+import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
@@ -176,23 +192,16 @@
if (!model.isSaved() || model.isStandalone()) {
// just quit, no callBack can be apply here
-
- ui.destroy();
-
- // close the configu ui
- parentWindow.dispose();
+ closeUI(parentWindow, model);
return;
}
CallBackMap forSaved = model.getCallBacksForSaved();
if (forSaved.isEmpty()) {
+
// just quit, no callBack to call
-
- ui.destroy();
-
- // close the configu ui
- parentWindow.dispose();
+ closeUI(parentWindow, model);
return;
}
@@ -207,7 +216,7 @@
add(CALLBACKS,
new ArrayList<CallBackEntry>(forSaved.keySet())).
add(new ConfigCallBackUIHandler());
-
+
ConfigCallBackUI lastUI = new ConfigCallBackUI(context);
lastUI.init();
@@ -227,6 +236,20 @@
return quitAction;
}
+ protected void closeUI(Window parentWindow, ConfigUIModel model) {
+
+ ui.destroy();
+
+ // close the config ui
+ parentWindow.dispose();
+
+ Runnable runnable = model.getCloseAction();
+ if (runnable != null) {
+ log.info("execute close action");
+ runnable.run();
+ }
+ }
+
protected boolean canQuitCategory() {
boolean canContinue = true;
ConfigUIModel model = ui.getModel();
Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigUIHelper.java
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigUIHelper.java 2010-08-29 06:57:46 UTC (rev 2044)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigUIHelper.java 2010-08-29 07:00:07 UTC (rev 2045)
@@ -27,14 +27,18 @@
import jaxx.runtime.JAXXContext;
import jaxx.runtime.context.JAXXInitialContext;
-import jaxx.runtime.swing.editor.config.model.*;
+import jaxx.runtime.swing.editor.config.model.CallBackFinalizer;
+import jaxx.runtime.swing.editor.config.model.CategoryModel;
+import jaxx.runtime.swing.editor.config.model.ConfigUIModel;
+import jaxx.runtime.swing.editor.config.model.ConfigUIModelBuilder;
+import jaxx.runtime.swing.editor.config.model.OptionModel;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.util.ApplicationConfig;
-import javax.swing.*;
+import javax.swing.Icon;
import javax.swing.table.TableCellEditor;
-import java.awt.*;
+import java.awt.Frame;
/**
* A helper to build a config ui.
@@ -122,6 +126,10 @@
modelBuilder.setFinalizer(finalizer);
}
+ public void setCloseAction(Runnable runnable) {
+ modelBuilder.setCloseAction(runnable);
+ }
+
/**
* Construire l'ui de configuration (sous forme de panel)
*
Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/model/ConfigUIModel.java
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/model/ConfigUIModel.java 2010-08-29 06:57:46 UTC (rev 2044)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/model/ConfigUIModel.java 2010-08-29 07:00:07 UTC (rev 2045)
@@ -81,13 +81,20 @@
/** Callbacks manager */
protected CallBacksManager callBacksManager;
- /** suport of modification */
- protected final PropertyChangeSupport pcs = new PropertyChangeSupport(this);
+ /**
+ * optional action to execute (if not null) if no call backs fits.
+ * @since 1.4.2
+ */
+ protected Runnable closeAction;
+ /** support of modification notifications */
+ protected final PropertyChangeSupport pcs;
+
public ConfigUIModel(ApplicationConfig config) {
this.config = config;
categories = new LinkedHashMap<String, CategoryModel>();
callBacksManager = new CallBacksManager();
+ pcs = new PropertyChangeSupport(this);
}
/**
@@ -156,6 +163,14 @@
callBacksManager.setFinalizer(finalizer);
}
+ public Runnable getCloseAction() {
+ return closeAction;
+ }
+
+ public void setCloseAction(Runnable closeAction) {
+ this.closeAction=closeAction;
+ }
+
/**
* Obtain the dictionnary of callback for all to saved modified options.
*
Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/model/ConfigUIModelBuilder.java
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/model/ConfigUIModelBuilder.java 2010-08-29 06:57:46 UTC (rev 2044)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/model/ConfigUIModelBuilder.java 2010-08-29 07:00:07 UTC (rev 2045)
@@ -28,7 +28,7 @@
import org.apache.commons.logging.LogFactory;
import org.nuiton.util.ApplicationConfig;
-import javax.swing.*;
+import javax.swing.Icon;
import javax.swing.table.TableCellEditor;
/**
@@ -39,22 +39,16 @@
* @since 2.0.0
*/
public class ConfigUIModelBuilder {
- /**
- * Logger
- */
+ /** Logger */
private static final Log log = LogFactory.getLog(ConfigUIModelBuilder.class);
- /**
- * current model used
- */
+ /** current model used */
ConfigUIModel model;
- /**
- * current category used
- */
+
+ /** current category used */
CategoryModel category;
- /**
- * current option used
- */
+
+ /** current option used */
OptionModel option;
/**
@@ -81,11 +75,11 @@
* the model.
*
* @param categoryName the name of the new category
- * (can not to be {@code null})
+ * (can not to be {@code null})
* @param categoryLabel the label of the new category
- * (can not to be {@code null})
+ * (can not to be {@code null})
* @throws IllegalStateException if there is not a current model,
- * nor category
+ * nor category
* @throws NullPointerException if any of parameter is {@code null}
*/
public void addCategory(String categoryName, String categoryLabel)
@@ -288,6 +282,13 @@
}
}
+ public void setCloseAction(Runnable runnable) {
+ checkNotNull(runnable, "setCloseAction", "runnable");
+ checkCurrent(model, "model");
+ model.setCloseAction(runnable);
+
+ }
+
protected CategoryModel flushCategory() {
CategoryModel result = category;
if (category != null) {
@@ -317,16 +318,16 @@
protected void checkNoCurrent(Object o, String type) {
if (o != null) {
- throw new IllegalStateException("there is already a current " +
- type + "!");
+ throw new IllegalStateException(
+ "there is already a current " + type + "!");
}
}
protected void checkNotNull(Object o, String method, String parameter) {
if (o == null) {
- throw new NullPointerException("method " + method +
- " does not support null parameter " + parameter + "!");
+ throw new NullPointerException(
+ "method " + method + " does not support null parameter " +
+ parameter + "!");
}
}
-
}
1
0
r2044 - trunk/jaxx-runtime/src/main/java/jaxx/runtime/validator
by tchemit@users.nuiton.org 29 Aug '10
by tchemit@users.nuiton.org 29 Aug '10
29 Aug '10
Author: tchemit
Date: 2010-08-29 08:57:46 +0200 (Sun, 29 Aug 2010)
New Revision: 2044
Url: http://nuiton.org/repositories/revision/jaxx/2044
Log:
Anomalie #826: Validators does not translate error message for none trim message + reformat and clean api
Modified:
trunk/jaxx-runtime/src/main/java/jaxx/runtime/validator/BeanValidator.java
trunk/jaxx-runtime/src/main/java/jaxx/runtime/validator/BeanValidatorEvent.java
trunk/jaxx-runtime/src/main/java/jaxx/runtime/validator/BeanValidatorField.java
trunk/jaxx-runtime/src/main/java/jaxx/runtime/validator/BeanValidatorMessage.java
trunk/jaxx-runtime/src/main/java/jaxx/runtime/validator/BeanValidatorUtil.java
trunk/jaxx-runtime/src/main/java/jaxx/runtime/validator/XWorkBeanValidator.java
Modified: trunk/jaxx-runtime/src/main/java/jaxx/runtime/validator/BeanValidator.java
===================================================================
--- trunk/jaxx-runtime/src/main/java/jaxx/runtime/validator/BeanValidator.java 2010-08-29 06:54:32 UTC (rev 2043)
+++ trunk/jaxx-runtime/src/main/java/jaxx/runtime/validator/BeanValidator.java 2010-08-29 06:57:46 UTC (rev 2044)
@@ -31,9 +31,21 @@
import org.nuiton.util.converter.ConverterUtil;
import javax.swing.event.EventListenerList;
-import java.beans.*;
-import java.util.*;
+import java.beans.EventSetDescriptor;
+import java.beans.Introspector;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyChangeSupport;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.EnumMap;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
import java.util.Map.Entry;
+import java.util.Set;
+import java.util.TreeMap;
/**
* A customized validator for a given bean.
@@ -410,12 +422,12 @@
* programmation, ce qui est utile par exemple si le bean ne supporte pas
* les {@link PropertyChangeListener}
* <p/>
- * TODO la methode devra repasser en protected et on utilise la methode
- * {@link #doValidate()} car {@link #validate()} ne modifie pas les etats
+ * <b>Note:</b> la methode est protected et on utilise la methode
+ * {@link #doValidate()} car la méthode ne modifie pas les etats
* internes et cela en rend son utilisation delicate (le validateur entre
* dans un etat incoherent par rapport aux messages envoyés).
*/
- public void validate() {
+ protected void validate() {
// on ne valide que si il y a un bean et que le resultat de la validation
// pourra etre affiche quelque part
@@ -441,7 +453,7 @@
errors.add(conversionError);
} else {
errors = Collections.singletonList(conversionError);
- if (newMessages == XWorkBeanValidator.EMPTY_RESULT) {
+ if (XWorkBeanValidator.EMPTY_RESULT.equals(newMessages)) {
newMessages = new HashMap<String, List<String>>();
}
// add the concrete conversion error
@@ -535,7 +547,7 @@
}
}
- protected synchronized void initFields() {
+ protected void initFields() {
Set<String> detectedFieldNames = new HashSet<String>();
EnumMap<BeanValidatorScope, Set<String>> tmp;
Modified: trunk/jaxx-runtime/src/main/java/jaxx/runtime/validator/BeanValidatorEvent.java
===================================================================
--- trunk/jaxx-runtime/src/main/java/jaxx/runtime/validator/BeanValidatorEvent.java 2010-08-29 06:54:32 UTC (rev 2043)
+++ trunk/jaxx-runtime/src/main/java/jaxx/runtime/validator/BeanValidatorEvent.java 2010-08-29 06:57:46 UTC (rev 2044)
@@ -38,14 +38,14 @@
private static final long serialVersionUID = 1L;
/** the field impacted by the validator */
- BeanValidatorField<?> field;
+ protected BeanValidatorField<?> field;
/** the scope impacted by the event */
- BeanValidatorScope scope;
+ protected BeanValidatorScope scope;
- String[] messagestoAdd;
+ protected String[] messagestoAdd;
- String[] messagestoDelete;
+ protected String[] messagestoDelete;
public BeanValidatorEvent(BeanValidator<?> source,
BeanValidatorField<?> field,
Modified: trunk/jaxx-runtime/src/main/java/jaxx/runtime/validator/BeanValidatorField.java
===================================================================
--- trunk/jaxx-runtime/src/main/java/jaxx/runtime/validator/BeanValidatorField.java 2010-08-29 06:54:32 UTC (rev 2043)
+++ trunk/jaxx-runtime/src/main/java/jaxx/runtime/validator/BeanValidatorField.java 2010-08-29 06:57:46 UTC (rev 2044)
@@ -26,6 +26,7 @@
import com.opensymphony.xwork2.validator.FieldValidator;
+import java.io.Serializable;
import java.util.*;
import static org.nuiton.i18n.I18n._;
@@ -45,8 +46,10 @@
* validation.
* @since 1.3
*/
-public class BeanValidatorField<B> {
+public class BeanValidatorField<B> implements Serializable{
+ private static final long serialVersionUID = 1L;
+
/** the class of bean */
protected final Class<B> beanClass;
@@ -201,7 +204,7 @@
}
public String getI18nError(String error) {
- String text;
+ String text;
if (!error.contains("##")) {
text = _(error);
} else {
Modified: trunk/jaxx-runtime/src/main/java/jaxx/runtime/validator/BeanValidatorMessage.java
===================================================================
--- trunk/jaxx-runtime/src/main/java/jaxx/runtime/validator/BeanValidatorMessage.java 2010-08-29 06:54:32 UTC (rev 2043)
+++ trunk/jaxx-runtime/src/main/java/jaxx/runtime/validator/BeanValidatorMessage.java 2010-08-29 06:57:46 UTC (rev 2044)
@@ -52,7 +52,7 @@
BeanValidatorScope scope) {
this.field = field;
this.validator = validator;
- this.message = message;
+ this.message = message == null ? null : message.trim();
this.scope = scope;
}
Modified: trunk/jaxx-runtime/src/main/java/jaxx/runtime/validator/BeanValidatorUtil.java
===================================================================
--- trunk/jaxx-runtime/src/main/java/jaxx/runtime/validator/BeanValidatorUtil.java 2010-08-29 06:54:32 UTC (rev 2043)
+++ trunk/jaxx-runtime/src/main/java/jaxx/runtime/validator/BeanValidatorUtil.java 2010-08-29 06:57:46 UTC (rev 2044)
@@ -56,7 +56,7 @@
*/
static private ValueStack sharedValueStack;
- public static synchronized ValueStack getSharedValueStack() {
+ public static ValueStack getSharedValueStack() {
if (sharedValueStack == null) {
// init context
Modified: trunk/jaxx-runtime/src/main/java/jaxx/runtime/validator/XWorkBeanValidator.java
===================================================================
--- trunk/jaxx-runtime/src/main/java/jaxx/runtime/validator/XWorkBeanValidator.java 2010-08-29 06:54:32 UTC (rev 2043)
+++ trunk/jaxx-runtime/src/main/java/jaxx/runtime/validator/XWorkBeanValidator.java 2010-08-29 06:57:46 UTC (rev 2044)
@@ -232,6 +232,7 @@
validationContext.getFieldErrors());
}
+ // retreave errors by field
if (validationContext.hasFieldErrors()) {
Map<?, ?> messages = validationContext.getFieldErrors();
result = new HashMap<String, List<String>>(messages.size());
@@ -240,7 +241,10 @@
(Collection<?>) messages.get(fieldName);
List<String> mm = new ArrayList<String>(c.size());
for (Object message : c) {
- mm.add(message + "");
+ // tchemit 2010-08-28 : trim the incoming message
+ // (I18n will not translate it otherwise)
+ String messageStr = message == null ? "" : message + "";
+ mm.add(messageStr.trim());
}
result.put(fieldName + "", mm);
}
@@ -266,7 +270,7 @@
}
/** update the property {@link #fieldNames}, says search in XWorks */
- protected synchronized void initFields() {
+ protected void initFields() {
if (fieldNames != null) {
fieldNames = null;
1
0
29 Aug '10
Author: tchemit
Date: 2010-08-29 08:54:32 +0200 (Sun, 29 Aug 2010)
New Revision: 2043
Url: http://nuiton.org/repositories/revision/jaxx/2043
Log:
Evolution #825: Remove deprectaed AbstractActionThread
Removed:
trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/AbstractActionThread.java
Deleted: trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/AbstractActionThread.java
===================================================================
--- trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/AbstractActionThread.java 2010-08-29 06:51:30 UTC (rev 2042)
+++ trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/AbstractActionThread.java 2010-08-29 06:54:32 UTC (rev 2043)
@@ -1,417 +0,0 @@
-/*
- * #%L
- * JAXX :: Runtime
- *
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2008 - 2010 CodeLutin
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Lesser Public License for more details.
- *
- * You should have received a copy of the GNU General Lesser Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>.
- * #L%
- */
-package jaxx.runtime.swing;
-
-import jaxx.runtime.swing.application.ActionExecutor;
-import jaxx.runtime.swing.application.ActionWorker;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
-import javax.swing.SwingWorker;
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-import java.lang.reflect.InvocationHandler;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.lang.reflect.Proxy;
-
-/**
- * An abstract action thread to consume actions in a non Swing event thread.
- * <p/>
- * Implements the method {@code onActionXXX(ActionWorker)} to hook on action
- * status.
- * <p/>
- * To consume an action, use the method {@link #addAction(String, Runnable)}.
- * <p/>
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @since 2.0
- * @deprecated since 2.1, prefer the {@link ActionExecutor}.
- */
-@Deprecated
-public abstract class AbstractActionThread extends Thread {
-
- /** Logger */
- private static final Log log =
- LogFactory.getLog(AbstractActionThread.class);
-
- /** l'état du thread si annulé */
- private boolean canceled;
-
- /**
- * un lock pour permettre la suspension et la reprise du thread lors du mode
- * interactif.
- */
- private final Object LOCK = new Object();
-
- /** current worker to execute action */
- protected ActionWorker worker;
-
- /** the listener of running action */
- protected final PropertyChangeListener workerListener;
-
- protected AbstractActionThread(String name) {
- super(name);
- workerListener = new PropertyChangeListener() {
-
- @Override
- public void propertyChange(PropertyChangeEvent evt) {
- if (log.isDebugEnabled()) {
- log.debug("action " + evt.getSource() + " property " +
- evt.getPropertyName() + " changed <" +
- evt.getOldValue() + " - " + evt.getNewValue() +
- '>');
- }
-
- if ("state".equals(evt.getPropertyName())) {
- ActionWorker source = (ActionWorker) evt.getSource();
- SwingWorker.StateValue state =
- (SwingWorker.StateValue) evt.getNewValue();
-
-
- if (state == SwingWorker.StateValue.STARTED) {
- // starting new action
-
- onActionStart(source);
- return;
- }
-
- if (state == SwingWorker.StateValue.DONE) {
- // on rend la main au thread pour qu'il attende une
- // prochaine operation
-
- ActionWorker.ActionStatus status = source.getStatus();
- if (log.isDebugEnabled()) {
- log.debug("Action [" + source.getActionLabel() +
- "] status = " + status);
- }
- try {
- switch (status) {
-
- case OK:
- onActionEnd(source);
- break;
- case CANCEL:
- onActionCancel(source);
- break;
- case FAIL:
- onActionFail(source);
- break;
- }
- } finally {
-
- // release thread
- setWaiting(false);
- }
- }
- }
- }
- };
- }
-
- /**
- * Creates a runnable instance (via a Proxy) to a method given by his name
- * ({@code methodName}) to invoke on {@code methodcontainer} with given
- * {@code arguments}.
- * <p/>
- * This is a great feature to create runnable code with a real context.
- *
- * @param methodContainer the container of the method to invoke
- * @param methodName the name of the method to invoke
- * @param arguments parameters to pass to method to invke.
- * @return the proxy instance
- */
- public Runnable createRunnable(final Object methodContainer,
- String methodName,
- final Object... arguments) {
-
- // find method
-
- Class<?> klass = methodContainer.getClass();
- Method mFound = null;
- for (Method m : klass.getDeclaredMethods()) {
- if (!methodName.equals(m.getName())) {
- continue;
- }
- //same method name
-
- Class<?>[] types = m.getParameterTypes();
- if (arguments.length != types.length) {
- continue;
- }
-
- // same number arguments
- mFound = m;
- break;
- }
- if (mFound == null) {
- throw new IllegalArgumentException(
- "could not find method " + methodName + " on type " +
- klass.getName());
- }
-
- //TODO Test arguments are on good type...
-
- final Method targetMethod = mFound;
- targetMethod.setAccessible(true);
- Runnable result;
-
- // create runnable proxy
-
- result = (Runnable) Proxy.newProxyInstance(
- getClass().getClassLoader(),
- new Class<?>[]{Runnable.class},
- new InvocationHandler() {
-
- @Override
- public Object invoke(Object proxy,
- Method method,
- Object[] args) {
- String methodName = method.getName();
-
- if ("run".equals(methodName)) {
- try {
- if (log.isDebugEnabled()) {
- log.debug("will invoke run method");
- }
- return targetMethod.invoke(methodContainer, arguments);
- } catch (IllegalAccessException e) {
- throw new RuntimeException(
- "could not invoke on container " +
- methodContainer, e);
- } catch (InvocationTargetException e) {
- throw new RuntimeException(e);
- }
- }
- if (methodName.equals("toString")) {
- return toString();
- }
- if (methodName.equals("equals")) {
- return equals(args[0]);
- }
- if (methodName.equals("hashCode")) {
- return hashCode();
- }
- return null;
- }
- }
- );
- return result;
- }
-
- /**
- * Add an new action to perform.
- *
- * @param actionLabel the name of the action to perform
- * @param action the action to perform
- * @return the worker that will launch the action
- */
- public ActionWorker addAction(String actionLabel, Runnable action) {
- if (worker != null && !worker.isDone()) {
- // on ne peut traiter qu'une seule opération à la fois
- throw new IllegalStateException(
- "can not add a operation when thread is busy, or has" +
- " another operation to be done");
- }
- if (action instanceof ActionWorker) {
-
- worker = (ActionWorker) action;
- } else {
- worker = new ActionWorker(actionLabel, action);
- }
-
- // on libere le thread pour qu'il execute l'opération
- setWaiting(false);
-
- return worker;
- }
-
- /**
- * Hook when a action is about to start.
- *
- * @param source the action worker containing the action to perform
- */
- public abstract void onActionStart(ActionWorker source);
-
-
- /**
- * Hook when a action has failed.
- *
- * @param source the action worker containing the action to perform
- */
- public abstract void onActionFail(ActionWorker source);
-
-
- /**
- * Hook when a action has been canceled.
- *
- * @param source the action worker containing the action to perform
- */
- public abstract void onActionCancel(ActionWorker source);
-
-
- /**
- * Hook when a action has end with no failure or cancel.
- *
- * @param source the action worker containing the action to perform
- */
- public abstract void onActionEnd(ActionWorker source);
-
- @Override
- public void run() {
- if (log.isInfoEnabled()) {
- log.info("starting... " + this);
- }
- try {
-
- while (!canceled) {
-
- if (canceled) {
- // une annulation a été demandé
- // donc même si une opération est demandée, on ne la traite
- // pas
- break;
- }
-
- // en attente qu'une opération
- // le block est bloqué jusqu'à arrivée d'une opération
- // ou une demande d'annulation
- setWaiting(true);
-
- // le thread a repris la main, donc plus en attente
- log.trace("no more waiting " + this);
-
- if (!canceled) {
-
- // une opération a été demandée
- try {
-
- // le thread écoute les modifications de l'action
- worker.addPropertyChangeListener(workerListener);
-
- // démarrage de l'opération dans un worker
-
- worker.execute();
-
- // le thread est bloqué jusqu'à la fin de l'opération
- // ou une demande d'annulation
- setWaiting(true);
-
- // le thread reprend la main des que l'operation
- // est terminée ou a été annulée, on passera alors
- // dans la méthode onPropertyChanged
-
- } finally {
- if (worker != null) {
- // le thread n'écoute plus l'action car elle est terminée
- // ou annulée
- worker.removePropertyChangeListener(workerListener);
-
- // suppression de l'action
- worker = null;
- }
- }
- }
- }
-
- } catch (Exception e) {
- throw new RuntimeException(e);
- } finally {
- unlockThread();
- if (log.isInfoEnabled()) {
- log.info(this + " will close...");
- }
- close();
- }
- }
-
- /**
- * Cancel the thread, this will release any lock of the tread.
- * <p/>
- * As a side effect, this will close the thread.
- */
- public void cancel() {
- log.info("cancel " + this);
- canceled = true;
-
- // on rend la main au thread
- setWaiting(false);
- }
-
- /** La méthode pour nettoyer le thread, a la fermeture. */
- protected void close() {
- // par defaut, on ne fait rien
- log.info(this);
- }
-
- /**
- * Mutates the waiting state of the thread.
- * <p/>
- * If parameter {@code waiting} is to {@code true}, then will lock the
- * thread, otherwise will unlock the thread.
- *
- * @param waiting {@code true} if a lock is required
- */
- protected void setWaiting(boolean waiting) {
-
- if (waiting && !canceled) {
- // locking thread
- try {
- lockThread();
- } catch (InterruptedException ex) {
- log.error(ex.getMessage(), ex);
- canceled = true;
- }
- }
-
- if (!waiting) {
- // release lock
- unlockThread();
- }
- }
-
- /**
- * To lock the thread.
- *
- * @throws InterruptedException if locking was interruped
- */
- protected void lockThread() throws InterruptedException {
- synchronized (LOCK) {
- log.trace(this);
- // lock
- LOCK.wait();
- }
- }
-
- /** To unlock the thread. */
- protected void unlockThread() {
- synchronized (LOCK) {
- log.trace(this);
- // unlock
- LOCK.notify();
- }
- }
-
-}
1
0
r2042 - trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/application
by tchemit@users.nuiton.org 29 Aug '10
by tchemit@users.nuiton.org 29 Aug '10
29 Aug '10
Author: tchemit
Date: 2010-08-29 08:51:30 +0200 (Sun, 29 Aug 2010)
New Revision: 2042
Url: http://nuiton.org/repositories/revision/jaxx/2042
Log:
reformat
Modified:
trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/application/ActionExecutor.java
Modified: trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/application/ActionExecutor.java
===================================================================
--- trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/application/ActionExecutor.java 2010-08-29 06:50:57 UTC (rev 2041)
+++ trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/application/ActionExecutor.java 2010-08-29 06:51:30 UTC (rev 2042)
@@ -52,7 +52,8 @@
LogFactory.getLog(ActionExecutor.class);
/** current tasks */
- protected final Set<ActionWorker<?, ?>> tasks = new HashSet<ActionWorker<?, ?>>();
+ protected final Set<ActionWorker<?, ?>> tasks =
+ new HashSet<ActionWorker<?, ?>>();
/** the listener of running action */
protected final PropertyChangeListener workerListener;
1
0
r2041 - in trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/nav: . tree treetable
by tchemit@users.nuiton.org 29 Aug '10
by tchemit@users.nuiton.org 29 Aug '10
29 Aug '10
Author: tchemit
Date: 2010-08-29 08:50:57 +0200 (Sun, 29 Aug 2010)
New Revision: 2041
Url: http://nuiton.org/repositories/revision/jaxx/2041
Log:
- Evolution #824: Can inject a TreeWillExpandListener to NavHelper
- clean api and javadoc
Modified:
trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/nav/NavBridge.java
trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/nav/NavHelper.java
trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/nav/package.html
trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/nav/tree/NavTreeBridge.java
trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/nav/tree/NavTreeHelper.java
trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/nav/treetable/NavTreeTableHelper.java
Modified: trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/nav/NavBridge.java
===================================================================
--- trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/nav/NavBridge.java 2010-08-29 06:40:54 UTC (rev 2040)
+++ trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/nav/NavBridge.java 2010-08-29 06:50:57 UTC (rev 2041)
@@ -61,6 +61,8 @@
//-- Model modification
//--------------------------------------------------------------------------
+ void setModel(M delegate);
+
void setRoot(N node);
void insertNodeInto(N newChild, N parent, int index);
@@ -154,6 +156,5 @@
// * selection empty.
// */
// N getSelectedNode();
-
- void setModel(M delegate);
+
}
Modified: trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/nav/NavHelper.java
===================================================================
--- trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/nav/NavHelper.java 2010-08-29 06:40:54 UTC (rev 2040)
+++ trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/nav/NavHelper.java 2010-08-29 06:50:57 UTC (rev 2041)
@@ -153,10 +153,10 @@
/**
* Register a new root node.
* <p/>
- * If internal {@link #getModel()} does not exists, creates a new one from his given root {@code node},
- * otherwise just set the new root on the existing model.
+ * If internal {@link #getModel()} does not exists, creates a new one from
+ * his given root {@code node}, otherwise just set the new root on the
+ * existing model.
* <p/>
- * <p/>
* <b>Note:</b> As a side-effect, the model will be keep in field {@link #getModel()}
* and the {@link #treeModelListener} will be registred on this model.
*
@@ -164,10 +164,58 @@
* @param extraArgs extra args to create initial model
* @return the new model
*/
- @SuppressWarnings({"unchecked"})
protected abstract M createModel(N node, Object... extraArgs);
/**
+ * Obtains the {@link AbstractNavTreeCellRenderer} renderer of the
+ * registred tree.
+ *
+ * @return the renderer of the registred tree or null if no tree was
+ * registred nor the renderer is a {@link AbstractNavTreeCellRenderer}.
+ */
+ public abstract AbstractNavTreeCellRenderer<M, N> getTreeCellRenderer();
+
+ /**
+ * Obtains the selected node of the registred tree.
+ *
+ * @return the selected tree or {@code null} if no registred tree nor
+ * selection empty.
+ */
+ public abstract N getSelectedNode();
+
+ /**
+ * Obtains the selected nodes of the registred tree.
+ *
+ * @return the selected tree or {@code null} if no registred tree nor
+ * selection empty.
+ */
+ public abstract List<N> getSelectedNodes();
+
+ /**
+ * Registers the given {@code tree} for this helper.
+ * <p/>
+ * <b>Note:</b> as a side-effect, it will register (if required) the
+ * {@link #expandListener} listener and (if required) the
+ * {@link #selectionListener}.
+ * <b>Note :</b> as a second side-effect, it will register the given {@code willExpandListener} (if not null)
+ * for the ui and do it <b>BEFORE</b> the {@link #expandListener}. The main
+ * idea here is to be able to block any expand (or collapse).
+ *
+ * @param tree the tree to register
+ * @param addExpandTreeListener a flag to add expand listener
+ * @param addOneClickSelectionListener a flag to expend when selection
+ * @param listener the optional selection listener to add
+ * @param willExpandListener the optional will expand listener to add <b>BEFORE</b> the default expand tree listener (if he was required)
+ * @since 2.1.2
+ */
+ public abstract void setUI(U tree,
+ boolean addExpandTreeListener,
+ boolean addOneClickSelectionListener,
+ TreeSelectionListener listener,
+ TreeWillExpandListener willExpandListener);
+
+
+ /**
* The shared bridge.
* <p/>
* A helper deals with only ONE model (this one), becuase we add some
@@ -449,7 +497,7 @@
}
/**
- * Obtains the jaxx delegate tree model
+ * Obtains the model.
*
* @return the internal tree model or {@code null} if none was created.
*/
@@ -458,9 +506,9 @@
}
/**
- * Obtains the jaxx delegate tree model
+ * Obtains the bridge .
*
- * @return the internal tree model or {@code null} if none was created.
+ * @return the internal bridge used by helper.
*/
protected B getBridge() {
return bridge;
@@ -483,31 +531,6 @@
}
/**
- * Obtains the {@link AbstractNavTreeCellRenderer} renderer of the
- * registred tree.
- *
- * @return the renderer of the registred tree or null if no tree was
- * registred nor the renderer is a {@link AbstractNavTreeCellRenderer}.
- */
- public abstract AbstractNavTreeCellRenderer<M, N> getTreeCellRenderer();
-
- /**
- * Obtains the selected node of the registred tree.
- *
- * @return the selected tree or {@code null} if no registred tree nor
- * selection empty.
- */
- public abstract N getSelectedNode();
-
- /**
- * Obtains the selected nodes of the registred tree.
- *
- * @return the selected tree or {@code null} if no registred tree nor
- * selection empty.
- */
- public abstract List<N> getSelectedNodes();
-
- /**
* Obtains the path of ids fro the root node to the selected node on the
* registred tree.
*
@@ -534,9 +557,10 @@
* @param tree the tree to register
* @param addExpandTreeListener a flag to add expand listener
*/
- @SuppressWarnings({"unchecked"})
- public abstract void setUI(U tree,
- boolean addExpandTreeListener);
+ public void setUI(U tree,
+ boolean addExpandTreeListener) {
+ setUI(tree, addExpandTreeListener, null);
+ }
/**
* Registers the given {@code tree} for this helper.
@@ -548,11 +572,13 @@
* @param addExpandTreeListener a flag to add expand listener
* @param listener the optional selection listener to add
*/
- @SuppressWarnings({"unchecked"})
- public abstract void setUI(U tree,
- boolean addExpandTreeListener,
- TreeSelectionListener listener);
+ public void setUI(U tree,
+ boolean addExpandTreeListener,
+ TreeSelectionListener listener) {
+ setUI(tree, addExpandTreeListener, true, listener);
+ }
+
/**
* Registers the given {@code tree} for this helper.
* <p/>
@@ -565,11 +591,17 @@
* @param addOneClickSelectionListener a flag to expend when selection
* @param listener the optional selection listener to add
*/
- @SuppressWarnings({"unchecked"})
- public abstract void setUI(U tree,
+ public void setUI(U tree,
boolean addExpandTreeListener,
boolean addOneClickSelectionListener,
- TreeSelectionListener listener);
+ TreeSelectionListener listener) {
+ setUI(tree,
+ addExpandTreeListener,
+ addOneClickSelectionListener,
+ listener,
+ null
+ );
+ }
/**
* Registers the {@code dataProvider} for the helper.
Modified: trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/nav/package.html
===================================================================
--- trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/nav/package.html 2010-08-29 06:40:54 UTC (rev 2040)
+++ trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/nav/package.html 2010-08-29 06:50:57 UTC (rev 2041)
@@ -2,7 +2,7 @@
<body>
<h1>JAXX - nav api</h1>
-This package contains a little framework to build dynamci nodes.
+This package contains a little framework to build dynamic nodes.
Tow implementations are offers :
@@ -26,14 +26,12 @@
<p>
While previous api we had to load all the model in memory, now we can build
- a
- tree model with no data.
+ a tree model with no data.
</p>
<p>
When the tree will need to expand a node, it will ask first in childs of
- node
- were loaded, if not, load them then give by hand to system.
+ node were loaded, if not, load them then give by hand to system.
</p>
<p>
Modified: trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/nav/tree/NavTreeBridge.java
===================================================================
--- trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/nav/tree/NavTreeBridge.java 2010-08-29 06:40:54 UTC (rev 2040)
+++ trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/nav/tree/NavTreeBridge.java 2010-08-29 06:50:57 UTC (rev 2041)
@@ -127,7 +127,7 @@
}
//--------------------------------------------------------------------------
- //-- Listeners notifications
+ //-- Model Listeners notifications
//--------------------------------------------------------------------------
@Override
@@ -235,72 +235,4 @@
return model.getListeners(listenerType);
}
- //--------------------------------------------------------------------------
- //-- UI
- //--------------------------------------------------------------------------
-
-// @Override
-// public JTree getUI() {
-// return ui;
-// }
-//
-// @Override
-// public void setUI(JTree ui) {
-// this.ui = ui;
-// }
-//
-// @Override
-// public void scrollPathToVisible(TreePath path) {
-// getUI().scrollPathToVisible(path);
-// }
-//
-// @Override
-// public void setSelectionPath(TreePath path) {
-// getUI().setSelectionPath(path);
-// }
-//
-// @Override
-// public TreeSelectionModel getSelectionModel() {
-// return getUI().getSelectionModel();
-// }
-//
-// @Override
-// public boolean isExpanded(TreePath pathToExpand) {
-// return getUI().isExpanded(pathToExpand);
-// }
-//
-// @Override
-// public void expandPath(TreePath pathToExpand) {
-// getUI().expandPath(pathToExpand);
-// }
-//
-// @SuppressWarnings({"unchecked"})
-// @Override
-// public AbstractNavTreeCellRenderer<DefaultTreeModel, N> getTreeCellRenderer() {
-// JTree t = getUI();
-// if (t == null) {
-// return null;
-// }
-// TreeCellRenderer r = t.getCellRenderer();
-// if (r instanceof AbstractNavTreeCellRenderer) {
-// return (AbstractNavTreeCellRenderer<DefaultTreeModel, N>) r;
-// }
-// return null;
-// }
-//
-// @SuppressWarnings({"unchecked"})
-// @Override
-// public N getSelectedNode() {
-// JTree tree = getUI();
-// if (tree == null) {
-// return null;
-// }
-// TreePath path = tree.getSelectionPath();
-// N node = null;
-// if (path != null) {
-// node = (N) path.getLastPathComponent();
-// }
-// return node;
-// }
-
}
\ No newline at end of file
Modified: trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/nav/tree/NavTreeHelper.java
===================================================================
--- trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/nav/tree/NavTreeHelper.java 2010-08-29 06:40:54 UTC (rev 2040)
+++ trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/nav/tree/NavTreeHelper.java 2010-08-29 06:50:57 UTC (rev 2041)
@@ -28,12 +28,12 @@
import javax.swing.JTree;
import javax.swing.event.TreeSelectionListener;
+import javax.swing.event.TreeWillExpandListener;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreeCellRenderer;
import javax.swing.tree.TreePath;
import javax.swing.tree.TreeSelectionModel;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.List;
/**
@@ -141,29 +141,38 @@
return nodes;
}
- @SuppressWarnings({"unchecked"})
- @Override
- public void setUI(JTree tree,
- boolean addExpandTreeListener) {
- setUI(tree, addExpandTreeListener, null);
- }
+// @Override
+// public void setUI(JTree tree,
+// boolean addExpandTreeListener) {
+// setUI(tree, addExpandTreeListener, null);
+// }
+//
+// @Override
+// public void setUI(JTree tree,
+// boolean addExpandTreeListener,
+// TreeSelectionListener listener) {
+//
+// setUI(tree, addExpandTreeListener, true, listener);
+// }
+//
+// @Override
+// public void setUI(JTree tree,
+// boolean addExpandTreeListener,
+// boolean addOneClickSelectionListener,
+// TreeSelectionListener listener) {
+// setUI(tree, addExpandTreeListener, addOneClickSelectionListener, listener, null);
+// }
- @SuppressWarnings({"unchecked"})
@Override
public void setUI(JTree tree,
boolean addExpandTreeListener,
- TreeSelectionListener listener) {
-
- setUI(tree, addExpandTreeListener, true, listener);
- }
-
- @SuppressWarnings({"unchecked"})
- @Override
- public void setUI(JTree tree,
- boolean addExpandTreeListener,
boolean addOneClickSelectionListener,
- TreeSelectionListener listener) {
+ TreeSelectionListener listener,
+ TreeWillExpandListener willExpandListener) {
setUI(tree);
+ if (willExpandListener != null) {
+ tree.addTreeWillExpandListener(willExpandListener);
+ }
if (addExpandTreeListener) {
tree.addTreeWillExpandListener(expandListener);
}
Modified: trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/nav/treetable/NavTreeTableHelper.java
===================================================================
--- trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/nav/treetable/NavTreeTableHelper.java 2010-08-29 06:40:54 UTC (rev 2040)
+++ trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/nav/treetable/NavTreeTableHelper.java 2010-08-29 06:50:57 UTC (rev 2041)
@@ -29,6 +29,7 @@
import org.jdesktop.swingx.JXTreeTable;
import javax.swing.event.TreeSelectionListener;
+import javax.swing.event.TreeWillExpandListener;
import javax.swing.tree.TreePath;
import javax.swing.tree.TreeSelectionModel;
import java.util.ArrayList;
@@ -126,38 +127,25 @@
}
return nodes;
}
-
- @SuppressWarnings({"unchecked"})
- @Override
- public void setUI(JXTreeTable treeTable,
- boolean addExpandTreeListener) {
- setUI(treeTable, addExpandTreeListener, null);
- }
- @SuppressWarnings({"unchecked"})
@Override
- public void setUI(JXTreeTable treeTable,
+ public void setUI(JXTreeTable tree,
boolean addExpandTreeListener,
- TreeSelectionListener listener) {
-
- setUI(treeTable, addExpandTreeListener, true, listener);
- }
-
- @SuppressWarnings({"unchecked"})
- @Override
- public void setUI(JXTreeTable treeTable,
- boolean addExpandTreeListener,
boolean addOneClickSelectionListener,
- TreeSelectionListener listener) {
- setUI(treeTable);
+ TreeSelectionListener listener,
+ TreeWillExpandListener willExpandListener) {
+ setUI(tree);
+ if (willExpandListener != null) {
+ tree.addTreeWillExpandListener(willExpandListener);
+ }
if (addExpandTreeListener) {
- treeTable.addTreeWillExpandListener(expandListener);
+ tree.addTreeWillExpandListener(expandListener);
}
if (listener != null) {
- treeTable.addTreeSelectionListener(listener);
+ tree.addTreeSelectionListener(listener);
}
if (addOneClickSelectionListener) {
- treeTable.addTreeSelectionListener(selectionListener);
+ tree.addTreeSelectionListener(selectionListener);
}
}
1
0
29 Aug '10
Author: tchemit
Date: 2010-08-29 08:40:54 +0200 (Sun, 29 Aug 2010)
New Revision: 2040
Url: http://nuiton.org/repositories/revision/jaxx/2040
Log:
Evolution #823: Remove deprecated navigation api
Removed:
trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/navigation/
1
0
r2039 - in trunk: jaxx-runtime/src/test/java/jaxx/runtime jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/model jaxx-widgets/src/test/java/jaxx/runtime/swing/editor/config/model
by tchemit@users.nuiton.org 26 Aug '10
by tchemit@users.nuiton.org 26 Aug '10
26 Aug '10
Author: tchemit
Date: 2010-08-26 13:25:01 +0200 (Thu, 26 Aug 2010)
New Revision: 2039
Url: http://nuiton.org/repositories/revision/jaxx/2039
Log:
reformat api + remove synchronized on listener methods
Modified:
trunk/jaxx-runtime/src/test/java/jaxx/runtime/UtilTest.java
trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/model/CallBackFinalizer.java
trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/model/CategoryModel.java
trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/model/ConfigUIModel.java
trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/model/ConfigUIModelBuilder.java
trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/model/OptionModel.java
trunk/jaxx-widgets/src/test/java/jaxx/runtime/swing/editor/config/model/MyConfig.java
Modified: trunk/jaxx-runtime/src/test/java/jaxx/runtime/UtilTest.java
===================================================================
--- trunk/jaxx-runtime/src/test/java/jaxx/runtime/UtilTest.java 2010-08-26 11:24:28 UTC (rev 2038)
+++ trunk/jaxx-runtime/src/test/java/jaxx/runtime/UtilTest.java 2010-08-26 11:25:01 UTC (rev 2039)
@@ -37,10 +37,10 @@
@Test
public void testGetEventListener() {
count = 0;
- DocumentListener listener = (DocumentListener) JAXXUtil.getEventListener(DocumentListener.class, this, "incCount");
+ DocumentListener listener = JAXXUtil.getEventListener(DocumentListener.class, this, "incCount");
listener.insertUpdate(null);
Assert.assertEquals(count, 1);
- DocumentListener listener2 = (DocumentListener) JAXXUtil.getEventListener(DocumentListener.class, this, "incCount");
+ DocumentListener listener2 = JAXXUtil.getEventListener(DocumentListener.class, this, "incCount");
listener2.removeUpdate(null);
Assert.assertEquals(count, 2);
//assertTrue("Received two different event listeners despite using identical parameters", listener == listener2);
Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/model/CallBackFinalizer.java
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/model/CallBackFinalizer.java 2010-08-26 11:24:28 UTC (rev 2038)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/model/CallBackFinalizer.java 2010-08-26 11:25:01 UTC (rev 2039)
@@ -36,7 +36,7 @@
/**
* Do finalize the result.
*
- * @param result unfinalize result
+ * @param result unfinalized result
* @return the finalized result
*/
CallBackMap finalize(CallBackMap result);
Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/model/CategoryModel.java
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/model/CategoryModel.java 2010-08-26 11:24:28 UTC (rev 2038)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/model/CategoryModel.java 2010-08-26 11:25:01 UTC (rev 2039)
@@ -189,15 +189,15 @@
pcs.removePropertyChangeListener(propertyName, listener);
}
- public synchronized boolean hasListeners(String propertyName) {
+ public boolean hasListeners(String propertyName) {
return pcs.hasListeners(propertyName);
}
- public synchronized PropertyChangeListener[] getPropertyChangeListeners(String propertyName) {
+ public PropertyChangeListener[] getPropertyChangeListeners(String propertyName) {
return pcs.getPropertyChangeListeners(propertyName);
}
- public synchronized PropertyChangeListener[] getPropertyChangeListeners() {
+ public PropertyChangeListener[] getPropertyChangeListeners() {
return pcs.getPropertyChangeListeners();
}
Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/model/ConfigUIModel.java
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/model/ConfigUIModel.java 2010-08-26 11:24:28 UTC (rev 2038)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/model/ConfigUIModel.java 2010-08-26 11:25:01 UTC (rev 2039)
@@ -206,9 +206,9 @@
for (OptionModel option : categoryModel) {
if (option.isModified()) {
Object value = option.getValue();
- //TODO TC-20090245 : should try to seek for a mutator, since
if (option.getPropertyName() != null) {
- // this is a javaBean option
+
+ // this is a javaBean option, push value via mutator
try {
PropertyUtils.setProperty(config,
option.getPropertyName(), value);
@@ -219,8 +219,9 @@
"] with value = " + value, e);
}
} else {
- // mutator could have extra code to be done when
- // modify an option
+
+ // simple option with no javabeans, just push the option
+ // value
config.setOption(option.getKey(), value == null ?
null : value.toString());
}
@@ -305,16 +306,16 @@
pcs.removePropertyChangeListener(propertyName, listener);
}
- public synchronized boolean hasListeners(String propertyName) {
+ public boolean hasListeners(String propertyName) {
return pcs.hasListeners(propertyName);
}
- public synchronized PropertyChangeListener[] getPropertyChangeListeners(
+ public PropertyChangeListener[] getPropertyChangeListeners(
String propertyName) {
return pcs.getPropertyChangeListeners(propertyName);
}
- public synchronized PropertyChangeListener[] getPropertyChangeListeners() {
+ public PropertyChangeListener[] getPropertyChangeListeners() {
return pcs.getPropertyChangeListeners();
}
Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/model/ConfigUIModelBuilder.java
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/model/ConfigUIModelBuilder.java 2010-08-26 11:24:28 UTC (rev 2038)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/model/ConfigUIModelBuilder.java 2010-08-26 11:25:01 UTC (rev 2039)
@@ -265,7 +265,7 @@
checkNoCurrent(category, "category");
category = categoryModel;
if (log.isDebugEnabled()) {
- log.debug("new current category : " + this.category);
+ log.debug("new current category : " + category);
}
option = null;
}
@@ -284,7 +284,7 @@
checkNoCurrent(option, "option");
option = optionModel;
if (log.isDebugEnabled()) {
- log.debug("new current option : " + this.option);
+ log.debug("new current option : " + option);
}
}
Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/model/OptionModel.java
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/model/OptionModel.java 2010-08-26 11:24:28 UTC (rev 2038)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/model/OptionModel.java 2010-08-26 11:25:01 UTC (rev 2039)
@@ -37,35 +37,26 @@
public class OptionModel implements OptionDef {
private static final long serialVersionUID = 1L;
- /**
- * la definition de l'option ( venant de la config)
- */
+
+ /** la definition de l'option (venant de la config) */
protected final OptionDef def;
- /**
- * un drapeau pour savoir si l'option est valide (n'est pas utilisé actuellement)
- */
+
+ /** un drapeau pour savoir si l'option est valide (n'est pas utilisé actuellement) */
protected boolean valid = true;
- /**
- * un drapeau pour savoir si l'option a été sauvée
- */
+ /** un drapeau pour savoir si l'option a été sauvée */
protected boolean saved;
- /**
- * la valeur non modifié de l'option
- */
+
+ /** la valeur non modifié de l'option */
protected Object originalValue;
- /**
- * la valeur actuelle de l'option (peut être la valeur orignal si non modifée)
- */
+
+ /** la valeur actuelle de l'option (peut être la valeur orignal si non modifée) */
protected Object value;
- /**
- * le nom de la propriété javaBean (peut etre null, si option sans support javaBean)
- */
+
+ /** le nom de la propriété javaBean (peut etre null, si option sans support javaBean) */
protected String propertyName;
- /**
- * l'editeur utilise pour modifier graphiquement l'option
- */
+ /** l'editeur utilise pour modifier graphiquement l'option */
protected TableCellEditor editor;
protected OptionModel(OptionDef def, Object value) {
Modified: trunk/jaxx-widgets/src/test/java/jaxx/runtime/swing/editor/config/model/MyConfig.java
===================================================================
--- trunk/jaxx-widgets/src/test/java/jaxx/runtime/swing/editor/config/model/MyConfig.java 2010-08-26 11:24:28 UTC (rev 2038)
+++ trunk/jaxx-widgets/src/test/java/jaxx/runtime/swing/editor/config/model/MyConfig.java 2010-08-26 11:25:01 UTC (rev 2039)
@@ -29,27 +29,28 @@
import org.apache.commons.logging.LogFactory;
import org.nuiton.util.ApplicationConfig;
-import static org.nuiton.i18n.I18n._;
-
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.util.Date;
import java.util.Locale;
+import static org.nuiton.i18n.I18n._;
+
/**
* @author tchemit <chemit(a)codelutin.com>
* @since 2.0.0
*/
public class MyConfig extends ApplicationConfig {
- /**
- * to use log facility, just put in your code: log.info(\"...\");
- */
+ /** Logger */
static private Log log = LogFactory.getLog(MyConfig.class);
public static final String PROPERTY_FULLSCREEN = "fullscreen";
+
public static final String PROPERTY_LOCALE = "locale";
+
public static final String PROPERTY_FONT_SIZE = "fontSize";
+
public static final String PROPERTY_ADJUSTING = "adjusting";
/**
@@ -57,6 +58,7 @@
* via les setter.
*/
protected boolean adjusting;
+
protected final PropertyChangeListener saveAction = new PropertyChangeListener() {
@Override
@@ -124,13 +126,11 @@
public void setFullscreen(boolean fullscreen) {
Object oldValue = null;
setOption(Option.FULL_SCREEN.key, fullscreen + "");
-// saveForUser();
firePropertyChange(PROPERTY_FULLSCREEN, oldValue, fullscreen);
}
public void setLocale(Locale newLocale) {
setOption(Option.LOCALE.key, newLocale.toString());
-// saveForUser();
firePropertyChange(PROPERTY_LOCALE, null, newLocale);
}
@@ -140,7 +140,6 @@
log.debug("changing font-size to " + newFontSize);
}
setOption(Option.FONT_SIZE.key, newFontSize.toString());
-// saveForUser();
firePropertyChange(PROPERTY_FONT_SIZE, oldValue, newFontSize);
}
@@ -160,17 +159,24 @@
//////////////////////////////////////////////////
// Toutes les options disponibles
//////////////////////////////////////////////////
+
public enum Option implements OptionDef {
CONFIG_FILE(CONFIG_FILE_NAME, _("jaxxdemo.config.configFileName.description"), "jaxxdemo", String.class, true, true),
FULL_SCREEN("ui.fullscreen", _("jaxxdemo.config.ui.fullscreen"), "false", Boolean.class, false, false),
LOCALE("ui." + PROPERTY_LOCALE, _("jaxxdemo.config.ui." + PROPERTY_LOCALE), Locale.FRANCE.toString(), Locale.class, false, false),
FONT_SIZE("ui." + PROPERTY_FONT_SIZE, _("jaxxdemo.config.ui." + PROPERTY_FONT_SIZE), "10f", Float.class, false, false);
+
public final String key;
+
public final String description;
+
public String defaultValue;
+
public final Class<?> type;
+
public boolean _transient;
+
public boolean _final;
Option(String key, String description, String defaultValue, Class<?> type, boolean _transient, boolean _final) {
@@ -189,7 +195,7 @@
@Override
public void setDefaultValue(String defaultValue) {
- this.defaultValue=defaultValue;
+ this.defaultValue = defaultValue;
}
@Override
@@ -199,7 +205,7 @@
@Override
public void setFinal(boolean _final) {
- this._final= _final;
+ this._final = _final;
}
@Override
@@ -226,7 +232,5 @@
public Class<?> getType() {
return type;
}
-
-
}
}
1
0
r2038 - in trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing: . editor/config
by tchemit@users.nuiton.org 26 Aug '10
by tchemit@users.nuiton.org 26 Aug '10
26 Aug '10
Author: tchemit
Date: 2010-08-26 13:24:28 +0200 (Thu, 26 Aug 2010)
New Revision: 2038
Url: http://nuiton.org/repositories/revision/jaxx/2038
Log:
remove old api
Removed:
trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/application/
trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigUIBuilder.java
Deleted: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigUIBuilder.java
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigUIBuilder.java 2010-08-11 14:46:18 UTC (rev 2037)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigUIBuilder.java 2010-08-26 11:24:28 UTC (rev 2038)
@@ -1,306 +0,0 @@
-/*
- * #%L
- * JAXX :: Widgets
- *
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2008 - 2010 CodeLutin
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Lesser Public License for more details.
- *
- * You should have received a copy of the GNU General Lesser Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>.
- * #L%
- */
-
-package jaxx.runtime.swing.editor.config;
-
-import jaxx.runtime.JAXXContext;
-import jaxx.runtime.context.JAXXInitialContext;
-import jaxx.runtime.swing.editor.config.model.ConfigUIModel;
-
-import java.awt.*;
-
-/**
- * La classe pour construire l'ui
- *
- * @author tchemit <chemit(a)codelutin.com>
- * @deprecated since 2.0.2, do not use any more, prefer use the {@link ConfigUIHelper} api.
- */
-@Deprecated
-public class ConfigUIBuilder {
-
- private static final String CALLBACKS_WITH_OPTIONS = "callbacksWithOptions";
-
- private static final String CALLBACKS = "callbacks";
-
- /**
- * Construire l'ui de configuration (sous forme de panel)
- *
- * @param parentContext le context applicatif
- * @param model le modele de l'ui de configuration
- * @param defaultCategory la categorie a selectionner
- * @return l'ui instanciate
- */
- public static ConfigUI newConfigUI(JAXXContext parentContext,
- ConfigUIModel model,
- String defaultCategory) {
- JAXXContext tx = new JAXXInitialContext().add(parentContext).add(model);
-
- ConfigUI ui = new ConfigUI(tx);
-
- ui.init(defaultCategory);
- return ui;
-// JButton quitButton = ui.getQuit();
-//
-// // prepare quit action
-// Action quitAction = new AbstractAction(quitButton.getText(),
-// quitButton.getIcon()) {
-//
-// private static final long serialVersionUID = 1L;
-//
-// @Override
-// public void actionPerformed(ActionEvent e) {
-// if (!canQuitCategory(ui)) {
-// return;
-// }
-//
-// final Window parentWindow = ui.getParentContainer(Window.class);
-//
-// if (!model.isSaved() || model.isStandalone()) {
-//
-// // just quit, no callBack can be apply here
-//
-// ui.destroy();
-//
-// // close the configu ui
-// parentWindow.dispose();
-// return;
-// }
-//
-// Map<CallBackEntry, List<OptionModel>> forSaved;
-// forSaved = model.getCallBacksForSaved();
-//
-// if (forSaved.isEmpty()) {
-// // just quit, no callBack to call
-//
-// ui.destroy();
-//
-// // close the configu ui
-// parentWindow.dispose();
-// return;
-// }
-//
-// forSaved = model.getCallBacksForSaved();
-//
-// // init callBackUI
-//
-// ConfigCallBackUI lastUI = new ConfigCallBackUI(
-// new JAXXInitialContext().
-// add("parent", parentWindow).
-// add(ui).
-// add(CALLBACKS_WITH_OPTIONS, forSaved).
-// add(CALLBACKS, new ArrayList<CallBackEntry>(forSaved.keySet())).
-// add(new ConfigCallBackUIHandler())
-// );
-//
-// lastUI.init();
-// ui.setVisible(false);
-// parentWindow.remove(ui);
-// parentWindow.add(lastUI);
-//
-// SwingUtilities.invokeLater(new Runnable() {
-//
-// @Override
-// public void run() {
-// parentWindow.validate();
-// }
-// });
-// }
-// };
-// String tip = quitButton.getToolTipText();
-// quitButton.setAction(quitAction);
-// quitButton.setToolTipText(tip);
-//
-// // build categories tabs
-// for (CategoryModel categoryModel : model) {
-// String category = categoryModel.getCategory();
-// String categoryLabel = _(categoryModel.getCategoryLabel());
-// ConfigCategoryUI p = new ConfigCategoryUI(new
-// JAXXInitialContext().add(ui).add(categoryModel));
-// p.getCategoryLabel().setText(categoryLabel);
-// p.setName(category);
-// ui.getCategories().addTab(_(category), null, p, categoryLabel);
-// }
-//
-// model.setCategory(defaultCategory);
-// int categoryIndex = model.getCategoryIndex(defaultCategory);
-// if (log.isDebugEnabled()) {
-// log.debug("index of default category (" + defaultCategory + ") : "
-// + categoryIndex);
-// }
-// ui.getCategories().setSelectedIndex(categoryIndex);
-// return ui;
- }
-
- /**
- * Affiche l'ui de configuration dans un boite de dialogue.
- *
- * @param configUI l'ui de configuration
- * @param ui l'ui parent de la boite de dialogue a afficher
- * (peut etre nulle)
- * @param undecorated un drapeau pour savoir si on affiche les decorations
- * de fenetre
- */
- public static void showConfigUI(ConfigUI configUI,
- Frame ui,
- boolean undecorated) {
- configUI.getHandler().displayUI(ui,undecorated);
-// JDialog f = new JDialog(ui, true);
-// f.setTitle(_("config.title"));
-// f.add(configUI);
-// if (ui != null) {
-// f.setIconImage(ui.getIconImage());
-// }
-// // pour savoir si l'ui est autonome
-// configUI.getModel().setStandalone(ui == null);
-//
-// f.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
-// f.addWindowListener(new WindowAdapter() {
-//
-// @Override
-// public void windowClosing(WindowEvent e) {
-// ActionEvent myEvent = new ActionEvent(e.getSource(), 1, "quit");
-// configUI.getQuit().getAction().actionPerformed(myEvent);
-// }
-// });
-// f.setUndecorated(undecorated);
-// JRootPane rootPane = f.getRootPane();
-// rootPane.setDefaultButton(configUI.getQuit());
-// rootPane.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(
-// KeyStroke.getKeyStroke("ESCAPE"), "quit");
-// rootPane.getActionMap().put("quit", configUI.getQuit().getAction());
-// f.pack();
-// SwingUtil.center(ui, f);
-// f.setVisible(true);
- }
-
- protected static boolean canQuitCategory(ConfigUI ui) {
-
- boolean canContinue = ui.getHandler().canQuitCategory();
- return canContinue;
-// boolean canContinue = true;
-// ConfigUIModel model = ui.getModel();
-// CategoryModel categoryModel = model.getCategoryModel();
-// String categoryName = _(categoryModel.getCategory());
-// if (!categoryModel.isValid()) {
-//
-// // the category is not valid
-// // get all the invalid options
-//
-// StringBuilder buffer = new StringBuilder();
-// buffer.append(_("config.message.quit.invalid.category",
-// categoryName));
-// buffer.append('\n');
-// for (OptionModel m : categoryModel.getInvalidOptions()) {
-// buffer.append("\n- ").append(m.getKey());
-// }
-// buffer.append('\n');
-// int reponse = askUser(ui,
-// _("config.title.need.confirm"),
-// buffer.toString(),
-// JOptionPane.ERROR_MESSAGE,
-// new Object[]{
-// _("config.choice.continue"),
-// _("config.choice.cancel")},
-// 0);
-//
-// switch (reponse) {
-// case JOptionPane.CLOSED_OPTION:
-// case 1:
-// canContinue = false;
-// break;
-// case 0:
-// if (categoryModel.isModified()) {
-// // wil reset category
-// model.reset();
-// }
-// break;
-// }
-// } else if (categoryModel.isModified()) {
-//
-// // category was modified, ask user if wants to save
-//
-// StringBuilder buffer = new StringBuilder();
-// buffer.append(_("config.message.quit.valid.and.modified.category",
-// categoryName)).append('\n');
-// for (OptionModel m : categoryModel.getModifiedOptions()) {
-// buffer.append("\n- ").append(m.getKey());
-// }
-// buffer.append('\n');
-//
-// int reponse = askUser(ui,
-// _("config.title.need.confirm"), buffer.toString(),
-// JOptionPane.WARNING_MESSAGE,
-// new Object[]{
-// _("config.choice.save"),
-// _("config.choice.doNotSave"),
-// _("config.choice.cancel")},
-// 0);
-//
-// switch (reponse) {
-// case JOptionPane.CLOSED_OPTION:
-// case 2:
-// canContinue = false;
-// break;
-// case 0:
-// // will save ui
-// model.saveModified();
-// break;
-// case 1:
-// // wil reset ui
-// model.reset();
-// break;
-// }
-//
-// }
-// return canContinue;
- }
-
- public static int askUser(ConfigUI parent,
- String title,
- String message,
- int typeMessage,
- Object[] options,
- int defaultOption) {
- int response = parent.getHandler().askUser(title,
- message,
- typeMessage,
- options,
- defaultOption);
- return response;
-
-// int response = JOptionPane.showOptionDialog(
-// parent,
-// message,
-// title,
-// JOptionPane.DEFAULT_OPTION,
-// typeMessage,
-// null,
-// options,
-// options[defaultOption]
-// );
-//
-// return response;
- }
-}
1
0
Author: tchemit
Date: 2010-08-11 16:46:18 +0200 (Wed, 11 Aug 2010)
New Revision: 2037
Url: http://nuiton.org/repositories/revision/jaxx/2037
Log:
Utilisation de mavenpom4redmine 2.2.3
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2010-07-31 08:13:42 UTC (rev 2036)
+++ trunk/pom.xml 2010-08-11 14:46:18 UTC (rev 2037)
@@ -34,7 +34,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>mavenpom4redmine</artifactId>
- <version>2.2.2.1</version>
+ <version>2.2.3</version>
</parent>
<artifactId>jaxx</artifactId>
1
0