From: <emm...@us...> - 2008-12-02 11:12:35
|
Revision: 4259 http://fudaa.svn.sourceforge.net/fudaa/?rev=4259&view=rev Author: emmanuel_martin Date: 2008-12-02 11:12:31 +0000 (Tue, 02 Dec 2008) Log Message: ----------- Modification de la gestion des erreurs lorque des chemins d'image sont invalides ?\195?\160 propos des calques d'images. Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BCalqueImagePersistence.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueImageRaster.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/wizard/FSigImageWizardStepImage.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/wizard/FSigImageWizardTask.java Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BCalqueImagePersistence.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BCalqueImagePersistence.java 2008-12-02 09:24:47 UTC (rev 4258) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BCalqueImagePersistence.java 2008-12-02 11:12:31 UTC (rev 4259) @@ -76,6 +76,11 @@ if (imgFile != null && !imgFile.exists()) { imgFile = new File(dir_, imgFile.getName()); } + // On renseigne malgr\xE9 tout l'entr\xE9e file pour pouvoir afficher le chemin de + // l'image \xE0 l'utilisateur pour qu'il puisse le changer. + if (imgFile != null && !imgFile.exists()) { + _target.getUI().put(getImageFile(), _helper.getTrimTextFor("file")); + } if (imgFile == null || !imgFile.exists()) { FuLog.warning("ECQ: no file"); return; @@ -121,9 +126,19 @@ } } } + + protected void writeBodyData(final CtuluXmlWriter _out, final BCalque _cqToSave) throws IOException { + final ZModeleImageRaster img=((ZCalqueImageRaster)_cqToSave).getModelImage(); + File f; + boolean hasPoints=true; + if ((img==null||img.getData()==null)&&((ZCalqueImageRaster)_cqToSave).getImagePath()!=null) { + f=new File(((ZCalqueImageRaster)_cqToSave).getImagePath()); + hasPoints=false; + } + else + f=img.getData().getImgFile(); - protected void writeBodyData(final CtuluXmlWriter _out, final BCalque _cqToSave) throws IOException { - final ZModeleImageRaster img = ((ZCalqueImageRaster) _cqToSave).getModelImage(); + /* if (img == null) { FuLog.error("ECQ: no image"); return; @@ -133,6 +148,8 @@ return; } final File f = img.getData().getImgFile(); + */ + _out.write("<!--Le fichier contenant l'image: chemin absolu-->\n"); _out.write("<!--The absolute path of the image file-->\n"); _out.write("<file>\n"); @@ -143,25 +160,26 @@ _out.write("<relative-path>\n"); _out.write(CtuluLibFile.getRelativeFile(f, dir_, 100)); _out.write("</relative-path>\n"); + if (hasPoints) { + _out.write("<points>\n"); + _out.write("<!--image_x image_y_from_top real_x real_y-->"); + _out.write("<!--pass points-->"); - _out.write("<points>\n"); - _out.write("<!--image_x image_y_from_top real_x real_y-->"); - _out.write("<!--pass points-->"); + final int nb=img.getData().getNbPt(); + for (int i=0; i<nb; i++) { + _out.write("<point>\n"); + _out.write(Integer.toString(img.getXImgCalage(i))); + _out.write(CtuluLibString.ESPACE); + _out.write(Integer.toString(img.getYImgCalageFromTop(i))); + _out.write(CtuluLibString.ESPACE); + _out.write(CtuluLib.DEFAULT_NUMBER_FORMAT.format(img.getX(i))); + _out.write(CtuluLibString.ESPACE); + _out.write(CtuluLib.DEFAULT_NUMBER_FORMAT.format(img.getY(i))); + _out.write("</point>\n"); + } - final int nb = img.getData().getNbPt(); - for (int i = 0; i < nb; i++) { - _out.write("<point>\n"); - _out.write(Integer.toString(img.getXImgCalage(i))); - _out.write(CtuluLibString.ESPACE); - _out.write(Integer.toString(img.getYImgCalageFromTop(i))); - _out.write(CtuluLibString.ESPACE); - _out.write(CtuluLib.DEFAULT_NUMBER_FORMAT.format(img.getX(i))); - _out.write(CtuluLibString.ESPACE); - _out.write(CtuluLib.DEFAULT_NUMBER_FORMAT.format(img.getY(i))); - _out.write("</point>\n"); + _out.write("</points>"); } - - _out.write("</points>"); } public BCalqueSaverInterface save(final BCalque _cq, final ProgressionInterface _prog) { @@ -208,10 +226,13 @@ // final BufferedImage img = (BufferedImage) _saver.getUI().get(getImageId()); final Point2D.Double[] ptImg = (Point2D.Double[]) _saver.getUI().get(getPointImageId()); final Point2D.Double[] ptReal = (Point2D.Double[]) _saver.getUI().get(getPointRealId()); + String tmp=getImageFile(); + final String file = _saver.getUI().getString(getImageFile()); if (ptImg == null || ptReal == null || ptReal.length != ptImg.length || ptReal.length < 3) { + if(file!=null) + cq.setImagePath(file); return null; } - final String file = _saver.getUI().getString(getImageFile()); if (file != null) { final File f = new File(file); if (!f.exists()) { Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueImageRaster.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueImageRaster.java 2008-12-02 09:24:47 UTC (rev 4258) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueImageRaster.java 2008-12-02 11:12:31 UTC (rev 4259) @@ -38,6 +38,8 @@ public class ZCalqueImageRaster extends ZCalquePointEditable { BufferedImage imgAlpha_; + /** L'adresse de l'image. N'a de sens (et d'utilit\xE9) que si le model est null (l'image est inacc\xE9sible). */ + protected String imagePath_; public ZCalqueImageRaster() { this(null); @@ -47,6 +49,19 @@ return new BCalqueImagePersistence(); } + /** Retourne l'adresse de l'image. Non null uniquement si le model est null. */ + public String getImagePath(){ + if(modele_==null) + return imagePath_; + else + return null; + } + + /** Enregistre l'adresse de l'image (au cas o\xF9 le model est null). */ + public void setImagePath(String _path) { + imagePath_=_path; + } + public void setAlpha(final int _alpha) { if (alpha_ != _alpha) { imgAlpha_ = null; Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/wizard/FSigImageWizardStepImage.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/wizard/FSigImageWizardStepImage.java 2008-12-02 09:24:47 UTC (rev 4258) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/wizard/FSigImageWizardStepImage.java 2008-12-02 11:12:31 UTC (rev 4259) @@ -63,7 +63,16 @@ final BuLabel lbName_; final CtuluFileChooserPanel txtFile_; final BuTextField txtName_; - + /** + * Permet d'indiquer seulement quelques informations : l'adresse de l'image + * (pas n\xE9c\xE9ssairement valide) et le nom du calque. + */ + public void setDataPartial(String _path, String _name){ + txtFile_.getTf().setText(_path); + txtName_.setText(_name); + } + + public final void setData(final RasterDataInterface _data, final String _calqueName) { isUpdatingFromModel_ = true; if (_data.getImgFile() != null) { Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/wizard/FSigImageWizardTask.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/wizard/FSigImageWizardTask.java 2008-12-02 09:24:47 UTC (rev 4258) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/wizard/FSigImageWizardTask.java 2008-12-02 11:12:31 UTC (rev 4259) @@ -82,7 +82,7 @@ } public int getStepCount() { - return calqueToModify_ == null || force2Step_ ? 2 : 1; + return 2; } public void cancelTask() { @@ -94,11 +94,6 @@ BGroupeCalque dest_; ZCalqueImageRaster calqueToModify_; - /** - * boolean permettant de forcer des \xE9tapes au wizard. Utile lors de la - * modification de d'un calque image existant sans image. - */ - private boolean force2Step_=false; public void doTask() { if (calage_ == null) { @@ -203,13 +198,12 @@ if (_modelToModiy!=null) { calqueToModify_=_modelToModiy; if (_modelToModiy.getModelImage()!=null) { - force2Step_=false; final RasterDataInterface data=_modelToModiy.getModelImage().getData(); img_.setData(data, _modelToModiy.getTitle()); nextStep(); } else - force2Step_=true; + img_.setDataPartial(_modelToModiy.getImagePath(), _modelToModiy.getTitle()); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |