r1647 - isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input
Author: sletellier Date: 2008-12-09 13:49:16 +0000 (Tue, 09 Dec 2008) New Revision: 1647 Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/FisheryRegionUI.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 Log: FisheryRegionUI Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/FisheryRegionUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/FisheryRegionUI.jaxx 2008-12-09 13:48:54 UTC (rev 1646) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/FisheryRegionUI.jaxx 2008-12-09 13:49:16 UTC (rev 1647) @@ -34,122 +34,341 @@ + FisheryRegion +--> <JPanel id="inputFisheryRegion" layout='{new BorderLayout()}'> + <script> + <![CDATA[ + import fr.ifremer.isisfish.entities.FisheryRegion; + import com.bbn.openmap.gui.OMToolSet; + import fr.ifremer.isisfish.map.IsisMapBean; + import fr.ifremer.isisfish.map.OpenMapToolPanel; + import fr.ifremer.isisfish.ui.WelcomePanelUI; + + protected boolean changed = false; + protected FisheryRegion region = null; + protected IsisMapBean cellMap = null; + protected OpenMapToolPanel toolMap = new OpenMapToolPanel(); + protected OMToolSet toolSet = new OMToolSet(); + + public FisheryRegionUI(InputAction action){ + setContextValue(action); + } + public void refresh(){ + jaxx.runtime.Util.assignment(region = getContextValue(InputAction.class).getFisheryRegion(), "region", fr.ifremer.isisfish.ui.input.FisheryRegionUI.this); + fieldRegion.setText(region.getName()); + fieldLatMin.setText(region.getMinLatitude() + ""); + fieldLatMax.setText(region.getMaxLatitude() + ""); + fieldLongMin.setText(region.getMinLongitude() + ""); + fieldLongMax.setText(region.getMaxLongitude() + ""); + fieldCellLengthLatitude.setText(region.getCellLengthLatitude() + ""); + fieldCellLengthLongitude.setText(region.getCellLengthLongitude() + ""); + setFieldMapfilesModel(region); + fieldComment.setText(region.getComment()); + refreshMap(); + } + protected void refreshMap(){ + cellMap = new IsisMapBean(); + cellMap.setFisheryRegion(region); + cellMap.setSelectionMode(0); + toolSet.setupListeners(cellMap); + toolMap.add((Component)toolSet); + fisheryRegionMapPanel.add(toolMap, BorderLayout.NORTH); + fisheryRegionMapPanel.add(cellMap, BorderLayout.CENTER); + cellMap.repaint(); +// cellMap.setSelectedCells(cell); + } + protected void setFieldMapfilesModel(FisheryRegion region){ + DefaultListModel model = new DefaultListModel(); + java.util.List<String> mapList = region.getMapFileList(); + if (mapList != null){ + int cnt = 0; + for (String map : mapList){ + model.add(cnt, map); + cnt++; + } + } + fieldMapfiles.setModel(model); + } + protected void valueChanged(boolean b){ + jaxx.runtime.Util.assignment(changed = b, "changed", fr.ifremer.isisfish.ui.input.FisheryRegionUI.this); + save.setEnabled(b); + cancel.setEnabled(b); + } + protected void regionChanged(){ + region.setName(fieldRegion.getText()); + refreshMap(); + } + protected void latMinChanged(){ + region.setMinLatitude(Float.parseFloat(fieldLatMin.getText())); + refreshMap(); + } + protected void latMaxChanged(){ + region.setMaxLatitude(Float.parseFloat(fieldLatMax.getText())); + refreshMap(); + } + protected void longMinChanged(){ + region.setMinLongitude(Float.parseFloat(fieldLongMin.getText())); + refreshMap(); + } + protected void longMaxChanged(){ + region.setMaxLongitude(Float.parseFloat(fieldLongMax.getText())); + refreshMap(); + } + protected void cellLenghtLatChanged(){ + region.setCellLengthLatitude(Float.parseFloat(fieldCellLengthLatitude.getText())); + refreshMap(); + } + protected void cellLenghtLongChanged(){ + region.setCellLengthLongitude(Float.parseFloat(fieldCellLengthLongitude.getText())); + refreshMap(); + } + protected void mapFieldChanged(){ + Object[] values = fieldMapfiles.getSelectedValues(); + java.util.List<String> valuesList = new ArrayList<String>(); + if (values != null){ + for (Object o : values){ + valuesList.add((String)o); + } + } + region.setMapFileList(valuesList); + refreshMap(); + } + protected void addMap(){ + getContextValue(InputAction.class).addMap(); + refreshMap(); + } + protected void delMap(){ + getContextValue(InputAction.class).removeMap(fieldMapfiles.getSelectedValues()); + refreshMap(); + } + protected void commentChanged(){ + region.setComment(fieldComment.getText()); + refreshMap(); + } + protected void cellFillChanged(){ + } + protected void cellFile(){ + getContextValue(InputAction.class).loadCellFile(fieldCellFile.getText()); + refreshMap(); + } + protected void save(){ + setMsg(_("isisfish.message.checking.cell")); + getContextValue(InputAction.class).saveFisheryRegion("FisheryRegion"); + getParentContainer(InputUI.class).setTreeModel(); + getParentContainer(InputUI.class).setTreeSelection("$root"); + valueChanged(false); + setMsg(_("isisfish.message.save.finished")); + } + protected void cancel(){ + getContextValue(InputAction.class).cancel("FisheryRegion"); + valueChanged(false); + } + protected void check(){ + getContextValue(InputAction.class).checkFisheryRegion(); + setMsg(_("isisfish.message.check.region")); + } + protected void goToCell(){ + getParentContainer(InputUI.class).setTreeSelection("$root/$cells"); + } + protected void setMsg(String msg){ + getParentContainer(WelcomePanelUI.class).setInfoText(msg); + } + ]]> + </script> <JSplitPane id="FisheryRegionTab" name="FisheryRegion" - oneTouchExpandable="true" dividerLocation="200" orientation="VERTICAL"> - <JPanel name="isisfish.fisheryRegion.title"> - -<!-- Fixme : ContextDataSource -<ContextDataSource id="FisheryRegion" context="current" source="FisheryRegion"/> ---> - - + oneTouchExpandable="true" dividerLocation="200" orientation="HORIZONTAL" constraints='BorderLayout.CENTER'> + <Table> <!-- Widget --> - <JLabel text="isisfish.fisheryRegion.name"/> - <JTextField id="fieldRegion"> + <row> + <cell columns='3'> + <JLabel text="isisfish.fisheryRegion.name"/> + </cell> + </row> + <row> + <cell columns='3' fill='horizontal' weightx='1.0'> + <JTextField id="fieldRegion" onKeyTyped='valueChanged(true)' onFocusLost='regionChanged()'/> <!-- Fixme : DocumentEvents origin="$RegionStorage/name" <DocumentEvents id="updateRegion" onChangedUpdate="Update($fieldRegion/text)"/> --> - </JTextField> - <JLabel text="isisfish.fisheryRegion.area"/> - <JLabel text="isisfish.fisheryRegion.latitude.min"/> - <JTextField id="fieldLatMin"> + </cell> + </row> + <row> + <cell columns='3'> + <JLabel text="isisfish.fisheryRegion.area"/> + </cell> + </row> + <row> + <cell> + <JLabel text="isisfish.fisheryRegion.latitude.min"/> + </cell> + <cell columns='2' fill='horizontal' weightx='1.0'> + <JTextField id="fieldLatMin" onKeyTyped='valueChanged(true)' onFocusLost='latMinChanged()'/> <!-- Fixme : DocumentEvents origin="$FisheryRegion/minLatitude" <DocumentEvents onModified="Update($fieldLatMin/text)"/> --> - </JTextField> - <JLabel text="isisfish.fisheryRegion.latitude.max"/> - <JTextField id="fieldLatMax"> + </cell> + </row> + <row> + <cell> + <JLabel text="isisfish.fisheryRegion.latitude.max"/> + </cell> + <cell columns='2' fill='horizontal' weightx='1.0'> + <JTextField id="fieldLatMax" onKeyTyped='valueChanged(true)' onFocusLost='latMaxChanged()'/> <!-- Fixme : DocumentEvents origin="$FisheryRegion/maxLatitude" <DocumentEvents onModified="Update($fieldLatMax/text)"/> --> - </JTextField> - <JLabel text="isisfish.fisheryRegion.longitude.min"/> - <JTextField id="fieldLongMin"> + </cell> + </row> + <row> + <cell> + <JLabel text="isisfish.fisheryRegion.longitude.min"/> + </cell> + <cell columns='2' fill='horizontal' weightx='1.0'> + <JTextField id="fieldLongMin" onKeyTyped='valueChanged(true)' onFocusLost='longMinChanged()'/> <!-- Fixme : DocumentEvents origin="$FisheryRegion/minLongitude" <DocumentEvents onModified="Update($fieldLongMin/text)"/> --> - </JTextField> - <JLabel text="isisfish.fisheryRegion.longitude.max"/> - <JTextField id="fieldLongMax"> + </cell> + </row> + <row> + <cell> + <JLabel text="isisfish.fisheryRegion.longitude.max"/> + </cell> + <cell columns='2' fill='horizontal' weightx='1.0'> + <JTextField id="fieldLongMax" onKeyTyped='valueChanged(true)' onFocusLost='longMaxChanged()'/> <!-- Fixme : DocumentEvents origin="$FisheryRegion/maxLongitude" <DocumentEvents onModified="Update($fieldLongMax/text)"/> --> - </JTextField> - <JLabel text="isisfish.fisheryRegion.spatial"/> - <JLabel text="isisfish.fisheryRegion.latitude"/> - <JTextField id="fieldCellLengthLatitude"> + </cell> + </row> + <row> + <cell columns='3'> + <JLabel text="isisfish.fisheryRegion.spatial"/> + </cell> + </row> + <row> + <cell> + <JLabel text="isisfish.fisheryRegion.latitude"/> + </cell> + <cell columns='2' fill='horizontal' weightx='1.0'> + <JTextField id="fieldCellLengthLatitude" onKeyTyped='valueChanged(true)' onFocusLost='cellLenghtLatChanged()'/> <!-- Fixme : DocumentEvents origin="$FisheryRegion/cellLengthLatitude" <DocumentEvents onModified="Update($fieldCellLengthLatitude/text)"/> --> - </JTextField> - <JLabel text="isisfish.fisheryRegion.longitude"/> - <JTextField id="fieldCellLengthLongitude"> + </cell> + </row> + <row> + <cell> + <JLabel text="isisfish.fisheryRegion.longitude"/> + </cell> + <cell columns='2' fill='horizontal' weightx='1.0'> + <JTextField id="fieldCellLengthLongitude" onKeyTyped='valueChanged(true)' onFocusLost='cellLenghtLongChanged()'/> <!-- Fixme : DocumentEvents origin="$FisheryRegion/cellLengthLongitude" <DocumentEvents onModified="Update($fieldCellLengthLongitude/text)"/> --> - </JTextField> - <JScrollPane> - <JList id="fieldMapfiles"> -<!-- Fixme : ListModel - <ListModel origin="$FisheryRegion/mapFileList"/> ---> - </JList> - </JScrollPane> - <JPanel> - <JButton id="buttonAddMap" text="isisfish.fisheryRegion.addMap"/> + </cell> + </row> + <row> + <cell columns='3' fill='both' weightx='1.0' weighty='0.6'> + <JScrollPane> + <JList id="fieldMapfiles" onMouseClicked='mapFieldChanged()'/> + <!-- Fixme : ListModel + <ListModel origin="$FisheryRegion/mapFileList"/> + --> + </JScrollPane> + </cell> + </row> + <row> + <cell columns='3' fill='horizontal' weightx='1.0'> + <Table> + <row> + <cell fill='horizontal' weightx='0.5'> + <JButton id="buttonAddMap" text="isisfish.fisheryRegion.addMap" onActionPerformed='addMap()'/> <!-- actionCommand="input.InputFisheryRegion.addMap($FisheryRegion, $fieldMapfiles)" --> - <JButton id="buttonRemoveMap" text="isisfish.fisheryRegion.delMap"/> + </cell> + <cell fill='horizontal' weightx='0.5'> + <JButton id="buttonRemoveMap" text="isisfish.fisheryRegion.delMap" onActionPerformed='delMap()'/> <!-- actionCommand="input.InputFisheryRegion.removeMap($FisheryRegion, $fieldMapfiles)" --> - </JPanel> - <JLabel text="isisfish.fisheryRegion.comments"/> - <JScrollPane> - <JTextArea id="fieldComment"> + </cell> + </row> + </Table> + </cell> + </row> + <row> + <cell columns='3'> + <JLabel text="isisfish.fisheryRegion.comments"/> + </cell> + </row> + <row> + <cell columns='3' fill='both' weightx='1.0' weighty='0.4'> + <JScrollPane> + <JTextArea id="fieldComment" onKeyTyped='valueChanged(true)' onFocusLost='commentChanged()'/> <!-- Fixme : DocumentEvents origin="$FisheryRegion/comment" <DocumentEvents onModified="Update($fieldComment/text)"/> --> - </JTextArea> - </JScrollPane> - <JLabel text="isisfish.fisheryRegion.selectFile"/> - <JLabel text="isisfish.fisheryRegion.ofCells"/> - <JPanel> - <JTextField id="fieldCellFile"/> - <JButton id="buttonCellFile" text="isisfish.common.ellipsis"/> + </JScrollPane> + </cell> + </row> + <row> + <cell columns='3'> + <JLabel text="isisfish.fisheryRegion.selectFile"/> + </cell> + </row> + <row> + <cell columns='3'> + <JLabel text="isisfish.fisheryRegion.ofCells"/> + </cell> + </row> + <row> + <cell columns='3' fill='horizontal' weightx='1.0'> + <Table> + <row> + <cell columns='4' fill='horizontal' weightx='1.0'> + <JTextField id="fieldCellFile" onKeyTyped='valueChanged(true)' onFocusLost='cellFillChanged()'/> + </cell> + <cell> + <JButton id="buttonCellFile" text="isisfish.common.ellipsis" onActionPerformed='cellFile()'/> <!-- actionCommand="input.InputFisheryRegion.loadCellFile($fieldCellFile)" --> - </JPanel> - <JPanel id="panelRegionButtonAction"> - <JButton text="isisfish.common.save"/> + </cell> + </row> + </Table> + </cell> + </row> + <row> + <cell fill='horizontal' weightx='0.3'> + <JButton id='save' enabled='false' text="isisfish.common.save" onActionPerformed='save()'/> <!-- origin="$EntityModified" actionCommand='thread:input.InputFisheryRegion.save("FisheryRegion", $FisheryRegion);refreshView($inputFisheryRegion)' --> - <JButton text="isisfish.common.cancel"/> + </cell> + <cell fill='horizontal' weightx='0.3'> + <JButton id='cancel' enabled='false' text="isisfish.common.cancel" onActionPerformed='cancel()'/> <!-- origin="$EntityModified" actionCommand='input.Input.cancel("FisheryRegion", $FisheryRegion);refreshView($inputFisheryRegion)' --> - <JButton text="isisfish.common.check"/> + </cell> + <cell fill='horizontal' weightx='0.3'> + <JButton id='check' text="isisfish.common.check" onActionPerformed='check()'/> <!-- actionCommand='thread:input.InputFisheryRegion.check($FisheryRegion)' --> - </JPanel> - </JPanel> -<!-- - <xpanel xml="input/FisheryRegion.xml"/> ---> + </cell> + </row> + </Table> <JPanel id="fisheryRegionMapPanel" layout='{new BorderLayout()}'> <!-- <OpenMapToolPanel constraints='"BorderLayout.NORTH"' id="fisheryRegionMapTool"> @@ -162,7 +381,7 @@ --> </JPanel> </JSplitPane> - <JButton text="isisfish.input.continueCells"/> + <JButton text="isisfish.input.continueCells" constraints='BorderLayout.SOUTH' onActionPerformed='goToCell()'/> <!-- actionCommand="UIHelper.setTreeSelection('Cells')" --> 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-12-09 13:48:54 UTC (rev 1646) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputAction.java 2008-12-09 13:49:16 UTC (rev 1647) @@ -44,6 +44,7 @@ import fr.ifremer.isisfish.datastore.StorageException; import fr.ifremer.isisfish.datastore.update.ImportFromV2; import fr.ifremer.isisfish.entities.Cell; +import fr.ifremer.isisfish.entities.CellDAO; import fr.ifremer.isisfish.entities.EffortDescription; import fr.ifremer.isisfish.entities.EffortDescriptionDAO; import fr.ifremer.isisfish.entities.Equation; @@ -69,10 +70,16 @@ import fr.ifremer.isisfish.entities.VesselType; import fr.ifremer.isisfish.entities.Zone; import fr.ifremer.isisfish.types.Month; +import fr.ifremer.isisfish.ui.input.check.CheckRegion; +import fr.ifremer.isisfish.ui.input.check.CheckResult; +import fr.ifremer.isisfish.ui.input.check.CheckResultFrame; import fr.ifremer.isisfish.ui.widget.ErrorDialogUI; +import fr.ifremer.isisfish.util.CellPointcomparator; +import java.awt.geom.Point2D; import java.io.File; import java.lang.reflect.Method; import java.util.ArrayList; +import java.util.Collections; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.JOptionPane; @@ -984,4 +991,177 @@ } return null; } +// FisheryRegion + /** + * @param list la list dans lequel il faut ajouter la carte + */ + public Object addMap(){ + log.debug("AddMap called"); + + File shp = FileUtil.getFile(".*\\.shp", "shp file"); + try { + if (shp != null) { + // copy shp and ssx to region map directory + String basename = FileUtil.basename(shp, ".shp"); + + String srcMap = shp.getPath(); + srcMap = srcMap.substring(0, srcMap.length() - ".shp".length()); + File ssx = new File(srcMap + ".ssx"); + + RegionStorage regionStorage = RegionStorage.getRegion(fisheryRegion.getName()); + File destDir = regionStorage.getMapRepository(); + + // copy shp file + File destShp = new File(destDir, basename + ".shp"); + FileUtil.copy(shp, destShp); + + // copy ssx file + File destSsx = new File(destDir, basename + ".ssx"); + if (ssx.exists()) { + FileUtil.copy(ssx, destSsx); + } else { + log.info("Ssx file don't exist, try to generate it"); + } + + List<String> maps = fisheryRegion.getMapFileList(); + maps.add(basename); + fisheryRegion.setMapFileList(maps); + } + }catch(Exception eee){ + log.error("Can't copy .shp or .ssx file for: " + shp, eee); + showMsgBox(eee); + } + return null; + } + + /** + * @param list la list dans lequel il faut retirer la carte + */ + public Object removeMap(Object[] selectedMaps){ + log.debug("removeMap called"); + try { + + List<String> maps = fisheryRegion.getMapFileList(); + + RegionStorage regionStorage = RegionStorage.getRegion(fisheryRegion.getName()); + File mapDir = regionStorage.getMapRepository(); + + for (Object map : selectedMaps) { + maps.remove(map); + // remove on disk too, if possible + File shp = new File(mapDir, map + ".shp"); + shp.delete(); + File ssx = new File(mapDir, map + ".ssx"); + ssx.delete(); + } + + fisheryRegion.setMapFileList(maps); + + }catch(Exception eee){ + log.error("Can't remove map", eee); + showMsgBox(eee); + } + return null; + } + + /** + * Affiche une boite de dialogue demandant a l'utilisateur de rentrer + * un nom de fichier, et met ce nom dans la textField. + * Passe le saveButton en enabled pour marque que la region a ete modifié + */ + public void loadCellFile(String cellFile){ + log.debug("loadCell called"); + // FIXME todo loadCellFile + } + + public Object saveFisheryRegion(String type){ + log.debug("save called"); + try{ + TopiaContext isisContext = fisheryRegion.getTopiaContext(); + +// frame.setInfoText(_("isisfish.message.checking.cell")); + int latNumber = (int)Math.round((fisheryRegion.getMaxLatitude() - fisheryRegion.getMinLatitude()) / fisheryRegion.getCellLengthLatitude()); + int lonNumber = (int)Math.round((fisheryRegion.getMaxLongitude() - fisheryRegion.getMinLongitude()) / fisheryRegion.getCellLengthLongitude()); + +// frame.setProgressMin(0); +// frame.setProgressMax(latNumber * lonNumber); + int progresscpt = 0; + + // il faut peut-etre creer ou supprimer des mailles + CellPointcomparator cellPointcomparator = new CellPointcomparator(); + CellDAO cellPS = IsisFishDAOHelper.getCellDAO(isisContext); + List<Cell> cells = cellPS.findAll(); + Collections.sort(cells, cellPointcomparator); + Point2D.Float point = new Point2D.Float(); + + for(float lati = fisheryRegion.getMinLatitude();lati<fisheryRegion.getMaxLatitude();lati+=fisheryRegion.getCellLengthLatitude()){ + lati = Math.round(lati*1000f); + lati= lati / 1000.0f; + for(float longi = fisheryRegion.getMinLongitude();longi<fisheryRegion.getMaxLongitude();longi+=fisheryRegion.getCellLengthLongitude()){ + longi = Math.round(longi*1000f) / 1000.0f; + point.setLocation(lati, longi); + int position = Collections.binarySearch(cells, point, cellPointcomparator); + if(position >= 0){ + // deja existant on l'enleve de la liste, et on ne cree rien + cells.remove(position); + } else { + // n'existe pas on la cree + Cell cell = cellPS.create(); + cell.setName("La"+lati+"Lo"+longi); + cell.setLatitude(lati); + cell.setLongitude(longi); + cell.setLand(false); + cell.update(); + } +// frame.setProgressValue(++progresscpt); + } + } + + // on est pas en autoUpdate donc il faut faire le update avant le commit + fisheryRegion.update(); + + // toutes les mailles restantes dans la liste sont des mailles en trop + // on les supprimes +// frame.setInfoText(_("isisfish.message.remove.unnecessary.cells")); +// frame.setProgressMin(0); +// frame.setProgressMax(cells.size()); + progresscpt = 0; + for(Cell cell:cells){ + // FIXME il faudrait aussi rechercher les objets dependants + // des mailles que l'on va supprimer et demander confirmation + // a l'utilisateur qu'il souhaite reellement supprimer tous + // ces objets. Si ce n'est pas le cas, on sort tout de suite + // avant le commit + cellPS.delete(cell); +// frame.setProgressValue(++progresscpt); + } + +// frame.setInfoText(_("isisfish.message.commit")); + isisContext.commitTransaction(); +// frame.refreshView("inputFisheryRegion"); + +// frame.setInfoText(_("isisfish.message.save.finished")); + }catch(Exception eee){ + log.error(_("isisfish.error.save.region"), eee); + showMsgBox(eee); + } + return null; + } + + public Object checkFisheryRegion(){ + try { + log.debug("check called: "); +// frame.setInfoText(_("isisfish.message.check.region")); + CheckResult result = new CheckResult(); + CheckRegion.check(fisheryRegion, result); + CheckResultFrame dialog = new CheckResultFrame(); + dialog.setCheckResult(result); + dialog.setVisible(true); + }catch(Exception eee){ + log.error(_("isisfish.error.check.region"), eee); + showMsgBox(eee); + } + return null; + } + } 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-12-09 13:48:54 UTC (rev 1646) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputUI.jaxx 2008-12-09 13:49:16 UTC (rev 1647) @@ -232,7 +232,7 @@ NavigationTreeModelBuilder builder = new NavigationTreeModelBuilder("/"); FisheryRegion fisheryRegion = getContextValue(InputAction.class).getFisheryRegion(); setContextValue(fisheryRegion); - NavigationTreeNode root = builder.build(null, regionName, JAXXContextEntryDef.newDef(FisheryRegion.class), "$root", NoneUI.class, null); + NavigationTreeNode root = builder.build(null, regionName, JAXXContextEntryDef.newDef(FisheryRegion.class), "$root", FisheryRegionUI.class, 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);
participants (1)
-
sletellier@users.labs.libre-entreprise.org