From: <de...@us...> - 2010-09-10 06:21:13
|
Revision: 5924 http://fudaa.svn.sourceforge.net/fudaa/?rev=5924&view=rev Author: deniger Date: 2010-09-10 06:21:06 +0000 (Fri, 10 Sep 2010) Log Message: ----------- Modified Paths: -------------- trunk/soft/fudaa-crue/crue-server/src/main/java/org/fudaa/dodico/crue/metier/etude/EMHProjet.java trunk/soft/fudaa-crue/crue-server/src/main/java/org/fudaa/dodico/crue/metier/etude/ManagerEMHContainerBase.java trunk/soft/fudaa-crue/crue-server/src/main/java/org/fudaa/dodico/crue/metier/etude/ManagerEMHScenario.java trunk/soft/fudaa-crue/crue-server/src/main/java/org/fudaa/dodico/crue/projet/ScenarioLoader.java trunk/soft/fudaa-crue/crue-server/src/main/java/org/fudaa/dodico/crue/projet/ScenarioLoaderCrue9.java trunk/soft/fudaa-crue/crue-server/src/main/java/org/fudaa/dodico/crue/projet/ScenarioSaver.java trunk/soft/fudaa-crue/crue-server/src/main/resources/org/fudaa/dodico/crue/common/commonMessages.properties trunk/soft/fudaa-crue/crue-ui/src/main/java/org/fudaa/fudaa/crue/builder/CrueScenarioBuilder.java trunk/soft/fudaa-crue/crue-ui/src/main/java/org/fudaa/fudaa/crue/builder/CrueTreeProject.java trunk/soft/fudaa-crue/crue-ui/src/main/java/org/fudaa/fudaa/crue/common/CrueEditorImplementation.java trunk/soft/fudaa-crue/crue-ui/src/main/java/org/fudaa/fudaa/crue/common/Messages.java trunk/soft/fudaa-crue/crue-ui/src/main/java/org/fudaa/fudaa/crue/common/UserPreferencesSaver.java trunk/soft/fudaa-crue/crue-ui/src/main/java/org/fudaa/fudaa/crue/view/ActionChangeRunCourant.java trunk/soft/fudaa-crue/crue-ui/src/main/java/org/fudaa/fudaa/crue/view/CrueFilleScenarioManager.java trunk/soft/fudaa-crue/crue-ui/src/main/resources/org/fudaa/fudaa/crue/common/ihmMessages.properties Modified: trunk/soft/fudaa-crue/crue-server/src/main/java/org/fudaa/dodico/crue/metier/etude/EMHProjet.java =================================================================== --- trunk/soft/fudaa-crue/crue-server/src/main/java/org/fudaa/dodico/crue/metier/etude/EMHProjet.java 2010-09-09 14:14:53 UTC (rev 5923) +++ trunk/soft/fudaa-crue/crue-server/src/main/java/org/fudaa/dodico/crue/metier/etude/EMHProjet.java 2010-09-10 06:21:06 UTC (rev 5924) @@ -86,6 +86,19 @@ return null; } + /** + * @return the dir that contains the dc and dh files. + */ + public File getDirForRunModeleCrue9(final ManagerEMHScenario scenarioCrue9, final EMHRun run) { + final File dirOfRun = getDirForRun(scenarioCrue9, run); + final List<ManagerEMHModeleBase> fils = scenarioCrue9.getFils(); + if (fils.isEmpty()) { + return null; + } else if (fils.size() > 1) { return null; } + final ManagerEMHModeleBase modele = fils.get(0); + return new File(dirOfRun, modele.getNom()); + } + public File getDirForRunCourantOf(final String scenarioNom) { final ManagerEMHScenario sc = getScenario(scenarioNom); if (sc != null && sc.getRunCourant() != null) { return getDirForRun(sc, sc.getRunCourant()); } @@ -132,22 +145,12 @@ /** * @param nomScenario le nom du scenario - * @return l'association idFichier->File pour les fichier d'etude du run courant - */ - public Map<String, URL> getFileUrlRunScenario(final String nomScenario) { - final ManagerEMHScenario sc = getScenario(nomScenario); - if (sc == null || sc.getRunCourant() == null) { return Collections.emptyMap(); } - return getRunFiles(sc.getAllFileUsed(), nomScenario); - } - - /** - * @param nomScenario le nom du scenario * @return l'association idFichier->File pour les fichier d'etude */ - public Map<String, File> getFileFileRunScenario(final String nomScenario) { - final ManagerEMHScenario sc = getScenario(nomScenario); - if (sc == null || sc.getRunCourant() == null) { return Collections.emptyMap(); } - return getRunFileFiles(sc.getAllFileUsed(), nomScenario); + public Map<String, File> getFiles(final ManagerEMHScenario sc, EMHRun run) { + if (sc == null) { return Collections.emptyMap(); } + if (run == null) { return getFileEtudeFiles(sc.getAllFileUsed()); } + return getRunFileFiles(sc.getAllFileUsed(), sc, run); } /** @@ -186,22 +189,10 @@ return idModele.get(nom); } - private Map<String, URL> getRunFiles(final Map<String, FichierCrueParModele> allFileUsed, final String scenario) { - final Map<String, URL> res = new HashMap<String, URL>(allFileUsed.size()); - final Map<String, File> file = getRunFileFiles(allFileUsed, scenario); - for (final Map.Entry<String, File> it : file.entrySet()) { - try { - res.put(it.getKey(), it.getValue().toURI().toURL()); - } catch (final MalformedURLException e) { - LOGGER.error("getRunFiles", e); - } - } - return res; - } - - private Map<String, File> getRunFileFiles(final Map<String, FichierCrueParModele> allFileUsed, final String scenario) { + private Map<String, File> getRunFileFiles(final Map<String, FichierCrueParModele> allFileUsed, + final ManagerEMHScenario scenario, EMHRun run) { final Map<String, File> res = new HashMap<String, File>(allFileUsed.size()); - final File dirOfRun = getDirForRunCourantOf(scenario); + final File dirOfRun = getDirForRun(scenario, run); for (final Map.Entry<String, FichierCrueParModele> entry : allFileUsed.entrySet()) { final ManagerEMHModeleBase parent = entry.getValue().getParent(); final File modeleDir = parent == null ? dirOfRun : new File(dirOfRun, parent.getNom()); Modified: trunk/soft/fudaa-crue/crue-server/src/main/java/org/fudaa/dodico/crue/metier/etude/ManagerEMHContainerBase.java =================================================================== --- trunk/soft/fudaa-crue/crue-server/src/main/java/org/fudaa/dodico/crue/metier/etude/ManagerEMHContainerBase.java 2010-09-09 14:14:53 UTC (rev 5923) +++ trunk/soft/fudaa-crue/crue-server/src/main/java/org/fudaa/dodico/crue/metier/etude/ManagerEMHContainerBase.java 2010-09-10 06:21:06 UTC (rev 5924) @@ -66,6 +66,11 @@ return infosVersions; } + public boolean isCrue9() { + final String type = getInfosVersions().getType().toUpperCase(); + return type.contains("9"); + } + /** * @return le manager des fichiers */ Modified: trunk/soft/fudaa-crue/crue-server/src/main/java/org/fudaa/dodico/crue/metier/etude/ManagerEMHScenario.java =================================================================== --- trunk/soft/fudaa-crue/crue-server/src/main/java/org/fudaa/dodico/crue/metier/etude/ManagerEMHScenario.java 2010-09-09 14:14:53 UTC (rev 5923) +++ trunk/soft/fudaa-crue/crue-server/src/main/java/org/fudaa/dodico/crue/metier/etude/ManagerEMHScenario.java 2010-09-10 06:21:06 UTC (rev 5924) @@ -23,7 +23,7 @@ private EMHScenario emh; /** - * la liste des runs associes au sc�nraio. + * la liste des runs associes au scenraio. */ private List<EMHRun> listeRuns_; Modified: trunk/soft/fudaa-crue/crue-server/src/main/java/org/fudaa/dodico/crue/projet/ScenarioLoader.java =================================================================== --- trunk/soft/fudaa-crue/crue-server/src/main/java/org/fudaa/dodico/crue/projet/ScenarioLoader.java 2010-09-09 14:14:53 UTC (rev 5923) +++ trunk/soft/fudaa-crue/crue-server/src/main/java/org/fudaa/dodico/crue/projet/ScenarioLoader.java 2010-09-10 06:21:06 UTC (rev 5924) @@ -67,26 +67,21 @@ "loader.loadScenario.group", scenario.getNom())); final CrueErrorManager testFileExistBilan = loadScenarioBilan.createGroup(CommonMessages .getString("loader.fileExist.test")); - final boolean ok = validFiles(testFileExistBilan); - if (!ok) { return errorMng; } - - Map<String, File> files = null; if (projet.getScenario(scenario.getNom()) == null) { analyzer.addFatalError("not.scenario.error", scenario.getNom()); } + final boolean ok = validFiles(testFileExistBilan); + if (!ok) { return errorMng; } + + Map<String, File> files = projet.getFiles(scenario, run); Map<String, File> resFiles = null; - if (run == null) { - files = projet.getFileFileEtudeScenario(scenario.getNom()); - } else { - files = projet.getFileFileRunScenario(scenario.getNom()); + if (run != null) { resFiles = projet.getFileFileResultatForCurrentRun(scenario.getNom()); } EMHScenario emhScenario = null; boolean crue9 = false; if (scenario.getInfosVersions() != null && scenario.getInfosVersions().getType() != null) { - - final String type = scenario.getInfosVersions().getType().toUpperCase(); - crue9 = type.contains("9"); + crue9 = scenario.isCrue9(); scenario.clean(); final CrueErrorManager readFileBilan = loadScenarioBilan.createGroup(CommonMessages.getString("loader.readFile")); @@ -126,11 +121,15 @@ } private boolean validFiles(final CrueErrorManager errorMng) { + return validFiles(errorMng, scenario.getRunCourant()); + } + + private boolean validFiles(final CrueErrorManager errorMng, EMHRun run) { // on teste la presence de fichiers Map<String, File> fileToLoad = projet.getFileFileEtudeScenario(scenario.getNom()); boolean ok = validFileExists(errorMng, fileToLoad, "loader.fichier.etude.exist"); if (scenario.getRunCourant() != null) { - final Map<String, File> runFiles = projet.getFileFileRunScenario(scenario.getNom()); + final Map<String, File> runFiles = projet.getFiles(scenario, run); ok = ok && validFileExists(errorMng, runFiles, "loader.fichier.run.exist"); if (ok) { fileToLoad = runFiles; Modified: trunk/soft/fudaa-crue/crue-server/src/main/java/org/fudaa/dodico/crue/projet/ScenarioLoaderCrue9.java =================================================================== --- trunk/soft/fudaa-crue/crue-server/src/main/java/org/fudaa/dodico/crue/projet/ScenarioLoaderCrue9.java 2010-09-09 14:14:53 UTC (rev 5923) +++ trunk/soft/fudaa-crue/crue-server/src/main/java/org/fudaa/dodico/crue/projet/ScenarioLoaderCrue9.java 2010-09-10 06:21:06 UTC (rev 5924) @@ -76,6 +76,25 @@ this.propDefinition = propDefinition; } + public static File findFileOfType(final ManagerEMHScenario scenarioCrue9, CrueFileType type, + final Map<String, File> files) { + // -- recherche des fichiers sous modeles --// + final List<ManagerEMHModeleBase> fils = scenarioCrue9.getFils(); + if (fils.isEmpty()) { + return null; + } else if (fils.size() > 1) { return null; } + final ManagerEMHModeleBase modele = fils.get(0); + return files.get(modele.getListeFichiers().getFile(type).getId()); + } + + public static File findFileDc(final ManagerEMHScenario scenarioCrue9, final Map<String, File> files) { + return findFileOfType(scenarioCrue9, CrueFileType.DC, files); + } + + public static File findFileDh(final ManagerEMHScenario scenarioCrue9, final Map<String, File> files) { + return findFileOfType(scenarioCrue9, CrueFileType.DH, files); + } + /** * Ordonnance le chargement d'un projet crue 10: sous modeles puis modeles puis scenarios */ @@ -92,8 +111,8 @@ } final ManagerEMHModeleBase modele = fils.get(0); - final File fichierDC = files.get(modele.getListeFichiers().getFile(CrueFileType.DC).getId()); - final File fichierDH = files.get(modele.getListeFichiers().getFile(CrueFileType.DH).getId()); + final File fichierDC = findFileDc(scenario, files); + final File fichierDH = findFileDh(scenario, files); if (fichierDC == null) { analyzer.addFatalError("loader.crue9.noDefined", "DC", modele.getNom()); @@ -116,7 +135,8 @@ final CrueData res = ioResuDH.getMetier(); // on charge les valeurs par defaut pour ores. final CtuluAnalyze ores = new CtuluAnalyze(); - Crue10FileFormatFactory.getInstance().getFileFormat(CrueFileType.ORES, Crue10FileFormatFactory.V_1).read("/default.ores.xml", ores, res); + Crue10FileFormatFactory.getInstance().getFileFormat(CrueFileType.ORES, Crue10FileFormatFactory.V_1).read( + "/default.ores.xml", ores, res); if (ores.isNotEmpty()) { errorMng.getAnalyser().add(ores); } Modified: trunk/soft/fudaa-crue/crue-server/src/main/java/org/fudaa/dodico/crue/projet/ScenarioSaver.java =================================================================== --- trunk/soft/fudaa-crue/crue-server/src/main/java/org/fudaa/dodico/crue/projet/ScenarioSaver.java 2010-09-09 14:14:53 UTC (rev 5923) +++ trunk/soft/fudaa-crue/crue-server/src/main/java/org/fudaa/dodico/crue/projet/ScenarioSaver.java 2010-09-10 06:21:06 UTC (rev 5924) @@ -55,7 +55,7 @@ final Map<String, File> files = projet.getFileFileEtudeScenario(scenario.getNom()); Map<String, File> runFiles = null; if (runCourant != null) { - runFiles = projet.getFileFileRunScenario(scenario.getNom()); + runFiles = projet.getFiles(scenario, runCourant); } scenario.getEmh().sort(); if (scenario.getInfosVersions() != null && scenario.getInfosVersions().getType() != null) { Modified: trunk/soft/fudaa-crue/crue-server/src/main/resources/org/fudaa/dodico/crue/common/commonMessages.properties =================================================================== --- trunk/soft/fudaa-crue/crue-server/src/main/resources/org/fudaa/dodico/crue/common/commonMessages.properties 2010-09-09 14:14:53 UTC (rev 5923) +++ trunk/soft/fudaa-crue/crue-server/src/main/resources/org/fudaa/dodico/crue/common/commonMessages.properties 2010-09-10 06:21:06 UTC (rev 5924) @@ -138,4 +138,7 @@ common.validation=Validation de {0} validation.infoEMHUnique=Validation unicit\xE9 des infosEMH error.infoEMHNommeUsedSeveralTimes=L''infoEMH {1} de type {0} est utilis\xE9e par plusieurs EMH: {2} -error.infoEMHUsedSeveralTimes=L''infoEMH de type {0} est utilis\xE9e par plusieurs EMH: {1} \ No newline at end of file +error.infoEMHUsedSeveralTimes=L''infoEMH de type {0} est utilis\xE9e par plusieurs EMH: {1} +exec.launchCrue9.noFolder=Le dossier de travail n'existe pas +exec.crue9.dhFileNotFoundError=Le fichier DH n'a pas \xE9t\xE9 trouv\xE9 pour lancer le calcul +exec.crue9.dcFileNotFoundError=Le fichier DC n'a pas \xE9t\xE9 trouv\xE9 pour lancer le calcul \ No newline at end of file Modified: trunk/soft/fudaa-crue/crue-ui/src/main/java/org/fudaa/fudaa/crue/builder/CrueScenarioBuilder.java =================================================================== --- trunk/soft/fudaa-crue/crue-ui/src/main/java/org/fudaa/fudaa/crue/builder/CrueScenarioBuilder.java 2010-09-09 14:14:53 UTC (rev 5923) +++ trunk/soft/fudaa-crue/crue-ui/src/main/java/org/fudaa/fudaa/crue/builder/CrueScenarioBuilder.java 2010-09-10 06:21:06 UTC (rev 5924) @@ -18,7 +18,7 @@ import org.fudaa.dodico.crue.metier.etude.ManagerEMHSousModele; import org.fudaa.fudaa.crue.builder.CrueTreeProject.TreeNodeModele; import org.fudaa.fudaa.crue.builder.CrueTreeProject.TreeNodeModeleRun; -import org.fudaa.fudaa.crue.builder.CrueTreeProject.TreeNodeRun; +import org.fudaa.fudaa.crue.builder.CrueTreeProject.TreeNodeRunDefault; import org.fudaa.fudaa.crue.builder.CrueTreeProject.TreeNodeScenario; import org.fudaa.fudaa.crue.builder.CrueTreeProject.TreeNodeSousModele; import org.fudaa.fudaa.crue.builder.CrueTreeProject.TreeScenarioModel; @@ -85,7 +85,7 @@ if (scenario.getListeRuns() != null) { for (EMHRun run : scenario.getListeRuns()) { - TreeNodeRun nodeRun = new TreeNodeRun(run, scenario); + TreeNodeRunDefault nodeRun = new TreeNodeRunDefault(projet,scenario, run); nodeScenar.add(nodeRun); if (run.getListeModelesRuns() != null) { @@ -116,7 +116,7 @@ TreeNodeString conteneurSModelesFichier = new TreeNodeString("Fichiers"); nodeSModel.add(conteneurSModelesFichier); for (FichierCrue fc : sousmodele.getListeFichiers().getFichiers()) { - conteneurSModelesFichier.add(new TreeNodeString(fc.getId())); + conteneurSModelesFichier.add(createTreeNodeFile(projet, fc)); } } @@ -128,7 +128,7 @@ TreeNodeString conteneurModelesFichier = new TreeNodeString("Fichiers"); nodeModel.add(conteneurModelesFichier); for (FichierCrue fc : m.getListeFichiers().getFichiers()) { - conteneurModelesFichier.add(new TreeNodeString(fc.getId())); + conteneurModelesFichier.add(createTreeNodeFile(projet, fc)); } } } @@ -138,7 +138,7 @@ TreeNodeString conteneurModelesFichier = new TreeNodeString("Fichiers"); nodeScenar.add(conteneurModelesFichier); for (FichierCrue fc : scenario.getListeFichiers().getFichiers()) { - conteneurModelesFichier.add(new TreeNodeString(fc.getId())); + conteneurModelesFichier.add(createTreeNodeFile(projet, fc)); } } @@ -150,13 +150,17 @@ return modeleTree; } + private static TreeNodeStringFile createTreeNodeFile(EMHProjet projet, FichierCrue fc) { + return new TreeNodeStringFile(fc.getId(), fc, projet); + } + /** * Genere l'encart du scenario courant * * @param scenarCourant * @return */ - public static JList buildListScenarioCourant(final ManagerEMHScenario scenarCourant,UiContext componentFactory) { + public static JList buildListScenarioCourant(final ManagerEMHScenario scenarCourant, UiContext componentFactory) { if (scenarCourant == null) { return null; } final DefaultListModel model = new DefaultListModel(); final BuLabel label = new BuLabel(CrueTreeProject.iconeScenarioCourant); Modified: trunk/soft/fudaa-crue/crue-ui/src/main/java/org/fudaa/fudaa/crue/builder/CrueTreeProject.java =================================================================== --- trunk/soft/fudaa-crue/crue-ui/src/main/java/org/fudaa/fudaa/crue/builder/CrueTreeProject.java 2010-09-09 14:14:53 UTC (rev 5923) +++ trunk/soft/fudaa-crue/crue-ui/src/main/java/org/fudaa/fudaa/crue/builder/CrueTreeProject.java 2010-09-10 06:21:06 UTC (rev 5924) @@ -1,6 +1,7 @@ package org.fudaa.fudaa.crue.builder; import java.awt.Component; +import java.io.File; import java.util.Arrays; import javax.swing.JTree; @@ -11,6 +12,7 @@ import org.apache.commons.lang.StringUtils; import org.fudaa.dodico.crue.metier.emh.EMH; +import org.fudaa.dodico.crue.metier.emh.EMHScenario; import org.fudaa.dodico.crue.metier.emh.EnumTypeEMH; import org.fudaa.dodico.crue.metier.etude.EMHInfosVersion; import org.fudaa.dodico.crue.metier.etude.EMHModeleRun; @@ -140,18 +142,20 @@ * * @author Adrien Hadoux */ - public static class TreeNodeRun extends DefaultMutableTreeTableNode { - final EMHRun r; + public static class TreeNodeRunDefault extends DefaultMutableTreeTableNode implements TreeNodeCrueRun { + final EMHRun run; final ManagerEMHScenario scenario; + final EMHProjet projet; - public TreeNodeRun(final EMHRun r, final ManagerEMHScenario scenario) { + public TreeNodeRunDefault(final EMHProjet projet, final ManagerEMHScenario scenario, final EMHRun run) { super(); - this.r = r; + this.run = run; + this.projet = projet; this.scenario = scenario; } public boolean isCourant() { - return r == scenario.getRunCourant(); + return run == scenario.getRunCourant(); } public boolean isLoaded() { @@ -161,12 +165,27 @@ @Override public Object getValueAt(final int column) { if (column == 0) { - return r.getId(); + return run.getId(); } else if (column == 2) { - if (r.getInfosVersion() != null) { return r.getInfosVersion().getCommentaire(); } + if (run.getInfosVersion() != null) { return run.getInfosVersion().getCommentaire(); } } return StringUtils.EMPTY; } + + @Override + public EMHProjet getProjet() { + return projet; + } + + @Override + public EMHRun getRun() { + return run; + } + + @Override + public ManagerEMHScenario getScenario() { + return scenario; + } } /** @@ -247,9 +266,10 @@ } setToolTipText("Scénario"); - } else if (value instanceof TreeNodeRun) { - setIcon(((TreeNodeRun) value).isCourant() ? (((TreeNodeRun) value).isLoaded() ? iconeRunCourantCharge - : iconeRunCourant) : iconeRun); + } else if (value instanceof TreeNodeRunDefault) { + setIcon(((TreeNodeRunDefault) value).isCourant() ? (((TreeNodeRunDefault) value).isLoaded() ? iconeRunCourantCharge + : iconeRunCourant) + : iconeRun); } else if ((value instanceof TreeNodeModele) || (value instanceof TreeNodeModeleRun)) { setIcon(iconeModele); } else if (value instanceof TreeNodeSousModele) { Modified: trunk/soft/fudaa-crue/crue-ui/src/main/java/org/fudaa/fudaa/crue/common/CrueEditorImplementation.java =================================================================== --- trunk/soft/fudaa-crue/crue-ui/src/main/java/org/fudaa/fudaa/crue/common/CrueEditorImplementation.java 2010-09-09 14:14:53 UTC (rev 5923) +++ trunk/soft/fudaa-crue/crue-ui/src/main/java/org/fudaa/fudaa/crue/common/CrueEditorImplementation.java 2010-09-10 06:21:06 UTC (rev 5924) @@ -10,6 +10,7 @@ import java.util.List; import javax.swing.JFrame; +import javax.swing.JMenu; import com.memoire.bu.BuMenu; import com.memoire.bu.BuMenuBar; @@ -71,8 +72,8 @@ BuTaskView taches_; protected void cmdOuvrirEtude() { - final File f = FudaaGuiLib.ouvrirFileChooser("Fichier etu", Crue10FileFormatFactory.getInstance().getFileFormat(CrueFileType.ETU, Crue10FileFormatFactory.V_1) - .getFileFormat().createFileFilter(), getFrame(), false); + final File f = FudaaGuiLib.ouvrirFileChooser("Fichier etu", Crue10FileFormatFactory.getInstance().getFileFormat( + CrueFileType.ETU, Crue10FileFormatFactory.V_1).getFileFormat().createFileFilter(), getFrame(), false); if (f != null) { cmdOuvrirFile(f); @@ -137,6 +138,29 @@ // addFrameListLeft(); // buildTaskView(); final BuMenuBar mb = getMainMenuBar(); + BuMenu menu = (BuMenu) mb.getMenu("MENU_EDITION"); + menu.addMenuItem(Messages.getString("impl.configText.label"), "CONFIG_TEXT_EDITOR", BuResource.BU + .getToolIcon("crystal_configurer"), new ActionListener() { + + @Override + public void actionPerformed(ActionEvent e) { + ExecConfigUIChooser chooser = new ExecConfigUIChooser(ExecConfigPreferences.TEXT_EDITOR); + chooser.setUi(CrueEditorImplementation.this); + chooser.display(CrueEditorImplementation.this.getFrame()); + + } + }); + menu.addMenuItem(Messages.getString("impl.configCrue9.label"), "CONFIG_CRUE9", BuResource.BU + .getToolIcon("crystal_configurer"), new ActionListener() { + + @Override + public void actionPerformed(ActionEvent e) { + ExecConfigUIChooser chooser = new ExecConfigUIChooser(ExecConfigPreferences.CRUE9); + chooser.setUi(CrueEditorImplementation.this); + chooser.display(CrueEditorImplementation.this.getFrame()); + } + }); + final int nb = mb.getMenuCount(); mb.add(buildValiderMenu(), nb - 1); mb.add(buildEMHMenu(), nb - 1); Modified: trunk/soft/fudaa-crue/crue-ui/src/main/java/org/fudaa/fudaa/crue/common/Messages.java =================================================================== --- trunk/soft/fudaa-crue/crue-ui/src/main/java/org/fudaa/fudaa/crue/common/Messages.java 2010-09-09 14:14:53 UTC (rev 5923) +++ trunk/soft/fudaa-crue/crue-ui/src/main/java/org/fudaa/fudaa/crue/common/Messages.java 2010-09-10 06:21:06 UTC (rev 5924) @@ -1,6 +1,5 @@ /** - * Licence GPL - * Copyright Genesis + * Licence GPL Copyright Genesis */ package org.fudaa.fudaa.crue.common; @@ -31,4 +30,16 @@ return key; } } + + public static String getString(String key, String defaultKey) { + try { + return RESOURCE_BUNDLE.getString(key); + } catch (MissingResourceException e) { + try { + return RESOURCE_BUNDLE.getString(defaultKey); + } catch (MissingResourceException ex) { + return key; + } + } + } } Modified: trunk/soft/fudaa-crue/crue-ui/src/main/java/org/fudaa/fudaa/crue/common/UserPreferencesSaver.java =================================================================== --- trunk/soft/fudaa-crue/crue-ui/src/main/java/org/fudaa/fudaa/crue/common/UserPreferencesSaver.java 2010-09-09 14:14:53 UTC (rev 5923) +++ trunk/soft/fudaa-crue/crue-ui/src/main/java/org/fudaa/fudaa/crue/common/UserPreferencesSaver.java 2010-09-10 06:21:06 UTC (rev 5924) @@ -191,6 +191,18 @@ return createPreferences().getBooleanProperty(key, defaultValue); } + public static String getPreference(String key) { + return createPreferences().getStringProperty(key, null); + } + + public static void savePreference(String key, String value) { + createPreferences().putStringProperty(key, value); + } + + public static String getPreference(String key, String defaultValue) { + return createPreferences().getStringProperty(key, defaultValue); + } + public static void savePreference(String key, boolean value) { createPreferences().putBooleanProperty(key, value); } Modified: trunk/soft/fudaa-crue/crue-ui/src/main/java/org/fudaa/fudaa/crue/view/ActionChangeRunCourant.java =================================================================== --- trunk/soft/fudaa-crue/crue-ui/src/main/java/org/fudaa/fudaa/crue/view/ActionChangeRunCourant.java 2010-09-09 14:14:53 UTC (rev 5923) +++ trunk/soft/fudaa-crue/crue-ui/src/main/java/org/fudaa/fudaa/crue/view/ActionChangeRunCourant.java 2010-09-10 06:21:06 UTC (rev 5924) @@ -22,7 +22,7 @@ import org.fudaa.dodico.crue.metier.etude.EMHRun; import org.fudaa.dodico.crue.metier.etude.ManagerEMHScenario; import org.fudaa.ebli.commun.EbliActionSimple; -import org.fudaa.fudaa.crue.builder.CrueTreeProject.TreeNodeRun; +import org.fudaa.fudaa.crue.builder.CrueTreeProject.TreeNodeRunDefault; import org.fudaa.fudaa.crue.builder.CrueTreeProject.TreeNodeScenario; import org.fudaa.fudaa.crue.builder.CrueTreeProject.TreeScenarioModel; import org.fudaa.fudaa.crue.common.FCrueResource; @@ -92,7 +92,7 @@ int childCount = treeNodeScenarioSelected.getChildCount(); for (int i = 0; i < childCount; i++) { TreeTableNode childAt = treeNodeScenarioSelected.getChildAt(i); - if (childAt instanceof TreeNodeRun) { + if (childAt instanceof TreeNodeRunDefault) { model.fireChanged(path.pathByAddingChild(childAt)); } } Modified: trunk/soft/fudaa-crue/crue-ui/src/main/java/org/fudaa/fudaa/crue/view/CrueFilleScenarioManager.java =================================================================== --- trunk/soft/fudaa-crue/crue-ui/src/main/java/org/fudaa/fudaa/crue/view/CrueFilleScenarioManager.java 2010-09-09 14:14:53 UTC (rev 5923) +++ trunk/soft/fudaa-crue/crue-ui/src/main/java/org/fudaa/fudaa/crue/view/CrueFilleScenarioManager.java 2010-09-10 06:21:06 UTC (rev 5924) @@ -2,13 +2,14 @@ import java.awt.BorderLayout; import java.awt.Dimension; +import java.awt.FlowLayout; import java.awt.event.ActionEvent; +import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.beans.PropertyVetoException; import javax.swing.Action; import javax.swing.BorderFactory; -import javax.swing.JPopupMenu; import javax.swing.JScrollPane; import javax.swing.JSplitPane; import javax.swing.ListSelectionModel; @@ -22,8 +23,7 @@ import com.memoire.bu.BuInternalFrame; import com.memoire.bu.BuPanel; -import org.fudaa.ctulu.gui.CtuluPopupListener; -import org.fudaa.ctulu.gui.CtuluPopupListener.PopupReceiver; +import org.fudaa.ctulu.gui.PopupMenuReceiver; import org.fudaa.dodico.crue.metier.emh.ObjetWithID; import org.fudaa.dodico.crue.metier.etude.ManagerEMHScenario; import org.fudaa.ebli.commun.EbliComponentFactory; @@ -31,7 +31,8 @@ import org.fudaa.fudaa.crue.builder.CrueTreeProject.ScenarioTreeRenderer; import org.fudaa.fudaa.crue.builder.CrueTreeProject.TreeNodeScenario; import org.fudaa.fudaa.crue.builder.CrueTreeProject.TreeScenarioModel; -import org.fudaa.fudaa.crue.common.UiContext; +import org.fudaa.fudaa.crue.common.ExecCrue9Action; +import org.fudaa.fudaa.crue.common.ExecTextEditorAction; import org.fudaa.fudaa.crue.common.FCrueResource; import org.fudaa.fudaa.crue.common.UserPreferencesSaver; import org.fudaa.fudaa.crue.projet.CrueActionChargerScenario; @@ -66,6 +67,10 @@ private JSplitPane splitPane; + private ExecCrue9Action crue9Action; + + private ExecTextEditorAction editorAction; + /** * @param crueProjet */ @@ -92,7 +97,7 @@ private void buildInit() { // -- modele tree --// final TreeScenarioModel model = CrueScenarioBuilder.buildTreeScenario(crueProjet.getProject()); - treeScenario = crueProjet.getUiContext().createTreeTable(model,false); + treeScenario = crueProjet.getUiContext().createTreeTable(model, false); treeScenario.setName("etudeView.treeTable"); treeScenario.setTreeCellRenderer(new ScenarioTreeRenderer()); treeScenario.setShowHorizontalLines(true); @@ -102,7 +107,9 @@ updateScenarioFromTree(); } }); + initActions(); + treeScenario.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); this.setBorder(BorderFactory.createEtchedBorder()); this.setLayout(new BorderLayout()); @@ -117,9 +124,33 @@ // -- pane commun au projet etude, qui ne changera donc jamais --// final BuPanel infosProjet = new BuPanel(new BuBorderLayout()); - final BuPanel panelCommentaire = new BuPanel(); + final BuPanel panelCommentaire = new BuPanel(new FlowLayout(FlowLayout.CENTER)); + panelCommentaire.add(actionCharger.buildButton(EbliComponentFactory.INSTANCE)); + panelCommentaire.add(editorAction.buildButton(EbliComponentFactory.INSTANCE)); + panelCommentaire.add(crue9Action.buildButton(EbliComponentFactory.INSTANCE)); + infosProjet.add(panelCommentaire, BorderLayout.NORTH); + if (crueProjet.getProject().getScenarioCourant() != null) { + ficheScenario = new CrueFicheScenario(crueProjet.getProject().getScenarioCourant(), crueProjet); + } else { + ficheScenario = new CrueFicheScenario(crueProjet.getProject().getListeScenarios().get(0), crueProjet); + } + infosProjet.add(ficheScenario, BorderLayout.CENTER); + + splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT); + splitPane.setName("splitScenarioTreeFiche"); + splitPane.setTopComponent(conteneur); + splitPane.setDividerLocation(200); + splitPane.setBottomComponent(infosProjet); + this.add(splitPane, BorderLayout.CENTER); + UserPreferencesSaver.loadTablePreferences(treeScenario); + + } + + private void initActions() { + editorAction = new ExecTextEditorAction(treeScenario.getTreeSelectionModel(), crueProjet.getImpl()); + crue9Action = new ExecCrue9Action(treeScenario.getTreeSelectionModel(), crueProjet.getImpl()); actionCharger = new CrueActionChargerScenario(null, crueProjet) { @Override @@ -136,35 +167,33 @@ actionCharger.setEnabled(false); actionChangeRun = new ActionChangeRunCourant(this); - final PopupReceiver receiver = new PopupReceiver() { + PopupMenuReceiver popupReceiver = new PopupMenuReceiver() { - public void popup(final MouseEvent evt) { - final JPopupMenu popup = new JPopupMenu(); + @Override + protected void addItems() { + popupMenu.add(editorAction); + popupMenu.add(crue9Action); + popupMenu.add(actionCharger); + popupMenu.add(actionChangeRun); + popupMenu.addSeparator(); + super.addItems(); + } + + protected void updateItemStateBeforeShow() { + super.updateItemStateBeforeShow(); actionChangeRun.updateState(); - popup.add(actionCharger); - popup.add(actionChangeRun); - popup.show(evt.getComponent(), evt.getX(), evt.getY()); + } + }; + popupReceiver.install(treeScenario, crueProjet.getImpl()); + treeScenario.addMouseListener(new MouseAdapter() { + @Override + public void mouseClicked(MouseEvent e) { + if(e.getClickCount()==2){ + editorAction.actionPerformed(null); + } } - }; - - new CtuluPopupListener(receiver, treeScenario); - panelCommentaire.add(actionCharger.buildButton(EbliComponentFactory.INSTANCE)); - if (crueProjet.getProject().getScenarioCourant() != null) { - ficheScenario = new CrueFicheScenario(crueProjet.getProject().getScenarioCourant(), crueProjet); - } else { - ficheScenario = new CrueFicheScenario(crueProjet.getProject().getListeScenarios().get(0), crueProjet); - } - infosProjet.add(ficheScenario, BorderLayout.CENTER); - - splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT); - splitPane.setName("splitScenarioTreeFiche"); - splitPane.setTopComponent(conteneur); - splitPane.setDividerLocation(200); - splitPane.setBottomComponent(infosProjet); - this.add(splitPane, BorderLayout.CENTER); - UserPreferencesSaver.loadTablePreferences(treeScenario); - + }); } public void updateSplitSize() { Modified: trunk/soft/fudaa-crue/crue-ui/src/main/resources/org/fudaa/fudaa/crue/common/ihmMessages.properties =================================================================== --- trunk/soft/fudaa-crue/crue-ui/src/main/resources/org/fudaa/fudaa/crue/common/ihmMessages.properties 2010-09-09 14:14:53 UTC (rev 5923) +++ trunk/soft/fudaa-crue/crue-ui/src/main/resources/org/fudaa/fudaa/crue/common/ihmMessages.properties 2010-09-10 06:21:06 UTC (rev 5924) @@ -122,4 +122,23 @@ comparaison.table.colonne.egal=Egal comparaison.table.colonne.courantValue=Valeur Sc\xE9nario courant comparaison.table.colonne.otherValue=Valeur dans {0} -comparaison.table.colonne.nbObject=Nombre d'objets test\xE9s \ No newline at end of file +comparaison.table.colonne.nbObject=Nombre d'objets test\xE9s +exec.notFound.error=Veuillez choisir un ex\xE9cutable +exec.option.label=Arguments +exec.command.label=Commande +exec.option.tooltip=Entrez les arguments ( optionnel) +exec.text.title=Choisir l'\xE9diteur de texte \xE0 utiliser +exec.crue9.title=Configurer le ex\xE9cutable de Crue 9 +exec.default.title=Choisir le programme \xE0 utiliser +exec.text.test.label=Tester l'\xE9diteur de texte +exec.text.contentOfTestFile=Test de l'\xE9diteur de texte r\xE9ussi ! +exec.noCommandDefined.error=L'ex\xE9cutable n'a pas \xE9t\xE9 d\xE9fini, l'op\xE9ration est annul\xE9e. +exec.failed.redefinedExec=Voulez-vous red\xE9finir le chemin de l'ex\xE9cutable ?\nSi vous r\xE9pondez non, l'op\xE9ration sera annul\xE9e. +exec.failed.titleDialog=L'ex\xE9cutable n'a pas pu \xEAtre lanc\xE9 +exec.fileNotFound=Le fichier {0} n''existe pas +exec.text.notAFile=La s\xE9lection ne contient pas de fichier editable +textEditor.action.label=Editer le fichier +crue9.action.label=Lancer Crue 9 +impl.configText.label=Configurer l'\xE9diteur de texte +impl.configCrue9.label=Configurer Crue 9 +exec.launchCrue9.noFolder=Le dossier de travail n'existe pas \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |