Author: chatellier Date: 2011-05-12 13:19:18 +0000 (Thu, 12 May 2011) New Revision: 3321 Log: FactorGroup can now contains both discrete and continuous factors Modified: isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/mexico/xml/DomXMLParser.java isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/DesignPlan.java isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/FactorGroup.java isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityInputHandler.java isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/model/FactorTreeCellRenderer.java isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java isis-fish/branches/3.3.1/src/test/java/fr/ifremer/isisfish/simulator/sensitivity/group/FactorGroupTest.java isis-fish/branches/3.3.1/src/test/java/fr/ifremer/isisfish/ui/sensitivity/FactorTreeModelTest.java Modified: isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/mexico/xml/DomXMLParser.java =================================================================== --- isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/mexico/xml/DomXMLParser.java 2011-05-12 10:41:06 UTC (rev 3320) +++ isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/mexico/xml/DomXMLParser.java 2011-05-12 13:19:18 UTC (rev 3321) @@ -69,7 +69,7 @@ List<Element> factorGroupElements = rootElement.selectNodes("child::factors"); FactorGroup factorGroup = null; if (!factorGroupElements.isEmpty()) { - factorGroup = parseFactorGroup(factorGroupElements.get(0), topiaContext, true); + factorGroup = parseFactorGroup(factorGroupElements.get(0), topiaContext); } plan.setFactorGroup(factorGroup); @@ -86,15 +86,15 @@ * * @see FactorGroup#isMixed() */ - protected static FactorGroup parseFactorGroup(Element fgElement, TopiaContext topiaContext, boolean mixed) { + protected static FactorGroup parseFactorGroup(Element fgElement, TopiaContext topiaContext) { String factorGroupName = fgElement.attributeValue("name"); - FactorGroup factorGroup = new FactorGroup(factorGroupName, mixed); + FactorGroup factorGroup = new FactorGroup(factorGroupName); // sub factor group List<Element> factorGroupElements = fgElement.selectNodes("child::factors"); for (Element factorGroupElement : factorGroupElements) { - FactorGroup subFactorGroup = parseFactorGroup(factorGroupElement, topiaContext, false); + FactorGroup subFactorGroup = parseFactorGroup(factorGroupElement, topiaContext); factorGroup.addFactor(subFactorGroup); } Modified: isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/DesignPlan.java =================================================================== --- isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/DesignPlan.java 2011-05-12 10:41:06 UTC (rev 3320) +++ isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/DesignPlan.java 2011-05-12 13:19:18 UTC (rev 3321) @@ -52,7 +52,7 @@ * Constructor. */ public DesignPlan() { - factorGroup = new FactorGroup(null, true); + factorGroup = new FactorGroup(null); } /** Modified: isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/FactorGroup.java =================================================================== --- isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/FactorGroup.java 2011-05-12 10:41:06 UTC (rev 3320) +++ isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/simulator/sensitivity/FactorGroup.java 2011-05-12 13:19:18 UTC (rev 3321) @@ -82,48 +82,21 @@ }; /** - * Mixed factor composition. - * - * Default to false; - * - * To enable both {@link DiscreteDomain} and {@link ContinuousDomain} in current group. - * Currently used in UI to use it as tree root and drag'n'drop. - */ - protected boolean mixed; - - /** * Init factor group. * * @param name group name - * @param mixed mixed property */ - public FactorGroup(String name, boolean mixed) { + public FactorGroup(String name) { super(name); - this.mixed = mixed; factors = new ArrayList<Factor>(); } /** - * Init factor group. - * - * @param name group name - */ - public FactorGroup(String name) { - this(name, false); - } - - /** * Add all checked factors. * * @param allFactors factors to add */ public void addAllFactors(List<Factor> allFactors) { - for (Factor factor : allFactors) { - // check all factors to add are from same types - checkFactor(allFactors, factor); - // add factors to add are from same type as current - checkFactor(factors, factor); - } factors.addAll(allFactors); @@ -137,10 +110,6 @@ * @param factor */ public void addFactor(Factor factor) { - // if mixed enabled, don't check - if (!mixed) { - checkFactor(factors, factor); - } factors.add(factor); @@ -148,13 +117,13 @@ Collections.sort(factors, new FactorComparator()); } - /** + /* * Check factor type with other factor collection types. * * @param factorsList factors list to check * @param factor factor to check * @throws IllegalArgumentException if factor doesn't match other factor type - */ + * protected void checkFactor(List<Factor> factorsList, Factor factor) { // basiquement, il doit être du même type que le // premier element @@ -174,7 +143,7 @@ "Factor type is not in same type as other factor in group"); } } - } + }*/ /** * Remove single factor. @@ -234,15 +203,6 @@ } /** - * Return {@code true} if factor group is mixed. - * - * @return {@code true} if factor group is mixed - */ - public boolean isMixed() { - return mixed; - } - - /** * Return {@code true} if factor group has at least one factor * and this factor is discrete. * Modified: isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityInputHandler.java =================================================================== --- isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityInputHandler.java 2011-05-12 10:41:06 UTC (rev 3320) +++ isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityInputHandler.java 2011-05-12 13:19:18 UTC (rev 3321) @@ -207,7 +207,7 @@ * @param movedFactors */ public void moveFactor(SensitivityTabUI sensitivityTabUI, FactorGroup selectedFactorGroup, List<Factor> movedFactors) { - try { + //try { // add all factors, to do first, throw // exception if can't be done selectedFactorGroup.addAllFactors(movedFactors); @@ -227,10 +227,10 @@ } } sensitivityTabUI.setFactorModel(); - } catch (IllegalArgumentException ex) { + /*} catch (IllegalArgumentException ex) { JOptionPane.showMessageDialog(sensitivityTabUI, _("isisfish.sensitivity.moveillegal"), _("isisfish.sensitivity.title"), JOptionPane.ERROR_MESSAGE); - } + }*/ } /** Modified: isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/model/FactorTreeCellRenderer.java =================================================================== --- isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/model/FactorTreeCellRenderer.java 2011-05-12 10:41:06 UTC (rev 3320) +++ isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/model/FactorTreeCellRenderer.java 2011-05-12 13:19:18 UTC (rev 3321) @@ -89,8 +89,8 @@ Factor factor = (Factor)value; if (value instanceof FactorGroup) { FactorGroup factorGroup = (FactorGroup)value; - if (factorGroup.isMixed()) { // root - // non du facteur group principal (mixed) + if (factorGroup == tree.getModel().getRoot()) { // root + // non du facteur group principal text = _("isisfish.sensitivity.factors"); } else { if (factorGroup.isDiscrete()) { Modified: isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java =================================================================== --- isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java 2011-05-12 10:41:06 UTC (rev 3320) +++ isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java 2011-05-12 13:19:18 UTC (rev 3321) @@ -128,7 +128,7 @@ * List de facteur sous forme d'arbre (factor group). * {@code null} name for compatibility with 3.3.0.0. */ - protected FactorGroup factorGroup = new FactorGroup(null, true); + protected FactorGroup factorGroup = new FactorGroup(null); public SimulAction() { init(); Modified: isis-fish/branches/3.3.1/src/test/java/fr/ifremer/isisfish/simulator/sensitivity/group/FactorGroupTest.java =================================================================== --- isis-fish/branches/3.3.1/src/test/java/fr/ifremer/isisfish/simulator/sensitivity/group/FactorGroupTest.java 2011-05-12 10:41:06 UTC (rev 3320) +++ isis-fish/branches/3.3.1/src/test/java/fr/ifremer/isisfish/simulator/sensitivity/group/FactorGroupTest.java 2011-05-12 13:19:18 UTC (rev 3321) @@ -30,7 +30,6 @@ import fr.ifremer.isisfish.simulator.sensitivity.Domain; import fr.ifremer.isisfish.simulator.sensitivity.Factor; import fr.ifremer.isisfish.simulator.sensitivity.FactorGroup; -import fr.ifremer.isisfish.simulator.sensitivity.domain.ContinuousDomain; import fr.ifremer.isisfish.simulator.sensitivity.domain.DiscreteDomain; /** @@ -43,19 +42,9 @@ * By : $Author$ */ public class FactorGroupTest { - - /** - * Test to add a factor into group (null domain). - */ - @Test(expected=IllegalArgumentException.class) - public void testFactorGroupAddNullDomain() { - Factor f = new Factor("test"); - FactorGroup g = new FactorGroup("test group"); - g.addFactor(f); - } /** - * Test to add a factor into group (authorized). + * Test to add a factor into group. */ @Test public void testFactorGroupAdd() { @@ -70,19 +59,4 @@ g.addFactor(f2); } - /** - * Test to add a factor into group (forbidden). - */ - @Test(expected=IllegalArgumentException.class) - public void testFactorGroupAddException() { - Factor f1 = new Factor("test"); - Domain d1 = new DiscreteDomain(); - f1.setDomain(d1); - Factor f2 = new Factor("test 2"); - Domain d2 = new ContinuousDomain(); - f2.setDomain(d2); - FactorGroup g = new FactorGroup("test group"); - g.addFactor(f1); - g.addFactor(f2); - } } Modified: isis-fish/branches/3.3.1/src/test/java/fr/ifremer/isisfish/ui/sensitivity/FactorTreeModelTest.java =================================================================== --- isis-fish/branches/3.3.1/src/test/java/fr/ifremer/isisfish/ui/sensitivity/FactorTreeModelTest.java 2011-05-12 10:41:06 UTC (rev 3320) +++ isis-fish/branches/3.3.1/src/test/java/fr/ifremer/isisfish/ui/sensitivity/FactorTreeModelTest.java 2011-05-12 13:19:18 UTC (rev 3321) @@ -109,7 +109,7 @@ factor2.setPath("org.nuiton.math.matrix.MatrixND#563456293453#2.456347646#dim"); factor2.setValueForIdentifier("m2"); - FactorGroup factorGroup = new FactorGroup("test", true); + FactorGroup factorGroup = new FactorGroup("test"); factorGroup.addFactor(factor1); factorGroup.addFactor(factor2);