Author: sletellier Date: 2008-12-02 16:58:11 +0000 (Tue, 02 Dec 2008) New Revision: 1641 Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputNavigationTreeSelectionAdapter.java Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/CellUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/EffortDescriptionUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/GearTabUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/GearUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputAction.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/MetierSeasonInfoSpeciesUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/MetierSeasonInfoZoneUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/MetierTabUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/MetierUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationBasicsUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationCapturabilityUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationEquationUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationGroupUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationEmigrationUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationEquationUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationImmigrationUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationMigrationUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationOneEquationUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationRecruitmentUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationSeasonsUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationZonesUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PortUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/SelectivityUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/SetOfVesselsTabsUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/SetOfVesselsUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/SpeciesUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/StrategyMonthInfoUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/StrategyOneMonthInfoUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/StrategyTabUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/StrategyUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/TripTypeUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/VesselTypeUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/WizardGroupCreationUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/ZoneUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/DataResultUIJAXX.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/GraphBeanUIJAXX.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/ResultEditUIJAXX.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/ResultUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/ResumePanelUIJAXX.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/SimpleResultatMapBeanUIJAXX.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/script/ScriptAction.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/AdvancedParamsUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ExportUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/PreScriptsUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/QueueUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ResultChoiceUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SensUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/versionning/CommitDialogUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/versionning/VCSGenerateSshKeyUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/versionning/VCSPassPhraseUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/widget/filter/FilterPanelUI.jaxx Log: Integration de l'arbre JAXX Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/CellUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/CellUI.jaxx 2008-11-28 17:17:20 UTC (rev 1640) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/CellUI.jaxx 2008-12-02 16:58:11 UTC (rev 1641) @@ -50,7 +50,7 @@ protected boolean changed = false; public CellUI (InputAction action){ - delegateContext = new jaxx.runtime.DefaultJAXXContext(this); + setContextValue(action); } protected void refresh() { @@ -103,7 +103,7 @@ } protected void fieldCellChanged(){ Cell c = (Cell)fieldCell.getSelectedItem(); - getContextValue(InputAction.class).setValue(c, Cell.class); + getContextValue(InputAction.class).setValue(c); getParentContainer(InputUI.class).setTreeSelection(c, Cell.class); refresh(); valueChanged(true); Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/EffortDescriptionUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/EffortDescriptionUI.jaxx 2008-11-28 17:17:20 UTC (rev 1640) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/EffortDescriptionUI.jaxx 2008-12-02 16:58:11 UTC (rev 1641) @@ -42,7 +42,7 @@ boolean changed = false; public EffortDescriptionUI (InputAction action){ - delegateContext = new jaxx.runtime.DefaultJAXXContext(this); + setContextValue(action); } public void refresh(){ Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/GearTabUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/GearTabUI.jaxx 2008-11-28 17:17:20 UTC (rev 1640) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/GearTabUI.jaxx 2008-12-02 16:58:11 UTC (rev 1641) @@ -39,7 +39,7 @@ protected boolean changed = false; public GearTabUI (InputAction action){ - delegateContext = new jaxx.runtime.DefaultJAXXContext(this); + setContextValue(action); } protected void refresh() { Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/GearUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/GearUI.jaxx 2008-11-28 17:17:20 UTC (rev 1640) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/GearUI.jaxx 2008-12-02 16:58:11 UTC (rev 1641) @@ -39,7 +39,7 @@ <script><![CDATA[ import fr.ifremer.isisfish.entities.Metier; public GearUI (InputAction action){ - delegateContext = new jaxx.runtime.DefaultJAXXContext(this); + setContextValue(action); } protected void refresh() { Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputAction.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputAction.java 2008-11-28 17:17:20 UTC (rev 1640) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputAction.java 2008-12-02 16:58:11 UTC (rev 1641) @@ -35,6 +35,7 @@ */ import fr.ifremer.isisfish.IsisFishDAOHelper; +import fr.ifremer.isisfish.IsisFishEntityEnum; import fr.ifremer.isisfish.datastore.FormuleStorage; import java.util.List; @@ -101,7 +102,6 @@ protected FisheryRegion fisheryRegion = null; protected TopiaContext isisContext = null; protected TopiaEntity selected; - protected Class selectedType; protected Cell cell; protected Zone zone; protected Port port; @@ -121,33 +121,55 @@ showMessageDialog(null, txt); } } - public void setValue(Object value, Class type) { - if (type == Zone.class) { - zone = (Zone) value; - } else if (type == Cell.class) { - cell = (Cell) value; - } else if (type == Port.class) { - port = (Port) value; - } else if (type == Species.class) { - species = (Species) value; - } else if (type == Population.class) { - population = (Population) value; - } else if (type == Gear.class) { - gear = (Gear) value; - } else if (type == Metier.class) { - metier = (Metier) value; - } else if (type == TripType.class) { - tripType = (TripType) value; - } else if (type == VesselType.class) { - vesselType = (VesselType) value; - } else if (type == SetOfVessels.class) { - setOfVessels = (SetOfVessels) value; - } else if (type == Strategy.class) { - strategy = (Strategy) value; + public void setValue(Object value) { + cell = null; + zone = null; + port = null; + species = null; + population = null; + gear = null; + metier = null; + tripType = null; + vesselType = null; + setOfVessels = null; + strategy = null; + System.out.println(value.getClass().getName()); + switch (IsisFishEntityEnum.valueOf(value.getClass())){ + case Zone: + zone = (Zone) value; + break; + case Cell: + cell = (Cell) value; + break; + case Port: + port = (Port) value; + break; + case Species: + species = (Species) value; + break; + case Population: + population = (Population) value; + break; + case Metier: + metier = (Metier) value; + break; + case TripType: + tripType = (TripType) value; + break; + case Gear: + gear = (Gear) value; + break; + case VesselType: + vesselType = (VesselType) value; + break; + case SetOfVessels: + setOfVessels = (SetOfVessels) value; + break; + case Strategy: + strategy = (Strategy) value; + break; } - selected = (TopiaEntity) value; - selectedType = type; - + selected = (TopiaEntity) value; } public TopiaContext getIsisContext(){ return isisContext; @@ -264,24 +286,7 @@ log.info("new region name " + regionName); try { - SimulationStorage.getSimulation(simulationName).extractRegion(regionName); - - // ajout de la nouvelle region dans la combo -// frame.refreshView("fieldCurrentRegion"); - - // on selectionne la nouvelle region, ce qui appelle loadRegion - //TODO du au bug, on ne selectionne pas la nouvelle region import?e - //TODO pour le moment - //combo.setSelectedItem(regionName); - - //TODO Fix Bug : the call to loadRegion don't appear since a - // ``thread:input.Input.loadRegion($inputPane, $fieldCurrentRegion/selectedItem);'' : - // Undefined argument: $inputPane : at Line: 1 : in file: inline evaluation of: - // ``thread:input.Input.loadRegion($inputPane, $fieldCurrentRegion/selectedItem);'' - // : ( $inputPane , $fieldCurrentRegion / selectedItem )... - - } catch (StorageException e) { log.error("Can't extract region", e); showMsgBox("error" + e.getMessage()); @@ -405,36 +410,14 @@ public void loadRegion(String name) { log.debug("loadRegion called"); try { - -// if (regionStorage != null) { -// boolean result = askForSave(); -// if (result) { -// addCommentOnRegion(uiContext, oldRegionStorage); -// // close old context before change region -// if (!oldIsisContext.isClosed()) { -// oldIsisContext.closeContext(); -// } -// } else { -// frame.setInfoText(_("isisfish.message.load.region.canceled")); -// return null; -// } -// } - regionStorage = null; fisheryRegion = null; isisContext = null; - -// initContext(uiContext); - if (name != null && !"".equals(name)) { regionStorage = RegionStorage.getRegion(name); isisContext = regionStorage.getStorage().beginTransaction(); fisheryRegion = RegionStorage.getFisheryRegion(isisContext); } - - -// ((CardLayout) inputPane.getLayout()).show(inputPane, "emptyPanel"); - } catch (Exception eee) { log.error("Can't load region", eee); showMsgBox("error " + eee.getMessage()); @@ -452,30 +435,13 @@ public void newRegion(String name) { try { log.debug("newRegion called"); -// -// if (oldRegionStorage != null && oldIsisContext != null) { -// boolean result = askForSave(uiContext, frame, oldIsisContext); -// if (result) { -// addCommentOnRegion(uiContext, oldRegionStorage); -// // close old context before change region -// oldIsisContext.closeContext(); -// } else { -// frame.setInfoText(_("isisfish.message.create.region.canceled")); -// return null; -// } -// } - if ("".equals(name)) { showMsgBox("error " + _("isisfish.error.region.name.empty")); } if (RegionStorage.getRegionNames().contains(name)) { showMsgBox("Error " + _("isisfish.error.region.already.exists")); } - - RegionStorage.create(name); - - } catch (Exception eee) { log.error("Can't create region", eee); showMsgBox("Error " + eee.getMessage()); @@ -497,28 +463,9 @@ */ protected boolean askForSave() { boolean result = true; -// int choice = JOptionPane.showConfirmDialog(null,_("isisfish.message.page.modified")); -// switch (choice) { -// case JOptionPane.YES_OPTION: -// isisContext.commitTransaction(); -// result = true; -// break; -// case JOptionPane.NO_OPTION: -// isisContext.rollbackTransaction(); -// result = true; -// break; -// case JOptionPane.CANCEL_OPTION: -// result = false; -// break; -// } -// if (result == true) { -// // object has been saved or no, we must refresh button -// uiContext.setData("EntityModified", null); -// frame.refreshViewPattern("panel.*?ButtonAction"); -// } -// return result; } + /** * Permet de creer simplement un nouvelle objet portant un nom par defaut. * Le nouvel element est automatiquement selectionné dans l'arbre @@ -561,18 +508,18 @@ public TopiaEntity save(String idToRefresh) { log.debug("save called"); try { - if (selected == null) { - log.warn("Try to save null entity"); - return null; - } - // on est pas en autoUpdate donc il faut faire le update avant le - // commit - selected.update(); + if (selected == null) { + log.warn("Try to save null entity"); + return null; + } + // on est pas en autoUpdate donc il faut faire le update avant le + // commit + selected.update(); - selected.getTopiaContext().commitTransaction(); + selected.getTopiaContext().commitTransaction(); } catch (Exception eee) { - log.error("Can't save region", eee); - showMsgBox("Error " + eee.getMessage()); + log.error("Can't save region", eee); + showMsgBox("Error " + eee.getMessage()); } return selected; } @@ -589,19 +536,15 @@ public Object cancel(String type) { log.debug("cancel called"); try { - isisContext.rollbackTransaction(); + isisContext.rollbackTransaction(); - // reload the object - if (selected != null) { - selected = isisContext.findByTopiaId(selected.getTopiaId()); - } -// uiContext.setData(type, entity); - -// frame.refreshView(type + "Tab"); - + // reload the object + if (selected != null) { + selected = isisContext.findByTopiaId(selected.getTopiaId()); + } } catch (Exception eee) { - log.error("Can't cancel modification in region", eee); - showMsgBox("Error " + eee.getMessage()); + log.error("Can't cancel modification in region", eee); + showMsgBox("Error " + eee.getMessage()); } return null; } @@ -619,43 +562,37 @@ log.debug("remove called"); String msg = ""; try { - - boolean doDelete = true; - List<TopiaEntity> allWillBeRemoved = selected.getComposite(); - if (allWillBeRemoved.size() > 0) { - String text = _( - "isisfish.message.delete.object", - selected.toString()); - for (TopiaEntity e : allWillBeRemoved) { - text += ClassUtils.getShortClassName(e.getClass()) + " - " - + e.toString() + "\n"; - } - int resp = JOptionPane.showConfirmDialog(null, text, - _("isisfish.message.delete.entities"), JOptionPane.YES_NO_OPTION); - doDelete = resp == JOptionPane.YES_OPTION; - } else { - String text = _("isisfish.message.confirm.delete.object", selected.toString()); - int resp = JOptionPane.showConfirmDialog(null, text, - _("isisfish.message.delete.entity"), JOptionPane.YES_NO_OPTION); - doDelete = resp == JOptionPane.YES_OPTION; - } + boolean doDelete = true; + List<TopiaEntity> allWillBeRemoved = selected.getComposite(); + if (allWillBeRemoved.size() > 0) { + String text = _( + "isisfish.message.delete.object", + selected.toString()); + for (TopiaEntity e : allWillBeRemoved) { + text += ClassUtils.getShortClassName(e.getClass()) + " - " + + e.toString() + "\n"; + } + int resp = JOptionPane.showConfirmDialog(null, text, + _("isisfish.message.delete.entities"), JOptionPane.YES_NO_OPTION); + doDelete = resp == JOptionPane.YES_OPTION; + } else { + String text = _("isisfish.message.confirm.delete.object", selected.toString()); + int resp = JOptionPane.showConfirmDialog(null, text, + _("isisfish.message.delete.entity"), JOptionPane.YES_NO_OPTION); + doDelete = resp == JOptionPane.YES_OPTION; + } - if (doDelete) { -// uiContext.setData("RegionModified", Boolean.FALSE); -// uiContext.setData("InDeletion", Boolean.TRUE); - selected.delete(); - isisContext.commitTransaction(); - msg = _("isisfish.message.remove.finished"); - } else { - msg = _("isisfish.message.remove.canceled"); - } + if (doDelete) { + selected.delete(); + isisContext.commitTransaction(); + msg = _("isisfish.message.remove.finished"); + } else { + msg = _("isisfish.message.remove.canceled"); + } } catch (Exception eee) { log.error("Can't remove entity: " + selected, eee); showMsgBox("Error " + eee.getMessage()); } -// finally { - // uiContext.removeData("InDeletion"); -// } return msg; } @@ -678,8 +615,6 @@ .getCategory(), name, eq.getLanguage()); storage.setContent(eq.getContent()); } - - } } catch (Exception eee) { log.error("Can't save equation as model", eee); @@ -874,8 +809,6 @@ targetSpecies.getTargetFactorEquation().setContent(targetFactorEquation); targetSpecies.setPrimaryCatch(primaryCatch); m.addSpeciesTargetSpecies(targetSpecies); - -// frame.refreshView("inputMetierSeasonInfoSpecies"); }catch(Exception eee){ log.error("Can't add TargetSpecies", eee); showMsgBox("Error " + eee.getMessage()); @@ -888,8 +821,6 @@ try { if (targetSpecies != null) { m.removeSpeciesTargetSpecies(targetSpecies); - -// frame.refreshView("inputMetierSeasonInfoSpecies"); } }catch(Exception eee){ log.error("Can't remove TargetSpecies", eee); @@ -903,15 +834,12 @@ public void addEffortDescription(SetOfVessels setOfVessels, Metier metier) { log.debug("addEffortDescription called: " + setOfVessels + " metier: " + metier); try { - EffortDescriptionDAO effortDescriptionPS = IsisFishDAOHelper.getEffortDescriptionDAO(isisContext); EffortDescription effortDescription = effortDescriptionPS.create(); effortDescription.setPossibleMetiers(metier); effortDescription.update(); setOfVessels.addPossibleMetiers(effortDescription); setOfVessels.update(); -// isisContext.commitTransaction(); - }catch(Exception eee){ log.error("Can't create EffortDescription", eee); showMsgBox("Error " + eee.getMessage()); @@ -923,7 +851,6 @@ try { sov.removePossibleMetiers(effort); isisContext.commitTransaction(); - } catch (Exception eee) { log.error("Can't remove entity: " + effort, eee); showMsgBox("Error " + eee.getMessage()); @@ -938,8 +865,6 @@ try { String val = JOptionPane.showInputDialog(_("isisfish.message.recruitment.number.month")); int num = -1; - - if (val != null && !"".equals(val)) { try { num = Integer.parseInt(val); @@ -963,10 +888,7 @@ } population.setRecruitmentDistribution(newMat); population.update(); - } else { -// new OutputView("Error.xml " + "Error " + _("isisfish.error.integer.positif")); } - } catch (Exception eee) { log.error("Can't remove PopulationSeasonInfo", eee); showMsgBox("Error " + eee.getMessage()); Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputNavigationTreeSelectionAdapter.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputNavigationTreeSelectionAdapter.java (rev 0) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputNavigationTreeSelectionAdapter.java 2008-12-02 16:58:11 UTC (rev 1641) @@ -0,0 +1,160 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ + +package fr.ifremer.isisfish.ui.input; + +import java.awt.Component; +import java.lang.reflect.Method; +import javax.swing.JPanel; +import javax.swing.event.TreeSelectionEvent; +import jaxx.runtime.swing.CardLayout2; +import jaxx.runtime.swing.JAXXTree; +import jaxx.runtime.swing.navigation.NavigationTreeModel; +import jaxx.runtime.swing.navigation.NavigationTreeModel.NavigationTreeNode; +import jaxx.runtime.swing.navigation.NavigationTreeSelectionAdapter; +import jaxx.runtime.swing.navigation.NavigationTreeSelectionAdapterWithCardLayout; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +/** + * + * @author letellier + */ +public class InputNavigationTreeSelectionAdapter extends NavigationTreeSelectionAdapterWithCardLayout { + + /** to use log facility, just put in your code: log.info(\"...\"); */ + static private final Log log = LogFactory.getLog(InputNavigationTreeSelectionAdapter.class); + + public InputNavigationTreeSelectionAdapter (InputUI context, boolean register) { + super(InputUI.class, null, context); + + if (context.getNavigation() == null) { + throw new IllegalArgumentException("could not have a null 'navigation' in ui " + context); + } +// Util.checkJAXXContextEntry(context, ContextHelper.NAVIGATION_MODEL_ENTRY_DEF); + if (register) { + // register in tree this listener + context.getNavigation().addTreeSelectionListener(this); + } + } + @Override + protected JPanel getContentContainer() { + return ((InputUI) context).getInputPane(); + } + + @Override + protected CardLayout2 getContentLayout() { + return ((InputUI) context).getCardlayout(); + } + + @Override + protected NavigationTreeModel getNavigationTreeModel() { + return (NavigationTreeModel) ((InputUI) context).getNavigation().getModel(); + } + + @Override + protected void goBackToPreviousNode(TreeSelectionEvent event, Exception e) { + if (e != null) { +// ErrorDialogUI.showError(e); + } + // go back to previous node + returnToPreviousNode(getNavigationTree(), event); + } + + + protected JAXXTree getNavigationTree() { + return ((InputUI) context).getNavigation(); + } + + @Override + public void valueChanged(TreeSelectionEvent event) { + if (event.getOldLeadSelectionPath() != null && event.getOldLeadSelectionPath().equals(event.getPath())) { + // do not treate this if no path changed + return; + } + + try { + + NavigationTreeNode node = prepareNode(event); + + String path = node.getContextPath(); + + if (log.isTraceEnabled()) { + log.trace(path); + } + + Component newUI = getNewUI(path); + Component component = getCurrentUI(); + + if (newUI != null && newUI.equals(component)) { + // call back from goto back to previous node, do nothing + return; + } + + if (!closeUI(event, component)) { + // previous ui was not closed, so reselect the previous node in navigation + goBackToPreviousNode(event, null); + // and quit + return; + } + + // now, we are free to open the ui associated with the selected node in navigation + + // before all, attach bean in context associated with the selected node in naivgation tree + Object data = getNavigationTreeModel().getJAXXContextValue(context, path); + + if (log.isDebugEnabled()) { + log.debug("find data for contextPath <" + path + "> : " + (data == null ? null : data.getClass())); + } + + context.removeContextValue(Object.class,NAVIGATION_SELECTED_BEAN); + InputUI inputUI = ((InputUI)context); + InputAction action = inputUI.getContextValue(InputAction.class); + if (data != null) { + action.setValue(data); + // context.setContextValue(data, NAVIGATION_SELECTED_BEAN); + //todo should we not use this to avoid conflict in context ? + // context.setContextValue(data); + } + + + if (newUI == null) { + // instanciate a new ui associated with the selected node + newUI = createUI(node); + + } + + ((jaxx.runtime.JAXXObject)newUI).setContextValue(action); + // save in context current node context path + context.setContextValue(node.getContextPath(), NAVIGATION_CONTEXT_PATH); + + // save in context current node + context.setContextValue(node, NAVIGATION_SELECTED_NODE); + + // really open the ui associated with the selected node + openUI(newUI, node); + + } catch (Exception e) { + // remove data from context + System.out.println(e.getMessage()); + // if any error, go back to previvous node + goBackToPreviousNode(event, e); + } + } + + @Override + protected void openUI(Component newUI, NavigationTreeNode node) throws Exception { + CardLayout2 layout = getContentLayout(); + JPanel container = getContentContainer(); + // switch layout + layout.show(container, node.getContextPath()); + log.info(((jaxx.runtime.JAXXObject)newUI).getContextValue(InputAction.class)); + Method m = newUI.getClass().getMethod("refresh"); + m.invoke(newUI); + + } + + +} Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputUI.jaxx 2008-11-28 17:17:20 UTC (rev 1640) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputUI.jaxx 2008-12-02 16:58:11 UTC (rev 1641) @@ -31,6 +31,11 @@ */ --> <JPanel id="input" visible="true" size='{new Dimension(700,500)}' layout='{new BorderLayout()}' location='{new Point(0,139)}'> + + <javax.swing.tree.DefaultTreeSelectionModel id='navigationSelectionModel' selectionMode='{javax.swing.tree.TreeSelectionModel.SINGLE_TREE_SELECTION}'/> + + <jaxx.runtime.swing.CardLayout2 id='cardlayout'/> + <script><![CDATA[ import fr.ifremer.isisfish.ui.Common; import fr.ifremer.isisfish.ui.widget.editor.GenericCell; @@ -56,8 +61,15 @@ import javax.swing.tree.TreePath; import org.codelutin.topia.persistence.TopiaEntity; import org.codelutin.topia.TopiaException; + import fr.ifremer.isisfish.IsisFishEntityEnum; + import jaxx.runtime.JAXXContextEntryDef; + import jaxx.runtime.swing.navigation.NavigationTreeModel.NavigationTreeNode; + import jaxx.runtime.swing.navigation.NavigationTreeModelBuilder; + import fr.ifremer.isisfish.entities.FisheryRegion; + import jaxx.runtime.swing.navigation.NavigationTreeCellRenderer; + import jaxx.runtime.swing.navigation.NavigationTreeModel; - tree.addTreeSelectionListener(new TreeSelectionListener() { +/* tree.addTreeSelectionListener(new TreeSelectionListener() { @Override public void valueChanged(TreeSelectionEvent e) { DefaultMutableTreeNode node = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent(); @@ -75,34 +87,10 @@ ((CardLayout) inputPane.getLayout()).show(inputPane, name); } } - }); - protected void refreshAll(GenericCell selectedValue){ - if (selectedValue.getType() == Zone.class){ - zoneUI.refresh(); - } else if (selectedValue.getType() == Cell.class){ - cellUI.refresh(); - } else if (selectedValue.getType() == Port.class){ - portUI.refresh(); - } else if (selectedValue.getType() == Species.class){ - speciesUI.refresh(); - } else if (selectedValue.getType() == Population.class){ - populationUI.refresh(); - } else if (selectedValue.getType() == Gear.class){ - gearUI.refresh(); - } else if (selectedValue.getType() == Metier.class){ - metierUI.refresh(); - } else if (selectedValue.getType() == TripType.class){ - tripTypeUI.refresh(); - } else if (selectedValue.getType() == VesselType.class){ - vesselTypeUI.refresh(); - } else if (selectedValue.getType() == SetOfVessels.class){ - setOfVesselsUI.refresh(); - } else if (selectedValue.getType() == Strategy.class){ - strategyUI.refresh(); - } - } + });*/ + public InputUI (InputAction action){ - delegateContext = new jaxx.runtime.DefaultJAXXContext(this); + setContextValue(action); } protected DefaultComboBoxModel getFieldCurrentRegionModel(){ @@ -115,7 +103,7 @@ setInfoText(_("isisfish.message.load.finished")); setTreeModel(); } - protected void setTreeModel(){ +/* protected void setTreeModel(){ tree.setModel(getTreeModel()); } protected DefaultTreeModel getTreeModel(){ @@ -234,7 +222,62 @@ } } return result; + } */ + protected void setTreeModel(){ + + String regionName = getContextValue(InputAction.class).getFisheryRegionName(); + if (regionName != null){ + try { + NavigationTreeModelBuilder builder = new NavigationTreeModelBuilder("/"); + FisheryRegion fisheryRegion = getContextValue(InputAction.class).getFisheryRegion(); + setContextValue(fisheryRegion); + NavigationTreeNode root = builder.build(null, regionName, JAXXContextEntryDef.newDef(FisheryRegion.class), "$root", null, null); + NavigationTreeNode cells = builder.build(root, "Cells", "../cell", "$cells", CellUI.class, null); + NavigationTreeNode zones = builder.build(root, "Zones", "../zone", "$zones", ZoneUI.class, null); + NavigationTreeNode ports = builder.build(root, "Ports", "../port", "$ports", PortUI.class, null); + NavigationTreeNode species = builder.build(root, "Species", "../species", "$species", SpeciesUI.class, null); + NavigationTreeNode gears = builder.build(root, "Gears", "../gear", "$gears", GearUI.class, null); + NavigationTreeNode metiers = builder.build(root, "Metiers", "../metier", "$metiers", MetierUI.class, null); + NavigationTreeNode tripTypes = builder.build(root, "TripTypes", "../tripType", "$tripTypes", TripTypeUI.class, null); + NavigationTreeNode vesselTypes = builder.build(root, "VesselTypes", "../vesselType", "$vesselTypes", VesselTypeUI.class, null); + NavigationTreeNode setOfVessels = builder.build(root, "SetOfVessels", "../setOfVessels", "$setOfVessels", SetOfVesselsUI.class, null); + NavigationTreeNode strategies = builder.build(root, "Strategies", "../strategy", "$strategies", StrategyUI.class, null); + + setNode(builder, cells, fisheryRegion.getCell().toArray(), CellUI.class); + setNode(builder, zones, fisheryRegion.getZone().toArray(), ZoneUI.class); + setNode(builder, ports, fisheryRegion.getPort().toArray(), PortUI.class); + setNode(builder, gears, fisheryRegion.getGear().toArray(), GearUI.class); + setNode(builder, metiers, fisheryRegion.getMetier().toArray(), MetierUI.class); + setNode(builder, tripTypes, fisheryRegion.getTripType().toArray(), TripTypeUI.class); + setNode(builder, vesselTypes, fisheryRegion.getVesselType().toArray(), VesselTypeUI.class); + setNode(builder, setOfVessels, fisheryRegion.getSetOfVessels().toArray(), SetOfVesselsUI.class); + setNode(builder, strategies, fisheryRegion.getStrategy().toArray(), StrategyUI.class); + + for (Species specie : fisheryRegion.getSpecies()){ + TopiaEntity topiaEntity = (TopiaEntity)specie; + NavigationTreeNode speciesChild = builder.build(species, specie.toString() , "..[@topiaId=\"" + topiaEntity.getTopiaId() + "\"]", topiaEntity.getTopiaId(), SpeciesUI.class, null); + NavigationTreeNode populations = builder.build(speciesChild, "Population", "../population", "$population", PopulationUI.class, null); + setNode(builder, populations, specie.getPopulation().toArray(), PopulationUI.class); + } + + navigation.setSelectionModel(navigationSelectionModel); + navigation.setCellRenderer(new NavigationTreeCellRenderer(this)); + NavigationTreeModel model = new jaxx.runtime.swing.navigation.NavigationTreeModel(root, "/"); + navigation.setModel(model); + new InputNavigationTreeSelectionAdapter(this, true); + } catch (Exception ex) { + Logger.getLogger(InputUI.class.getName()).log(Level.SEVERE, null, ex); + } + } } + protected void setNode(NavigationTreeModelBuilder builder, NavigationTreeNode parent, Object[] values, Class ui){ + for (Object o : values){ + TopiaEntity topiaEntity = (TopiaEntity)o; + builder.build(parent, o.toString() , "..[@topiaId=\"" + topiaEntity.getTopiaId() + "\"]", topiaEntity.getTopiaId(), ui, null); + } + } + protected void setTreeSelection(TopiaEntity topia, Class type){ + } protected void setInfoText(String s){ WelcomePanelUI root = getParentContainer(WelcomePanelUI.class); root.setInfoText(s); @@ -328,12 +371,13 @@ </Table> <JPanel id="treePanel" name="treePanel" layout='{new BorderLayout()}'> <JScrollPane constraints='BorderLayout.CENTER'> - <JTree id="tree" name="tree" model='{getTreeModel()}'/> + <!--JTree id="tree" name="tree" model='{getTreeModel()}'/--> + <JTree id="navigation" rootVisible="true" selectionRow='0' model='{new DefaultTreeModel(null)}'/> </JScrollPane> </JPanel> </JPanel> - <JPanel id="inputPane" layout='{new CardLayout()}'> - <JLabel horizontalAlignment="0" text="isisfish.input.selectNodeTree" constraints='"none"'/> + <JPanel id="inputPane" layout='{cardlayout}'> + <!--JLabel id='none' horizontalAlignment="0" text="isisfish.input.selectNodeTree" constraints='"none"'/> <CellUI id='cellUI' constraints='"Cell"' constructorParams='getContextValue(InputAction.class)'/> <ZoneUI id='zoneUI' constraints='"Zone"' constructorParams='getContextValue(InputAction.class)'/> <PortUI id='portUI' constraints='"Port"' constructorParams='getContextValue(InputAction.class)'/> @@ -344,7 +388,7 @@ <TripTypeUI id='tripTypeUI' constraints='"TripType"' constructorParams='getContextValue(InputAction.class)'/> <VesselTypeUI id='vesselTypeUI' constraints='"VesselType"' constructorParams='getContextValue(InputAction.class)'/> <SetOfVesselsUI id='setOfVesselsUI' constraints='"SetOfVessels"' constructorParams='getContextValue(InputAction.class)'/> - <StrategyUI id='strategyUI' constraints='"Strategy"' constructorParams='getContextValue(InputAction.class)'/> + <StrategyUI id='strategyUI' constraints='"Strategy"' constructorParams='getContextValue(InputAction.class)'/--> </JPanel> </JSplitPane> </JPanel> \ No newline at end of file Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/MetierSeasonInfoSpeciesUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/MetierSeasonInfoSpeciesUI.jaxx 2008-11-28 17:17:20 UTC (rev 1640) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/MetierSeasonInfoSpeciesUI.jaxx 2008-12-02 16:58:11 UTC (rev 1641) @@ -51,27 +51,30 @@ boolean changed = false; public MetierSeasonInfoSpeciesUI (InputAction action){ - delegateContext = new jaxx.runtime.DefaultJAXXContext(this); + setContextValue(action); } protected void refresh() { - if (fieldMetierSeasonInfo.getSelectedIndex() <= 0){ - setSeasonModel(); - } - else { - setTableTargetSpeciesModel(); - } - if (fieldTargetSpecies.getSelectedIndex() <= 0){ - setTargetSpeciesModel(); - } - if (fieldTargetFactorEquation.getSelectedIndex() <= 0){ - setTargetFactorEquationModel(); - } - try { - fieldTargetFactorScript.open(org.codelutin.util.FileUtil.getTempFile("", ".java")); - } catch (IOException ex) { - Logger.getLogger(SelectivityUI.class.getName()).log(Level.SEVERE, null, ex); - } + if (getContextValue(InputAction.class).getMetier() != null){ + if (fieldMetierSeasonInfo.getSelectedIndex() <= 0){ + setSeasonModel(); + } + else { + setTableTargetSpeciesModel(); + } + if (fieldTargetSpecies.getSelectedIndex() <= 0){ + setTargetSpeciesModel(); + } + if (fieldTargetFactorEquation.getSelectedIndex() <= 0){ + setTargetFactorEquationModel(); + } + try { + fieldTargetFactorScript.open(org.codelutin.util.FileUtil.getTempFile("", ".java")); + } catch (IOException ex) { + Logger.getLogger(SelectivityUI.class.getName()).log(Level.SEVERE, null, ex); + } + + } } protected void setSeasonModel(){ Metier metier = getContextValue(InputAction.class).getMetier(); Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/MetierSeasonInfoZoneUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/MetierSeasonInfoZoneUI.jaxx 2008-11-28 17:17:20 UTC (rev 1640) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/MetierSeasonInfoZoneUI.jaxx 2008-12-02 16:58:11 UTC (rev 1641) @@ -48,7 +48,7 @@ protected IntervalPanel ip = new IntervalPanel(); displayMetierSeason.add(ip, BorderLayout.CENTER); public MetierSeasonInfoZoneUI (InputAction action){ - delegateContext = new jaxx.runtime.DefaultJAXXContext(this); + setContextValue(action); } protected void refresh(boolean seasonInit) { Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/MetierTabUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/MetierTabUI.jaxx 2008-11-28 17:17:20 UTC (rev 1640) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/MetierTabUI.jaxx 2008-12-02 16:58:11 UTC (rev 1641) @@ -45,7 +45,7 @@ protected boolean changed = false; public MetierTabUI (InputAction action){ - delegateContext = new jaxx.runtime.DefaultJAXXContext(this); + setContextValue(action); } protected void refresh() { Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/MetierUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/MetierUI.jaxx 2008-11-28 17:17:20 UTC (rev 1640) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/MetierUI.jaxx 2008-12-02 16:58:11 UTC (rev 1641) @@ -38,7 +38,7 @@ <script><![CDATA[ import fr.ifremer.isisfish.entities.TripType; public MetierUI (InputAction action){ - delegateContext = new jaxx.runtime.DefaultJAXXContext(this); + setContextValue(action); } protected void refresh() { Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationBasicsUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationBasicsUI.jaxx 2008-11-28 17:17:20 UTC (rev 1640) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationBasicsUI.jaxx 2008-12-02 16:58:11 UTC (rev 1641) @@ -48,7 +48,7 @@ boolean changed = false; protected Population pop = null; public PopulationBasicsUI (InputAction action){ - delegateContext = new jaxx.runtime.DefaultJAXXContext(this); + setContextValue(action); } public void refresh(){ Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationCapturabilityUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationCapturabilityUI.jaxx 2008-11-28 17:17:20 UTC (rev 1640) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationCapturabilityUI.jaxx 2008-12-02 16:58:11 UTC (rev 1641) @@ -43,7 +43,7 @@ protected Population pop = null; protected boolean changed = false; public PopulationCapturabilityUI (InputAction action){ - delegateContext = new jaxx.runtime.DefaultJAXXContext(this); + setContextValue(action); } public void refresh(){ Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationEquationUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationEquationUI.jaxx 2008-11-28 17:17:20 UTC (rev 1640) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationEquationUI.jaxx 2008-12-02 16:58:11 UTC (rev 1641) @@ -41,7 +41,7 @@ protected Population pop = null; boolean changed = false; public PopulationEquationUI (InputAction action){ - delegateContext = new jaxx.runtime.DefaultJAXXContext(this); + setContextValue(action); } public void refresh(){ Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationGroupUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationGroupUI.jaxx 2008-11-28 17:17:20 UTC (rev 1640) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationGroupUI.jaxx 2008-12-02 16:58:11 UTC (rev 1641) @@ -46,7 +46,7 @@ protected Population pop = null; protected PopulationGroup populationGroup = null; public PopulationGroupUI (InputAction action){ - delegateContext = new jaxx.runtime.DefaultJAXXContext(this); + setContextValue(action); } public void refresh(){ Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationEmigrationUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationEmigrationUI.jaxx 2008-11-28 17:17:20 UTC (rev 1640) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationEmigrationUI.jaxx 2008-12-02 16:58:11 UTC (rev 1641) @@ -53,7 +53,7 @@ protected PopulationSeasonInfo popInfo = null; public PopulationMigrationEmigrationUI (InputAction action){ - delegateContext = new jaxx.runtime.DefaultJAXXContext(this); + setContextValue(action); } public void refresh(PopulationSeasonInfo pi){ Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationEquationUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationEquationUI.jaxx 2008-11-28 17:17:20 UTC (rev 1640) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationEquationUI.jaxx 2008-12-02 16:58:11 UTC (rev 1641) @@ -39,7 +39,7 @@ protected Population pop = null; public PopulationMigrationEquationUI (InputAction action){ - delegateContext = new jaxx.runtime.DefaultJAXXContext(this); + setContextValue(action); } public void refresh(PopulationSeasonInfo popInfo){ Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationImmigrationUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationImmigrationUI.jaxx 2008-11-28 17:17:20 UTC (rev 1640) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationImmigrationUI.jaxx 2008-12-02 16:58:11 UTC (rev 1641) @@ -49,7 +49,7 @@ protected PopulationSeasonInfo popInfo = null; protected Population pop = null; public PopulationMigrationImmigrationUI (InputAction action){ - delegateContext = new jaxx.runtime.DefaultJAXXContext(this); + setContextValue(action); } public void refresh(PopulationSeasonInfo pi){ Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationMigrationUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationMigrationUI.jaxx 2008-11-28 17:17:20 UTC (rev 1640) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationMigrationUI.jaxx 2008-12-02 16:58:11 UTC (rev 1641) @@ -48,7 +48,7 @@ protected PopulationSeasonInfo popInfo = null; protected Population pop = null; public PopulationMigrationMigrationUI (InputAction action){ - delegateContext = new jaxx.runtime.DefaultJAXXContext(this); + setContextValue(action); } public void refresh(PopulationSeasonInfo pi){ Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationUI.jaxx 2008-11-28 17:17:20 UTC (rev 1640) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationUI.jaxx 2008-12-02 16:58:11 UTC (rev 1641) @@ -46,7 +46,7 @@ protected boolean changed; // protected PopulationSeasonInfo populationSeasonInfoSelected = null; public PopulationMigrationUI (InputAction action){ - delegateContext = new jaxx.runtime.DefaultJAXXContext(this); + setContextValue(action); } public void refresh(){ Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationOneEquationUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationOneEquationUI.jaxx 2008-11-28 17:17:20 UTC (rev 1640) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationOneEquationUI.jaxx 2008-12-02 16:58:11 UTC (rev 1641) @@ -46,7 +46,7 @@ protected Class clazz = null; protected String nameEquation = null; public PopulationOneEquationUI (InputAction action){ - delegateContext = new jaxx.runtime.DefaultJAXXContext(this); + setContextValue(action); } public void refresh(String lblText, Formule f, String name, Class c){ Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationRecruitmentUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationRecruitmentUI.jaxx 2008-11-28 17:17:20 UTC (rev 1640) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationRecruitmentUI.jaxx 2008-12-02 16:58:11 UTC (rev 1641) @@ -45,7 +45,7 @@ protected Population pop = null; protected boolean changed = false; public PopulationRecruitmentUI (InputAction action){ - delegateContext = new jaxx.runtime.DefaultJAXXContext(this); + setContextValue(action); } public void refresh(){ Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationSeasonsUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationSeasonsUI.jaxx 2008-11-28 17:17:20 UTC (rev 1640) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationSeasonsUI.jaxx 2008-12-02 16:58:11 UTC (rev 1641) @@ -48,7 +48,7 @@ protected IntervalPanel ip = new IntervalPanel(); fieldPopulationSeasonInterval.add(ip, BorderLayout.CENTER); public PopulationSeasonsUI (InputAction action){ - delegateContext = new jaxx.runtime.DefaultJAXXContext(this); + setContextValue(action); } public void refresh(){ Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationUI.jaxx 2008-11-28 17:17:20 UTC (rev 1640) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationUI.jaxx 2008-12-02 16:58:11 UTC (rev 1641) @@ -41,18 +41,20 @@ import fr.ifremer.isisfish.entities.Gear; public PopulationUI (InputAction action){ - delegateContext = new jaxx.runtime.DefaultJAXXContext(this); + setContextValue(action); } public void refresh(){ - populationBasicsUI.refresh(); - populationGroupUI.refresh(); - populationEquationUI.refresh(); - populationZoneUI.refresh(); - populationSeasonsUI.refresh(); - populationCapturabilityUI.refresh(); - populationRecruitementUI.refresh(); - populationMigrationUI.refresh(); + if (getContextValue(InputAction.class).getPopulation() != null){ + populationBasicsUI.refresh(); + populationGroupUI.refresh(); + populationEquationUI.refresh(); + populationZoneUI.refresh(); + populationSeasonsUI.refresh(); + populationCapturabilityUI.refresh(); + populationRecruitementUI.refresh(); + populationMigrationUI.refresh(); + } } protected void goToGear(){ getParentContainer(InputUI.class).setTreeSelection(null, Gear.class); Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationZonesUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationZonesUI.jaxx 2008-11-28 17:17:20 UTC (rev 1640) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationZonesUI.jaxx 2008-12-02 16:58:11 UTC (rev 1641) @@ -46,7 +46,7 @@ protected boolean changed = false; protected Population pop = null; public PopulationZonesUI (InputAction action){ - delegateContext = new jaxx.runtime.DefaultJAXXContext(this); + setContextValue(action); } public void refresh(){ Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PortUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PortUI.jaxx 2008-11-28 17:17:20 UTC (rev 1640) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PortUI.jaxx 2008-12-02 16:58:11 UTC (rev 1641) @@ -53,7 +53,7 @@ protected OMToolSet toolSet = new OMToolSet(); protected boolean changed = false; public PortUI (InputAction action){ - delegateContext = new jaxx.runtime.DefaultJAXXContext(this); + setContextValue(action); } protected void refresh() { Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/SelectivityUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/SelectivityUI.jaxx 2008-11-28 17:17:20 UTC (rev 1640) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/SelectivityUI.jaxx 2008-12-02 16:58:11 UTC (rev 1641) @@ -50,15 +50,15 @@ boolean changed = false; public SelectivityUI (InputAction action){ - delegateContext = new jaxx.runtime.DefaultJAXXContext(this); + setContextValue(action); } public void refresh(){ - if (getContextValue(InputAction.class).getSelected() != null){ + if (getContextValue(InputAction.class).getGear() != null){ fieldSelectivityPopulation.setModel(getSelectivityPopulationModel()); + fieldSelectivityEquation.setModel(getSelectivityEquationModel()); + setSelectivityTableModel(); } - fieldSelectivityEquation.setModel(getSelectivityEquationModel()); - setSelectivityTableModel(); try { fieldSelectivityScript.open(org.codelutin.util.FileUtil.getTempFile("", ".java")); } catch (IOException ex) { Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/SetOfVesselsTabsUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/SetOfVesselsTabsUI.jaxx 2008-11-28 17:17:20 UTC (rev 1640) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/SetOfVesselsTabsUI.jaxx 2008-12-02 16:58:11 UTC (rev 1641) @@ -47,7 +47,7 @@ protected boolean changed = false; public SetOfVesselsTabsUI (InputAction action){ - delegateContext = new jaxx.runtime.DefaultJAXXContext(this); + setContextValue(action); } protected void refresh() { Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/SetOfVesselsUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/SetOfVesselsUI.jaxx 2008-11-28 17:17:20 UTC (rev 1640) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/SetOfVesselsUI.jaxx 2008-12-02 16:58:11 UTC (rev 1641) @@ -39,7 +39,7 @@ <script><![CDATA[ import fr.ifremer.isisfish.entities.Strategy; public SetOfVesselsUI (InputAction action){ - delegateContext = new jaxx.runtime.DefaultJAXXContext(this); + setContextValue(action); } protected void refresh() { Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/SpeciesUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/SpeciesUI.jaxx 2008-11-28 17:17:20 UTC (rev 1640) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/SpeciesUI.jaxx 2008-12-02 16:58:11 UTC (rev 1641) @@ -45,7 +45,7 @@ protected boolean changed = false; public SpeciesUI (InputAction action){ - delegateContext = new jaxx.runtime.DefaultJAXXContext(this); + setContextValue(action); } protected void refresh() { Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/StrategyMonthInfoUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/StrategyMonthInfoUI.jaxx 2008-11-28 17:17:20 UTC (rev 1640) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/StrategyMonthInfoUI.jaxx 2008-12-02 16:58:11 UTC (rev 1641) @@ -40,7 +40,7 @@ protected boolean changed = false; public StrategyMonthInfoUI (InputAction action){ - delegateContext = new jaxx.runtime.DefaultJAXXContext(this); + setContextValue(action); } protected void refresh() { Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/StrategyOneMonthInfoUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/StrategyOneMonthInfoUI.jaxx 2008-11-28 17:17:20 UTC (rev 1640) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/StrategyOneMonthInfoUI.jaxx 2008-12-02 16:58:11 UTC (rev 1641) @@ -43,7 +43,7 @@ protected StrategyMonthInfo strategyMonthInfo = null; protected boolean changed = false; public StrategyOneMonthInfoUI (InputAction action){ - delegateContext = new jaxx.runtime.DefaultJAXXContext(this); + setContextValue(action); } protected void refresh(Month m) { Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/StrategyTabUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/StrategyTabUI.jaxx 2008-11-28 17:17:20 UTC (rev 1640) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/StrategyTabUI.jaxx 2008-12-02 16:58:11 UTC (rev 1641) @@ -45,7 +45,7 @@ boolean changed = false; public StrategyTabUI (InputAction action){ - delegateContext = new jaxx.runtime.DefaultJAXXContext(this); + setContextValue(action); } protected void refresh() { Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/StrategyUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/StrategyUI.jaxx 2008-11-28 17:17:20 UTC (rev 1640) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/StrategyUI.jaxx 2008-12-02 16:58:11 UTC (rev 1641) @@ -37,7 +37,7 @@ <JTabbedPane id="StrategyTab" name="Strategy" > <script><![CDATA[ public StrategyUI (InputAction action){ - delegateContext = new jaxx.runtime.DefaultJAXXContext(this); + setContextValue(action); } protected void refresh() { Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/TripTypeUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/TripTypeUI.jaxx 2008-11-28 17:17:20 UTC (rev 1640) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/TripTypeUI.jaxx 2008-12-02 16:58:11 UTC (rev 1641) @@ -43,7 +43,7 @@ boolean changed = false; public TripTypeUI (InputAction action){ - delegateContext = new jaxx.runtime.DefaultJAXXContext(this); + setContextValue(action); } protected void refresh() { Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/VesselTypeUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/VesselTypeUI.jaxx 2008-11-28 17:17:20 UTC (rev 1640) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/VesselTypeUI.jaxx 2008-12-02 16:58:11 UTC (rev 1641) @@ -42,7 +42,7 @@ boolean changed = false; public VesselTypeUI (InputAction action){ - delegateContext = new jaxx.runtime.DefaultJAXXContext(this); + setContextValue(action); } protected void refresh() { Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/WizardGroupCreationUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/WizardGroupCreationUI.jaxx 2008-11-28 17:17:20 UTC (rev 1640) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/WizardGroupCreationUI.jaxx 2008-12-02 16:58:11 UTC (rev 1641) @@ -58,7 +58,7 @@ protected PopulationBasicsUI popBasic; public WizardGroupCreationUI(InputAction action, PopulationBasicsUI p){ - delegateContext = new jaxx.runtime.DefaultJAXXContext(this); + setContextValue(action); popBasic = p; } Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/ZoneUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/ZoneUI.jaxx 2008-11-28 17:17:20 UTC (rev 1640) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/ZoneUI.jaxx 2008-12-02 16:58:11 UTC (rev 1641) @@ -54,7 +54,7 @@ protected OMToolSet toolSet = new OMToolSet(); protected boolean changed = false; public ZoneUI (InputAction action){ - delegateContext = new jaxx.runtime.DefaultJAXXContext(this); + setContextValue(action); this.addFocusListener(new FocusListener() { Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/DataResultUIJAXX.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/DataResultUIJAXX.jaxx 2008-11-28 17:17:20 UTC (rev 1640) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/DataResultUIJAXX.jaxx 2008-12-02 16:58:11 UTC (rev 1641) @@ -34,7 +34,7 @@ <script> <![CDATA[ public DataResultUIJAXX (ResultAction action){ - delegateContext = new jaxx.runtime.DefaultJAXXContext(this); + setContextValue(action); } ]]> Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/GraphBeanUIJAXX.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/GraphBeanUIJAXX.jaxx 2008-11-28 17:17:20 UTC (rev 1640) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/GraphBeanUIJAXX.jaxx 2008-12-02 16:58:11 UTC (rev 1641) @@ -43,7 +43,7 @@ init(); public GraphBeanUIJAXX (ResultAction action){ - delegateContext = new jaxx.runtime.DefaultJAXXContext(this); + setContextValue(action); } protected void init(){ Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/ResultEditUIJAXX.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/ResultEditUIJAXX.jaxx 2008-11-28 17:17:20 UTC (rev 1640) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/ResultEditUIJAXX.jaxx 2008-12-02 16:58:11 UTC (rev 1641) @@ -34,7 +34,7 @@ <script> <![CDATA[ public ResultEditUIJAXX (ResultAction action){ - delegateContext = new jaxx.runtime.DefaultJAXXContext(this); + setContextValue(action); } protected String getFrameName(){ Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/ResultUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/ResultUI.jaxx 2008-11-28 17:17:20 UTC (rev 1640) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/ResultUI.jaxx 2008-12-02 16:58:11 UTC (rev 1641) @@ -35,7 +35,7 @@ <![CDATA[ import fr.ifremer.isisfish.ui.Common; public ResultUI (ResultAction action){ - delegateContext = new jaxx.runtime.DefaultJAXXContext(this); + setContextValue(action); } protected void open(){ Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/ResumePanelUIJAXX.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/ResumePanelUIJAXX.jaxx 2008-11-28 17:17:20 UTC (rev 1640) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/ResumePanelUIJAXX.jaxx 2008-12-02 16:58:11 UTC (rev 1641) @@ -34,7 +34,7 @@ <script> <![CDATA[ public ResumePanelUIJAXX (ResultAction action){ - delegateContext = new jaxx.runtime.DefaultJAXXContext(this); + setContextValue(action); } ]]> Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/SimpleResultatMapBeanUIJAXX.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/SimpleResultatMapBeanUIJAXX.jaxx 2008-11-28 17:17:20 UTC (rev 1640) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/result/SimpleResultatMapBeanUIJAXX.jaxx 2008-12-02 16:58:11 UTC (rev 1641) @@ -38,7 +38,7 @@ import com.bbn.openmap.gui.ToolPanel; init(); public SimpleResultatMapBeanUIJAXX (ResultAction action){ - delegateContext = new jaxx.runtime.DefaultJAXXContext(this); + setContextValue(action); } protected void init(){ Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/script/ScriptAction.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/script/ScriptAction.java 2008-11-28 17:17:20 UTC (rev 1640) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/script/ScriptAction.java 2008-12-02 16:58:11 UTC (rev 1641) @@ -56,7 +56,7 @@ static private Log log = getLog(ScriptAction.class); File fileOpen= null; public ScriptAction(){ - + } protected void showMsgBox(String txt){ if (txt != null){ @@ -486,30 +486,6 @@ log.debug("commitScript called"); // TODO a refaire throw new UnsupportedOperationException("En reparation"); -// ScriptMapping mapping = guessMapping(tree); -// if (mapping == null) return null; -// try { -// long oldTilestamp = script.getFile().lastModified(); -// // save script before commit -// script.setContent(content); -// -// String diff; -// VCSFileState state = VCSFileStateManager.getState(oldTilestamp,script.getFile()); -// boolean canDiff = state.getState().authorizeAction(VCSAction.DIFF); -// if (canDiff) { -// diff = script.diff(); -// } else { -// diff = _("isisfish.message.no.diff" , script.getFile(),state.getState().libelle() ); -// } -// -// frame.setInfoText(_("isisfish.message.diff.finished" , state.getState().libelle() )); -// uiContext.setData(ACTION_LOG, diff); -// frame.refreshView("actionLogArea"); -// -// } catch (Exception eee) { -// return returnError(_("isisfish.error.script.diff",script==null?null:script.getFile(), eee.getMessage()),eee); -// } -// return null; } /** enum to encapsulate a script module */ Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/AdvancedParamsUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/AdvancedParamsUI.jaxx 2008-11-28 17:17:20 UTC (rev 1640) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/AdvancedParamsUI.jaxx 2008-12-02 16:58:11 UTC (rev 1641) @@ -36,24 +36,28 @@ import javax.swing.table.DefaultTableModel; import java.util.Map.Entry; - fieldSimulationStatistique.setSelected(getContextValue(SimulAction.class).getSimulationParameter().getUseStatistic()); - fieldSimulationCache.setSelected(getContextValue(SimulAction.class).getSimulationParameter().getUseOptimization()); - fieldSimulAdvParamsSimulLoggerError.setSelected(getContextValue(SimulAction.class).getSimulationParameter().isSimulErrorLevel()); - fieldSimulAdvParamsSimulLoggerWarn.setSelected(getContextValue(SimulAction.class).getSimulationParameter().isSimulWarnLevel()); - fieldSimulAdvParamsSimulLoggerInfo.setSelected(getContextValue(SimulAction.class).getSimulationParameter().isSimulInfoLevel()); - fieldSimulAdvParamsSimulLoggerDebug.setSelected(getContextValue(SimulAction.class).getSimulationParameter().isSimulDebugLevel()); - fieldSimulAdvParamsScriptLoggerError.setSelected(getContextValue(SimulAction.class).getSimulationParameter().isScriptErrorLevel()); - fieldSimulAdvParamsScriptLoggerWarn.setSelected(getContextValue(SimulAction.class).getSimulationParameter().isScriptWarnLevel()); - fieldSimulAdvParamsScriptLoggerInfo.setSelected(getContextValue(SimulAction.class).getSimulationParameter().isScriptInfoLevel()); - fieldSimulAdvParamsScriptLoggerDebug.setSelected(getContextValue(SimulAction.class).getSimulationParameter().isScriptDebugLevel()); - fieldSimulAdvParamsLibLoggerError.setSelected(getContextValue(SimulAction.class).getSimulationParameter().isLibErrorLevel()); - fieldSimulAdvParamsLibLoggerWarn.setSelected(getContextValue(SimulAction.class).getSimulationParameter().isLibWarnLevel()); - fieldSimulAdvParamsLibLoggerInfo.setSelected(getContextValue(SimulAction.class).getSimulationParameter().isLibErrorLevel()); - fieldSimulAdvParamsLibLoggerDebug.setSelected(getContextValue(SimulAction.class).getSimulationParameter().isLibDebugLevel()); - setTableTagValue(); + refresh(); + public void refresh(){ + fieldSimulationStatistique.setSelected(getContextValue(SimulAction.class).getSimulationParameter().getUseStatistic()); + fieldSimulationCache.setSelected(getContextValue(SimulAction.class).getSimulationParameter().getUseOptimization()); + fieldSimulAdvParamsSimulLoggerError.setSelected(getContextValue(SimulAction.class).getSimulationParameter().isSimulErrorLevel()); + fieldSimulAdvParamsSimulLoggerWarn.setSelected(getContextValue(SimulAction.class).getSimulationParameter().isSimulWarnLevel()); + fieldSimulAdvParamsSimulLoggerInfo.setSelected(getContextValue(SimulAction.class).getSimulationParameter().isSimulInfoLevel()); + fieldSimulAdvParamsSimulLoggerDebug.setSelected(getContextValue(SimulAction.class).getSimulationParameter().isSimulDebugLevel()); + fieldSimulAdvParamsScriptLoggerError.setSelected(getContextValue(SimulAction.class).getSimulationParameter().isScriptErrorLevel()); + fieldSimulAdvParamsScriptLoggerWarn.setSelected(getContextValue(SimulAction.class).getSimulationParameter().isScriptWarnLevel()); + fieldSimulAdvParamsScriptLoggerInfo.setSelected(getContextValue(SimulAction.class).getSimulationParameter().isScriptInfoLevel()); + fieldSimulAdvParamsScriptLoggerDebug.setSelected(getContextValue(SimulAction.class).getSimulationParameter().isScriptDebugLevel()); + fieldSimulAdvParamsLibLoggerError.setSelected(getContextValue(SimulAction.class).getSimulationParameter().isLibErrorLevel()); + fieldSimulAdvParamsLibLoggerWarn.setSelected(getContextValue(SimulAction.class).getSimulationParameter().isLibWarnLevel()); + fieldSimulAdvParamsLibLoggerInfo.setSelected(getContextValue(SimulAction.class).getSimulationParameter().isLibErrorLevel()); + fieldSimulAdvParamsLibLoggerDebug.setSelected(getContextValue(SimulAction.class).getSimulationParameter().isLibDebugLevel()); + setTableTagValue(); + } + public AdvancedParamsUI (SimulAction action){ - delegateContext = new jaxx.runtime.DefaultJAXXContext(this); + setContextValue(action); } protected void addTagValue(){ Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ExportUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ExportUI.jaxx 2008-11-28 17:17:20 UTC (rev 1640) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ExportUI.jaxx 2008-12-02 16:58:11 UTC (rev 1641) @@ -33,12 +33,12 @@ <Table> <script><![CDATA[ - update(); + refresh(); public ExportUI (SimulAction action){ - delegateContext = new jaxx.runtime.DefaultJAXXContext(this); + setContextValue(action); } - protected void update(){ + public void refresh(){ if (listSimulExportChoose.getSelectedIndex() > -1){ Object[] values = listSimulExportChoose.getSelectedValues(); java.util.List<String> exportNames = new LinkedList<String>(); @@ -48,13 +48,17 @@ getContextValue(SimulAction.class).getSimulationParameter().setExportNames(exportNames); } fieldSimulExportFolder.setText(getContextValue(SimulAction.class).getSimulationParameter().getExportDirectory()); + listSimulExportChoose.setModel(getListSimulExportChooseModel()); } + protected DefaultComboBoxModel getListSimulExportChooseModel(){ + return new DefaultComboBoxModel(getContextValue(SimulAction.class).getExportNames().toArray()); + } ]]> </script> <row> <cell columns="4" fill="both" weightx="1.0" weighty="1.0"> <JScrollPane> - <JList id="listSimulExportChoose" selectionMode="2" model='{new DefaultComboBoxModel(getContextValue(SimulAction.class).getExportNames().toArray())}' onValueChanged='update()'/> + <JList id="listSimulExportChoose" selectionMode="2" model='{getListSimulExportChooseModel()}' onValueChanged='refresh()'/> </JScrollPane> </cell> </row> @@ -63,7 +67,7 @@ <JLabel text="isisfish.export.directory"/> </cell> <cell fill="horizontal" weightx="1.0"> - <JTextField id="fieldSimulExportFolder" onFocusLost='update()'/> + <JTextField id="fieldSimulExportFolder" onFocusLost='refresh()'/> </cell> <cell> <JButton text="isisfish.common.ellipsis" onActionPerformed='getContextValue(SimulAction.class).updateDirectory()'/> Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx 2008-11-28 17:17:20 UTC (rev 1640) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx 2008-12-02 16:58:11 UTC (rev 1641) @@ -52,14 +52,17 @@ import javax.swing.table.TableColumn; import fr.ifremer.isisfish.ui.widget.editor.ParameterColumnEditor; import static javax.swing.JOptionPane.showMessageDialog; + import javax.swing.text.JTextComponent; + import org.dom4j.DocumentHelper; + import org.dom4j.Element; setContextValue(new MatrixPanelEditor()); simulParamsNumbers.add(getContextValue(MatrixPanelEditor.class), BorderLayout.CENTER); public ParamsUI(SimulAction action){ - delegateContext = new jaxx.runtime.DefaultJAXXContext(this); + setContextValue(action); } - protected void refresh(){ + public void refresh(){ if (getContextValue(SimulAction.class).getSimulationStorage() != null){ fieldSimulParamsName.setText(getContextValue(SimulAction.class).getSimulationStorage().getName()); } @@ -77,6 +80,9 @@ simul.enableAnalysePlan(); } } + public void setName(String name){ + fieldSimulParamsName.setText(name); + } protected void regionChange(){ WelcomePanelUI root = getParentContainer(WelcomePanelUI.class); root.setInfoText(_("isisfish.message.loading.region")); @@ -88,12 +94,14 @@ getContextValue(SimulAction.class).setSimulationParameter(simulAction.getSimulationParameter()); } protected void loadOldSimulation(){ - + WelcomePanelUI root = getParentContainer(WelcomePanelUI.class); root.setInfoText(_("isisfish.message.loading.old.simulation")); - - showMsgBox(getContextValue(SimulAction.class).loadOldSimulation(fieldSimulParamsSelect.getSelectedItem().toString())); - refresh(); + String selected = fieldSimulParamsSelect.getSelectedItem().toString(); + if (selected.equals(" ")){ + showMsgBox(getContextValue(SimulAction.class).loadOldSimulation(selected)); + refresh(); + } root.setInfoText(_("isisfish.message.old.simulation.loaded")); } protected void addRules(){ @@ -257,6 +265,54 @@ protected void resetFilter(){ getContextValue(SimulAction.class).resetOldSimulatorNames(); } + protected void saveName(){ + getContextValue(SimulAction.class).setName(fieldSimulParamsName.getText()); + } + public Element save(){ + Element result = DocumentHelper.createElement("paramsUI"); + for (String name : $objectMap.keySet()){ + Object o = $objectMap.get(name); + if (!name.matches("^\\$.*")){ + Element child = DocumentHelper.createElement(name); + if (JComboBox.class.isInstance(o)){ + Object value = ((JComboBox)o).getSelectedItem(); + child.addAttribute("value", value.toString()); + } + if (JList.class.isInstance(o)){ + Object[] values = ((JList)o).getSelectedValues(); + for (Object value : values){ + child.add(DocumentHelper.createElement("item").addAttribute("value", value.toString())); + } + } + else if (JTextComponent.class.isInstance(o)){ + child.addText(((JTextComponent)o).getText()); + } + else if (AbstractButton.class.isInstance(o)){ + child.addAttribute("selected", ((AbstractButton)o).isSelected() + ""); + } + else if (JTable.class.isInstance(o)){ + JTable table = (JTable)o; + for (int i=0;i<table.getColumnCount();i++){ + Element column = DocumentHelper.createElement("column"); + for (int j=0;j<table.getRowCount();j++){ + Element row = DocumentHelper.createElement("row"); + Object value = table.getValueAt(j, i); + if (value != null){ + row.add(DocumentHelper.createElement("cell").addAttribute("value", value.toString())); + } + else { + row.add(DocumentHelper.createElement("cell").addAttribute("value", null)); + } + column.add(row); + } + child.add(column); + } + } + result.add(child); + } + } + return result; + } ]]> </script> <row> @@ -292,7 +348,7 @@ <JLabel text="isisfish.params.simulationName" minimumSize='{new Dimension(140,25)}' preferredSize='{new Dimension(140,25)}'/> </cell> <cell fill="both" weightx="1.0"> - <JTextField id="fieldSimulParamsName"/> + <JTextField id="fieldSimulParamsName" onKeyPressed='saveName()'/> </cell> </row> </Table> @@ -439,8 +495,7 @@ <JPanel id="simulParamsNumbers" name="isisfish.params.populationNumbers" layout='{new BorderLayout()}'/> </tab> <tab title='{_("isisfish.params.ruleParameters")}'> - <JTable id="simulParamsRules" name="isisfish.params.ruleParameters"> - </JTable> + <JTable id="simulParamsRules" name="isisfish.params.ruleParameters"/> </tab> </JTabbedPane> </cell> Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/PreScriptsUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/PreScriptsUI.jaxx 2008-11-28 17:17:20 UTC (rev 1640) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/PreScriptsUI.jaxx 2008-12-02 16:58:11 UTC (rev 1641) @@ -33,9 +33,11 @@ <JPanel id="simulPreScripts" layout='{new BorderLayout()}'> <script><![CDATA[ public PreScriptsUI (SimulAction action){ - delegateContext = new jaxx.runtime.DefaultJAXXContext(this); + setContextValue(action); } + public void refresh(){ + } protected void save(){ getContextValue(SimulAction.class).getSimulationParameter().setPreScript(fieldSimulPreScript.getText()); } Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/QueueUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/QueueUI.jaxx 2008-11-28 17:17:20 UTC (rev 1640) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/QueueUI.jaxx 2008-12-02 16:58:11 UTC (rev 1641) @@ -45,9 +45,9 @@ import org.jdesktop.beansbinding.Bindings; import org.jdesktop.beansbinding.ELProperty; - init(); + refresh(); - protected void init(){ + public void refresh(){ SimulationService ss = SimulationService.getService(); BindingGroup bindingGroup = new BindingGroup(); @@ -75,7 +75,7 @@ } public QueueUI (SimulAction action){ - delegateContext = new jaxx.runtime.DefaultJAXXContext(this); + setContextValue(action); } public class JProgressBarTableCellRenderer implements TableCellRenderer { Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ResultChoiceUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ResultChoiceUI.jaxx 2008-11-28 17:17:20 UTC (rev 1640) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ResultChoiceUI.jaxx 2008-12-02 16:58:11 UTC (rev 1641) @@ -33,9 +33,15 @@ <JPanel id="ResultChoice" name="isisfish.resultChoice.title" layout='{new BorderLayout()}'> <script><![CDATA[ public ResultChoiceUI (SimulAction action){ - delegateContext = new jaxx.runtime.DefaultJAXXContext(this); + setContextValue(action); } + public void refresh(){ + listResultNames.setModel(getListResultNameModel()); + } + protected DefaultComboBoxModel getListResultNameModel(){ + return new DefaultComboBoxModel(getContextValue(SimulAction.class).getResultNames().toArray()); + } protected void saveResultNames(){ if (listResultNames.getSelectedIndex() != -1){ getContextValue(SimulAction.class).saveResultNames(listResultNames.getSelectedValues()); @@ -45,8 +51,7 @@ </script> <JLabel text="isisfish.resultChoice.save" horizontalAlignment="0" constraints='BorderLayout.NORTH'/> <JScrollPane constraints='BorderLayout.CENTER'> - <JList id="listResultNames" selectionMode="2" model='{new DefaultComboBoxModel(getContextValue(SimulAction.class).getResultNames().toArray())}'> - </JList> + <JList id="listResultNames" selectionMode="2" model='{getListResultNameModel()}'/> </JScrollPane> <JButton constraints='BorderLayout.SOUTH' text="isisfish.common.saveNextSimulation" onActionPerformed='saveResultNames()'/> </JPanel> Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SensUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SensUI.jaxx 2008-11-28 17:17:20 UTC (rev 1640) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SensUI.jaxx 2008-12-02 16:58:11 UTC (rev 1641) @@ -41,7 +41,7 @@ import fr.ifremer.isisfish.ui.widget.editor.GenericCell; public SensUI (SimulAction action){ - delegateContext = new jaxx.runtime.DefaultJAXXContext(this); + setContextValue(action); } public void refresh(){ Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java 2008-11-28 17:17:20 UTC (rev 1640) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java 2008-12-02 16:58:11 UTC (rev 1641) @@ -62,7 +62,12 @@ import fr.ifremer.isisfish.simulator.launcher.SimulatorLauncher; import fr.ifremer.isisfish.ui.simulator.filter.SimulationFilterUtil; import fr.ifremer.isisfish.ui.widget.filter.FilterModel; +import java.io.BufferedReader; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; import java.io.IOException; +import java.io.InputStreamReader; import java.lang.reflect.Field; import java.text.ParseException; import java.text.SimpleDateFormat; @@ -71,6 +76,7 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; +import java.util.Properties; import java.util.logging.Level; import java.util.logging.Logger; import org.apache.commons.logging.Log; @@ -90,7 +96,7 @@ protected Map<AnalysePlan, String> analysePlans = new HashMap<AnalysePlan, String>(); static private SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd-HH-mm"); protected List<String> oldSimulNames = null; - + protected String simulName = null; /* ************ * Init @@ -124,8 +130,52 @@ } return null; } - + protected void setName(String name){ + simulName = name; + } + protected String importSimulation(File f){ + String result = null; + FileInputStream fos = null; + try { + fos = new FileInputStream(f); + BufferedReader br = new BufferedReader(new InputStreamReader(fos)); + String line = br.readLine(); + if (line.matches("^#.*")){ + result = line.substring(1); + } + Properties proper = new Properties(); + proper.load(fos); +// TODO : réparer +// param.fromProperties(proper); + simulName = result; + } catch (Exception ex) { + Logger.getLogger(SimulAction.class.getName()).log(Level.SEVERE, null, ex); + } finally { + try { + fos.close(); + } catch (IOException ex) { + Logger.getLogger(SimulAction.class.getName()).log(Level.SEVERE, null, ex); + } + } + return result; + } + protected void saveSimulation(File f){ + FileOutputStream fos = null; + try { + fos = new FileOutputStream(f); + param.copy().toProperties().store(fos, simulName); + } catch (Exception ex) { + Logger.getLogger(SimulAction.class.getName()).log(Level.SEVERE, null, ex); + } finally { + try { + fos.close(); + } catch (IOException ex) { + Logger.getLogger(SimulAction.class.getName()).log(Level.SEVERE, null, ex); + } + } + } + /** * Looking for ResultName.java script and read all fields and fill * list of field value and doc @@ -199,6 +249,7 @@ public String loadOldSimulation(String simulName) { log.debug("call loadOldSimulation: " + simulName); try { + this.simulName = simulName; simulStorage = SimulationStorage.getSimulation(simulName); param = simulStorage.getParameter().copy(); // all time reset number after load Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulUI.jaxx 2008-11-28 17:17:20 UTC (rev 1640) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulUI.jaxx 2008-12-02 16:58:11 UTC (rev 1641) @@ -32,8 +32,10 @@ --> <JPanel size='{new Dimension(800,600)}' id="simul" layout='{new BorderLayout()}'> <script><![CDATA[ + import org.dom4j.DocumentHelper; + import org.dom4j.Element; public SimulUI(SimulAction action){ - delegateContext = new jaxx.runtime.DefaultJAXXContext(this); + setContextValue(action); } protected void enablePreSimul(){ @@ -47,15 +49,69 @@ protected void selTab(int i){ simulTabs.setSelectedIndex(i); } + protected void refreshAll(){ + paramsUI.refresh(); + preSciptUI.refresh(); + sensUI.refresh(); + exportUI.refresh(); + resultChoiceUI.refresh(); + advencedParamsUI.refresh(); + queueUI.refresh(); + } + protected void importSimulation(){ + JFileChooser fc = new JFileChooser(); + int returnVal = fc.showOpenDialog(null); + + if (returnVal == JFileChooser.APPROVE_OPTION) { + File file = fc.getSelectedFile(); + //This is where a real application would open the file. + String name = getContextValue(SimulAction.class).importSimulation(file); + refreshAll(); + paramsUI.setName(name); + } + } + protected void saveSimulation(){ + JFileChooser fc = new JFileChooser(); + int returnVal = fc.showOpenDialog(null); + + if (returnVal == JFileChooser.APPROVE_OPTION) { + File file = fc.getSelectedFile(); + //This is where a real application would open the file. +// getContextValue(SimulAction.class).saveSimulation(file); + Element result = DocumentHelper.createElement("simul"); + result.add(paramsUI.save()); + System.out.println(result.asXML()); + } + } ]]> </script> + <JMenuBar id="simulMenuBar" constraints='BorderLayout.NORTH'> + <JMenu id="simulMenu" text="isisfish.simulation.menu.simulation"> + <JMenuItem id="siSave" text="isisfish.simulation.menu.save" onActionPerformed="saveSimulation()"/> + <JMenuItem id="siImport" text="isisfish.simulation.menu.import" onActionPerformed="importSimulation()"/> + </JMenu> + </JMenuBar> <JTabbedPane id="simulTabs" constraints='BorderLayout.CENTER'> - <tab id="paramsUITab" title='isisfish.params.title'><ParamsUI id="paramUI" constructorParams='getContextValue(SimulAction.class)'/></tab> - <tab id="preScriptUITab" title='isisfish.preScript.title' enabled='false'><PreScriptsUI id="preScipt" constructorParams='getContextValue(SimulAction.class)'/></tab> - <tab id="sensUITab" title='isisfish.sens.title' enabled='false'><SensUI id="sensUI" constructorParams='getContextValue(SimulAction.class)'/></tab> - <tab id="exportUITab" title='isisfish.export.title'><ExportUI id="exportUI" constructorParams='getContextValue(SimulAction.class)'/></tab> - <tab id="resultChoiceUITab" title='isisfish.resultChoice.title'><ResultChoiceUI id="resultChoiceUI" constructorParams='getContextValue(SimulAction.class)'/></tab> - <tab id="advancedParamsUITab" title='isisfish.advancedParameters.title'><AdvancedParamsUI id="advencedParamsUI" constructorParams='getContextValue(SimulAction.class)'/></tab> - <tab id="queueUITab" title='isisfish.queue.title'><QueueUI id="queueUI" constructorParams='getContextValue(SimulAction.class)'/></tab> + <tab id="paramsUITab" title='isisfish.params.title'> + <ParamsUI id="paramsUI" constructorParams='getContextValue(SimulAction.class)'/> + </tab> + <tab id="preScriptUITab" title='isisfish.preScript.title' enabled='false'> + <PreScriptsUI id="preSciptUI" constructorParams='getContextValue(SimulAction.class)'/> + </tab> + <tab id="sensUITab" title='isisfish.sens.title' enabled='false'> + <SensUI id="sensUI" constructorParams='getContextValue(SimulAction.class)'/> + </tab> + <tab id="exportUITab" title='isisfish.export.title'> + <ExportUI id="exportUI" constructorParams='getContextValue(SimulAction.class)'/> + </tab> + <tab id="resultChoiceUITab" title='isisfish.resultChoice.title'> + <ResultChoiceUI id="resultChoiceUI" constructorParams='getContextValue(SimulAction.class)'/> + </tab> + <tab id="advancedParamsUITab" title='isisfish.advancedParameters.title'> + <AdvancedParamsUI id="advencedParamsUI" constructorParams='getContextValue(SimulAction.class)'/> + </tab> + <tab id="queueUITab" title='isisfish.queue.title'> + <QueueUI id="queueUI" constructorParams='getContextValue(SimulAction.class)'/> + </tab> </JTabbedPane> </JPanel> \ No newline at end of file Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/versionning/CommitDialogUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/versionning/CommitDialogUI.jaxx 2008-11-28 17:17:20 UTC (rev 1640) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/versionning/CommitDialogUI.jaxx 2008-12-02 16:58:11 UTC (rev 1641) @@ -11,7 +11,7 @@ public CommitDialogUI(Dialog owner, boolean modal) { super(owner, modal); - delegateContext = new jaxx.runtime.DefaultJAXXContext(this); + } public boolean isEmpty() { return items.getRowCount()==0; Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/versionning/VCSGenerateSshKeyUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/versionning/VCSGenerateSshKeyUI.jaxx 2008-11-28 17:17:20 UTC (rev 1640) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/versionning/VCSGenerateSshKeyUI.jaxx 2008-12-02 16:58:11 UTC (rev 1641) @@ -30,7 +30,7 @@ // block close operation setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); - delegateContext = new jaxx.runtime.DefaultJAXXContext(this); + } public void setData(String vcsLogin, File privateKeyFile) { Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/versionning/VCSPassPhraseUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/versionning/VCSPassPhraseUI.jaxx 2008-11-28 17:17:20 UTC (rev 1640) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/versionning/VCSPassPhraseUI.jaxx 2008-12-02 16:58:11 UTC (rev 1641) @@ -38,7 +38,7 @@ // block close operation setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); - delegateContext = new jaxx.runtime.DefaultJAXXContext(this); + } </script> <Table> Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/widget/filter/FilterPanelUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/widget/filter/FilterPanelUI.jaxx 2008-11-28 17:17:20 UTC (rev 1640) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/widget/filter/FilterPanelUI.jaxx 2008-12-02 16:58:11 UTC (rev 1641) @@ -10,7 +10,7 @@ protected FilterPanelUI(fr.ifremer.isisfish.ui.widget.filter.FilterDialogUI dialog) { this.dialog = dialog; - delegateContext = new jaxx.runtime.DefaultJAXXContext(this); + } /**