From: <de...@us...> - 2016-10-24 14:43:42
|
Revision: 9452 http://sourceforge.net/p/fudaa/svn/9452 Author: deniger Date: 2016-10-24 14:43:39 +0000 (Mon, 24 Oct 2016) Log Message: ----------- code plus securis?\195?\169 pour la gestion des traductions. Modified Paths: -------------- trunk/soft/fudaa-crue/crue-emh/src/main/java/org/fudaa/dodico/crue/metier/emh/ui/OrdCalcScenarioUiState.java trunk/soft/fudaa-crue/crue-emh/src/main/java/org/fudaa/dodico/crue/metier/helper/OrdCalcCloner.java trunk/soft/fudaa-crue/ui-common/src/main/java/org/fudaa/fudaa/crue/common/pdt/DurationPropertyEditor.java trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/ModellingComputeDataTopComponent.java trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/action/ModellingSaveAction.java trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/calcul/CalculDuplicateNodeAction.java trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/calcul/CalculNodeFactory.java trunk/soft/fudaa-crue/ui-modelling/src/main/resources/org/fudaa/fudaa/crue/modelling/action/Bundle.properties Modified: trunk/soft/fudaa-crue/crue-emh/src/main/java/org/fudaa/dodico/crue/metier/emh/ui/OrdCalcScenarioUiState.java =================================================================== --- trunk/soft/fudaa-crue/crue-emh/src/main/java/org/fudaa/dodico/crue/metier/emh/ui/OrdCalcScenarioUiState.java 2016-10-24 14:43:04 UTC (rev 9451) +++ trunk/soft/fudaa-crue/crue-emh/src/main/java/org/fudaa/dodico/crue/metier/emh/ui/OrdCalcScenarioUiState.java 2016-10-24 14:43:39 UTC (rev 9452) @@ -20,7 +20,7 @@ private final LinkedHashMap<String, CalcOrdCalcUiState> calcOrdCalcUiStates = new LinkedHashMap<>(); public void addCalcOrdCalcUiStates(String calcId, OrdCalc calcOrdCalcUiState) { - calcOrdCalcUiStates.put(calcId, new CalcOrdCalcUiState(calcId, calcOrdCalcUiState)); + calcOrdCalcUiStates.put(calcId.toUpperCase(), new CalcOrdCalcUiState(calcId, calcOrdCalcUiState)); } /** @@ -31,6 +31,12 @@ return new ArrayList<>(calcOrdCalcUiStates.keySet()); } + public void addAll(OrdCalcScenarioUiState other) { + if (other != null) { + calcOrdCalcUiStates.putAll(other.calcOrdCalcUiStates); + } + } + /** * * @return la liste des ordCalc UI dans l'ordre Modified: trunk/soft/fudaa-crue/crue-emh/src/main/java/org/fudaa/dodico/crue/metier/helper/OrdCalcCloner.java =================================================================== --- trunk/soft/fudaa-crue/crue-emh/src/main/java/org/fudaa/dodico/crue/metier/helper/OrdCalcCloner.java 2016-10-24 14:43:04 UTC (rev 9451) +++ trunk/soft/fudaa-crue/crue-emh/src/main/java/org/fudaa/dodico/crue/metier/helper/OrdCalcCloner.java 2016-10-24 14:43:39 UTC (rev 9452) @@ -108,7 +108,7 @@ protected Result sortCalcWithSavedUi(OrdCalcScenario ocal, List<Calc> clonedCalcs, OrdCalcScenarioUiState uiOCalData) { Result res = new Result(); - Map<String, Calc> clonedCalcsByName = TransformerHelper.toMapOfNom(clonedCalcs); + Map<String, Calc> clonedCalcsByName = TransformerHelper.toMapOfId(clonedCalcs); final List<String> calcNameInOrder = uiOCalData.getCalcNameInOrder(); boolean isCoherent = isUiSavedCalcAccordingToCalcs(clonedCalcs, calcNameInOrder); if (!isCoherent) { @@ -118,9 +118,9 @@ List<OrdCalc> ordCalcsInScenario = ocal.getOrdCalc(); Set<String> namesOfActiveCalcul = new HashSet<>(); for (OrdCalc ordCalc : ordCalcsInScenario) { - String calcName = ordCalc.getCalc().getNom(); - namesOfActiveCalcul.add(calcName); - final Calc calc = clonedCalcsByName.get(calcName); + String calcId = ordCalc.getCalc().getId(); + namesOfActiveCalcul.add(calcId); + final Calc calc = clonedCalcsByName.get(calcId); res.ordCalcs.add(ordCalc.deepCloneButNotCalc(calc)); } final List<CalcOrdCalcUiState> uiStates = uiOCalData.getUiStates(); @@ -128,13 +128,13 @@ final String calcName = uiState.getCalcId(); if (!namesOfActiveCalcul.contains(calcName)) { final OrdCalc ordCalcSaved = uiState.getOrdCalc(); - final Calc calc = clonedCalcsByName.get(calcName); + final Calc calc = clonedCalcsByName.get(calcName.toUpperCase()); assert calc != null : "uiOrdCalc: should not be null as the method isUiSavedCalcAccordingToCalcs should have tested it"; res.ordCalcsInUI.add(ordCalcSaved.deepCloneButNotCalc(calc)); } } for (String calcName : calcNameInOrder) { - final Calc calc = clonedCalcsByName.get(calcName); + final Calc calc = clonedCalcsByName.get(calcName.toUpperCase()); assert calc != null : "should not be null as the method isUiSavedCalcAccordingToCalcs should have tested it"; res.calcs.add(calc); } @@ -149,10 +149,10 @@ */ protected boolean isUiSavedCalcAccordingToCalcs(Collection<Calc> clonedCalcs, final Collection<String> calcNameInOrder) { //on va d'abord voir si le tout est cohérent: - Map<String, Calc> clonedCalcsByName = TransformerHelper.toMapOfNom(clonedCalcs); if (clonedCalcs.size() == calcNameInOrder.size()) { + Map<String, Calc> clonedCalcsByName = TransformerHelper.toMapOfId(clonedCalcs); for (String string : calcNameInOrder) { - if (!clonedCalcsByName.containsKey(string)) { + if (!clonedCalcsByName.containsKey(string.toUpperCase())) { return false; } } Modified: trunk/soft/fudaa-crue/ui-common/src/main/java/org/fudaa/fudaa/crue/common/pdt/DurationPropertyEditor.java =================================================================== --- trunk/soft/fudaa-crue/ui-common/src/main/java/org/fudaa/fudaa/crue/common/pdt/DurationPropertyEditor.java 2016-10-24 14:43:04 UTC (rev 9451) +++ trunk/soft/fudaa-crue/ui-common/src/main/java/org/fudaa/fudaa/crue/common/pdt/DurationPropertyEditor.java 2016-10-24 14:43:39 UTC (rev 9452) @@ -49,7 +49,7 @@ @Override public void propertyChange(PropertyChangeEvent evt) { - if (PropertyEnv.PROP_STATE.equals(evt.getPropertyName()) + if (durationEditor != null && PropertyEnv.PROP_STATE.equals(evt.getPropertyName()) && evt.getNewValue() == PropertyEnv.STATE_VALID) { setValue(durationEditor.getDuration()); } Modified: trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/ModellingComputeDataTopComponent.java =================================================================== --- trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/ModellingComputeDataTopComponent.java 2016-10-24 14:43:04 UTC (rev 9451) +++ trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/ModellingComputeDataTopComponent.java 2016-10-24 14:43:39 UTC (rev 9452) @@ -7,6 +7,8 @@ import java.beans.PropertyChangeEvent; import java.util.ArrayList; import java.util.List; +import java.util.logging.Level; +import java.util.logging.Logger; import javax.swing.JMenuItem; import javax.swing.JPopupMenu; import org.fudaa.ctulu.CtuluLogGroup; @@ -129,21 +131,40 @@ @Override public void valideModificationHandler() { Node[] nodes = getExplorerManager().getRootContext().getChildren().getNodes(); + //contiendra tous les calculs. Dans un premier temps ne contient que les permanents List<Calc> newCalcs = new ArrayList<>(); + //que les transitoires + List<Calc> newCalcsTransitoire = new ArrayList<>(); + //contiendra tous les ordres de calcul. Dans un premier temps ne contient que les permanents List<OrdCalc> newOrdCalcs = new ArrayList<>(); - //contiendra les données persistées dans l'éditeur ( données ui uniquement). + //que les transitoires + List<OrdCalc> newOrdCalcsTransitoire = new ArrayList<>(); + //contiendra les données persistées dans l'éditeur ( données ui uniquement). Ne contient que les permanents au début OrdCalcScenarioUiState uiStates = new OrdCalcScenarioUiState(); + //que les tansitoires + OrdCalcScenarioUiState uiStatesTransitoire = new OrdCalcScenarioUiState(); for (Node node : nodes) { CalculNode calculNode = (CalculNode) node; - newCalcs.add(calculNode.getCalc()); + final boolean isCalculPermanent = calculNode.getCalc().isPermanent(); + OrdCalcScenarioUiState uiStatesToUse = isCalculPermanent ? uiStates : uiStatesTransitoire; + List<Calc> newCalcsToUse = isCalculPermanent ? newCalcs : newCalcsTransitoire; + List<OrdCalc> newOrdCalcsToUse = isCalculPermanent ? newOrdCalcs : newOrdCalcsTransitoire; + newCalcsToUse.add(calculNode.getCalc()); CalculOcalNode ocalNode = calculNode.getOcalNode(); if (ocalNode != null) { - newOrdCalcs.add(ocalNode.getOrdCalc()); - uiStates.addCalcOrdCalcUiStates(calculNode.getCalc().getId(), ocalNode.getOrdCalc()); + newOrdCalcsToUse.add(ocalNode.getOrdCalc()); + uiStatesToUse.addCalcOrdCalcUiStates(calculNode.getCalc().getId(), ocalNode.getOrdCalc()); } else if (calculNode.getOldUsedOrdCalc() != null) { - uiStates.addCalcOrdCalcUiStates(calculNode.getCalc().getId(), calculNode.getOldUsedOrdCalc()); + uiStatesToUse.addCalcOrdCalcUiStates(calculNode.getCalc().getId(), calculNode.getOldUsedOrdCalc()); + } else { + Logger.getLogger(ModellingComputeDataTopComponent.class.getName()).log(Level.SEVERE, "calc without ocal data"); } } + //pour mettre dans l'ordre les permanents puis les transitoires + uiStates.addAll(uiStatesTransitoire); + newOrdCalcs.addAll(newOrdCalcsTransitoire); + newCalcs.addAll(newCalcsTransitoire); + OrdCalcScenario ocalTemp = new OrdCalcScenario(); DonCLimMScenario dclmTemp = new DonCLimMScenario(); for (OrdCalc ordCalc : newOrdCalcs) { @@ -281,11 +302,11 @@ fac.addNewCalc(calc); } } + private class CalcNodeListener implements NodeListener { public void reorderChildren() { expandedNodesManager.saveState(); - //on s'assure que les permanents sont avant les transitoire setModified(true); expandedNodesManager.restoreState(); } @@ -348,10 +369,8 @@ public boolean canMoveEndBeAdded(Node[] selectedNodes) { for (Node node : selectedNodes) { if (!node.getClass().equals(CalculNode.class)) { - return false; } - return ((CalculNode) node).isActivated(); } return true; } Modified: trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/action/ModellingSaveAction.java =================================================================== --- trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/action/ModellingSaveAction.java 2016-10-24 14:43:04 UTC (rev 9451) +++ trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/action/ModellingSaveAction.java 2016-10-24 14:43:39 UTC (rev 9452) @@ -72,6 +72,9 @@ PerspectiveServiceModelling perpective = Lookup.getDefault().lookup(PerspectiveServiceModelling.class); perpective.setDirty(false); + } else { + DialogHelper.showError(NbBundle.getMessage(ModellingSaveAction.class, "ModellingSaveAction.ErrorMessage", + scenarioService.getManagerScenarioLoaded().getNom())); } Modified: trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/calcul/CalculDuplicateNodeAction.java =================================================================== --- trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/calcul/CalculDuplicateNodeAction.java 2016-10-24 14:43:04 UTC (rev 9451) +++ trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/calcul/CalculDuplicateNodeAction.java 2016-10-24 14:43:39 UTC (rev 9452) @@ -40,7 +40,7 @@ calc.setNom(nameFinder.findUniqueName(nodesName, calc.getNom(), 2)); CalculNodeFactory fac = new CalculNodeFactory(targetNode.outlineView); CalculOcalNode ocalNode = targetNode.getOcalNode(); - OrdCalc ordCalc = null; + OrdCalc ordCalc; if (ocalNode != null) { ordCalc = ocalNode.getOrdCalc(); } else { Modified: trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/calcul/CalculNodeFactory.java =================================================================== --- trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/calcul/CalculNodeFactory.java 2016-10-24 14:43:04 UTC (rev 9451) +++ trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/calcul/CalculNodeFactory.java 2016-10-24 14:43:39 UTC (rev 9452) @@ -22,6 +22,7 @@ import org.fudaa.dodico.crue.metier.emh.DonLoiHYConteneur; import org.fudaa.dodico.crue.metier.emh.Loi; import org.fudaa.dodico.crue.metier.emh.OrdCalc; +import org.fudaa.dodico.crue.metier.factory.OrdCalcFactory; import org.fudaa.dodico.crue.metier.helper.CalcHelper; import org.fudaa.dodico.crue.metier.helper.OrdCalcCloner; import org.fudaa.dodico.crue.metier.helper.OrdCalcCloner.Result; @@ -95,7 +96,12 @@ CalculNode node = new CalculNode(outlineView, createChildren(calc, ordCalcByCalc, donLoiHYConteneurCloned), calc, ccm, perspectiveServiceModelling); if (!node.isActivated()) { - node.setOldUsedOrdCalc(uiOrdCalcByCalc.get(calc)); + OrdCalc saved = uiOrdCalcByCalc.get(calc); + if (saved == null) { + saved = OrdCalcFactory.createDefaultOcal(calc, ccm); + } + node.setOldUsedOrdCalc(saved); + } nodes.add(node); } @@ -109,6 +115,7 @@ node = new CalculNode(outlineView, createChildren(newCalc, Collections.<Calc, OrdCalc>emptyMap(), donLoiHYConteneurCloned), newCalc, ccm, perspectiveServiceModelling); + node.setOldUsedOrdCalc(OrdCalcFactory.createDefaultOcal(newCalc, ccm)); ExplorerManager newManager = ExplorerManager.find(outlineView); final Node[] newNodeArray = new Node[]{node}; newManager.getRootContext().getChildren().add(newNodeArray); Modified: trunk/soft/fudaa-crue/ui-modelling/src/main/resources/org/fudaa/fudaa/crue/modelling/action/Bundle.properties =================================================================== --- trunk/soft/fudaa-crue/ui-modelling/src/main/resources/org/fudaa/fudaa/crue/modelling/action/Bundle.properties 2016-10-24 14:43:04 UTC (rev 9451) +++ trunk/soft/fudaa-crue/ui-modelling/src/main/resources/org/fudaa/fudaa/crue/modelling/action/Bundle.properties 2016-10-24 14:43:39 UTC (rev 9452) @@ -19,6 +19,7 @@ Export.EndMessageDetails=Fichiers g\u00e9n\u00e9r\u00e9s {0} ExportCrue10.EndMessageDetails=Fichiers g\u00e9n\u00e9r\u00e9s {0} dans la version de grammaire {1} ModellingSaveAction.SucceedMessage=Sc\u00e9nario {0} sauv\u00e9 +ModellingSaveAction.ErrorMessage=Echec lors de la sauvegarde du sc\u00e9nario {0}. V\u00e9rifier le compte-rendu d''op\u00e9ration. ModellingCloseAction.ActivatedIsModified=La vue active contient des donn\u00e9es non valid\u00e9es ModellingCloseAction.IsModified=Des donn\u00e9es ne sont pas enregistr\u00e9es ModellingCloseAction.Confirm=Voulez-vous ignorer les modifications et fermer le sc\u00e9nario ? This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <de...@us...> - 2016-11-22 11:20:30
|
Revision: 9460 http://sourceforge.net/p/fudaa/svn/9460 Author: deniger Date: 2016-11-22 11:20:28 +0000 (Tue, 22 Nov 2016) Log Message: ----------- CRUE-706 Modified Paths: -------------- trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/list/ModellingListFrottementTopComponent.java trunk/soft/fudaa-crue/ui-modelling/src/main/resources/org/fudaa/fudaa/crue/modelling/list/Bundle.properties trunk/soft/fudaa-crue/ui-views/src/main/java/org/fudaa/fudaa/crue/views/export/OutlineViewExportTableModel.java Added Paths: ----------- trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/list/ModellingListFrottementExportTableModel.java Added: trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/list/ModellingListFrottementExportTableModel.java =================================================================== --- trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/list/ModellingListFrottementExportTableModel.java (rev 0) +++ trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/list/ModellingListFrottementExportTableModel.java 2016-11-22 11:20:28 UTC (rev 9460) @@ -0,0 +1,108 @@ +/* +GPL 2 + */ +package org.fudaa.fudaa.crue.modelling.list; + +import java.lang.reflect.InvocationTargetException; +import java.util.Collections; +import java.util.List; +import javax.swing.JTable; +import jxl.write.Label; +import jxl.write.WritableCell; +import org.fudaa.ctulu.CtuluLibString; +import org.fudaa.ctulu.table.CtuluTableModelInterface; +import org.openide.nodes.Node; +import org.openide.util.Exceptions; + +/** + * Un modèle pour adapter l'export cvs/Excel de la liste des frottement + * + * @author Frederic Deniger + */ +public class ModellingListFrottementExportTableModel implements CtuluTableModelInterface { + + //l'indice de la premiere colonne + int idxColumnBrancheName = 0; + //l'offset impliqué par la première colonne + int offsetToApply = 1; + JTable listFrtTable; + List<String> rowNames; + + public ModellingListFrottementExportTableModel(JTable listFrtTable) { + this.listFrtTable = listFrtTable; + //le noms des lignes. + rowNames = (List<String>) listFrtTable.getClientProperty(ModellingListFrottementTopComponent.PROPERTY_FOR_ROW_NAMES); + } + + @Override + public int[] getSelectedRows() { + return null; + } + + /** + * + * @param rowIndex + * @param columnIndex + * @return la valeur a utliser en (rowIndex,columnIndex). Pour la première colonne on utilise le nom de la ligne + */ + @Override + public Object getValue(int rowIndex, int columnIndex) { + //on utilise le noms des lignes + if (columnIndex == idxColumnBrancheName) { + if (rowNames == null || rowNames.size() < rowIndex) { + return CtuluLibString.EMPTY_STRING; + } + return rowNames.get(rowIndex); + } + Object val = listFrtTable.getValueAt(rowIndex, columnIndex - offsetToApply); + if (val instanceof Node.Property) { + try { + return ((Node.Property) val).getValue(); + } catch (IllegalAccessException | InvocationTargetException ex) { + Exceptions.printStackTrace(ex); + } + } + return val; + } + + @Override + public String getColumnName(int colIdx) { + if (colIdx == idxColumnBrancheName) { + return org.openide.util.NbBundle.getMessage(ModellingListFrottementExportTableModel.class, "listFrottementExport.first.column.name"); + } + return listFrtTable.getColumnName(colIdx - offsetToApply); + } + + @Override + public WritableCell getExcelWritable(int _rowInModel, int _colInModel, int _rowInXls, int _colInXls) { + final Object o = getValue(_rowInModel, _colInModel); + if (o == null) { + return null; + } + String s = o.toString(); + if (s == null) { + return null; + } + s = s.trim(); + if (s.length() == 0) { + return null; + } + return new Label(_colInXls, _rowInXls, s); + } + + @Override + public int getMaxCol() { + return offsetToApply + listFrtTable.getColumnCount(); + } + + @Override + public int getMaxRow() { + return listFrtTable.getRowCount(); + } + + @Override + public List<String> getComments() { + return Collections.emptyList(); + } + +} Modified: trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/list/ModellingListFrottementTopComponent.java =================================================================== --- trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/list/ModellingListFrottementTopComponent.java 2016-11-22 09:48:54 UTC (rev 9459) +++ trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/list/ModellingListFrottementTopComponent.java 2016-11-22 11:20:28 UTC (rev 9460) @@ -26,7 +26,7 @@ import org.apache.commons.lang.StringUtils; import org.fudaa.ctulu.gui.CtuluFileChooser; import org.fudaa.ctulu.gui.CtuluTableSimpleExporter; -import org.fudaa.ctulu.table.CtuluTableModelDefault; +import org.fudaa.ctulu.table.CtuluTableModelInterface; import org.fudaa.dodico.crue.common.BusinessMessages; import org.fudaa.dodico.crue.config.lit.LitNomme; import org.fudaa.dodico.crue.metier.emh.CatEMHBranche; @@ -48,7 +48,6 @@ import org.fudaa.fudaa.crue.modelling.loi.ModellingOpenDFRTNodeAction; import org.fudaa.fudaa.crue.modelling.services.EnumModification; import org.fudaa.fudaa.crue.modelling.services.ScenarioModificationEvent; -import org.fudaa.fudaa.crue.views.export.OutlineViewExportTableModel; import org.openide.util.NbBundle; import org.openide.windows.TopComponent; @@ -68,6 +67,7 @@ public static final String TOPCOMPONENT_ACTION = "CTL_" + TOPCOMPONENT_ID; public static final String PROP_LIT_NUMEROTE = "LitNumerote"; public static final String PROPERTY_BRANCHE = "BRANCHE"; + protected static final String PROPERTY_FOR_ROW_NAMES = "rowNames"; Long sousModeleUid; private JScrollPane scrollPane; private JTable table; @@ -77,6 +77,17 @@ // menu d'import des fichiers XLS/CSV JMenuItem importItem; + protected final ActionListener modifiedActionListener = new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + setModified(true); + } + }; + boolean isUpdating; + CatEMHBranche brancheToSelect = null; + // GridBuilder gridBuilder; + private boolean editable; + public ModellingListFrottementTopComponent() { setName(NbBundle.getMessage(ModellingListFrottementTopComponent.class, TOPCOMPONENT_ACTION)); setToolTipText(NbBundle.getMessage(ModellingListFrottementTopComponent.class, "HINT_" + TOPCOMPONENT_ID)); @@ -84,13 +95,6 @@ setBorder(BorderFactory.createCompoundBorder(getBorder(), BuBorders.EMPTY3333)); } - protected final ActionListener modifiedActionListener = new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - setModified(true); - } - }; - @Override protected String getViewHelpCtxId() { return "vueListeFrottements"; @@ -127,7 +131,6 @@ protected void scenarioReloaded() { scenarioLoaded(); } - boolean isUpdating; @Override public void setModified(boolean modified) { @@ -202,6 +205,7 @@ table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); table.setCellSelectionEnabled(false); table.setRowSelectionAllowed(true); + table.putClientProperty(PROPERTY_FOR_ROW_NAMES, rows); table.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { @@ -278,7 +282,7 @@ * Export csv/xlsx du tableau */ protected void exportTable() { - CtuluTableModelDefault defaultModel = new OutlineViewExportTableModel(table, null, null); + CtuluTableModelInterface defaultModel = new ModellingListFrottementExportTableModel(table); CtuluTableSimpleExporter.doExport(';', defaultModel, CtuluUIForNetbeans.DEFAULT); } @@ -328,7 +332,6 @@ scenarioReloaded(); } } - CatEMHBranche brancheToSelect = null; public void setBrancheUid(Long uid) { CatEMHBranche branche = (CatEMHBranche) getScenario().getIdRegistry().getEmh(uid); @@ -348,8 +351,6 @@ void readProperties(java.util.Properties p) { } -// GridBuilder gridBuilder; - private boolean editable; @Override protected void setEditable(boolean b) { Modified: trunk/soft/fudaa-crue/ui-modelling/src/main/resources/org/fudaa/fudaa/crue/modelling/list/Bundle.properties =================================================================== --- trunk/soft/fudaa-crue/ui-modelling/src/main/resources/org/fudaa/fudaa/crue/modelling/list/Bundle.properties 2016-11-22 09:48:54 UTC (rev 9459) +++ trunk/soft/fudaa-crue/ui-modelling/src/main/resources/org/fudaa/fudaa/crue/modelling/list/Bundle.properties 2016-11-22 11:20:28 UTC (rev 9460) @@ -58,4 +58,5 @@ Filtre.Label=Branche : button.export.name=Exporter -button.import.name=Importer \ No newline at end of file +button.import.name=Importer +listFrottementExport.first.column.name=Branche / Section Modified: trunk/soft/fudaa-crue/ui-views/src/main/java/org/fudaa/fudaa/crue/views/export/OutlineViewExportTableModel.java =================================================================== --- trunk/soft/fudaa-crue/ui-views/src/main/java/org/fudaa/fudaa/crue/views/export/OutlineViewExportTableModel.java 2016-11-22 09:48:54 UTC (rev 9459) +++ trunk/soft/fudaa-crue/ui-views/src/main/java/org/fudaa/fudaa/crue/views/export/OutlineViewExportTableModel.java 2016-11-22 11:20:28 UTC (rev 9460) @@ -10,6 +10,7 @@ import org.openide.util.Exceptions; /** + * Le modele pour adapater une table netbeans a un export excel/csv utilisé par ctulu * * @author Frederic Deniger */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <de...@us...> - 2017-01-11 22:10:07
|
Revision: 9516 http://sourceforge.net/p/fudaa/svn/9516 Author: deniger Date: 2017-01-11 22:10:05 +0000 (Wed, 11 Jan 2017) Log Message: ----------- javadoc Modified Paths: -------------- trunk/soft/fudaa-crue/ui-common/src/main/java/org/fudaa/fudaa/crue/common/services/AbstractSelectedEMHService.java trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/services/ModellingSelectedEMHService.java trunk/soft/fudaa-crue/ui-report/src/main/java/org/fudaa/fudaa/crue/report/service/ReportSelectedEMHService.java Modified: trunk/soft/fudaa-crue/ui-common/src/main/java/org/fudaa/fudaa/crue/common/services/AbstractSelectedEMHService.java =================================================================== --- trunk/soft/fudaa-crue/ui-common/src/main/java/org/fudaa/fudaa/crue/common/services/AbstractSelectedEMHService.java 2017-01-11 21:53:56 UTC (rev 9515) +++ trunk/soft/fudaa-crue/ui-common/src/main/java/org/fudaa/fudaa/crue/common/services/AbstractSelectedEMHService.java 2017-01-11 22:10:05 UTC (rev 9516) @@ -12,33 +12,74 @@ import org.openide.util.lookup.InstanceContent; /** - * conserve les UID des EMH sélectionnés + * conserve les UID des EMH sélectionnés dans une perspective. * + * <table border="1" cellpadding="3" cellspacing="0" summary="lookups"> + * <tr> + * <th align="left">Lookup</th> + * <th align="left">Commentaire</th> + * <th align="left">Méthodes utilisant le lookup</th> + * </tr> + * <tr> + * <td>{@link java.lang.Long}: </td> + * <td> les uids des EMHS sélectionnés. + * </td> + * <td>{@link #setSelectedEMHs(java.util.Collection)}, {@link #getSelectedUids()}, {@link #clearContent()}</td> + * </tr> + * </table> + * * @author Frederic Deniger */ public class AbstractSelectedEMHService implements Lookup.Provider { - private InstanceContent dynamicContent = new InstanceContent(); - private Lookup lookup = new AbstractLookup(dynamicContent); + /** + * le contenu du lookup du service + */ + private final InstanceContent dynamicContent = new InstanceContent(); + /** + * le lookup du service + */ + private final Lookup lookup = new AbstractLookup(dynamicContent); + /** + * true si le lookup est en cours de modifications ( vaudra true lors de l'ajout de plusieurs éléments et false à la fin de l'action). + */ + private boolean updating; + /** + * + * @return le lookup du service + */ @Override public Lookup getLookup() { return lookup; } - private boolean updating; + /** + * @return si la selection est en cours de mise à jour. + */ public boolean isUpdating() { return updating; } + /** + * efface la sélection en cours et la remplace par la nouvelle sélection {@code emhs}. + * Au cours des opérations {@link #isUpdating()} vaudra true, puis false à la fin de la modification du lookup du service + * + * @see EMH#getUiId() + * @param emhs la nouvelle sélectiond'EMHs ( on récupère les uid).: ne doit pas être null. + */ public void setSelectedEMHs(Collection<EMH> emhs) { + //on nettoie le contenu actuel. clearContent(); + //on ajoute la nouvelle selection final int size = emhs.size(); + //en cours de modification si au moins un element à ajouter if (size > 1) { updating = true; } int idx = 0; for (EMH emh : emhs) { + //pour envoyer un event à la dernière modification if (++idx == size) { updating = false; } @@ -47,14 +88,24 @@ updating = false; } + /** + * efface la sélection en cours et la remplace par la nouvelle sélection {@code emhs}. + * Au cours des opérations {@link #isUpdating()} vaudra true, puis false à la fin de la modification du lookup du service + * + * @param uids la nouvelle sélection d'uid ne doit pas être null + */ public void setSelectedUids(Collection<Long> uids) { + //on nettoie le contenu actuel. clearContent(); + //on ajoute la nouvelle selection final int size = uids.size(); + //en cours de modification si au moins un element à ajouter if (size > 1) { updating = true; } int idx = 0; for (Long uid : uids) { + //pour envoyer un event à la dernière modification if (++idx == size) { updating = false; } @@ -63,11 +114,19 @@ updating = false; } + /** + * + * @return ensemble des uid en cours de sélection. Jamais null. + */ public Set<Long> getSelectedUids() { return new HashSet<Long>(lookup.lookupAll(Long.class)); } - public void clearContent() { + /** + * Supprime la sélection courante. + */ + private void clearContent() { + //on recupere tous les uids sélectionnés et on les enleve du lookup. Collection<? extends Long> lookupAll = lookup.lookupAll(Long.class); final int size = lookupAll.size(); if (size > 1) { @@ -75,6 +134,7 @@ } int idx = 0; for (Long uid : lookupAll) { + //pour envoyer un event à la dernière modification if (++idx == size) { updating = false; } Modified: trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/services/ModellingSelectedEMHService.java =================================================================== --- trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/services/ModellingSelectedEMHService.java 2017-01-11 21:53:56 UTC (rev 9515) +++ trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/services/ModellingSelectedEMHService.java 2017-01-11 22:10:05 UTC (rev 9516) @@ -8,13 +8,19 @@ import org.openide.util.lookup.ServiceProvider; /** - * conserve les UID des EMH sélectionnés + * conserve les UID des EMH sélectionnées. Pour les lookup voir {@link org.fudaa.fudaa.crue.common.services.AbstractSelectedEMHService}. * + * @see org.fudaa.fudaa.crue.common.services.AbstractSelectedEMHService + * * @author Frederic Deniger */ @ServiceProvider(service = ModellingSelectedEMHService.class) public class ModellingSelectedEMHService extends AbstractSelectedEMHService implements Lookup.Provider { + /** + * + * @return le lookup du service + */ @Override public Lookup getLookup() { return super.getLookup(); Modified: trunk/soft/fudaa-crue/ui-report/src/main/java/org/fudaa/fudaa/crue/report/service/ReportSelectedEMHService.java =================================================================== --- trunk/soft/fudaa-crue/ui-report/src/main/java/org/fudaa/fudaa/crue/report/service/ReportSelectedEMHService.java 2017-01-11 21:53:56 UTC (rev 9515) +++ trunk/soft/fudaa-crue/ui-report/src/main/java/org/fudaa/fudaa/crue/report/service/ReportSelectedEMHService.java 2017-01-11 22:10:05 UTC (rev 9516) @@ -8,13 +8,19 @@ import org.openide.util.lookup.ServiceProvider; /** - * conserve les UID des EMH sélectionnés + * conserve les UID des EMH sélectionnées. Pour les lookup voir {@link org.fudaa.fudaa.crue.common.services.AbstractSelectedEMHService}. * + * @see org.fudaa.fudaa.crue.common.services.AbstractSelectedEMHService + * * @author Frederic Deniger */ @ServiceProvider(service = ReportSelectedEMHService.class) public class ReportSelectedEMHService extends AbstractSelectedEMHService implements Lookup.Provider { + /** + * + * @return le lookup du service + */ @Override public Lookup getLookup() { return super.getLookup(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <de...@us...> - 2017-01-25 16:13:02
|
Revision: 9529 http://sourceforge.net/p/fudaa/svn/9529 Author: deniger Date: 2017-01-25 16:13:00 +0000 (Wed, 25 Jan 2017) Log Message: ----------- javadoc + renommage de classes pour etre plus claire Modified Paths: -------------- trunk/soft/fudaa-crue/crue-emh/src/main/java/org/fudaa/dodico/crue/metier/ScenarioAutoModifiedState.java trunk/soft/fudaa-crue/ui-commandline/src/main/java/org/fudaa/fudaa/crue/uicommandline/ArgumentLineAnalyser.java trunk/soft/fudaa-crue/ui-loader/src/main/java/org/fudaa/fudaa/crue/loader/ProjectLoadProgressRunnable.java trunk/soft/fudaa-crue/ui-loader/src/main/java/org/fudaa/fudaa/crue/loader/ScenarioLoaderServiceAbstract.java trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/services/ModellingScenarioServiceImpl.java trunk/soft/fudaa-crue/ui-post/src/main/java/org/fudaa/fudaa/crue/post/services/PostServiceImpl.java Modified: trunk/soft/fudaa-crue/crue-emh/src/main/java/org/fudaa/dodico/crue/metier/ScenarioAutoModifiedState.java =================================================================== --- trunk/soft/fudaa-crue/crue-emh/src/main/java/org/fudaa/dodico/crue/metier/ScenarioAutoModifiedState.java 2017-01-25 15:06:46 UTC (rev 9528) +++ trunk/soft/fudaa-crue/crue-emh/src/main/java/org/fudaa/dodico/crue/metier/ScenarioAutoModifiedState.java 2017-01-25 16:13:00 UTC (rev 9529) @@ -3,7 +3,10 @@ */ package org.fudaa.dodico.crue.metier; +import org.fudaa.dodico.crue.metier.emh.EMHScenario; + /** + * Contient un etat des modifications appporteés automatiquement lors du chargement du scenario. * * @author Frederic Deniger */ @@ -14,40 +17,79 @@ private boolean profilModified; private boolean ordResModified; + /** + * des EMHs ont été réordonnées + * + * @see EMHScenario#sort() + */ public void setReorderedDone() { this.reorderedDone = true; } + /** + * @return true si des EMHs ont été réordonnées + * @see EMHScenario#sort() + */ public boolean isReorderedDone() { return reorderedDone; } + /** + * + * + * @return true si des EMHS/lois ont été renommées (Crue 9) + */ public boolean isRenamedDone() { return renamedDone; } + /** + * + * @return true si des Profiles ont été modifies + * @see org.fudaa.dodico.crue.validation.ValidateAndRebuildProfilSection + */ public boolean isProfilModified() { return profilModified; } + /** + * + * @return si des OrdRes ont été modifiés + */ public boolean isOrdResModified() { return ordResModified; } - - + /** + * A appeler si des EMHS/lois ont été renommées (Crue 9) + */ public void setRenamedDone() { this.renamedDone = true; } + /** + * A appeler si des Profiles ont été modifies + * + * @see org.fudaa.dodico.crue.validation.ValidateAndRebuildProfilSection + */ public void setProfilModified() { this.profilModified = true; } + /** + * A appeler si des OrdRes ont été modifiés + * + * @see org.fudaa.dodico.crue.validation.ValidatorORES + * + */ public void setOrdResModified() { this.ordResModified = true; } + /** + * + * @return true si au moins une modification a été apportée + */ public boolean isNormalized() { return renamedDone || reorderedDone || profilModified || ordResModified; } Modified: trunk/soft/fudaa-crue/ui-commandline/src/main/java/org/fudaa/fudaa/crue/uicommandline/ArgumentLineAnalyser.java =================================================================== --- trunk/soft/fudaa-crue/ui-commandline/src/main/java/org/fudaa/fudaa/crue/uicommandline/ArgumentLineAnalyser.java 2017-01-25 15:06:46 UTC (rev 9528) +++ trunk/soft/fudaa-crue/ui-commandline/src/main/java/org/fudaa/fudaa/crue/uicommandline/ArgumentLineAnalyser.java 2017-01-25 16:13:00 UTC (rev 9529) @@ -14,28 +14,53 @@ import org.openide.windows.WindowManager; /** + * Ne contient pas de lookup. Un service utilise par Netbeans RCP pour traiter les arguements de lancement de l'application. + * Dans le cas de Fudaa-Crue permet de gérer le multi-instance de Fudaa-Crue: demnader de remettre en avant-plan l'application Fudaa-Crue ou ouvrir une nouvelle + * instance qui ne sera pas persistée. * * @author deniger */ @ServiceProvider(service = OptionProcessor.class) public class ArgumentLineAnalyser extends OptionProcessor { + /** + * Clé de l'option pour remettre en avant-plan l'application Fudaa-Crue ( l'utilisateur clique plusieurs fois sur l'icone) + */ private static final String TO_FRONT_OPTION = "toFront"; + /** + * Clé de l'option lancer une nouvelle instance qui contiendra une copie temporaire des fichiers de configuration de Nebeans RCP. + */ private static final String IS_COPY_OPTION = "isCopy"; -// private Set<File> userDirOpened = new HashSet<File>(); - private Option openMultiInstances = Option.withoutArgument(Option.NO_SHORT_NAME, "multi-instances"); - private Option toFront = Option.withoutArgument(Option.NO_SHORT_NAME, TO_FRONT_OPTION); - private Option isCopy = Option.withoutArgument(Option.NO_SHORT_NAME, IS_COPY_OPTION); + /** + * ouverture multi-instance + */ + private final Option openMultiInstances = Option.withoutArgument(Option.NO_SHORT_NAME, "multi-instances"); + /** + * Reactiver la fenetre Fudaa-Crue + */ + private final Option toFront = Option.withoutArgument(Option.NO_SHORT_NAME, TO_FRONT_OPTION); + /** + * nouvelle instance avec copie des fichiers de configuration. + */ + private final Option isCopy = Option.withoutArgument(Option.NO_SHORT_NAME, IS_COPY_OPTION); + /** + * Un cas de lancements mutliples est detecté: gestion de ces cas de figure + */ private void activateOrCreateNewInstance() { + //propose un choix à u l'utilisateur MultiNetbeansInstanceChooser.Result res = MultiNetbeansInstanceChooser.choose(getOpenedInstances(true)); + //il veut créer une nouvelle instance if (res.isCreateNew()) { launchNewInstance(); + //il veut activer une instance existante } else if (res.isActivateExisting()) { OpenedNetbeansInstance instance = res.getInstance(); + //c'est l'instance en cours: simple on bouge met le focus sur la fenetre principale if (instance.isCurrent()) { moveMainWindowToFront(); } else { + //sinon on relance Fudaa-crue.exe dans le bon dossier userDir en demande d'activer l'autre instance... activateInstance(instance.getUserDir()); } } @@ -53,7 +78,6 @@ if (!openedInstances.isEmpty()) { Result choose = MultiNetbeansInstanceChooser.choose(openedInstances); if (choose.isActivateExisting()) { - //WindowManager.getDefault().getMainWindow().setVisible(false); activateInstance(choose.getInstance().getUserDir()); System.exit(0); } else if (choose.isCancel()) { @@ -63,6 +87,9 @@ } } + /** + * Une instance est déjà lancée: il faut demander à l'utilisateur ce qu'il veut faire. + */ private void instanceAlreadyLaunched() { EventQueue.invokeLater(new Runnable() { @@ -73,6 +100,9 @@ }); } + /** + * Création d'une nouvelle instance en copiant les fichiers de configuration userDir. + */ private void launchNewInstance() { try { File newUserDir = MultiNetbeansInstanceUtils.createNewUserDir(); @@ -82,14 +112,25 @@ } } + /** + * + * @param userDir permet d'identifier l'instance à activer + */ private void activateInstance(File userDir) { launchAppli(userDir, "--" + TO_FRONT_OPTION); } + /** + * Lancement de Fudaa-Crue dans le userDir fourni et avec l'option donnée + * + * @param newUserDir le userDir a utiliser + * @param option l'option + */ private void launchAppli(File newUserDir, final String option) { File platformDir = new File(System.getProperty("netbeans.home")); File binDir = new File(platformDir.getParentFile(), "bin"); + //on relance l'exe avec la bonne option: File exe = new File(binDir, MultiNetbeansInstanceUtils.isWindows() ? "fudaacrue.exe" : "fudaacrue"); ProcessBuilder builder = new ProcessBuilder(exe.getAbsolutePath(), "--userdir", newUserDir.getAbsolutePath(), option); try { @@ -99,7 +140,10 @@ } } - public void moveMainWindowToFront() { + /** + * Envoie la fenetre de l'application courante en avant-plan. + */ + private void moveMainWindowToFront() { EventQueue.invokeLater(new Runnable() { @Override @@ -109,6 +153,10 @@ }); } + /** + * + * @return les 3 options: multi-instances, toFront et nouvelle instance. + */ @Override protected Set<Option> getOptions() { HashSet set = new HashSet(); @@ -118,12 +166,19 @@ return set; } + /** + * + * @param includeCurrent si true, l'instance courante doit être ajouté à la liste + * @return liste des instances de Netbeans ouvertes. + */ private List<OpenedNetbeansInstance> getOpenedInstances(boolean includeCurrent) { + //le résultats List<OpenedNetbeansInstance> openedIstance = new ArrayList<>(); if (includeCurrent) { OpenedNetbeansInstance thisInstance = new OpenedNetbeansInstance(MultiNetbeansInstanceUtils.getUserDir(), MultiNetbeansInstanceUtils.getMainWindowTitle(), true); openedIstance.add(thisInstance); } + //on parcourt la listes des instances ouvertes: List<File> userDirOpened = MultiNetbeansInstanceUtils.listUserDir(); for (File userDir : userDirOpened) { File frameName = MultiNetbeansInstanceUtils.getFrameName(userDir); @@ -138,6 +193,13 @@ return openedIstance; } + /** + * traitement des arguments de l'application pour réactiver une instance (toFront) ou créer une nouvelle instance. + * + * @param env non utilisé + * @param maps les options passées en parametres + * @throws CommandException + */ @Override protected void process(Env env, Map<Option, String[]> maps) throws CommandException { //for copied instances we just move to front. Modified: trunk/soft/fudaa-crue/ui-loader/src/main/java/org/fudaa/fudaa/crue/loader/ProjectLoadProgressRunnable.java =================================================================== --- trunk/soft/fudaa-crue/ui-loader/src/main/java/org/fudaa/fudaa/crue/loader/ProjectLoadProgressRunnable.java 2017-01-25 15:06:46 UTC (rev 9528) +++ trunk/soft/fudaa-crue/ui-loader/src/main/java/org/fudaa/fudaa/crue/loader/ProjectLoadProgressRunnable.java 2017-01-25 16:13:00 UTC (rev 9529) @@ -28,12 +28,24 @@ this.run = run; } + /** + * met à jour la barre de progression (indeterminate) et charge le scenario/run. + * + * @param handle + * @return + */ @Override public ScenarioLoaderOperation run(ProgressHandle handle) { handle.switchToIndeterminate(); return load(); } + /** + * Lance directement le chargement via {@link ScenarioLoader} + * + * @return le resultat du chargement du scenario. + * @see ScenarioLoader + */ public ScenarioLoaderOperation load() { ScenarioLoader loader = new ScenarioLoader(scenario, projet, projet.getCoeurConfig()); return loader.load(run); Modified: trunk/soft/fudaa-crue/ui-loader/src/main/java/org/fudaa/fudaa/crue/loader/ScenarioLoaderServiceAbstract.java =================================================================== --- trunk/soft/fudaa-crue/ui-loader/src/main/java/org/fudaa/fudaa/crue/loader/ScenarioLoaderServiceAbstract.java 2017-01-25 15:06:46 UTC (rev 9528) +++ trunk/soft/fudaa-crue/ui-loader/src/main/java/org/fudaa/fudaa/crue/loader/ScenarioLoaderServiceAbstract.java 2017-01-25 16:13:00 UTC (rev 9529) @@ -18,59 +18,131 @@ import org.openide.util.lookup.InstanceContent; /** + * Classe abstraite pour les services gerant le cycle de vie d'un scenario. + * <table border="1" cellpadding="3" cellspacing="0" summary="lookups"> + * <tr> + * <th align="left">Lookup</th> + * <th align="left">Commentaire</th> + * <th align="left">Méthode utilisant le lookup</th> + * </tr> + * <tr> + * <td>{@link EMHScenario}</td> + * <td> + * Le scenario chargé + * </td> + * <td><code>{@link #getScenarioLoaded()}</code></td> + * </tr> + * <tr> + * <td>{@link ManagerEMHScenario}</td> + * <td> Le ManagerEMHScenario chargé: contient en plus des infos sur le run chargé mais non utile ici + * <td><code>{@link #getManagerScenarioLoaded()}</code></td> + * </tr> + * <tr> + * <td>{@link EMHRun}</td> + * <td> Le run chargé</td> + * <td><code>{@link #getRunLoaded()}</code></td> + * </tr> + ** <tr> + * <td>{@link org.fudaa.ctulu.CtuluLogGroup}</td> + * <td>Bilan de la dernière opération effectuée dans la perspective</td> + * <td><code>{@link #getLastLogsGroup()}</code></td> + * </tr> + * </table> * * @author deniger */ public class ScenarioLoaderServiceAbstract implements Lookup.Provider { - + + //les lookups: protected InstanceContent dynamicContent = new InstanceContent(); protected Lookup lookup = new AbstractLookup(dynamicContent); + //pour suivre la selection de la perspective. SelectedPerspectiveService service = Lookup.getDefault().lookup(SelectedPerspectiveService.class); + //la perspective utilisant cette classe. private final PerspectiveEnum perspectiveToActive; - + + /** + * + * @param perspectiveToActive la perspective a activer après le chargement d'un scenario. + */ public ScenarioLoaderServiceAbstract(PerspectiveEnum perspectiveToActive) { this.perspectiveToActive = perspectiveToActive; } - + + /** + * + * @return le scenario chargé + */ public EMHScenario getScenarioLoaded() { return lookup.lookup(EMHScenario.class); } - + + /** + * + * @return true si scenario chargé + */ public boolean isScenarioLoaded() { return getScenarioLoaded() != null; } - + + /** + * + * @return le managerEMHScenario chargé + */ public ManagerEMHScenario getManagerScenarioLoaded() { return lookup.lookup(ManagerEMHScenario.class); } - + + /** + * + * @return le run chargé. + */ public EMHRun getRunLoaded() { return lookup.lookup(EMHRun.class); } - + + /** + * + * @return true si run chargé + */ protected boolean isRunLoaded() { return getRunLoaded() != null; } - + @Override public Lookup getLookup() { return lookup; } - + + /** + * + * @return bilan de la dernière opération. + */ public CtuluLogGroup getLastLogsGroup() { return lookup.lookup(CtuluLogGroup.class); } - + + /** + * + * @param ctuluLogGroup le nouveau bilan a persister. + */ protected void updateLastLogsGroup(CtuluLogGroup ctuluLogGroup) { CtuluLogGroup lastLogsGroup = getLastLogsGroup(); + //on enleve le précédent if (lastLogsGroup != null) { dynamicContent.remove(lastLogsGroup); } + //et ajoute le nouveau. if (ctuluLogGroup != null) { dynamicContent.add(ctuluLogGroup); } } - + + /** + * Decharge l'ensemble: Scenario, ManagerEMHScenario, Run et le dernier bilan. + * + * @return toujours true + */ public boolean unloadScenario() { final EMHRun runLoaded = getRunLoaded(); if (runLoaded != null) { @@ -89,45 +161,68 @@ dynamicContent.remove(scenarioLoaded); } return true; - + } - protected boolean addLogToLookup = false; - + + /** + * Lors du chargement d'un scenario, des modifications automatiques peuvent être apportées. Si un service veut afficher ces modifications, il doit redéfinir + * cette methode. + * + * @param modificationDoneWhileLoading + */ protected void manageAutomaticModification(ScenarioAutoModifiedState modificationDoneWhileLoading) { } - + + /** + * Chargement du scenario/run avec mis à jour du bilan et activation de la perspective (voir constructeur) + * + * @param projet le projet + * @param managerScenario le scenario a charger + * @param run le run a chargé. Si null, ignoré. + * @return true si chargé + * @see ProjectLoadProgressRunnable + * @see org.fudaa.dodico.crue.projet.ScenarioLoader + */ protected boolean loadScenario(final EMHProjet projet, final ManagerEMHScenario managerScenario, final EMHRun run) { + //Chargement final ProjectLoadProgressRunnable projectLoadProgressRunnable = new ProjectLoadProgressRunnable(projet, managerScenario, run); final ScenarioLoaderOperation load = doLoad(projectLoadProgressRunnable, LoaderService.getNom(managerScenario, run)); - +//l'opération est terminée. On se place dans le thread swing pour mettre à jour les composants swing... EventQueue.invokeLater(new Runnable() { @Override public void run() { final EMHScenario result = load == null ? null : load.getResult(); if (result != null) { + //on active la perspective service.activePerspective(perspectiveToActive); + //on ferme eventuellement l'ancien scenario unloadScenario(); - if (addLogToLookup) { - dynamicContent.add(load.getLogs()); - } + //on charge les logs et le manager + dynamicContent.add(load.getLogs()); dynamicContent.add(managerScenario); + //on charge le run if (run != null) { dynamicContent.add(run); } + //et finalement le scenario + //attention l'ordre est important car beaucoup de service ecoute l'objet EMHScenario. + //en l'ajoutant à la fin, on est sur que ces services auront aussi accès aux autres données ( bilan, run, manager). dynamicContent.add(load.getResult()); } + //on affiche en avant-plan le bilan si des erreurs ont été trouvées: if (load.getLogs().containsError() || load.getLogs().containsFatalError()) { LogsDisplayer.displayError(load.getLogs(), CommonMessage.getMessage("LoadScenarioBilan.DialogTitle", managerScenario.getNom())); } + //et eventuellement les modifications opérées pendant le chargement. if (result != null) { manageAutomaticModification(load.getAutoModifiedState()); } } }); - + //return true si le scenario est bien présent: return load.getResult() != null; } - + public ScenarioLoaderOperation doLoad(final ProjectLoadProgressRunnable projectLoadProgressRunnable, final String nom) { ScenarioLoaderOperation load = null; if (EventQueue.isDispatchThread()) { Modified: trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/services/ModellingScenarioServiceImpl.java =================================================================== --- trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/services/ModellingScenarioServiceImpl.java 2017-01-25 15:06:46 UTC (rev 9528) +++ trunk/soft/fudaa-crue/ui-modelling/src/main/java/org/fudaa/fudaa/crue/modelling/services/ModellingScenarioServiceImpl.java 2017-01-25 16:13:00 UTC (rev 9529) @@ -25,22 +25,57 @@ import org.openide.util.lookup.ServiceProviders; /** + * Le service de base de la perspective Modélisation permettant de gérer le scenario ouvert: chargement, sauvegarde,... + * <table border="1" cellpadding="3" cellspacing="0" summary="lookups"> + * <tr> + * <th align="left">Lookup</th> + * <th align="left">Commentaire</th> + * <th align="left">Méthode utilisant le lookup</th> + * </tr> + * <tr> + * <td>{@link EMHScenario}</td> + * <td> + * Le scenario chargé + * </td> + * <td><code>{@link #getScenarioLoaded()}</code></td> + * </tr> + * <tr> + * <td>{@link ManagerEMHScenario}</td> + * <td> Le ManagerEMHScenario chargé: contient en plus des infos sur le run chargé mais non utile ici + * <td><code>{@link #getManagerScenarioLoaded()}</code></td> + * </tr> + * <tr> + * <td>{@link org.fudaa.ctulu.CtuluLogGroup}</td> + * <td>Bilan de la dernière opération effectuée dans la perspective</td> + * <td><code>{@link #getLastLogsGroup()}</code></td> + * </tr> + * </table> * * @author deniger */ @ServiceProviders(value = { - @ServiceProvider(service = ModellingScenarioService.class), + @ServiceProvider(service = ModellingScenarioService.class) + , @ServiceProvider(service = ModellingScenarioServiceImpl.class)}) public class ModellingScenarioServiceImpl extends ScenarioLoaderServiceAbstract implements ModellingScenarioService { - private EMHProjetServiceImpl projetService = Lookup.getDefault().lookup(EMHProjetServiceImpl.class); + private final EMHProjetServiceImpl projetService = Lookup.getDefault().lookup(EMHProjetServiceImpl.class); + private File tempDir; + private boolean reloading; + public ModellingScenarioServiceImpl() { super(PerspectiveEnum.MODELLING); - addLogToLookup = true; } - File tempDir; + /** + * Fait appel à la méthode de la classe parent. Créé en plus un dossier temporaire pour les sauvegardes. + * + * @param projet le projet contenant le scenario + * @param scenario le scenario a charger + * @return true sir le scenario a pu etre chargé. + * @see ScenarioLoaderServiceAbstract#loadScenario(org.fudaa.dodico.crue.metier.etude.EMHProjet, org.fudaa.dodico.crue.metier.etude.ManagerEMHScenario, org.fudaa.dodico.crue.metier.etude.EMHRun) + */ @Override public boolean loadScenario(EMHProjet projet, ManagerEMHScenario scenario) { boolean res = super.loadScenario(projet, scenario, null); @@ -54,10 +89,17 @@ return res; } + /** + * Avertit l'utilsateur des modifications apportées automatiquement lors du chargement du scenario + * + * @param modificationDoneWhileLoading les modifications effectuées au chargemenet + */ @Override protected void manageAutomaticModification(ScenarioAutoModifiedState modificationDoneWhileLoading) { + //le scenario a été normalisé if (modificationDoneWhileLoading.isNormalized()) { - + //il faut donc avertir l'utilsateur. + //invokeLater pour le faire après les actions en cours. EventQueue.invokeLater(new Runnable() { @Override public void run() { @@ -73,14 +115,18 @@ /** * Attention: a utiliser pour les tests uniquement ! * - * @param scenario - * @param projet + * @param scenario le scenario chargé + * @param projet le projet chargé. */ public void setForTest(EMHScenario scenario, EMHProjet projet) { super.dynamicContent.add(scenario); projetService.setForTest(projet); } + /** + * + * @return le dossier temp associé au scenario chargé. Utilisé pour sauvegarder en 2 etapes les fichiers par exemple + */ public File getTempDir() { return tempDir; } @@ -135,7 +181,7 @@ ModellingSaveProcessor saveProcessor = new ModellingSaveProcessor(); Pair<Set<String>, CtuluLogGroup> logs = CrueProgressUtils.showProgressDialogAndRun(saveProcessor, NbBundle.getMessage(ModellingSaveAction.class, - "CTL_ModellingSaveAction")); + "CTL_ModellingSaveAction")); updateLastLogsGroup(logs.second); if (!logs.first.isEmpty()) { projetService.scenarioSaved(getManagerScenarioLoaded(), logs.first); @@ -143,7 +189,6 @@ return !logs.second.containsFatalError(); } - boolean reloading; @Override public boolean isReloading() { Modified: trunk/soft/fudaa-crue/ui-post/src/main/java/org/fudaa/fudaa/crue/post/services/PostServiceImpl.java =================================================================== --- trunk/soft/fudaa-crue/ui-post/src/main/java/org/fudaa/fudaa/crue/post/services/PostServiceImpl.java 2017-01-25 15:06:46 UTC (rev 9528) +++ trunk/soft/fudaa-crue/ui-post/src/main/java/org/fudaa/fudaa/crue/post/services/PostServiceImpl.java 2017-01-25 16:13:00 UTC (rev 9529) @@ -36,7 +36,6 @@ public PostServiceImpl() { super(PerspectiveEnum.POST); - super.addLogToLookup = true; } private CrueRunLauncher getRunLauncher() { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <de...@us...> - 2017-05-21 20:01:51
|
Revision: 9576 http://sourceforge.net/p/fudaa/svn/9576 Author: deniger Date: 2017-05-21 20:01:48 +0000 (Sun, 21 May 2017) Log Message: ----------- version 1.3 Modified Paths: -------------- trunk/soft/fudaa-crue/crue-project/pom.xml trunk/soft/fudaa-crue/ui-sysdoc/pom.xml Modified: trunk/soft/fudaa-crue/crue-project/pom.xml =================================================================== --- trunk/soft/fudaa-crue/crue-project/pom.xml 2017-05-21 20:01:37 UTC (rev 9575) +++ trunk/soft/fudaa-crue/crue-project/pom.xml 2017-05-21 20:01:48 UTC (rev 9576) @@ -4,7 +4,7 @@ <parent> <artifactId>fudaa-crue</artifactId> <groupId>org.fudaa.soft.fudaa-crue</groupId> - <version>1.3-SNAPSHOT</version> + <version>1.3</version> </parent> <artifactId>crue-project</artifactId> <name>Crue Project</name> Modified: trunk/soft/fudaa-crue/ui-sysdoc/pom.xml =================================================================== --- trunk/soft/fudaa-crue/ui-sysdoc/pom.xml 2017-05-21 20:01:37 UTC (rev 9575) +++ trunk/soft/fudaa-crue/ui-sysdoc/pom.xml 2017-05-21 20:01:48 UTC (rev 9576) @@ -4,7 +4,7 @@ <parent> <artifactId>fudaa-crue</artifactId> <groupId>org.fudaa.soft.fudaa-crue</groupId> - <version>1.3-SNAPSHOT</version> + <version>1.3</version> </parent> <artifactId>ui-sysdoc</artifactId> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <de...@us...> - 2017-06-28 17:33:27
|
Revision: 9654 http://sourceforge.net/p/fudaa/svn/9654 Author: deniger Date: 2017-06-28 17:33:24 +0000 (Wed, 28 Jun 2017) Log Message: ----------- Classes AOC Modified Paths: -------------- trunk/soft/fudaa-crue/crue-emh/src/main/java/org/fudaa/dodico/crue/metier/etude/EMHProjectInfos.java trunk/soft/fudaa-crue/crue-emh/src/main/java/org/fudaa/dodico/crue/metier/etude/FichierLHPTSupport.java trunk/soft/fudaa-crue/crue-project/src/test/java/org/fudaa/dodico/crue/projet/EMHProjetControllerTest.java Modified: trunk/soft/fudaa-crue/crue-emh/src/main/java/org/fudaa/dodico/crue/metier/etude/EMHProjectInfos.java =================================================================== --- trunk/soft/fudaa-crue/crue-emh/src/main/java/org/fudaa/dodico/crue/metier/etude/EMHProjectInfos.java 2017-06-28 17:18:45 UTC (rev 9653) +++ trunk/soft/fudaa-crue/crue-emh/src/main/java/org/fudaa/dodico/crue/metier/etude/EMHProjectInfos.java 2017-06-28 17:33:24 UTC (rev 9654) @@ -217,6 +217,9 @@ } private File getDir(String id) { + if(directories==null){ + return null; + } String path = directories.get(id); if (CrueFileHelper.isRelative(path) && parentDirOfEtuFile == null) { LOGGER.log(Level.WARNING, "path is relative for {0} and dir of etu is not set", id); Modified: trunk/soft/fudaa-crue/crue-emh/src/main/java/org/fudaa/dodico/crue/metier/etude/FichierLHPTSupport.java =================================================================== --- trunk/soft/fudaa-crue/crue-emh/src/main/java/org/fudaa/dodico/crue/metier/etude/FichierLHPTSupport.java 2017-06-28 17:18:45 UTC (rev 9653) +++ trunk/soft/fudaa-crue/crue-emh/src/main/java/org/fudaa/dodico/crue/metier/etude/FichierLHPTSupport.java 2017-06-28 17:33:24 UTC (rev 9654) @@ -58,6 +58,9 @@ private void createMap(EMHProjet emhProjet) { final Set<String> scenarioNames = TransformerHelper.toSetNom(emhProjet.getListeScenarios()); final File dirOfFichiersEtudes = emhProjet.getDirOfFichiersEtudes(); + if(dirOfFichiersEtudes==null){ + return; + } final String extension = CrueFileType.LHPT.getExtension(); for (String scenarioName : scenarioNames) { String fileName = StringUtils.removeStart(scenarioName, CruePrefix.P_SCENARIO); Modified: trunk/soft/fudaa-crue/crue-project/src/test/java/org/fudaa/dodico/crue/projet/EMHProjetControllerTest.java =================================================================== --- trunk/soft/fudaa-crue/crue-project/src/test/java/org/fudaa/dodico/crue/projet/EMHProjetControllerTest.java 2017-06-28 17:18:45 UTC (rev 9653) +++ trunk/soft/fudaa-crue/crue-project/src/test/java/org/fudaa/dodico/crue/projet/EMHProjetControllerTest.java 2017-06-28 17:33:24 UTC (rev 9654) @@ -189,6 +189,9 @@ private void testFiles(File etuDir, String name, CrueLevelType level, CrueVersionType version) { for (CrueFileType type : CrueFileType.values()) { + if(CrueFileType.LHPT.equals(type)){ + continue; + } if ((type.getCrueVersionType() == version) && (type.getLevel() == level) && (!type.isResultFileType())) { assertTrue(new File(etuDir, name + "." + type.getExtension()).isFile()); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <de...@us...> - 2017-07-13 11:27:52
|
Revision: 9661 http://sourceforge.net/p/fudaa/svn/9661 Author: deniger Date: 2017-07-13 11:27:49 +0000 (Thu, 13 Jul 2017) Log Message: ----------- Classes AOC Modified Paths: -------------- trunk/soft/fudaa-crue/crue-aoc/pom.xml trunk/soft/fudaa-crue/crue-aoc/src/test/java/org/fudaa/dodico/crue/io/aoc/TestCrueAOC.java trunk/soft/fudaa-crue/crue-aoc/src/test/resources/aoc/campagne.aoc.xml trunk/soft/fudaa-crue/crue-emh/src/main/java/org/fudaa/dodico/crue/metier/CrueFileType.java trunk/soft/fudaa-crue/crue-io/src/main/java/org/fudaa/dodico/crue/io/Crue10FileFormat.java trunk/soft/fudaa-crue/ui-application/application.iml trunk/soft/fudaa-crue/ui-options/src/main/resources/default-coeurs.zip Added Paths: ----------- trunk/soft/fudaa-crue/crue-aoc/src/main/java/org/fudaa/dodico/crue/io/aoc/CrueFileFormatBuilderAOC.java trunk/soft/fudaa-crue/crue-config/src/test/resources/xsd/aoc-1.2.xsd Modified: trunk/soft/fudaa-crue/crue-aoc/pom.xml =================================================================== --- trunk/soft/fudaa-crue/crue-aoc/pom.xml 2017-07-13 10:10:35 UTC (rev 9660) +++ trunk/soft/fudaa-crue/crue-aoc/pom.xml 2017-07-13 11:27:49 UTC (rev 9661) @@ -1,107 +1,112 @@ <?xml version="1.0" encoding="UTF-8"?> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <parent> - <artifactId>fudaa-crue</artifactId> - <groupId>org.fudaa.soft.fudaa-crue</groupId> - <version>1.4-SNAPSHOT</version> - </parent> - <artifactId>crue-aoc</artifactId> - <name>Crue AOC</name> - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - </properties> - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-jar-plugin</artifactId> - <executions> - <execution> - <goals> - <goal>test-jar</goal> - </goals> - </execution> - </executions> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-surefire-plugin</artifactId> - <configuration> - <parallel>classes</parallel> - <threadCount>5</threadCount> - </configuration> - </plugin> - </plugins> - - </build> - <dependencies> - <dependency> - <groupId>org.fudaa.soft.fudaa-crue</groupId> - <artifactId>crue-project</artifactId> - </dependency> - <dependency> - <groupId>org.fudaa.soft.fudaa-crue</groupId> - <artifactId>crue-compare</artifactId> - </dependency> - <dependency> - <groupId>org.fudaa.soft.fudaa-crue</groupId> - <artifactId>crue-core</artifactId> - <scope>test</scope> - <type>test-jar</type> - </dependency> - <dependency> - <groupId>org.fudaa.soft.fudaa-crue</groupId> - <artifactId>crue-io</artifactId> - <scope>test</scope> - <type>test-jar</type> - </dependency> - <dependency> - <groupId>org.fudaa.soft.fudaa-crue</groupId> - <artifactId>crue-config</artifactId> - </dependency> - <dependency> - <groupId>org.fudaa.soft.fudaa-crue</groupId> - <artifactId>crue-config</artifactId> - <scope>test</scope> - <type>test-jar</type> - </dependency> - <dependency> - <groupId>org.fudaa.soft.fudaa-crue</groupId> - <artifactId>crue-test</artifactId> - <scope>test</scope> - <type>test-jar</type> - </dependency> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <scope>test</scope> - </dependency> - </dependencies> - <!--pour eviter de lancer les tests d'integration--> - <profiles> - <profile> - <id>release</id> - <build> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <parent> + <artifactId>fudaa-crue</artifactId> + <groupId>org.fudaa.soft.fudaa-crue</groupId> + <version>1.4-SNAPSHOT</version> + </parent> + <artifactId>crue-aoc</artifactId> + <name>Crue AOC</name> + <properties> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + </properties> + <build> <plugins> - <plugin> - <groupId>com.keyboardsamurais.maven</groupId> - <artifactId>maven-timestamp-plugin</artifactId> - <version>1.0</version> - <configuration> - <propertyName>timestamp</propertyName> - <timestampPattern>dd.MM.yyyy HH:mm</timestampPattern> - </configuration> - <executions> - <execution> - <goals> - <goal>create</goal> - </goals> - </execution> - </executions> - </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-jar-plugin</artifactId> + <executions> + <execution> + <goals> + <goal>test-jar</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <configuration> + <parallel>classes</parallel> + <threadCount>5</threadCount> + </configuration> + </plugin> </plugins> - </build> - </profile> - </profiles> + + </build> + <dependencies> + <dependency> + <groupId>org.fudaa.soft.fudaa-crue</groupId> + <artifactId>crue-project</artifactId> + </dependency> + <dependency> + <groupId>org.fudaa.soft.fudaa-crue</groupId> + <artifactId>crue-compare</artifactId> + </dependency> + <dependency> + <groupId>org.fudaa.soft.fudaa-crue</groupId> + <artifactId>crue-core</artifactId> + <scope>test</scope> + <type>test-jar</type> + </dependency> + <dependency> + <groupId>org.fudaa.soft.fudaa-crue</groupId> + <artifactId>crue-io</artifactId> + </dependency> + <dependency> + <groupId>org.fudaa.soft.fudaa-crue</groupId> + <artifactId>crue-io</artifactId> + <scope>test</scope> + <type>test-jar</type> + </dependency> + <dependency> + <groupId>org.fudaa.soft.fudaa-crue</groupId> + <artifactId>crue-config</artifactId> + </dependency> + <dependency> + <groupId>org.fudaa.soft.fudaa-crue</groupId> + <artifactId>crue-config</artifactId> + <scope>test</scope> + <type>test-jar</type> + </dependency> + <dependency> + <groupId>org.fudaa.soft.fudaa-crue</groupId> + <artifactId>crue-test</artifactId> + <scope>test</scope> + <type>test-jar</type> + </dependency> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <scope>test</scope> + </dependency> + </dependencies> + <!--pour eviter de lancer les tests d'integration--> + <profiles> + <profile> + <id>release</id> + <build> + <plugins> + <plugin> + <groupId>com.keyboardsamurais.maven</groupId> + <artifactId>maven-timestamp-plugin</artifactId> + <version>1.0</version> + <configuration> + <propertyName>timestamp</propertyName> + <timestampPattern>dd.MM.yyyy HH:mm</timestampPattern> + </configuration> + <executions> + <execution> + <goals> + <goal>create</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> + </profile> + </profiles> </project> Copied: trunk/soft/fudaa-crue/crue-aoc/src/main/java/org/fudaa/dodico/crue/io/aoc/CrueFileFormatBuilderAOC.java (from rev 9660, trunk/soft/fudaa-crue/crue-io/src/main/java/org/fudaa/dodico/crue/io/CrueFileFormatBuilderLHPT.java) =================================================================== --- trunk/soft/fudaa-crue/crue-aoc/src/main/java/org/fudaa/dodico/crue/io/aoc/CrueFileFormatBuilderAOC.java (rev 0) +++ trunk/soft/fudaa-crue/crue-aoc/src/main/java/org/fudaa/dodico/crue/io/aoc/CrueFileFormatBuilderAOC.java 2017-07-13 11:27:49 UTC (rev 9661) @@ -0,0 +1,22 @@ +/** + * License GPL v2 + */ +package org.fudaa.dodico.crue.io.aoc; + +import org.fudaa.dodico.crue.config.coeur.CoeurConfigContrat; +import org.fudaa.dodico.crue.io.Crue10FileFormat; +import org.fudaa.dodico.crue.io.CrueFileFormatBuilder; +import org.fudaa.dodico.crue.io.common.CrueDataXmlReaderWriterImpl; +import org.fudaa.dodico.crue.metier.CrueFileType; +import org.fudaa.dodico.crue.projet.aoc.AocCampagne; + +public class CrueFileFormatBuilderAOC implements CrueFileFormatBuilder<AocCampagne> { + + @Override + public Crue10FileFormat<AocCampagne> getFileFormat(CoeurConfigContrat coeurConfig) { + return new Crue10FileFormat<>(new CrueDataXmlReaderWriterImpl<>(CrueFileType.AOC, + coeurConfig, new CrueConverterAOC(), new CrueDaoStructureAOC())); + + } + +} Modified: trunk/soft/fudaa-crue/crue-aoc/src/test/java/org/fudaa/dodico/crue/io/aoc/TestCrueAOC.java =================================================================== --- trunk/soft/fudaa-crue/crue-aoc/src/test/java/org/fudaa/dodico/crue/io/aoc/TestCrueAOC.java 2017-07-13 10:10:35 UTC (rev 9660) +++ trunk/soft/fudaa-crue/crue-aoc/src/test/java/org/fudaa/dodico/crue/io/aoc/TestCrueAOC.java 2017-07-13 11:27:49 UTC (rev 9661) @@ -8,6 +8,7 @@ import org.fudaa.dodico.crue.common.BusinessMessages; import org.fudaa.dodico.crue.common.io.CrueIOResu; import org.fudaa.dodico.crue.config.ccm.CrueConfigMetierLoaderDefaultTest; +import org.fudaa.dodico.crue.config.coeur.TestCoeurConfig; import org.fudaa.dodico.crue.io.AbstractIOTestCase; import org.fudaa.dodico.crue.projet.aoc.*; import org.joda.time.LocalDateTime; @@ -26,7 +27,7 @@ File testFile; public TestCrueAOC() { - super(FICHIER_TEST_XML); + super(new CrueFileFormatBuilderAOC().getFileFormat(TestCoeurConfig.INSTANCE), FICHIER_TEST_XML); } private static AocCampagne read(File otfaFile) { @@ -75,17 +76,17 @@ // Cc_T01 assertEquals("Cc_T01", campagne.getDonnees().getLoisCalculsTransitoires().getLois().get(0).getCalculRef()); assertEquals("LoiT 1", campagne.getDonnees().getLoisCalculsTransitoires().getLois().get(0).getLoiRef()); - assertEquals("Section 1", campagne.getDonnees().getLoisCalculsTransitoires().getLois().get(0).getSectionRef()); + assertEquals("St_Section 1", campagne.getDonnees().getLoisCalculsTransitoires().getLois().get(0).getSectionRef()); assertEquals(1, campagne.getDonnees().getLoisCalculsTransitoires().getLois().get(0).getPonderation()); // Cc_T02 assertEquals("Cc_T02", campagne.getDonnees().getLoisCalculsTransitoires().getLois().get(1).getCalculRef()); assertEquals("LoiT 2", campagne.getDonnees().getLoisCalculsTransitoires().getLois().get(1).getLoiRef()); - assertEquals("Section 2", campagne.getDonnees().getLoisCalculsTransitoires().getLois().get(1).getSectionRef()); + assertEquals("St_Section 2", campagne.getDonnees().getLoisCalculsTransitoires().getLois().get(1).getSectionRef()); assertEquals(2, campagne.getDonnees().getLoisCalculsTransitoires().getLois().get(1).getPonderation()); // Cc_T03 assertEquals("Cc_T03", campagne.getDonnees().getLoisCalculsTransitoires().getLois().get(2).getCalculRef()); assertEquals("LoiT 3", campagne.getDonnees().getLoisCalculsTransitoires().getLois().get(2).getLoiRef()); - assertEquals("Section 3", campagne.getDonnees().getLoisCalculsTransitoires().getLois().get(2).getSectionRef()); + assertEquals("St_Section 3", campagne.getDonnees().getLoisCalculsTransitoires().getLois().get(2).getSectionRef()); assertEquals(3, campagne.getDonnees().getLoisCalculsTransitoires().getLois().get(2).getPonderation()); //Strickler @@ -126,7 +127,7 @@ assertEquals(2, campagne.getDonnees().getValidationCroisee().getGroupes().size()); AocValidationGroupe validationGroupe = campagne.getDonnees().getValidationCroisee().getGroupes().get(0); assertEquals(2, validationGroupe.getEffectifApprentissage()); - assertEquals("1", validationGroupe.getId()); + assertEquals("GR_1", validationGroupe.getId()); assertEquals("Groupe 1", validationGroupe.getNom()); assertEquals("Un commentaire", validationGroupe.getCommentaire()); @@ -136,7 +137,7 @@ validationGroupe = campagne.getDonnees().getValidationCroisee().getGroupes().get(1); assertEquals(3, validationGroupe.getEffectifApprentissage()); - assertEquals("2", validationGroupe.getId()); + assertEquals("GR_2", validationGroupe.getId()); assertEquals("Groupe 2", validationGroupe.getNom()); assertEquals("", validationGroupe.getCommentaire()); @@ -196,8 +197,4 @@ return testFile; } - @Override - public void testValide() { - //TODO Tester validité XSD. - } } Modified: trunk/soft/fudaa-crue/crue-aoc/src/test/resources/aoc/campagne.aoc.xml =================================================================== --- trunk/soft/fudaa-crue/crue-aoc/src/test/resources/aoc/campagne.aoc.xml 2017-07-13 10:10:35 UTC (rev 9660) +++ trunk/soft/fudaa-crue/crue-aoc/src/test/resources/aoc/campagne.aoc.xml 2017-07-13 11:27:49 UTC (rev 9661) @@ -49,9 +49,9 @@ <!-- LoiRef = référence vers un nom de loi dans le fichier LHPT associé à l'étude de la campagne --> <!-- SectionRef = référence vers un nom de section dans le fichier DRSO associé à l'étude de la campagne --> <!-- CalculRef = référence vers un nom de Calcul transitoire dans le fichier OCAL associé à l'étude de la campagne --> - <LoiCalculTransitoire CalculRef="Cc_T01" LoiRef="LoiT 1" SectionRef="Section 1" Ponderation="1"/> - <LoiCalculTransitoire CalculRef="Cc_T02" LoiRef="LoiT 2" SectionRef="Section 2" Ponderation="2"/> - <LoiCalculTransitoire CalculRef="Cc_T03" LoiRef="LoiT 3" SectionRef="Section 3" Ponderation="3"/> + <LoiCalculTransitoire CalculRef="Cc_T01" LoiRef="LoiT 1" SectionRef="St_Section 1" Ponderation="1"/> + <LoiCalculTransitoire CalculRef="Cc_T02" LoiRef="LoiT 2" SectionRef="St_Section 2" Ponderation="2"/> + <LoiCalculTransitoire CalculRef="Cc_T03" LoiRef="LoiT 3" SectionRef="St_Section 3" Ponderation="3"/> </LoisCalculsTransitoires> <LoisStrickler> @@ -70,7 +70,7 @@ </ListeCalculs> <ValidationCroisee> - <Groupe Id="1" Nom="Groupe 1"> + <Groupe Id="GR_1" Nom="Groupe 1"> <Lois> <!-- LoiRef = référence vers un nom de loi dans le fichier LHPT associé à l'étude de la campagne --> <Loi LoiRef="Loi 3"/> @@ -79,7 +79,7 @@ <EffectifApprentissage>2</EffectifApprentissage> <Commentaire>Un commentaire</Commentaire> </Groupe> - <Groupe Id="2" Nom="Groupe 2"> + <Groupe Id="GR_2" Nom="Groupe 2"> <Lois> <!-- LoiRef = référence vers un nom de loi dans le fichier LHPT associé à l'étude de la campagne --> <Loi LoiRef="Loi 1"/> Copied: trunk/soft/fudaa-crue/crue-config/src/test/resources/xsd/aoc-1.2.xsd (from rev 9659, trunk/soft/fudaa-crue/crue-config/src/test/resources/xsd/lhpt-1.2.xsd) =================================================================== --- trunk/soft/fudaa-crue/crue-config/src/test/resources/xsd/aoc-1.2.xsd (rev 0) +++ trunk/soft/fudaa-crue/crue-config/src/test/resources/xsd/aoc-1.2.xsd 2017-07-13 11:27:49 UTC (rev 9661) @@ -0,0 +1,250 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" + attributeFormDefault="unqualified" elementFormDefault="qualified" + targetNamespace="http://www.fudaa.fr/xsd/crue" xmlns="http://www.fudaa.fr/xsd/crue"> + + <xs:include schemaLocation="nomRef-fichierUnique-1.2.xsd"/> + <xs:include schemaLocation="frag-common-1.2.xsd"/> + + <xs:element name="Chemin" type="xs:string"/> + <xs:element name="NomScenario" type="xs:string"/> + + <xs:element name="Donnees"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="Permanent"/> + <xs:enumeration value="TransitoireLimnigramme"/> + <xs:enumeration value="TransitoireHydrogramme"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + + <xs:element name="Critere"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="ErreurQuadratique"/> + <xs:enumeration value="EcartNiveauxMax"/> + <xs:enumeration value="EcartTempsArriveeMax"/> + <xs:enumeration value="EcartVolumes"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + + <xs:element name="NombreIteration" type="xs:positiveInteger"/> + <xs:element name="NombreIterationTir" type="xs:positiveInteger"/> + <xs:element name="NombreTir" type="xs:positiveInteger"/> + <xs:element name="PonderationApprentissage" type="xs:double"/> + <xs:element name="PonderationValidation" type="xs:double"/> + + <xs:simpleType name="positiveIntegerOrNull" id="positiveInteger"> + <xs:restriction base="xs:nonNegativeInteger"> + <xs:minInclusive value="0"/> + </xs:restriction> + </xs:simpleType> + + + <xs:element name="Type"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="Seul"/> + <xs:enumeration value="TestRepetabilite"/> + <xs:enumeration value="AnalyseSensibilite"/> + <xs:enumeration value="ValidationCroisee"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + <xs:element name="Algorithme"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="Recuit"/> + <xs:enumeration value="MonteCarlo"/> + </xs:restriction> + </xs:simpleType> + </xs:element> + + <xs:element name="Seul"> + <xs:complexType> + <xs:sequence> + <xs:element ref="NombreIteration"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="TestRepetabilite"> + <xs:complexType> + <xs:sequence> + <xs:element ref="NombreIterationTir"/> + <xs:element ref="NombreTir"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="ValidationCroisee"> + <xs:complexType> + <xs:sequence> + <xs:element ref="NombreIteration" minOccurs="0"/> + <xs:element ref="PonderationApprentissage" minOccurs="0"/> + <xs:element ref="PonderationValidation" minOccurs="0"/> + <xs:element ref="Groupe" maxOccurs="unbounded" minOccurs="0"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="LoiCalculPermanent"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute type="TypeForAttributeNomRefCalc" name="CalculRef"/> + <xs:attribute type="xs:string" name="LoiRef"/> + <xs:attribute type="xs:positiveInteger" name="Ponderation"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="LoiCalculTransitoire"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute type="TypeForAttributeNomRefCalc" name="CalculRef"/> + <xs:attribute type="xs:token" name="LoiRef"/> + <xs:attribute type="TypeForAttributeNomRefSection" name="SectionRef"/> + <xs:attribute type="positiveIntegerOrNull" name="Ponderation"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="LoiStrickler"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute type="xs:token" name="LoiRef"/> + <xs:attribute type="positiveIntegerOrNull" name="Min"/> + <xs:attribute type="positiveIntegerOrNull" name="Ini"/> + <xs:attribute type="positiveIntegerOrNull" name="Max"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="ParamCalc"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute type="TypeForAttributeNomRefCalc" name="CalculRef"/> + <xs:attribute type="xs:token" name="EMHRef"/> + <xs:attribute type="xs:double" name="DeltaQ"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="Loi"> + <xs:complexType> + <xs:simpleContent> + <xs:extension base="xs:string"> + <xs:attribute type="xs:token" name="LoiRef"/> + </xs:extension> + </xs:simpleContent> + </xs:complexType> + </xs:element> + <xs:element name="Lois"> + <xs:complexType> + <xs:sequence> + <xs:element ref="Loi" maxOccurs="unbounded" minOccurs="0"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="EffectifApprentissage" type="positiveIntegerOrNull"/> + <xs:element name="Groupe"> + <xs:complexType> + <xs:sequence> + <xs:element ref="Lois"/> + <xs:element ref="EffectifApprentissage"/> + <xs:element ref="Commentaire"/> + </xs:sequence> + <xs:attribute type="TypeForAttributeNom" name="Id"/> + <xs:attribute type="xs:token" name="Nom"/> + </xs:complexType> + </xs:element> + <xs:element name="LoisCalculsPermanents"> + <xs:complexType> + <xs:sequence> + <xs:element ref="LoiCalculPermanent" maxOccurs="unbounded" minOccurs="0"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="LoisCalculsTransitoires"> + <xs:complexType> + <xs:sequence> + <xs:element ref="LoiCalculTransitoire" maxOccurs="unbounded" minOccurs="0"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="LoisStrickler"> + <xs:complexType> + <xs:sequence> + <xs:element ref="LoiStrickler" maxOccurs="unbounded" minOccurs="0"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="ListeCalculs"> + <xs:complexType> + <xs:sequence> + <xs:element ref="ParamCalc" maxOccurs="unbounded" minOccurs="0"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="AuteurCreation" type="xs:string"/> + <xs:element name="DateCreation" type="xs:dateTime"/> + <xs:element name="AuteurDerniereModif" type="xs:string"/> + <xs:element name="DateDerniereModif" type="xs:dateTime"/> + <xs:element name="EtudeAssociee"> + <xs:complexType> + <xs:sequence> + <xs:element ref="Chemin"/> + <xs:element ref="NomScenario"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="TypeCalage"> + <xs:complexType> + <xs:sequence> + <xs:element ref="Donnees"/> + <xs:element ref="Critere"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="Calage"> + <xs:complexType> + <xs:sequence> + <xs:element ref="Type"/> + <xs:element ref="Algorithme"/> + <xs:element ref="Seul"/> + <xs:element ref="TestRepetabilite"/> + <xs:element ref="ValidationCroisee"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="DonneesCampagne"> + <xs:complexType> + <xs:sequence> + <xs:element ref="LoisCalculsPermanents"/> + <xs:element ref="LoisCalculsTransitoires"/> + <xs:element ref="LoisStrickler"/> + <xs:element ref="ListeCalculs"/> + <xs:element ref="ValidationCroisee"/> + </xs:sequence> + </xs:complexType> + </xs:element> + <xs:element name="AOC"> + <xs:complexType> + <xs:sequence> + <xs:element ref="Commentaire"/> + <xs:element ref="AuteurCreation"/> + <xs:element ref="DateCreation"/> + <xs:element ref="AuteurDerniereModif"/> + <xs:element ref="DateDerniereModif"/> + <xs:element ref="EtudeAssociee"/> + <xs:element ref="TypeCalage"/> + <xs:element ref="Calage"/> + <xs:element ref="DonneesCampagne"/> + </xs:sequence> + </xs:complexType> + </xs:element> +</xs:schema> + Modified: trunk/soft/fudaa-crue/crue-emh/src/main/java/org/fudaa/dodico/crue/metier/CrueFileType.java =================================================================== --- trunk/soft/fudaa-crue/crue-emh/src/main/java/org/fudaa/dodico/crue/metier/CrueFileType.java 2017-07-13 10:10:35 UTC (rev 9660) +++ trunk/soft/fudaa-crue/crue-emh/src/main/java/org/fudaa/dodico/crue/metier/CrueFileType.java 2017-07-13 11:27:49 UTC (rev 9661) @@ -18,6 +18,7 @@ public enum CrueFileType implements FileType{ ETU(CrueLevelType.PROJET, null), + AOC(CrueLevelType.PROJET, CrueVersionType.CRUE10), DCLM(CrueLevelType.SCENARIO, CrueVersionType.CRUE10), DCSP(CrueLevelType.SOUS_MODELE, CrueVersionType.CRUE10), DFRT(CrueLevelType.SOUS_MODELE, CrueVersionType.CRUE10), Modified: trunk/soft/fudaa-crue/crue-io/src/main/java/org/fudaa/dodico/crue/io/Crue10FileFormat.java =================================================================== --- trunk/soft/fudaa-crue/crue-io/src/main/java/org/fudaa/dodico/crue/io/Crue10FileFormat.java 2017-07-13 10:10:35 UTC (rev 9660) +++ trunk/soft/fudaa-crue/crue-io/src/main/java/org/fudaa/dodico/crue/io/Crue10FileFormat.java 2017-07-13 11:27:49 UTC (rev 9661) @@ -32,7 +32,7 @@ /** * @param readerWriter le reader/writer */ - protected Crue10FileFormat(final CrueXmlReaderWriter<M> readerWriter) { + public Crue10FileFormat(final CrueXmlReaderWriter<M> readerWriter) { this(readerWriter.getFileType(), readerWriter); } Modified: trunk/soft/fudaa-crue/ui-application/application.iml =================================================================== --- trunk/soft/fudaa-crue/ui-application/application.iml 2017-07-13 10:10:35 UTC (rev 9660) +++ trunk/soft/fudaa-crue/ui-application/application.iml 2017-07-13 11:27:49 UTC (rev 9661) @@ -9,7 +9,6 @@ </content> <orderEntry type="inheritedJdk" /> <orderEntry type="sourceFolder" forTests="false" /> - <orderEntry type="module" module-name="ui-aoc" /> <orderEntry type="library" name="Maven: org.netbeans.external:asm-all-5.0.1:RELEASE82" level="project" /> <orderEntry type="library" name="Maven: org.netbeans.modules:org-netbeans-bootstrap:RELEASE82" level="project" /> <orderEntry type="library" name="Maven: org.netbeans.api:org-netbeans-libs-asm:RELEASE82" level="project" /> Modified: trunk/soft/fudaa-crue/ui-options/src/main/resources/default-coeurs.zip =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |