From sletellier@users.labs.libre-entreprise.org Mon Jun 15 00:25:46 2026 From: sletellier@users.labs.libre-entreprise.org To: isis-fish-commits@list.isis-fish.org Subject: [Isis-fish-commits] r1647 - isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input Date: Tue, 09 Dec 2008 14:49:16 +0100 Message-ID: <20081209134916.F265D461BF1@labs.libre-entreprise.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============2039308753082247175==" --===============2039308753082247175== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 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/FisheryR= egionUI.jaxx =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/FisheryRegionU= I.jaxx 2008-12-09 13:48:54 UTC (rev 1646) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/FisheryRegionU= I.jaxx 2008-12-09 13:49:16 UTC (rev 1647) @@ -34,122 +34,341 @@ + FisheryRegion +--> + - - =20 -=20 - =20 - + oneTouchExpandable=3D"true" dividerLocation=3D"200" orientatio= n=3D"HORIZONTAL" constraints=3D'BorderLayout.CENTER'> + - - + + + + + + + + - - - - + + + + + + + + + + + + + - - - + + + + + + + + - - - + + + + + + + + - - - + + + + + + + + - - - - + + + + + + + + + + + + + - - - + + + + + + + + - - - - - - - - + + + + + + + + + + + + +
+ + + - + + + - - - - + + +
+ + + + + + + + + + + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - + + +
+
+
+ + + - + + + - + + + -
-
- + + + - + Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputAct= ion.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputAction.ja= va 2008-12-09 13:48:54 UTC (rev 1646) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputAction.ja= va 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; =20 } +// FisheryRegion + /** + * @param list la list dans lequel il faut ajouter la carte + */ + public Object addMap(){ + log.debug("AddMap called"); + + File shp =3D FileUtil.getFile(".*\\.shp", "shp file"); + try { + if (shp !=3D null) { + // copy shp and ssx to region map directory + String basename =3D FileUtil.basename(shp, ".shp"); + + String srcMap =3D shp.getPath(); + srcMap =3D srcMap.substring(0, srcMap.length() - ".shp".leng= th()); + File ssx =3D new File(srcMap + ".ssx"); + + RegionStorage regionStorage =3D RegionStorage.getRegion(fish= eryRegion.getName()); + File destDir =3D regionStorage.getMapRepository(); + + // copy shp file + File destShp =3D new File(destDir, basename + ".shp"); + FileUtil.copy(shp, destShp); + + // copy ssx file + File destSsx =3D 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 maps =3D 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 maps =3D fisheryRegion.getMapFileList(); + + RegionStorage regionStorage =3D RegionStorage.getRegion(fisheryR= egion.getName()); + File mapDir =3D regionStorage.getMapRepository(); + + for (Object map : selectedMaps) { + maps.remove(map); + // remove on disk too, if possible + File shp =3D new File(mapDir, map + ".shp"); + shp.delete(); + File ssx =3D 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= =C3=A9 + */ + public void loadCellFile(String cellFile){ + log.debug("loadCell called"); + // FIXME todo loadCellFile + } + + public Object saveFisheryRegion(String type){ + log.debug("save called"); + try{ + TopiaContext isisContext =3D fisheryRegion.getTopiaContext(); + +// frame.setInfoText(_("isisfish.message.checking.cell")); + int latNumber =3D (int)Math.round((fisheryRegion.getMaxLatitude(= ) - fisheryRegion.getMinLatitude()) / fisheryRegion.getCellLengthLatitude()); + int lonNumber =3D (int)Math.round((fisheryRegion.getMaxLongitude= () - fisheryRegion.getMinLongitude()) / fisheryRegion.getCellLengthLongitude(= )); + +// frame.setProgressMin(0); +// frame.setProgressMax(latNumber * lonNumber); + int progresscpt =3D 0; + + // il faut peut-etre creer ou supprimer des mailles + CellPointcomparator cellPointcomparator =3D new CellPointcompara= tor(); + CellDAO cellPS =3D IsisFishDAOHelper.getCellDAO(isisContext); + List cells =3D cellPS.findAll(); + Collections.sort(cells, cellPointcomparator); + Point2D.Float point =3D new Point2D.Float(); + + for(float lati =3D fisheryRegion.getMinLatitude();lati=3D 0){ + // deja existant on l'enleve de la liste, et on ne c= ree rien + cells.remove(position); + } else { + // n'existe pas on la cree + Cell cell =3D 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 l= e commit + fisheryRegion.update(); + + // toutes les mailles restantes dans la liste sont des mailles e= n trop + // on les supprimes +// frame.setInfoText(_("isisfish.message.remove.unnecessary.cells= ")); +// frame.setProgressMin(0); +// frame.setProgressMax(cells.size()); + progresscpt =3D 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 =3D new CheckResult(); + CheckRegion.check(fisheryRegion, result); + CheckResultFrame dialog =3D 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 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputUI.jaxx 2= 008-12-09 13:48:54 UTC (rev 1646) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputUI.jaxx 2= 008-12-09 13:49:16 UTC (rev 1647) @@ -232,7 +232,7 @@ NavigationTreeModelBuilder builder =3D new NavigationTreeMod= elBuilder("/"); FisheryRegion fisheryRegion =3D getContextValue(InputAction.= class).getFisheryRegion(); setContextValue(fisheryRegion); - NavigationTreeNode root =3D builder.build(null, regionName, = JAXXContextEntryDef.newDef(FisheryRegion.class), "$root", NoneUI.class, null); + NavigationTreeNode root =3D builder.build(null, regionName, = JAXXContextEntryDef.newDef(FisheryRegion.class), "$root", FisheryRegionUI.cla= ss, null); NavigationTreeNode cells =3D builder.build(root, "Cells", ".= ./cell", "$cells", CellUI.class, null); NavigationTreeNode zones =3D builder.build(root, "Zones", ".= ./zone", "$zones", ZoneUI.class, null); NavigationTreeNode ports =3D builder.build(root, "Ports", ".= ./port", "$ports", PortUI.class, null); --===============2039308753082247175==--