r3289 - isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/input
Author: chatellier Date: 2011-04-26 15:51:04 +0000 (Tue, 26 Apr 2011) New Revision: 3289 Log: Fix delete and create region Modified: isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/input/InputHandler.java Modified: isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/input/InputHandler.java =================================================================== --- isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/input/InputHandler.java 2011-04-26 12:34:57 UTC (rev 3288) +++ isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/input/InputHandler.java 2011-04-26 15:51:04 UTC (rev 3289) @@ -130,52 +130,55 @@ if (log.isDebugEnabled()) { log.debug("Load region " + name); } - - FisheryRegion fisheryRegion = null; - RegionStorage regionStorage = null; - TopiaContext topiaContext = null; - // load region - try { - regionStorage = RegionStorage.getRegion(name); - topiaContext = regionStorage.getStorage().beginTransaction(); - fisheryRegion = RegionStorage.getFisheryRegion(topiaContext); - } catch (TopiaException ex) { - throw new IsisFishRuntimeException("Can't load region", ex); - } catch (StorageException ex) { - throw new IsisFishRuntimeException("Can't load region", ex); - } - - // TODO echatellier 20110323 voir pour remplacer le binding - inputUI.setRegionLoaded(fisheryRegion != null); - - if (fisheryRegion == null) { + if (name == null) { // show empty region ui - inputUI.getCardlayoutPrincipal().show(inputUI.getInputPanePrincipal(),"none"); + inputUI.getCardlayoutPrincipal().show(inputUI.getInputPanePrincipal(), "none"); TreeModel model = new DefaultTreeModel(null); inputUI.getFisheryRegionTree().setModel(model); } else { + FisheryRegion fisheryRegion = null; + RegionStorage regionStorage = null; + TopiaContext topiaContext = null; + + // load region + try { + regionStorage = RegionStorage.getRegion(name); + topiaContext = regionStorage.getStorage().beginTransaction(); + fisheryRegion = RegionStorage.getFisheryRegion(topiaContext); + } catch (TopiaException ex) { + throw new IsisFishRuntimeException("Can't load region", ex); + } catch (StorageException ex) { + throw new IsisFishRuntimeException("Can't load region", ex); + } + + // TODO echatellier 20110323 voir pour remplacer le binding + inputUI.setRegionLoaded(fisheryRegion != null); + // init tree model loader with fishery region - FisheryTreeHelper treeHelper = new FisheryTreeHelper(); + FisheryTreeHelper fisheryTreeHelper = new FisheryTreeHelper(); FisheryDataProvider dataProvider = new FisheryDataProvider(fisheryRegion); - treeHelper.setDataProvider(dataProvider); - TreeModel model = treeHelper.createTreeModel(fisheryRegion); + fisheryTreeHelper.setDataProvider(dataProvider); + TreeModel fisheryTreeModel = fisheryTreeHelper.createTreeModel(fisheryRegion); // fix strange region switch error inputUI.getFisheryRegionTree().setCellRenderer(null); - inputUI.getFisheryRegionTree().setModel(model); + inputUI.getFisheryRegionTree().setModel(fisheryTreeModel); inputUI.getFisheryRegionTree().setCellRenderer(new FisheryTreeRenderer(dataProvider)); inputUI.getFisheryRegionTree().setSelectionModel(new FisheryTreeSelectionModel(inputUI)); - treeHelper.setUI(inputUI.getFisheryRegionTree(), true, false, null); + fisheryTreeHelper.setUI(inputUI.getFisheryRegionTree(), true, false, null); // global context value : fisheryRegion, regionStorage, treeHelper inputUI.setContextValue(fisheryRegion); inputUI.setContextValue(regionStorage); - inputUI.setContextValue(treeHelper); - inputUI.setContextValue(model); + inputUI.setContextValue(fisheryTreeHelper); + inputUI.setContextValue(fisheryTreeModel); inputUI.setContextValue(topiaContext); inputUI.getCardlayoutPrincipal().show(inputUI.getInputPanePrincipal(),"normale"); + + // autoselect roto node (fire some event) + fisheryTreeHelper.selectNode((FisheryTreeNode)fisheryTreeModel.getRoot()); } } @@ -209,9 +212,7 @@ SwingUtilities.invokeLater(new Runnable() { public void run() { loadRegion(inputUI, name); - // FIXME getVerifier().setIsisContext(getContextValue(TopiaContext.class)); setStatusMessage(inputUI, _("isisfish.message.load.finished")); - // FIXME setTreeModel(); } }); } @@ -236,18 +237,32 @@ throw new IsisFishRuntimeException("Can't create region", ex); } inputUI.getFieldNewRegion().setText(""); - - // refresh region list - StringListModel regionsModel = new StringListModel(RegionStorage.getRegionNames()); - inputUI.getFieldCurrentRegion().setModel(regionsModel); - // event is fired by setSelectedItem to call #regionChange - inputUI.getFieldCurrentRegion().setSelectedItem(name); + refreshRegionList(inputUI, name); } setStatusMessage(inputUI, _("isisfish.message.creation.finished")); } - + /** + * Rafraichit la liste des regions. + * + * @param inputUI inputUI + * @param selectedItem region to select + */ + protected void refreshRegionList(InputUI inputUI, String selectedItem) { + // refresh region list + StringListModel regionsModel = new StringListModel(RegionStorage.getRegionNames()); + inputUI.getFieldCurrentRegion().setModel(regionsModel); + // event is fired by setSelectedItem to call #regionChange + if (selectedItem != null) { + inputUI.getFieldCurrentRegion().setSelectedItem(selectedItem); + } + else { + loadRegion(inputUI, null); + } + } + + /** * Exporter la region dans un zip. * * @param inputUI inputUI @@ -402,6 +417,7 @@ _("isisfish.message.confirm.remove.region", regionStorage.getName())); if (resp == JOptionPane.YES_OPTION) { regionStorage.delete(vcsDelete); + refreshRegionList(inputUI, null); } } catch (StorageException eee) { throw new IsisFishRuntimeException("Can't delete region", eee);
participants (1)
-
chatellierï¼ users.labs.libre-entreprise.org