|
From: <de...@us...> - 2011-12-30 00:38:27
|
Revision: 6893
http://fudaa.svn.sourceforge.net/fudaa/?rev=6893&view=rev
Author: deniger
Date: 2011-12-30 00:38:19 +0000 (Fri, 30 Dec 2011)
Log Message:
-----------
CRUE-50 maj traductions
Modified Paths:
--------------
trunk/soft/fudaa-crue/crue-server/src/main/java/org/fudaa/dodico/crue/projet/conf/OptionsEnum.java
trunk/soft/fudaa-crue/crue-server/src/main/java/org/fudaa/dodico/crue/projet/conf/OptionsManager.java
trunk/soft/fudaa-crue/crue-server/src/main/resources/org/fudaa/dodico/crue/common/businessMessages.properties
trunk/soft/fudaa-crue/ui-options/src/main/java/org/fudaa/fudaa/crue/options/CrueOptionsPanel.java
trunk/soft/fudaa-crue/ui-options/src/main/java/org/fudaa/fudaa/crue/options/CrueOptionsPanelController.java
trunk/soft/fudaa-crue/ui-options/src/main/java/org/fudaa/fudaa/crue/options/node/OptionNode.java
trunk/soft/fudaa-crue/ui-options/src/main/java/org/fudaa/fudaa/crue/options/node/OptionNodeChildFactory.java
trunk/soft/fudaa-crue/ui-options/src/main/resources/FudaaCrue_Site.xml
trunk/soft/fudaa-crue/ui-options/src/main/resources/default-coeurs.zip
trunk/soft/fudaa-crue/ui-options/src/main/resources/org/fudaa/fudaa/crue/options/Bundle.properties
Added Paths:
-----------
trunk/soft/fudaa-crue/crue-server/src/main/java/org/fudaa/dodico/crue/projet/conf/OptionValidator.java
trunk/soft/fudaa-crue/crue-server/src/main/java/org/fudaa/dodico/crue/projet/conf/OptionValidatorMinDouble.java
Added: trunk/soft/fudaa-crue/crue-server/src/main/java/org/fudaa/dodico/crue/projet/conf/OptionValidator.java
===================================================================
--- trunk/soft/fudaa-crue/crue-server/src/main/java/org/fudaa/dodico/crue/projet/conf/OptionValidator.java (rev 0)
+++ trunk/soft/fudaa-crue/crue-server/src/main/java/org/fudaa/dodico/crue/projet/conf/OptionValidator.java 2011-12-30 00:38:19 UTC (rev 6893)
@@ -0,0 +1,20 @@
+package org.fudaa.dodico.crue.projet.conf;
+
+import org.fudaa.ctulu.CtuluLog;
+
+/**
+ *
+ * @author deniger ( genesis)
+ */
+public interface OptionValidator {
+
+ /**
+ *
+ * @param o
+ * @param log peut être null. Si non null, doit recevoir les message d'erreur
+ * @param optionId l'id de l'option
+ * @return
+ */
+ boolean isValid(String o,CtuluLog log,String optionId);
+
+}
Added: trunk/soft/fudaa-crue/crue-server/src/main/java/org/fudaa/dodico/crue/projet/conf/OptionValidatorMinDouble.java
===================================================================
--- trunk/soft/fudaa-crue/crue-server/src/main/java/org/fudaa/dodico/crue/projet/conf/OptionValidatorMinDouble.java (rev 0)
+++ trunk/soft/fudaa-crue/crue-server/src/main/java/org/fudaa/dodico/crue/projet/conf/OptionValidatorMinDouble.java 2011-12-30 00:38:19 UTC (rev 6893)
@@ -0,0 +1,55 @@
+package org.fudaa.dodico.crue.projet.conf;
+
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import org.fudaa.ctulu.CtuluLog;
+import org.fudaa.dodico.crue.common.BusinessMessages;
+
+/**
+ *
+ * @author deniger ( genesis)
+ */
+public class OptionValidatorMinDouble implements OptionValidator {
+
+ private final Double minValue;
+
+ public OptionValidatorMinDouble(Double minValue) {
+ this.minValue = minValue;
+ }
+
+ public static String geti18n(String optionId) {
+ return BusinessMessages.getString("option." + optionId + ".name");
+ }
+
+ @Override
+ public boolean isValid(String o, CtuluLog log, String optionName) {
+ boolean valid = true;
+ if (o == null) {
+ if (log != null) {
+ log.setDefaultResourceBundle(BusinessMessages.RESOURCE_BUNDLE);
+ log.addError("option.DoubleValueIsNull.Error", geti18n(optionName));
+ }
+ return false;
+ }
+ Double valueOf = null;
+ try {
+ valueOf = Double.valueOf(o);
+ } catch (NumberFormatException numberFormatException) {
+ Logger.getLogger(OptionValidatorMinDouble.class.getName()).log(Level.INFO, "option not a number", numberFormatException);
+ if (log != null) {
+ log.setDefaultResourceBundle(BusinessMessages.RESOURCE_BUNDLE);
+ log.addError("option.DoubleValueIsNotANumber.Error", geti18n(optionName));
+ }
+ return false;
+ }
+ if (minValue.compareTo(valueOf) > 0) {
+ if (log != null) {
+ log.setDefaultResourceBundle(BusinessMessages.RESOURCE_BUNDLE);
+ log.addError("option.DoubleValueIsLowerThan.Error", geti18n(optionName), minValue);
+ }
+ valid = false;
+ }
+
+ return valid;
+ }
+}
Modified: trunk/soft/fudaa-crue/crue-server/src/main/java/org/fudaa/dodico/crue/projet/conf/OptionsEnum.java
===================================================================
--- trunk/soft/fudaa-crue/crue-server/src/main/java/org/fudaa/dodico/crue/projet/conf/OptionsEnum.java 2011-12-29 15:08:35 UTC (rev 6892)
+++ trunk/soft/fudaa-crue/crue-server/src/main/java/org/fudaa/dodico/crue/projet/conf/OptionsEnum.java 2011-12-30 00:38:19 UTC (rev 6893)
@@ -15,20 +15,31 @@
KEEP_INITIAL_ORDER_BRANCHE("keepInitialOrder.branche", Boolean.class, Boolean.FALSE, true),
KEEP_INITIAL_ORDER_CASIER("keepInitialOrder.casier", Boolean.class, Boolean.FALSE, true),
KEEP_INITIAL_ORDER_SECTION("keepInitialOrder.section", Boolean.class, Boolean.FALSE, true),
+ UI_UPDATE_FREQ("uiUpdateProgressFrequence", Double.class, Double.valueOf(0.2), true, new OptionValidatorMinDouble(Double.valueOf(0.1))),
EDITOR("externalEditor", File.class, null, true),
CRUE9_EXE("crue9Exe", File.class, null, true);
private final String id;
private final Class expectedValue;
private final Object defaultValue;
private final boolean required;
+ private final OptionValidator validator;
OptionsEnum(String id, Class expectValue, Object defaultValue, boolean required) {
+ this(id, expectValue, defaultValue, required, null);
+ }
+
+ OptionsEnum(String id, Class expectValue, Object defaultValue, boolean required, OptionValidator validator) {
this.id = id;
this.required = required;
this.expectedValue = expectValue;
this.defaultValue = defaultValue;
+ this.validator = validator;
}
+ public OptionValidator getValidator() {
+ return validator;
+ }
+
public boolean isRequired() {
return required;
}
Modified: trunk/soft/fudaa-crue/crue-server/src/main/java/org/fudaa/dodico/crue/projet/conf/OptionsManager.java
===================================================================
--- trunk/soft/fudaa-crue/crue-server/src/main/java/org/fudaa/dodico/crue/projet/conf/OptionsManager.java 2011-12-29 15:08:35 UTC (rev 6892)
+++ trunk/soft/fudaa-crue/crue-server/src/main/java/org/fudaa/dodico/crue/projet/conf/OptionsManager.java 2011-12-30 00:38:19 UTC (rev 6893)
@@ -12,8 +12,6 @@
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
-import java.util.logging.Level;
-import java.util.logging.Logger;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.Predicate;
import org.apache.commons.collections.functors.CloneTransformer;
@@ -141,28 +139,30 @@
CtuluLog userLog = parentLogs.createLog();
userLog.setDesc("conf.validConfUser");
- Map<OptionsEnum, Option> siteReadOnlyOptionMap = build(siteOptions, false);
+ Map<OptionsEnum, Option> siteReadOnlyOptionMap = build(siteReadOnlyOptions, false);
validUserOptions(user, userLog, siteReadOnlyOptionMap, false);
if (validOnly) {
return;
}
Map<OptionsEnum, Option> userOptions = getUserOptionClean(user);
+ this.userOptionById.clear();
this.userOptionById.putAll(userOptions);
}
- protected void validSiteOptions(CtuluLog siteLog, List<SiteOption> siteOptions, Map<OptionsEnum, ? extends Option> siteOptionMap) {
+ protected void validSiteOptions(CtuluLog siteLog, List<SiteOption> siteOptions, Map<OptionsEnum, ? extends Option> siteOptionMapInReadOnly) {
validIsKnown(siteLog, siteOptions, true);//pour le site, on n'autorise pas d'erreurs.
validNoTwice(siteLog, siteOptions, true);
- validRequiredButEmptyAndNotEditable(siteLog, siteOptionMap);
+ validRequiredButEmptyAndNotEditable(siteLog, siteOptionMapInReadOnly);
}
- protected void validUserOptions(UserConfiguration user, CtuluLog userLog, Map<OptionsEnum, ? extends Option> siteOptionMap, boolean useFatal) {
+ protected void validUserOptions(UserConfiguration user, CtuluLog userLog, Map<OptionsEnum, ? extends Option> siteOptionMapInReadOnly, boolean useFatal) {
Collection<UserOption> userOptions = user.getOptions();
Map<OptionsEnum, ? extends Option> userOptionMap = build(userOptions, false);
validIsKnown(userLog, userOptions, useFatal);
validNoTwice(userLog, userOptions, useFatal);
- validNoSiteOptionOveridden(userLog, siteOptionMap, userOptionMap, useFatal);
+ validValuesOfOption(userLog, userOptionMap, true);
+ validNoSiteOptionOveridden(userLog, siteOptionMapInReadOnly, userOptionMap, useFatal);
}
private Map<OptionsEnum, Option> build(Collection<? extends Option> in, boolean clone) {
@@ -175,8 +175,8 @@
}
return res;
}
- private List<SiteOption> siteOptions;
- private UserConfiguration siteUserOptions;
+ private List<SiteOption> siteReadOnlyOptions;
+ private UserConfiguration siteModifiableByUserOptions;
public CtuluLogGroup reloadUserConfiguration(UserConfiguration user) {
CtuluLogGroup logs = new CtuluLogGroup(BusinessMessages.RESOURCE_BUNDLE);
@@ -193,20 +193,21 @@
}
public CtuluLogGroup init(Configuration siteConfiguration, UserConfiguration user) {
- siteOptions = siteConfiguration.getSite().getOptions();
- siteUserOptions = siteConfiguration.getUser();
+ siteReadOnlyOptions = siteConfiguration.getSite().getOptions();
+ siteModifiableByUserOptions = siteConfiguration.getUser();
CtuluLogGroup logs = new CtuluLogGroup(BusinessMessages.RESOURCE_BUNDLE);
logs.getMainLog().setDesc("conf.validConfGlobal");
logs.getMainLog().setDefaultResourceBundle(BusinessMessages.RESOURCE_BUNDLE);
CtuluLog siteLog = logs.createLog();
siteLog.setDesc("conf.validConfSite");
//on ne clone pas les SiteOptions car ne seront jamais modifiée.
- Map<OptionsEnum, Option> siteReadOnlyOptionMap = build(siteOptions, false);
- Map<OptionsEnum, Option> siteAllOptionMap = build(siteUserOptions.getOptions(), false);
+ Map<OptionsEnum, Option> siteReadOnlyOptionMap = build(siteReadOnlyOptions, false);
+ Map<OptionsEnum, Option> siteAllOptionMap = build(siteModifiableByUserOptions.getOptions(), false);
siteAllOptionMap.putAll(siteReadOnlyOptionMap);
validIsAllSetKnown(siteLog, siteAllOptionMap, true);//toutes les options doivent être définies
- validSiteOptions(siteLog, siteOptions, siteReadOnlyOptionMap);
- validUserOptions(siteUserOptions, siteLog, siteReadOnlyOptionMap, true);
+ validSiteOptions(siteLog, siteReadOnlyOptions, siteReadOnlyOptionMap);
+ validValuesOfOption(siteLog, siteAllOptionMap, false);
+ validUserOptions(siteModifiableByUserOptions, siteLog, siteReadOnlyOptionMap, true);
this.siteOptionById.clear();
this.siteOptionById.putAll(siteAllOptionMap);
this.userOptionById.clear();
@@ -259,6 +260,20 @@
}
+ private void validValuesOfOption(CtuluLog targetLog, Map<OptionsEnum, ? extends Option> optionMap, boolean doNothingIfNull) {
+ for (OptionsEnum optionEnum : enumById.values()) {
+ if (optionEnum.getValidator() != null) {
+ Option option = optionMap.get(optionEnum);
+ if (option == null && doNothingIfNull) {
+ continue;
+ }
+ optionEnum.getValidator().isValid(option == null ? null : option.getValeur(), targetLog, optionEnum.getId());
+ }
+
+ }
+
+ }
+
private void validIsAllSetKnown(CtuluLog targetLog, Map<OptionsEnum, ? extends Option> optionMap, boolean useFatal) {
for (OptionsEnum enumOption : enumById.values()) {
Modified: trunk/soft/fudaa-crue/crue-server/src/main/resources/org/fudaa/dodico/crue/common/businessMessages.properties
===================================================================
--- trunk/soft/fudaa-crue/crue-server/src/main/resources/org/fudaa/dodico/crue/common/businessMessages.properties 2011-12-29 15:08:35 UTC (rev 6892)
+++ trunk/soft/fudaa-crue/crue-server/src/main/resources/org/fudaa/dodico/crue/common/businessMessages.properties 2011-12-30 00:38:19 UTC (rev 6893)
@@ -491,10 +491,23 @@
conf.optionRequiredEmptyButNoEditable=L''option {0} est requise par Fudaa-Crue mais la configuration site ne l''a pas d\u00e9finie et n''autorise pas sa modification
conf.optionNotSet=L''option {0} n''est pas d\u00e9finie dans la configuration site. Demander \u00e0 l''installateur de v\u00e9rifier la configuration.
conf.defineTwice=L''options {0} est d\u00e9finie plusieurs fois
+option.DoubleValueIsLowerThan.Error={0}: la valeur est inf\u00e9rieure \u00e0 la valeur limite {1}
+option.DoubleValueIsNull.Error={0}: la valeur \u00e0 valider n''est pas d\u00e9finie
+option.DoubleValueIsNotANumber.Error={0}: la valeur ne repr\u00e9sente pas un nombre valide.
option.externalEditor.name=Editeur externe
option.externalEditor.comment=Chemin vers l'\u00e9diteur de ficher utilis\u00e9 pour ouvrir un fichier (ou commande accessible dans le path)
option.crue9Exe.name=Ex\u00e9cutable Crue 9
option.crue9Exe.comment=Chemin vers l'ex\u00e9cutable Crue 9 (ou commande accessible dans le path)
+option.keepInitialOrder.branche.name=Conserver l'ordre initial des branches
+option.keepInitialOrder.branche.comment=Conserver l'ordre initial des branches, plut\u00f4t que l'ordre alphab\u00e9tique
+option.keepInitialOrder.casier.name=Conserver l'ordre initial des casiers
+option.keepInitialOrder.casier.comment=Conserver l'ordre initial des casiers, plut\u00f4t que l'ordre alphab\u00e9tique
+option.keepInitialOrder.section.name=Conserver l'ordre initial des sections
+option.keepInitialOrder.section.comment=Conserver l'ordre initial des sections, plut\u00f4t que l'ordre alphab\u00e9tique
+option.keepInitialOrder.section.name=Conserver l'ordre initial des sections
+option.keepInitialOrder.section.comment=Conserver l'ordre initial des sections, plut\u00f4t que l'ordre alphab\u00e9tique
+option.uiUpdateProgressFrequence.name=Fr\u00e9quence de rafra\u00eechissement de l'interface
+option.uiUpdateProgressFrequence.comment=Fr\u00e9quence de rafra\u00eechissement en seconde de l'interface pendant le d\u00e9roulement d'un run
validation.name.pattern.error=Le nom respecte pas le format ( uniquement des lettres
CatEMHConteneur.shortName=Conteneur de donn\u00e9es
Modified: trunk/soft/fudaa-crue/ui-options/src/main/java/org/fudaa/fudaa/crue/options/CrueOptionsPanel.java
===================================================================
--- trunk/soft/fudaa-crue/ui-options/src/main/java/org/fudaa/fudaa/crue/options/CrueOptionsPanel.java 2011-12-29 15:08:35 UTC (rev 6892)
+++ trunk/soft/fudaa-crue/ui-options/src/main/java/org/fudaa/fudaa/crue/options/CrueOptionsPanel.java 2011-12-30 00:38:19 UTC (rev 6893)
@@ -4,13 +4,20 @@
*/
package org.fudaa.fudaa.crue.options;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
+import org.fudaa.ctulu.CtuluLog;
+import org.fudaa.dodico.crue.common.BusinessMessages;
+import org.fudaa.dodico.crue.projet.conf.Option;
+import org.fudaa.dodico.crue.projet.conf.OptionsEnum;
import org.fudaa.dodico.crue.projet.conf.OptionsManager;
import org.fudaa.dodico.crue.projet.conf.UserConfiguration;
import org.fudaa.dodico.crue.projet.conf.UserOption;
import org.fudaa.fudaa.crue.common.helper.DialogHelper;
+import org.fudaa.fudaa.crue.common.log.LogsDisplayer;
import org.fudaa.fudaa.crue.options.node.OptionNode;
import org.fudaa.fudaa.crue.options.node.OptionNodeChildFactory;
import org.fudaa.fudaa.crue.options.services.ConfigurationManagerService;
@@ -29,9 +36,11 @@
ConfigurationManagerService configurationManagerService = Lookup.getDefault().lookup(ConfigurationManagerService.class);
InstallationService installationService = Lookup.getDefault().lookup(InstallationService.class);
Lookup lookup;
+ CrueOptionsPanelController controller;
CrueOptionsPanel(CrueOptionsPanelController controller) {
initComponents();
+ this.controller=controller;
String txt = installationService.getSiteConfigFile().getAbsolutePath();
txtSiteFile.setText(txt);
txtSiteFile.setToolTipText(txt);
@@ -135,10 +144,23 @@
void load() {
OptionNodeChildFactory childFactory = new OptionNodeChildFactory((configurationManagerService.getOptionsManager()));
Node rootNode = new AbstractNode(Children.create(childFactory, false), Lookup.EMPTY);
+ Node[] nodes = rootNode.getChildren().getNodes();
+ for (Node node : nodes) {
+ node.addPropertyChangeListener(new PropertyChangeListener() {
+
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ controller.changed();
+ }
+ });
+ }
mgr.setRootContext(rootNode);
}
void store() {
+ if (!valid(true)) {
+ return;
+ }
Node[] nodes = mgr.getRootContext().getChildren().getNodes();
List<UserOption> userNode = new ArrayList<UserOption>();
for (Node node : nodes) {
@@ -155,9 +177,24 @@
}
- boolean valid() {
- // TODO check whether form is consistent and complete
- return true;
+ boolean valid(boolean showMessages) {
+ Node[] nodes = mgr.getRootContext().getChildren().getNodes();
+ CtuluLog logs = new CtuluLog(BusinessMessages.RESOURCE_BUNDLE);
+ boolean valid = true;
+ for (Node node : nodes) {
+ OptionNode optionNode = (OptionNode) node;
+ OptionsEnum optionEnum = optionNode.getOptionEnum();
+ final Option option = optionNode.getOption();
+ if (option.isEditable() && optionEnum.getValidator() != null) {
+ if (!optionEnum.getValidator().isValid(option.getValeur(), logs, optionEnum.getId())) {
+ valid = false;
+ }
+ }
+ }
+ if (!logs.isEmpty()) {
+ LogsDisplayer.displayError(logs, NbBundle.getMessage(CrueOptionsPanel.class, "Options.Validation.MessageTitle"));
+ }
+ return valid;
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JLabel jLabelSiteFile;
Modified: trunk/soft/fudaa-crue/ui-options/src/main/java/org/fudaa/fudaa/crue/options/CrueOptionsPanelController.java
===================================================================
--- trunk/soft/fudaa-crue/ui-options/src/main/java/org/fudaa/fudaa/crue/options/CrueOptionsPanelController.java 2011-12-29 15:08:35 UTC (rev 6892)
+++ trunk/soft/fudaa-crue/ui-options/src/main/java/org/fudaa/fudaa/crue/options/CrueOptionsPanelController.java 2011-12-30 00:38:19 UTC (rev 6893)
@@ -27,8 +27,10 @@
}
public void applyChanges() {
- getPanel().store();
- changed = false;
+ if (getPanel().valid(true)) {
+ getPanel().store();
+ changed = false;
+ }
}
public void cancel() {
@@ -36,7 +38,7 @@
}
public boolean isValid() {
- return getPanel().valid();
+ return getPanel().valid(false);
}
public boolean isChanged() {
@@ -65,12 +67,16 @@
}
return panel;
}
+
+ Boolean oldValid=Boolean.TRUE;
void changed() {
if (!changed) {
changed = true;
pcs.firePropertyChange(OptionsPanelController.PROP_CHANGED, false, true);
}
- pcs.firePropertyChange(OptionsPanelController.PROP_VALID, null, null);
+ Boolean newValid=Boolean.valueOf(getPanel().valid(false));
+ pcs.firePropertyChange(OptionsPanelController.PROP_VALID, Boolean.TRUE, newValid);
+ oldValid=newValid;
}
}
Modified: trunk/soft/fudaa-crue/ui-options/src/main/java/org/fudaa/fudaa/crue/options/node/OptionNode.java
===================================================================
--- trunk/soft/fudaa-crue/ui-options/src/main/java/org/fudaa/fudaa/crue/options/node/OptionNode.java 2011-12-29 15:08:35 UTC (rev 6892)
+++ trunk/soft/fudaa-crue/ui-options/src/main/java/org/fudaa/fudaa/crue/options/node/OptionNode.java 2011-12-30 00:38:19 UTC (rev 6893)
@@ -4,6 +4,7 @@
import java.lang.reflect.InvocationTargetException;
import java.util.MissingResourceException;
import javax.swing.Action;
+import org.apache.commons.lang.ObjectUtils;
import org.fudaa.dodico.crue.projet.conf.Option;
import org.fudaa.dodico.crue.projet.conf.OptionsEnum;
import org.fudaa.dodico.crue.projet.conf.UserOption;
@@ -62,6 +63,10 @@
this.defaultValue = defaultValue;
}
+ public OptionsEnum getOptionEnum() {
+ return optionEnum;
+ }
+
public String getDefaultValue() {
return defaultValue;
}
@@ -87,11 +92,7 @@
try {
set.put(new PropertyId(option));
if (option.isEditable()) {
- if (File.class.equals(optionEnum.getExpectedValue())) {
- set.put(new PropertyValueFileEditable((UserOption) option));
- } else {
- set.put(new PropertyValueEditable((UserOption) option));
- }
+ set.put(create((UserOption) option));
set.put(new PropertyDefault(defaultValue));
} else {
set.put(new PropertyValue(option));
@@ -103,6 +104,18 @@
return sheet;
}
+ private Property<?> create(UserOption option) {
+ final Class expectedType = optionEnum.getExpectedValue();
+ if (File.class.equals(expectedType)) {
+ return new PropertyValueFileEditable(option);
+ } else if (Boolean.class.equals(expectedType)) {
+ return new PropertyValueBooleanEditable(option);
+ } else if (Double.class.equals(expectedType)) {
+ return new PropertyValueDoubleEditable(option);
+ }
+ return new PropertyValueStringEditable((UserOption) option);
+ }
+
public Option getOption() {
return getLookup().lookup(Option.class);
}
@@ -155,11 +168,11 @@
}
}
- private static class PropertyValueEditable extends PropertySupport.ReadWrite<String> {
+ private static class PropertyValueStringEditable extends PropertySupport.ReadWrite<String> {
private final UserOption option;
- public PropertyValueEditable(final UserOption option) {
+ public PropertyValueStringEditable(final UserOption option) {
super(PROP_VALUE, String.class, getPropValueDisplayName(), getPropValueDescription());
this.option = option;
PropertyCrueUtils.configureNoCustomEditor(this);
@@ -176,10 +189,52 @@
}
}
- private static class PropertyValueFileEditable extends PropertySupport.ReadWrite<File> {
+ private class PropertyValueDoubleEditable extends PropertySupport.ReadWrite<Double> {
private final UserOption option;
+ public PropertyValueDoubleEditable(final UserOption option) {
+ super(PROP_VALUE, Double.class, getPropValueDisplayName(), getPropValueDescription());
+ this.option = option;
+ PropertyCrueUtils.configureNoCustomEditor(this);
+ }
+
+ @Override
+ public Double getValue() throws IllegalAccessException, InvocationTargetException {
+ return Double.valueOf(option.getValeur());
+ }
+
+ @Override
+ public void setValue(Double val) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException {
+ setOptionValue(ObjectUtils.toString(val));
+ }
+ }
+
+ private class PropertyValueBooleanEditable extends PropertySupport.ReadWrite<Boolean> {
+
+ private final UserOption option;
+
+ public PropertyValueBooleanEditable(final UserOption option) {
+ super(PROP_VALUE, boolean.class, getPropValueDisplayName(), getPropValueDescription());
+ this.option = option;
+ PropertyCrueUtils.configureNoCustomEditor(this);
+ }
+
+ @Override
+ public Boolean getValue() throws IllegalAccessException, InvocationTargetException {
+ return Boolean.valueOf(option.getValeur());
+ }
+
+ @Override
+ public void setValue(Boolean val) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException {
+ setOptionValue(val == null ? "false" : val.toString());
+ }
+ }
+
+ private class PropertyValueFileEditable extends PropertySupport.ReadWrite<File> {
+
+ private final UserOption option;
+
public PropertyValueFileEditable(final UserOption option) {
super(PROP_VALUE, File.class, getPropValueDisplayName(), getPropValueDescription());
this.option = option;
@@ -193,11 +248,11 @@
@Override
public void setValue(File val) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException {
if (val == null) {
- option.setValeur(null);
+ setOptionValue(null);
} else if (val.exists()) {
- option.setValeur(val.getAbsolutePath());
+ setOptionValue(val.getAbsolutePath());
} else {
- option.setValeur(val.getPath());
+ setOptionValue(val.getPath());
}
}
Modified: trunk/soft/fudaa-crue/ui-options/src/main/java/org/fudaa/fudaa/crue/options/node/OptionNodeChildFactory.java
===================================================================
--- trunk/soft/fudaa-crue/ui-options/src/main/java/org/fudaa/fudaa/crue/options/node/OptionNodeChildFactory.java 2011-12-29 15:08:35 UTC (rev 6892)
+++ trunk/soft/fudaa-crue/ui-options/src/main/java/org/fudaa/fudaa/crue/options/node/OptionNodeChildFactory.java 2011-12-30 00:38:19 UTC (rev 6893)
@@ -1,5 +1,6 @@
package org.fudaa.fudaa.crue.options.node;
+import java.util.Collection;
import java.util.List;
import org.fudaa.dodico.crue.projet.conf.Option;
import org.fudaa.dodico.crue.projet.conf.OptionsManager;
@@ -11,22 +12,29 @@
* @author deniger ( genesis)
*/
public class OptionNodeChildFactory extends ChildFactory<Option> {
-
+
private final OptionsManager optionsMananger;
-
+
public OptionNodeChildFactory(OptionsManager optionsMananger) {
this.optionsMananger = optionsMananger;
}
-
+
@Override
protected boolean createKeys(List<Option> toPopulate) {
+ if (toPopulate == null || optionsMananger == null) {
+ return false;
+ }
+ final Collection<Option> visibleOptionsCloned = optionsMananger.getVisibleOptionsCloned();
+ if (visibleOptionsCloned == null) {
+ return false;
+ }
toPopulate.addAll(
- optionsMananger.getVisibleOptionsCloned());
+ visibleOptionsCloned);
return true;
}
-
+
@Override
protected Node createNodeForKey(Option key) {
- return new OptionNode(key, optionsMananger.getSiteValue(key),optionsMananger.getOptionEnum(key));
+ return new OptionNode(key, optionsMananger.getSiteValue(key), optionsMananger.getOptionEnum(key));
}
}
Modified: trunk/soft/fudaa-crue/ui-options/src/main/resources/FudaaCrue_Site.xml
===================================================================
--- trunk/soft/fudaa-crue/ui-options/src/main/resources/FudaaCrue_Site.xml 2011-12-29 15:08:35 UTC (rev 6892)
+++ trunk/soft/fudaa-crue/ui-options/src/main/resources/FudaaCrue_Site.xml 2011-12-30 00:38:19 UTC (rev 6893)
@@ -26,6 +26,22 @@
</Site>
<User>
<UserOptions>
+ <UserOption Nom="keepInitialOrder.branche">
+ <Commentaire>Conserver l'ordre initial des branches plutôt que l'ordre alphabétique.</Commentaire>
+ <Valeur>false</Valeur>
+ </UserOption>
+ <UserOption Nom="keepInitialOrder.section">
+ <Commentaire>Conserver l'ordre initial des sections plutôt que l'ordre alphabétique.</Commentaire>
+ <Valeur>false</Valeur>
+ </UserOption>
+ <UserOption Nom="keepInitialOrder.casier">
+ <Commentaire>Conserver l'ordre initial des casiers, plutôt que l'ordre alphabétique.</Commentaire>
+ <Valeur>false</Valeur>
+ </UserOption>
+ <UserOption Nom="uiUpdateProgressFrequence">
+ <Commentaire>Fréquence de rafraîchissement en seconde de l'interface pendant le déroulement d'un run</Commentaire>
+ <Valeur>0.2</Valeur>
+ </UserOption>
<UserOption Nom="externalEditor">
<Commentaire>Chemin ou commande vers l'éditeur externe.</Commentaire>
<Valeur>notepad</Valeur>
Modified: trunk/soft/fudaa-crue/ui-options/src/main/resources/default-coeurs.zip
===================================================================
(Binary files differ)
Modified: trunk/soft/fudaa-crue/ui-options/src/main/resources/org/fudaa/fudaa/crue/options/Bundle.properties
===================================================================
--- trunk/soft/fudaa-crue/ui-options/src/main/resources/org/fudaa/fudaa/crue/options/Bundle.properties 2011-12-29 15:08:35 UTC (rev 6892)
+++ trunk/soft/fudaa-crue/ui-options/src/main/resources/org/fudaa/fudaa/crue/options/Bundle.properties 2011-12-30 00:38:19 UTC (rev 6893)
@@ -10,4 +10,5 @@
ColumnOptions=Option
ColumnCoeur=Coeur
CoeurOptionsPanel.jbReloadCoeurs.text=Recharger les coeurs
-ReloadOption.WarnNotCancellable.DialogMessage=Attention, cette action n'est pas annulable. Toutes vos modifications seront perdues.\n Voulez-vous continuer ?
+ReloadOption.WarnNotCancellable.DialogMessage=Attention, cette action n'est pas annulable.\nLes valeurs des options vont \u00eatre recharg\u00e9es \u00e0 partir des fichiers de configuration Site et Utilisateur.\nToutes vos modifications seront perdues. Voulez-vous continuer ?
+Options.Validation.MessageTitle=Validation des options
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|