Author: chatellier Date: 2011-06-08 10:23:49 +0000 (Wed, 08 Jun 2011) New Revision: 3364 Log: Fix factor deletion Modified: isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityInputHandler.java 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-06-08 10:23:38 UTC (rev 3363) +++ isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityInputHandler.java 2011-06-08 10:23:49 UTC (rev 3364) @@ -49,6 +49,7 @@ import jaxx.runtime.context.JAXXInitialContext; import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang.xwork.ArrayUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.math.matrix.MatrixND; @@ -294,27 +295,33 @@ } /** - * Delete selection factor. + * Delete selection factors. */ protected void deleteSelectedFactors(SensitivityTabUI sensitivityTabUI) { // get selected factor - TreePath selectedPath = sensitivityTabUI.getFactorsTree().getSelectionPath(); - Object[] pathWay = selectedPath.getPath(); - Object selectedObject = pathWay[pathWay.length - 1]; - - if (selectedObject != null) { - if (selectedObject instanceof Factor) { - Factor selectedFactor = (Factor)selectedObject; - FactorGroup selectedFactorGroup = (FactorGroup)pathWay[pathWay.length - 2]; - if (log.isDebugEnabled()) { - log.debug("Deleting factor " + selectedFactor.getName()); + TreePath[] selectedPaths = sensitivityTabUI.getFactorsTree().getSelectionPaths(); + if (!ArrayUtils.isEmpty(selectedPaths)) { // can happen + for (TreePath selectedPath : selectedPaths) { + Object[] pathWay = selectedPath.getPath(); + // > 2 : can't delete root + if (pathWay.length >= 2) { + Object selectedObject = pathWay[pathWay.length - 1]; + if (selectedObject != null) { + if (selectedObject instanceof Factor) { + Factor selectedFactor = (Factor)selectedObject; + FactorGroup selectedFactorGroup = (FactorGroup)pathWay[pathWay.length - 2]; + if (log.isDebugEnabled()) { + log.debug("Deleting factor " + selectedFactor.getName()); + } + selectedFactorGroup.remove(selectedFactor); + sensitivityTabUI.setFactorModel(); + } + } } - selectedFactorGroup.remove(selectedFactor); - sensitivityTabUI.setFactorModel(); } } } - + /** * Un init new se fait toujours sur une entité. * @@ -712,7 +719,7 @@ } else if (domain instanceof MatrixContinuousDomain) { MatrixContinuousPanelUI continuousPanel = new MatrixContinuousPanelUI(); // factor numerique continue (percentage) - if (domain.getReferenceValue() != null || domain.getCoefficient() != null) { + if (domain.isPercentageType()) { MatrixND matrix = (MatrixND)domain.getReferenceValue(); // il y a bien 3 fois domain.getReferenceValue() pas d'erreur continuousPanel.initExisting( @@ -737,7 +744,7 @@ DefaultContinuousPanelUI continuousPanel = new DefaultContinuousPanelUI(); // factor numerique continue (percentage) - if (domain.getReferenceValue() != null || domain.getCoefficient() != null) { + if (domain.isPercentageType()) { // il y a bien 3 fois domain.getReferenceValue() pas d'erreur continuousPanel.initExisting( String.valueOf(domain.getReferenceValue()),
participants (1)
-
chatellier@users.labs.libre-entreprise.org