You can subscribe to this list here.
2008 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(46) |
Jul
(37) |
Aug
(154) |
Sep
(140) |
Oct
(132) |
Nov
(104) |
Dec
(67) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2009 |
Jan
(113) |
Feb
(73) |
Mar
(102) |
Apr
(106) |
May
(114) |
Jun
(67) |
Jul
(116) |
Aug
(48) |
Sep
(108) |
Oct
(296) |
Nov
(56) |
Dec
(53) |
2010 |
Jan
(95) |
Feb
(31) |
Mar
(40) |
Apr
(12) |
May
(10) |
Jun
(27) |
Jul
(19) |
Aug
(81) |
Sep
(48) |
Oct
(45) |
Nov
(40) |
Dec
(7) |
2011 |
Jan
(16) |
Feb
(32) |
Mar
(55) |
Apr
(38) |
May
(24) |
Jun
(37) |
Jul
(12) |
Aug
(16) |
Sep
(97) |
Oct
(90) |
Nov
(101) |
Dec
(89) |
2012 |
Jan
(18) |
Feb
(2) |
Mar
(54) |
Apr
(69) |
May
(97) |
Jun
(131) |
Jul
(70) |
Aug
(48) |
Sep
(48) |
Oct
(119) |
Nov
(194) |
Dec
(60) |
2013 |
Jan
(73) |
Feb
(35) |
Mar
(42) |
Apr
(28) |
May
(7) |
Jun
(17) |
Jul
(27) |
Aug
(10) |
Sep
(38) |
Oct
(12) |
Nov
(4) |
Dec
(16) |
2014 |
Jan
(33) |
Feb
(37) |
Mar
(19) |
Apr
(3) |
May
(47) |
Jun
(26) |
Jul
(22) |
Aug
|
Sep
(10) |
Oct
(30) |
Nov
(24) |
Dec
(19) |
2015 |
Jan
(13) |
Feb
(16) |
Mar
(36) |
Apr
(19) |
May
(5) |
Jun
(5) |
Jul
(3) |
Aug
(11) |
Sep
(22) |
Oct
(7) |
Nov
(14) |
Dec
|
2016 |
Jan
|
Feb
(26) |
Mar
(13) |
Apr
(61) |
May
|
Jun
|
Jul
(4) |
Aug
|
Sep
|
Oct
(27) |
Nov
(14) |
Dec
(21) |
2017 |
Jan
(30) |
Feb
(4) |
Mar
(3) |
Apr
(5) |
May
(69) |
Jun
(29) |
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <had...@us...> - 2008-12-08 18:25:01
|
Revision: 4280 http://fudaa.svn.sourceforge.net/fudaa/?rev=4280&view=rev Author: hadouxad Date: 2008-12-08 18:24:57 +0000 (Mon, 08 Dec 2008) Log Message: ----------- ***** Correction du Bug zoom:***** l'affichage du calque est op?\195?\169rationnel et proportionnel a sa widget! en utilisant la m?\195?\169thode calquePanel_.restaurer(); Mais the question is: Is the method optimized? (tout est dans EbliWidgetVueCalque) **** Evolution: Fonction duplcation layout **** possibilit?\195?\169 via le clic sur un bouton de dupliquer int?\195?\169gralement le contenu d'un layout et de g?\195?\169n?\195?\169rer une nouvelle trpostLayoutfille pour l'occasion Menu actions du trpostlayout Modified Paths: -------------- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/calque/ZEbliCalquesPanel.java Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/calque/ZEbliCalquesPanel.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/calque/ZEbliCalquesPanel.java 2008-12-08 18:24:20 UTC (rev 4279) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/calque/ZEbliCalquesPanel.java 2008-12-08 18:24:57 UTC (rev 4280) @@ -633,9 +633,18 @@ final Graphics2D g = i.createGraphics(); CtuluLibImage.setBestQuality(g); g.scale(CtuluLibImage.getRatio(_w, vc_.getWidth()), CtuluLibImage.getRatio(_h, vc_.getHeight())); - vc_.paintImage(g, _params); - g.dispose(); + + + + vc_.paintImage(g, _params); + + + + + g.dispose(); i.flush(); + + return i; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <had...@us...> - 2008-12-08 18:24:24
|
Revision: 4279 http://fudaa.svn.sourceforge.net/fudaa/?rev=4279&view=rev Author: hadouxad Date: 2008-12-08 18:24:20 +0000 (Mon, 08 Dec 2008) Log Message: ----------- ***** Correction du Bug zoom:***** l'affichage du calque est op?\195?\169rationnel et proportionnel a sa widget! en utilisant la m?\195?\169thode calquePanel_.restaurer(); Mais the question is: Is the method optimized? (tout est dans EbliWidgetVueCalque) **** Evolution: Fonction duplcation layout **** possibilit?\195?\169 via le clic sur un bouton de dupliquer int?\195?\169gralement le contenu d'un layout et de g?\195?\169n?\195?\169rer une nouvelle trpostLayoutfille pour l'occasion Menu actions du trpostlayout Modified Paths: -------------- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostLayoutFille.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostLayoutPanelController.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostProjet.java Added Paths: ----------- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/actions/TrPostActionDuplicateLayout.java Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostLayoutFille.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostLayoutFille.java 2008-12-08 16:30:11 UTC (rev 4278) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostLayoutFille.java 2008-12-08 18:24:20 UTC (rev 4279) @@ -3,6 +3,8 @@ import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.Point; +import java.awt.event.ComponentEvent; +import java.awt.event.ComponentListener; import java.awt.image.BufferedImage; import java.util.ArrayList; import java.util.HashSet; @@ -17,6 +19,8 @@ import javax.swing.JMenuBar; import javax.swing.JPanel; import javax.swing.JToolBar; +import javax.swing.event.InternalFrameEvent; +import javax.swing.event.InternalFrameListener; import org.fudaa.ctulu.CtuluCommandManager; import org.fudaa.ctulu.CtuluUndoRedoInterface; @@ -114,6 +118,8 @@ TrPostProjet projet_; + Dimension oldSize_; + /** * Constructeur de la fenetre. */ @@ -142,7 +148,46 @@ panelSouthSuiviSouris_ = new JLabel(); this.add(panelSouthSuiviSouris_, BorderLayout.SOUTH); + + oldSize_=getSize(); + //-- ajout du controller en cas de resize --// + this.addComponentListener(new ComponentListener(){ + @Override + public void componentHidden(ComponentEvent e) { + // TODO Auto-generated method stub + + } + + @Override + public void componentMoved(ComponentEvent e) { + // TODO Auto-generated method stub + + } + + @Override + public void componentResized(ComponentEvent e) { + // TODO Auto-generated method stub +// Dimension size=getSize(); +// System.out.println("Size nouvelle:"+size); +// if(size!=oldSize_ ){ +// controller_.getSceneCourante().resizeInnerWidget(size,oldSize_); +// +// //-- stockage de la taille comme ancienne size --// +// oldSize_=size; +// } + } + + @Override + public void componentShown(ComponentEvent e) { + // TODO Auto-generated method stub + + } + + }); + + + } /** Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostLayoutPanelController.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostLayoutPanelController.java 2008-12-08 16:30:11 UTC (rev 4278) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostLayoutPanelController.java 2008-12-08 18:24:20 UTC (rev 4279) @@ -60,6 +60,7 @@ import org.fudaa.fudaa.tr.post.actions.TrPostActionChangeSceneForWidget; import org.fudaa.fudaa.tr.post.actions.TrPostActionChooseAndCreateCalque; import org.fudaa.fudaa.tr.post.actions.TrPostActionDuplicate; +import org.fudaa.fudaa.tr.post.actions.TrPostActionDuplicateLayout; import org.fudaa.fudaa.tr.post.dialogSpec.TrPostWizardCreateScope; import org.jdesktop.swingx.ScrollPaneSelector; @@ -193,7 +194,10 @@ // comboMultiScenes_.addActionListener(this); // comboMultiScenes_.setMaximumSize(comboMultiScenes_.getPreferredSize()); // comboMultiScenes_.setMinimumSize(comboMultiScenes_.getPreferredSize()); - + + + + } // public BuComboBox getComboMultiScenes() { @@ -536,6 +540,7 @@ // -- action de duplication --// // init.add(new EbliWidgetActionDuplicate(getSceneCourante())); init.add(new TrPostActionDuplicate(getSceneCourante(), projet_)); + init.add(new TrPostActionDuplicateLayout(getSceneCourante(), projet_)); init.add(new TrPostActionChangeSceneForWidget(getSceneCourante(), projet_)); init.add(null); Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostProjet.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostProjet.java 2008-12-08 16:30:11 UTC (rev 4278) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostProjet.java 2008-12-08 18:24:20 UTC (rev 4279) @@ -1360,13 +1360,15 @@ /** * Cree une nouvelle fenetre dans le post contenant son jeu de layouts */ - public void createNewLayoutFrame() { + public TrPostLayoutFille createNewLayoutFrame() { final TrPostLayoutFille newLayoutFille = new TrPostLayoutFille(this); newLayoutFille.setTitle(newLayoutFille.getTitle() + " N\xB0 " + (++idx)); // addFillesLayout(newLayoutFille); impl_.addInternalFrame(newLayoutFille); + + return newLayoutFille; } } \ No newline at end of file Added: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/actions/TrPostActionDuplicateLayout.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/actions/TrPostActionDuplicateLayout.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/actions/TrPostActionDuplicateLayout.java 2008-12-08 18:24:20 UTC (rev 4279) @@ -0,0 +1,61 @@ +package org.fudaa.fudaa.tr.post.actions; + +import java.util.Iterator; +import java.util.List; + +import org.fudaa.ebli.visuallibrary.EbliScene; +import org.fudaa.ebli.visuallibrary.actions.EbliWidgetActionDuplicate; +import org.fudaa.ebli.visuallibrary.actions.EbliWidgetActionDuplicateLayout; +import org.fudaa.fudaa.tr.common.TrResource; +import org.fudaa.fudaa.tr.post.TrPostCommonImplementation; +import org.fudaa.fudaa.tr.post.TrPostLayoutFille; +import org.fudaa.fudaa.tr.post.TrPostProjet; + +import com.memoire.bu.BuDialogChoice; + + +/** + * Action qui duplique le layout en en creant un nouveau. + * @author Adrien Hadoux + * + */ +public class TrPostActionDuplicateLayout extends EbliWidgetActionDuplicateLayout{ + + TrPostProjet projet_; + + public TrPostActionDuplicateLayout(final EbliScene _scene, final TrPostProjet _projet) { + super(_scene); + + projet_ = _projet; + } + + /** + * surcharge de la methode. Creation d'un nouveau layout avec le contenu du duplicata + */ + @Override + protected EbliScene selectionneSceneNode() { + EbliScene dest = null; + TrPostLayoutFille fenetre = projet_.createNewLayoutFrame(); + dest = fenetre.controller_.getSceneCourante(); + return dest; + } + + public static String[] formatteFilles(final List<TrPostLayoutFille> ls) { + final String[] noms = new String[ls.size()]; + int cpt = 0; + for (final Iterator<TrPostLayoutFille> it = ls.iterator(); it.hasNext();) { + noms[cpt++] = it.next().getTitle(); + } + return noms; + } + + // public String[] formatteLayout(TrPostLayoutPanelController _controller) { + // String[] noms = new String[_controller.listeScenes_.size()]; + // + // for (int cpt = 0; cpt < _controller.listeScenes_.size(); cpt++) { + // noms[cpt] = "Layout " + (cpt + 1); + // } + // return noms; + // } + + } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2008-12-08 16:30:18
|
Revision: 4278 http://fudaa.svn.sourceforge.net/fudaa/?rev=4278&view=rev Author: bmarchan Date: 2008-12-08 16:30:11 +0000 (Mon, 08 Dec 2008) Log Message: ----------- Installation des biefs dans l'arbre des calques. Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BCalquePersistenceGroupe.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BCalquePersistenceSingle.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BGroupeCalque.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlVisuPanel.java Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BCalquePersistenceGroupe.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BCalquePersistenceGroupe.java 2008-12-05 14:35:47 UTC (rev 4277) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BCalquePersistenceGroupe.java 2008-12-08 16:30:11 UTC (rev 4278) @@ -21,6 +21,7 @@ import org.fudaa.ctulu.CtuluArkLoader; import org.fudaa.ctulu.CtuluArkSaver; +import org.fudaa.ctulu.CtuluLib; import org.fudaa.ctulu.CtuluLibArray; import org.fudaa.ctulu.CtuluLibString; import org.fudaa.ctulu.ProgressionInterface; @@ -178,6 +179,19 @@ return rs; } + protected BCalque findCalque(final BCalqueSaverInterface _cqName, final BCalqueSaverTargetInterface _pn, + final BCalque _parent) { + // On essaye de r\xE9cup\xE9rer le groupe s'il existe par d\xE9faut dans la hierarchie. + BGroupeCalque cq=(BGroupeCalque)super.findCalque(_cqName, _pn, _parent); + if (cq!=null) return cq; + + // Le groupe n'a pas \xE9t\xE9 trouv\xE9, on le construit. + cq=new BGroupeCalque(); + cq.setName(BGroupeCalque.findUniqueChildName(_parent)); + _parent.add(cq); + return cq; + } + public String restoreFrom(final CtuluArkLoader _loader, final BCalqueSaverTargetInterface _parentPanel, final BCalque _parentCalque, final String _parentDirEntry, final String _entryName, final ProgressionInterface _proj) { Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BCalquePersistenceSingle.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BCalquePersistenceSingle.java 2008-12-05 14:35:47 UTC (rev 4277) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BCalquePersistenceSingle.java 2008-12-08 16:30:11 UTC (rev 4278) @@ -139,11 +139,15 @@ } /** - * Retrouve le calque de nom donn\xE9 _cqName.getLayerName() dans la hierarchie des calques, \xE0 partir du calque _parent. - * @param _cqName - * @param _pn - * @param _parent - * @return + * Retrouve le calque de nom donn\xE9 _cqName.getLayerName() dans la hierarchie des calques, \xE0 partir du calque _parent.<p> + * Cette m\xE9thode peut \xEAtre surcharg\xE9e pour recr\xE9er les calques au fur et a mesure de leur lecture sur le fichier projet. En effet, + * la hierarchie des calques peut \xEAtre immuable, fix\xE9e par l'application, ou d\xE9pendre du projet pour les applications qui + * supportent l'ajout ou la suppression de calques par l'utilisateur. + * + * @param _cqName L'interface de transport des infos li\xE9es au calque \xE0 retrouver. + * @param _pn Le panneau contenant les calques. + * @param _parent Le calque parent + * @return Le calque retrouv\xE9, null si rien trouv\xE9. */ protected BCalque findCalque(final BCalqueSaverInterface _cqName, final BCalqueSaverTargetInterface _pn, final BCalque _parent) { Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BGroupeCalque.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BGroupeCalque.java 2008-12-05 14:35:47 UTC (rev 4277) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BGroupeCalque.java 2008-12-08 16:30:11 UTC (rev 4278) @@ -34,7 +34,8 @@ * @author Guillaume Desnoix */ public class BGroupeCalque extends BCalque { - + boolean isTitleModifiable_=false; + public BGroupeCalque() { super(); setDestructible(true); @@ -287,4 +288,16 @@ c[i].setVisible(_b); } } + + public boolean isTitleModifiable() { + return isTitleModifiable_; + } + + /** + * Definit si le titre peut \xEAtre modifi\xE9 depuis l'arbre des calques. + * @param _b true : Il est modifiable. + */ + public void setTitleModifiable(boolean _b) { + isTitleModifiable_=_b; + } } Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlVisuPanel.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlVisuPanel.java 2008-12-05 14:35:47 UTC (rev 4277) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlVisuPanel.java 2008-12-08 16:30:11 UTC (rev 4278) @@ -7,20 +7,17 @@ */ package org.fudaa.fudaa.modeleur; +import java.awt.event.ActionEvent; + import javax.swing.Action; -import org.fudaa.ebli.calque.BArbreCalque; -import org.fudaa.ebli.calque.BCalque; import org.fudaa.ebli.calque.BGroupeCalque; import org.fudaa.ebli.calque.ZSelectionEvent; -import org.fudaa.ebli.calque.ZSelectionListener; -import org.fudaa.ebli.calque.action.SceneSelectNextAction; -import org.fudaa.ebli.calque.action.SceneSelectPreviousAction; import org.fudaa.ebli.calque.action.SceneShowOrientationAction; import org.fudaa.ebli.commun.EbliActionInterface; import org.fudaa.ebli.commun.EbliActionMap; +import org.fudaa.ebli.commun.EbliActionSimple; import org.fudaa.ebli.commun.EbliComponentFactory; -import org.fudaa.ebli.ressource.EbliResource; import org.fudaa.fudaa.commun.FudaaLib; import org.fudaa.fudaa.commun.impl.FudaaCommonImplementation; import org.fudaa.fudaa.modeleur.action.CalqueDeleteCalqueAction; @@ -35,9 +32,6 @@ import org.fudaa.fudaa.modeleur.layer.MdlLayer2dProfile; import org.fudaa.fudaa.modeleur.layer.MdlLayer2dZone; import org.fudaa.fudaa.modeleur.layer.MdlLayerFactory; -import org.fudaa.fudaa.modeleur.layer.MdlModel2dCloud; -import org.fudaa.fudaa.modeleur.layer.MdlModel2dLevel; -import org.fudaa.fudaa.modeleur.layer.MdlModel2dProfile; import org.fudaa.fudaa.ressource.FudaaResource; import org.fudaa.fudaa.sig.layer.FSigEditor; import org.fudaa.fudaa.sig.layer.FSigImageImportAction; @@ -61,6 +55,7 @@ BGroupeCalque cqAlti_; BGroupeCalque cqSing_; BGroupeCalque cqMdl1d_; + BGroupeCalque cqBiefs_; /** * Construction des calques. Une partie est d\xE9j\xE0 construite par d\xE9faut dans les classes @@ -114,8 +109,9 @@ public void setActive(boolean _active) {} /** - * Initialisation ou reinitialisation des calques. - * @param _build Si true, les calques g\xE9om\xE9triques sont construits par d\xE9faut. + * Initialisation ou reinitialisation des calques contenus dans le panneau de visualisation. + * @param _build Si true, les calques g\xE9om\xE9triques sont construits par d\xE9faut, vides. Sinon, ils seront reconstruits par la + * proc\xE9dure de restitution du projet. */ public void initCalques(boolean _build) { removeAllCalqueDonnees(); @@ -123,6 +119,7 @@ buildSingLayerGroup(_build); buildModel1dLayerGroup(_build); buildImageGroup(); + buildBiefsLayerGroup(); installLayerActions(); } @@ -148,6 +145,13 @@ EbliActionInterface actDeleteLayer=new CalqueDeleteCalqueAction(getEditor(),this.getArbreCalqueModel()); this.getArbreCalqueModel().setActionDelete(actDeleteLayer); + + EbliActionInterface actNewBief=new EbliActionSimple(FudaaLib.getS("Nouveau bief"),FudaaResource.FUDAA.getIcon("ajouter"),null) { + public void actionPerformed(final ActionEvent _e) { + addBief(true); + } + }; + cqBiefs_.setActions(new EbliActionInterface[]{actNewBief}); } /** @@ -249,7 +253,51 @@ } _menu.add(contextTools_); } + + /** + * Mise en place du groupe des biefs. + */ + protected void buildBiefsLayerGroup() { + cqBiefs_ = new BGroupeCalque(); + cqBiefs_.setTitle(MdlResource.MDL.getString("Biefs")); + cqBiefs_.setName("gcBiefs"); + cqBiefs_.putClientProperty(Action.SHORT_DESCRIPTION, TrResource.getS("Les biefs")); + cqBiefs_.setDestructible(false); + addCalque(cqBiefs_); + } + + /** + * Mise en place d'un bief. + */ + protected void addBief(boolean _build) { + BGroupeCalque cqBief=new BGroupeCalque(); + cqBief.setTitleModifiable(true); + String name=BGroupeCalque.findUniqueChildName(cqBiefs_); + cqBief.setTitle(MdlResource.MDL.getString("Bief")); + cqBief.setName(name); + cqBief.putClientProperty(Action.SHORT_DESCRIPTION, TrResource.getS("Un bief")); + cqBief.setDestructible(true); + cqBiefs_.add(cqBief); + if (!_build) return; + + MdlLayer2dProfile cqProfile=new MdlLayer2dProfile(getEditor()); + cqProfile.setName(BGroupeCalque.findUniqueChildName(cqBief, cqProfile.getExtName())); + cqBief.add(cqProfile); + + MdlLayer1dAxe cqAxe=new MdlLayer1dAxe(getEditor()); + cqAxe.setName(BGroupeCalque.findUniqueChildName(cqBief, cqAxe.getExtName())); + cqBief.add(cqAxe); + + MdlLayer2dDirectionLine cqDirect=new MdlLayer2dDirectionLine(getEditor()); + cqDirect.setName(BGroupeCalque.findUniqueChildName(cqBief, cqDirect.getExtName())); + cqBief.add(cqDirect); + + MdlLayer2dConstraintLine cqConst=new MdlLayer2dConstraintLine(getEditor()); + cqConst.setName(BGroupeCalque.findUniqueChildName(cqBief, cqConst.getExtName())); + cqBief.add(cqConst); + } + /** * Mise a jour des actions. * @see org.fudaa.ebli.calque.ZSelectionListener#selectionChanged(org.fudaa.ebli.calque.ZSelectionEvent) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2008-12-05 14:35:54
|
Revision: 4277 http://fudaa.svn.sourceforge.net/fudaa/?rev=4277&view=rev Author: bmarchan Date: 2008-12-05 14:35:47 +0000 (Fri, 05 Dec 2008) Log Message: ----------- Created tag FudaaModeleur_0_08. Added Paths: ----------- tags/FudaaModeleur_0_08/ tags/FudaaModeleur_0_08/fudaa_devel/ tags/FudaaModeleur_0_08/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlFille1d.java tags/FudaaModeleur_0_08/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlImplementation.java tags/FudaaModeleur_0_08/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/MdlShow1DFrameAction.java Removed Paths: ------------- tags/FudaaModeleur_0_08/fudaa_devel/ tags/FudaaModeleur_0_08/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlImplementation.java tags/FudaaModeleur_0_08/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/MdlShow1DFrameAction.java Property changes on: tags/FudaaModeleur_0_08 ___________________________________________________________________ Added: svn:ignore + eclipse_projects Added: svn:mergeinfo + /branches/Br_FudaaModeleur_TF:3445-3850 /branches/FudaaModeleur_TC1:3861-3891 Copied: tags/FudaaModeleur_0_08/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlFille1d.java (from rev 4276, branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlFille1d.java) =================================================================== --- tags/FudaaModeleur_0_08/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlFille1d.java (rev 0) +++ tags/FudaaModeleur_0_08/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlFille1d.java 2008-12-05 14:35:47 UTC (rev 4277) @@ -0,0 +1,71 @@ +/* + * @creation 20 janv. 08 + * @modification $Date$ + * @license GNU General Public License 2 + * @copyright (c)1998-2008 CETMEF 2 bd Gambetta F-60231 Compiegne + * @mail fud...@li... + */ +package org.fudaa.fudaa.modeleur; + +import java.awt.Dimension; +import java.awt.Graphics; +import java.awt.print.PageFormat; + +import com.db4o.ObjectContainer; + +import com.memoire.bu.BuCutCopyPasteInterface; +import com.memoire.bu.BuInformationsDocument; +import com.memoire.bu.BuUndoRedoInterface; + +import org.fudaa.ctulu.CtuluCommandManager; +import org.fudaa.ctulu.CtuluExportDataInterface; +import org.fudaa.ctulu.CtuluUI; +import org.fudaa.ctulu.CtuluUndoRedoInterface; +import org.fudaa.ctulu.ProgressionInterface; +import org.fudaa.ctulu.image.CtuluImageImporter; +import org.fudaa.ctulu.image.CtuluImageProducer; + +import org.fudaa.ebli.calque.ZEbliFilleCalques; +import org.fudaa.ebli.impression.EbliFilleImprimable; + +import org.fudaa.fudaa.commun.impl.FudaaCommonImplementation; +import org.fudaa.fudaa.commun.save.FudaaFilleVisuPersistence; +import org.fudaa.fudaa.commun.save.FudaaSavable; +import org.fudaa.fudaa.commun.save.FudaaSaveZipWriter; +import org.fudaa.fudaa.sig.FSigResource; + +/** + * La fenetre interne vue 2D des donn\xE9es du modeleur. Elle construit le composant arbre de + * calques {@link org.fudaa.ebli.calque.BArbreCalque}. La plupart des traitements est + * d\xE9l\xE9gu\xE9e au composant {@link org.fudaa.ebli.calque.ZEbliCalquesPanel} encapsul\xE9. + * + * @author fred deniger + * @author bertrand marchand + * @version $Id$ + */ +public class MdlFille1d extends EbliFilleImprimable { + + public MdlFille1d(FudaaCommonImplementation _appli) { + super("", true, false, true, true, _appli, null); + setName("mdlFille1d"); + setTitle(FSigResource.FSIG.getString("Vue 1D")); + setPreferredSize(new Dimension(500, 400)); + setClosable(true); + } + + /* (non-Javadoc) + * @see org.fudaa.ebli.impression.EbliPageable#print(java.awt.Graphics, java.awt.print.PageFormat, int) + */ + public int print(Graphics _g, PageFormat _format, int _page) { + // TODO Auto-generated method stub + return 0; + } + + /* (non-Javadoc) + * @see java.awt.print.Pageable#getNumberOfPages() + */ + public int getNumberOfPages() { + // TODO Auto-generated method stub + return 0; + } +} Deleted: tags/FudaaModeleur_0_08/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlImplementation.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlImplementation.java 2008-12-05 14:18:58 UTC (rev 4275) +++ tags/FudaaModeleur_0_08/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlImplementation.java 2008-12-05 14:35:47 UTC (rev 4277) @@ -1,755 +0,0 @@ -/* - * @creation 7 juin 07 - * @license GNU General Public License 2 - * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne - * @mail de...@fu... - */ -package org.fudaa.fudaa.modeleur; - -import java.awt.Dimension; -import java.awt.Point; -import java.awt.event.ActionEvent; -import java.beans.PropertyVetoException; -import java.io.File; -import java.io.IOException; -import java.util.List; - -import javax.swing.JComponent; -import javax.swing.JOptionPane; -import javax.swing.filechooser.FileFilter; - -import org.fudaa.ctulu.CtuluArkLoader; -import org.fudaa.ctulu.CtuluExportDataInterface; -import org.fudaa.ctulu.CtuluLibFile; -import org.fudaa.ctulu.CtuluLibString; -import org.fudaa.ctulu.CtuluRunnable; -import org.fudaa.ctulu.CtuluTaskDelegate; -import org.fudaa.ctulu.ProgressionInterface; -import org.fudaa.ctulu.gui.CtuluDialogPanel; -import org.fudaa.ctulu.gui.CtuluFileChooserTestWritable; -import org.fudaa.ctulu.gui.CtuluLibDialog; -import org.fudaa.ebli.impression.EbliMiseEnPagePreferencesPanel; -import org.fudaa.ebli.ressource.EbliResource; -import org.fudaa.fudaa.commun.FudaaLib; -import org.fudaa.fudaa.commun.FudaaProjectStateListener; -import org.fudaa.fudaa.commun.FudaaProjetStateInterface; -import org.fudaa.fudaa.commun.impl.FudaaCommonImplementation; -import org.fudaa.fudaa.commun.impl.FudaaGuiLib; -import org.fudaa.fudaa.commun.impl.FudaaLookPreferencesPanel; -import org.fudaa.fudaa.commun.impl.FudaaStartupExitPreferencesPanel; -import org.fudaa.fudaa.commun.save.FudaaSaveLib; -import org.fudaa.fudaa.commun.save.FudaaSaveProject; -import org.fudaa.fudaa.commun.save.FudaaSaveZipLoader; -import org.fudaa.fudaa.modeleur.action.MdlShow2DFrameAction; -import org.fudaa.fudaa.ressource.FudaaResource; -import org.fudaa.fudaa.sig.FSigProjectPersistence; -import org.fudaa.fudaa.sig.FSigResource; -import org.fudaa.fudaa.tr.common.TrResource; - -import com.memoire.bu.BuAbstractPreferencesPanel; -import com.memoire.bu.BuBrowserPreferencesPanel; -import com.memoire.bu.BuColumn; -import com.memoire.bu.BuDesktopPreferencesPanel; -import com.memoire.bu.BuInformationsSoftware; -import com.memoire.bu.BuLanguagePreferencesPanel; -import com.memoire.bu.BuLib; -import com.memoire.bu.BuMainPanel; -import com.memoire.bu.BuMenu; -import com.memoire.bu.BuMenuBar; -import com.memoire.bu.BuMenuItem; -import com.memoire.bu.BuMenuRecentFiles; -import com.memoire.bu.BuPreferences; -import com.memoire.bu.BuRegistry; -import com.memoire.bu.BuResource; -import com.memoire.bu.BuScrollPane; -import com.memoire.bu.BuTaskView; -import com.memoire.bu.BuUserPreferencesPanel; -import com.memoire.fu.FuLog; - -/** - * La classe principale de mise en place de l'application, de gestion des - * actions, des \xE9tats de l'interface, etc. - * - * @author Bertrand Marchand - * @version $Id$ - */ -public class MdlImplementation extends FudaaCommonImplementation implements FudaaProjectStateListener { - - protected static BuInformationsSoftware isMdl_ = new BuInformationsSoftware(); - static { - isMdl_.name = "Modeleur"; - isMdl_.version = "0.08"; - isMdl_.date = "2008-12-05"; - isMdl_.rights = "Tous droits r\xE9serv\xE9s. CETMEF (c)1999-2008"; - isMdl_.license = "GPL2"; - isMdl_.languages = "fr,en"; - isMdl_.authors=new String[]{"F.Deniger, B.Marchand"}; - isMdl_.contact="nic...@eq..."; - isMdl_.http="http://www.fudaa.fr/mdl/"; - - isMdl_.logo = EbliResource.EBLI.getIcon("draw-palette"); - isMdl_.banner = BuResource.BU.getIcon("aproposde_32"); - } - - public static File getDestFile(File _init) { - return CtuluLibFile.appendExtensionIfNeeded(_init, getExtension()); - } - - public static String getExtension() { - return "mod.zip"; - } - - public static class MdlFileFilter extends FileFilter { - final String extension_ = '.' + getExtension(); - - public boolean accept(File _f) { - return _f != null && (_f.isDirectory() || _f.getName().endsWith(extension_)); - } - - public String getDescription() { - return FSigResource.FSIG.getString("Fudaa Modeleur (*.mod.zip)"); - } - - } - - public static BuInformationsSoftware informationsSoftware() { - return isMdl_; - } - - public final static FileFilter FILTER = new MdlFileFilter(); - - /** Fenetre interne pour le modeleur 2D. */ - MdlFille2d mdl2dFrame_; - /** Projet modeleur. */ - MdlProjet project_; - - public MdlImplementation() { - super(); - useNewHelp_ = false; - } - - /** - * Retourne le fichier s\xE9lectionn\xE9 par boite de dialogue. - * @param _saveDialog true : Save dialog, test si fichier existant avant ecriture. - * @return LE fichier, ou null si op\xE9ration abort\xE9e. - */ - private File chooseNewFile(boolean _saveDialog) { - return getDestFile(chooseFile(_saveDialog)); - } - - private File chooseFile(boolean _saveDialog) { - return FudaaGuiLib.ouvrirFileChooser(FSigResource.FSIG.getString("Fichier modeleur"), FILTER, this.getFrame(), - _saveDialog, _saveDialog ? new CtuluFileChooserTestWritable(this) : null); - } - - protected void setFileIfNeeded() { - if (project_.getParamsFile() == null) { - project_.setParamFile(chooseNewFile(true)); - } - } - - public void projectStateChanged(FudaaProjetStateInterface _proj) { - updateActionsState(); - } - - /** - * Mise \xE0 jour de l'\xE9tat des boutons. - */ - void updateActionsState() { - boolean bprjOpen=project_!=null; - boolean bprjModPar=bprjOpen && project_.getProjectState().isParamsModified(); - boolean buiMod=bprjOpen && project_.getProjectState().isUIModified(); - - setEnabledForAction("ENREGISTRER", bprjModPar | buiMod); - setEnabledForAction("ENREGISTRERSOUS", bprjOpen); - setEnabledForAction("FERMER", bprjOpen); - setEnabledForAction("IMPORT_PROJECT", bprjOpen); - setEnabledForAction(CtuluExportDataInterface.EXPORT_CMD, bprjOpen); - } - - /** - * Creation de la vue 2D, et ajout. - */ - void createNew2dFrame() { - mdl2dFrame_ = new MdlFille2d(this); - addInternalFrame(mdl2dFrame_); - } - - /** - * @return La vue 2D, ou null si inexistante. - */ - public MdlFille2d get2dFrame() { - return mdl2dFrame_; - } - - protected boolean buildExportDataToolIcon() { - return true; - } - - protected boolean buildFudaaReportTool() { - return true; - } - - protected boolean buildImageToolIcon() { - return true; - } - - /** - * Ferme le projet, ferme les fenetres associ\xE9s, sans demande d'enregistrement en cas - * de modif (ce controle a \xE9t\xE9 effectu\xE9 en amont). - */ - protected void closeProject() { - if (project_==null) return; - project_.close(); - try { - mdl2dFrame_.setClosed(true); - } catch (PropertyVetoException _evt) { - FuLog.error(_evt); - - } - removeInternalFrames(getAllInternalFrames()); - getMainMenuBar().getMenu("mnPROJECT").setVisible(false); - project_ = null; - } - - /** - * Cr\xE9e un nouveau projet, la fenetre 2D si necessaire. - * @param _add true : Recr\xE9e la fenetre. - */ - protected void createProject(final boolean _add) { - project_ = new MdlProjet(); - project_.setOpening(true); - if (_add) createNew2dFrame(); - else ((MdlVisuPanel)mdl2dFrame_.getVisuPanel()).initCalques(false); - project_.install(this); - BuLib.invokeLater(new Runnable() { - - public void run() { - project_.setOpening(false); -// changeSaveActions(false); - updateActionsState(); - project_.setSaved(); - getMainMenuBar().getMenu("mnPROJECT").setVisible(true); - } - }); - } - - protected boolean useScrollInBuDesktop() { - return true; - } - - public void actionPerformed(ActionEvent _evt) { - final String action = _evt.getActionCommand(); - if (action == null) { - return; - } - if ("OUVRIR".equals(action)) { - ouvrir(null); - } else if ("ENREGISTRER".equals(action)) { - save(); - } else if ("ENREGISTRERSOUS".equals(action)) { - saveAs(); - } else if ("FERMER".equals(action)) { - close(); - } else if ("CREER".equals(action)) { - create(); - } else if ("IMPORT_PROJECT".equals(action)) { - importProject(); - } else if ("AIDE_INDEX".equals(action)) { - displayHelp(getAideIndexUrl()); - } else if (action.startsWith("TOGGLE")) { - final BuColumn c = getMainPanel().getRightColumn(); - final JComponent comp = c.getToggleComponent(action); - if (comp != null) { - comp.setVisible(!comp.isVisible()); - c.revalidate(); - } - } else if (action.startsWith("REOUVRIR")) { - FuLog.trace(action.substring(9,action.length()-1)); - ouvrir(new File(action.substring(9,action.length()-1))); - } else - super.actionPerformed(_evt); - } - - /** - * Met a jour les fichiers recents chaque fois que necessaire. - */ - private void updateRecentFiles(File _fichier) { - getMainMenuBar().addRecentFile(_fichier.getPath(),null); - MdlPreferences.MDL.writeIniFile(); - } - - /** - * Surcharge de la m\xE9thode pour pouvoir sauvegarder les pr\xE9f\xE9rences. - */ - public void exit() { - confirmExit(); - } - - /** - * Confirmation de la sortie avec ou sans sauvegarde. - */ - public boolean confirmExit() { - if (!FudaaStartupExitPreferencesPanel.isExitConfirmed() || - question(BuResource.BU.getString("Quitter"), BuResource.BU - .getString("Voulez-vous vraiment quitter ce logiciel ?"))) { - return saveAndCloseProjet(new Runnable() { - // Lanc\xE9 apr\xE8s la sauvegarde, si op\xE9ration de sauvegarde concluante ou si pas de sauvegarde demand\xE9e. - public void run() { - savePreferencesAndTerminate(); - } - }); - } - return true; - } - - /** - * Action "Creer" un nouveau projet. - */ - public void create() { - saveAndCloseProjet(new Runnable() { - public void run() { - createProject(true); - } - }); - } - - /** - * Action "Fermer" le projet en cours. - */ - public void close() { - saveAndCloseProjet(null); - updateActionsState(); - } - - protected String getAideIndexUrl() { - return getHelpDir() + "modeleur/index.html"; - } - - public BuPreferences getApplicationPreferences() { - return null; - } - - public BuInformationsSoftware getInformationsSoftware() { - return informationsSoftware(); - } - - /** - * Action "Ouvrir" un nouveau projet. Peut demander la sauvegarde du projet pr\xE9c\xE9demment ouvert si - * existant. - * @param _f Le fichier projet \xE0 ouvrir. null, si le fichier doit etre choisi par l'utilisateur. - */ - public void ouvrir(final File _f) { - if (isProjectModified()) { - saveAndCloseProjet(new Runnable() { - - public void run() { - ouvrir(_f); - } - }); - return; - } - - closeProject(); - - final File f = CtuluLibFile.exists(_f) ? _f : chooseFile(false); - if (f==null) return; // Abandon utilisateur. - - createProject(false); - setGlassPaneStop(); - new CtuluRunnable(BuResource.BU.getString("Ouvrir"), MdlImplementation.this) { - - public boolean run(ProgressionInterface _proj) { - project_.setOpening(true); - Runnable r = null; - try { - try { - FudaaSaveZipLoader loader=new FudaaSaveZipLoader(f); - // Recup des infos pour utilisateur. - BuInformationsSoftware is=FudaaSaveProject.getSoftwareInfos(loader); - FuLog.warning("File version : "+(is.version==null ? "Undefined":is.version)); - - r= FudaaSaveLib.restoreFille(MdlImplementation.this, mdl2dFrame_, _proj,loader); - } catch (final IOException _evt) { - FuLog.error(_evt); - - } - - project_.setParamFile(f); - - } finally { - - final Runnable swingRun = r; - BuLib.invokeLater(new Runnable() { - - public void run() { - try { - addInternalFrame(mdl2dFrame_); - if (swingRun != null) swingRun.run(); - - // le projet a ete install\xE9: on enl\xE8ve les flag de modification - project_.setOpening(false); - project_.setSaved(); - if (swingRun == null) { - MdlImplementation.this.warn(BuResource.BU.getString("Ouvrir"), FSigResource.FSIG - .getString("Le projet n'a pas \xE9t\xE9 ouvert!")); - } - else { - updateRecentFiles(project_.getParamsFile()); - } - } finally { - unsetGlassPaneStop(); - - } - } - - }); - - } - return r != null; - } - }.run(); - } - - /** - * Action "Enregistrer" le projet. - */ - public void save() { - if (project_.getParamsFile() != null) { - CtuluRunnable act = new CtuluRunnable(FudaaSaveLib.getActionSaveTitle(), this) { - - public boolean run(ProgressionInterface _proj) { - if (FSigProjectPersistence.saveProject(MdlImplementation.this, project_, project_.getParamsFile(), _proj)) { - updateRecentFiles(project_.getParamsFile()); - return true; - } - return false; - } - }; - act.setAfterRunnable(getSaveSwingRunnable(project_.getParamsFile()), true); - act.run(); - } else - saveAs(); - } - - /** - * Action "Enregistrer sous" le projet. - */ - public void saveAs() { - final File f = chooseNewFile(true); - if (f == null) return; - - CtuluRunnable act = new CtuluRunnable(FudaaSaveLib.getActionSaveTitle(), this) { - - public boolean run(ProgressionInterface _proj) { - if (FSigProjectPersistence.saveProject(MdlImplementation.this, project_, f, _proj)) { - updateRecentFiles(f); - return true; - } - return false; - } - }; - act.setAfterRunnable(getSaveSwingRunnable(f), true); - act.run(); - } - - protected boolean isProjectModified() { - return project_ != null - && (project_.getProjectState().isParamsModified() || project_.getProjectState().isUIModified()); - } - - public void importProject() { - MdlProjectImportPanel pn=new MdlProjectImportPanel(); - if (CtuluDialogPanel.isOkResponse(pn.afficheModale(getFrame(), "Import d'un projet"))) { - File f=pn.getFile(); - try { - FudaaSaveZipLoader loader = new FudaaSaveZipLoader(f); - String[] ignoredLayers=pn.getIgnoredLayers(); - for (String s : ignoredLayers) { - loader.setOption(CtuluArkLoader.OPTION_LAYER_IGNORE+s,CtuluLibString.toString(true)); - } - - final CtuluTaskDelegate createTask = createTask("Import d'un projet"); -// FIXME BM: Suppression de la tache dans un thread diff\xE9rent, car l'appli se bloque -// Probable pb de deadlock. -// createTask.start(new Runnable() { -// public void run() { - FudaaSaveLib.restoreAndLaunch(MdlImplementation.this, mdl2dFrame_, createTask.getStateReceiver(), loader); -// } -// }); - - // Liberation du fichier. - loader.close(); - } catch (final IOException _evt) { - FuLog.error(_evt); - - } - } - } - - /** - * Dans le thread swing.... - * - * @param _relaunch l'exe a lancer apr\xE8s: si l'utilisateur a accept\xE9 la fermeture du projet - */ - public boolean saveAndCloseProjet(final Runnable _relaunch) { - final Runnable r = new Runnable() { - - public void run() { - closeProject(); - if (_relaunch != null) _relaunch.run(); - } - }; - boolean save = false; - if (isProjectModified()) { - final int i = CtuluLibDialog.confirmExitIfProjectisModified(getFrame()); - // l'utilisateur veut annuler l'op\xE9ration - if (i == JOptionPane.CANCEL_OPTION) { - FuLog.debug("FSI: close operation cancelled by user"); - return false; - } - save = (i == JOptionPane.OK_OPTION); - } - - FuLog.debug("FSI: close operation accepted and save option= " + save); - // pas de sauvegarde: on lance l'op\xE9ration suivante: - if (!save) { - r.run(); - } else { - // on initilialise le fichier de dest si n\xE9cessaire - setFileIfNeeded(); - if (project_.getParamsFile()==null) return false; - CtuluRunnable act = new CtuluRunnable(FudaaSaveLib.getActionSaveTitle(), this) { - - public boolean run(ProgressionInterface _prog) { - // le fichier peut etre null si l'utilisateur a refuse de pr\xE9ciser un fichier - // dans ce cas, on ne sauvegarde pas. - if (project_.getParamsFile() != null) { - setGlassPaneStop(); - FSigProjectPersistence.saveProject(MdlImplementation.this, project_, - project_.getParamsFile(), _prog); - updateRecentFiles(project_.getParamsFile()); - - unsetGlassPaneStop(); - return true; - } - else return false; - } - }; - // le r sera lance apres et dans le thread swing - act.setAfterRunnable(r, true); - act.run(); - return false; - } - return true; - } - - protected Runnable getSaveSwingRunnable(final File _paramFile) { - return new Runnable() { - - public void run() { - if (_paramFile != null) project_.setParamFile(_paramFile); - project_.setSaved(); - - } - }; - } - - /** - * Construit le menu projet. - * @return Le menu projet. - */ - protected BuMenu buildProjectMenu() { - BuMenu mn=new BuMenu(FudaaResource.FUDAA.getString("Projet"),"mnPROJECT"); - mn.add(new MdlShow2DFrameAction(this)); -// mnProject.add(new MdlShow1DFrameAction(this)); - - mn.setVisible(false); - return mn; - } - - /** - * Methode surcharg\xE9e pour les panneau de pr\xE9f\xE9rence. - */ - protected void buildPreferences(final List<BuAbstractPreferencesPanel> _frAddTab) { - _frAddTab.add(new BuUserPreferencesPanel(this)); - _frAddTab.add(new BuLanguagePreferencesPanel(this)); - _frAddTab.add(new BuDesktopPreferencesPanel(this)); - _frAddTab.add(new FudaaStartupExitPreferencesPanel(true)); - _frAddTab.add(new FudaaLookPreferencesPanel(this)); - _frAddTab.add(new BuBrowserPreferencesPanel(this)); - _frAddTab.add(new EbliMiseEnPagePreferencesPanel()); - } - - /** - * Cr\xE9ation du panneau des taches, dans la colonne de droite. - */ - protected void buildTaskView() { - final BuMainPanel mp = getMainPanel(); - final BuColumn lc = mp.getLeftColumn(); - lc.setFocusable(false); - final BuColumn rc = mp.getRightColumn(); - rc.setFocusable(false); - lc.setBorder(null); - // rc.setBorder(new EmptyBorder(0,2,0,2)); - BuTaskView taches = new BuTaskView(); - taches.setToolTipText(TrResource.getS("Les t\xE2ches en cours")); - final BuScrollPane sp = new BuScrollPane(taches); - sp.setPreferredSize(new Dimension(150, 80)); - sp.setToolTipText(TrResource.getS("Les t\xE2ches en cours")); - rc.addToggledComponent(BuResource.BU.getString("T\xE2ches"), "TOGGLE_TACHE", BuResource.BU.getToolIcon("tache"), sp, - true, this).setToolTipText(TrResource.getS("Cacher/Afficher les t\xE2ches")); - mp.setTaskView(taches); - } - - /** - * Sauvegarde des pr\xE9f\xE9rences de l'appli \xE0 la sortie. - * - * Remarque importante : Certaines infos sauv\xE9es par cette m\xE9thode sont relues - * par d'autres applications Fudaa, qui risquent alors de s'afficher de facon - * inattendue. - */ - protected void savePreferencesAndTerminate() { - final Point p = getFrame().getLocation(); - final Dimension d = getFrame().getSize(); - BuPreferences.BU.putIntegerProperty("window.x", p.x); - BuPreferences.BU.putIntegerProperty("window.y", p.y); - BuPreferences.BU.putIntegerProperty("window.w", d.width); - BuPreferences.BU.putIntegerProperty("window.h", d.height); - BuPreferences.BU.writeIniFile(); - - BuRegistry.unregister(this.getFrame()); - } - - /** - * Mise en place de l'application ava,nt affichage. - */ - public void init() { - super.init(); - // Pour forcer l'activation du command listener. - getUndoCmdListener(); - - removeUnusedActions(); - final BuMenuBar mb = getMainMenuBar(); - // on enleve le menu des look and feel : moche car tout n'est pas mis a jour -/* Issu de Fudaa-Prepro - final BuMenu mAide = (BuMenu) b.getMenu("MENU_AIDE"); - - mAide.add(TrLib.buildAideContextItem(this), 0); - TrLib.addJavawsForJnlp(mAide); - TrLib.addJava3DJMFTest(mAide);*/ - - setEnabledForAction("QUITTER", true); - setEnabledForAction("PREFERENCE", true); - setEnabledForAction("CREER", true); - setEnabledForAction("OUVRIR", true); - setEnabledForAction("IMPORTER", true); - setEnabledForAction("EXPORTER", true); - - BuMenuRecentFiles mr= (BuMenuRecentFiles)mb.getMenu("REOUVRIR"); - if (mr != null) { - mr.setPreferences(MdlPreferences.MDL); - mr.setResource(MdlResource.MDL); - mr.setEnabled(true); - } - -/* setEnabledForAction("MAJ", true); - setEnabledForAction("SEND_COMMENT", true); - setEnabledForAction("LAUNCH_JAVAWS", true); - final BuMenu mFichier = (BuMenu) b.getMenu("MENU_FICHIER"); - mFichier.addMenuItem(TrResource.getS("Fermer toutes les applications"), "CLOSE_ALL", BuResource.BU - .getIcon("fermer"), true, 0); - final BuToolBar tb = getMainToolBar(); - if (!isSupervisor()) { - - tb.addToolButton(TrResource.getSupervisorName(), TrResource.getS("ouvrir le superviseur"), "SUPERVISEUR", - TrResource.getSupervisorIcon(), true).setVisible(true); - - }*/ - // les menus exporter et importer sont construit dynamiquement -// b.getMenu(getExporterCmd()).addItemListener(this); - BuMenu mmImport = (BuMenu) mb.getMenu("IMPORTER"); - BuMenu mnExport = (BuMenu) mb.getMenu("EXPORTER"); - -// menu.addMenuItem(FSigImageImportAction.getCommonTitle(), "IMPORT_IMAGE", FSigImageImportAction.getCommonImage(), -// this).setEnabled(false); - mmImport.addMenuItem(FudaaLib.getS("Importer un projet"), "IMPORT_PROJECT", BuResource.BU.getMenuIcon("importer"), this) - .setEnabled(false); -// menu.addItemListener(this); - setEnabledForAction("IMPORT_PROJECT", true); - mmImport.setEnabled(true); - - BuMenuItem itExportData = new BuMenuItem(); - super.initExportDataButton(itExportData); - mnExport.add(itExportData); - - BuMenu mnProject=buildProjectMenu(); - mb.addMenu(mnProject); - -/* setEnabledForAction("RANGERICONES", true); - if (!isSupervisor()) { - final JComponent cp = getMainPanel().getMiddleComponent(); - if (cp instanceof JScrollPane) { - ScrollPaneSelector.installScrollPaneSelector((JScrollPane) cp); - } - }*/ - buildTaskView(); - } - - /** - * Suppression des commandes par d\xE9faut dans Fudaa. - */ - protected void removeUnusedActions() { -/* Issu de Fudaa-Prepro - final BuMenu r = (BuMenu) getMainMenuBar().getMenu("MENU_EDITION"); - if (r != null) { - r.removeAll(); - r.addMenuItem(BuResource.BU.getString("D\xE9faire"), "DEFAIRE", false, KeyEvent.VK_Z); - r.addMenuItem(BuResource.BU.getString("Refaire"), "REFAIRE", false).setAccelerator( - KeyStroke.getKeyStroke(KeyEvent.VK_Z, InputEvent.CTRL_MASK | InputEvent.SHIFT_MASK)); - // normalement Ctrl-Y - // r.addSeparator(); - // - r.addMenuItem(BuResource.BU.getString("Copier"), "COPIER", false, KeyEvent.VK_C); - r.addMenuItem(BuResource.BU.getString("Couper"), "COUPER", false, KeyEvent.VK_X); - r.addMenuItem(BuResource.BU.getString("Coller"), "COLLER", false, KeyEvent.VK_V); - // r.addMenuItem(BuResource.BU.getString("Dupliquer" ),"DUPLIQUER" ,false) - // .setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,KeyEvent.CTRL_MASK|KeyEvent.SHIFT_MASK)); - r.addSeparator(); - FSigLib.addSelectionAction(r, null); - // r.addMenuItem(BuResource.BU.getString("Remplacer..." ),"REMPLACER" - // ,false,KeyEvent.VK_R); - r.addSeparator(); - r.addMenuItem(BuResource.BU.getString("Pr\xE9f\xE9rences"), "PREFERENCE", false, KeyEvent.VK_F2); - addConsoleMenu(r); - final BuToolBar tb = getMainToolBar(); - BuActionRemover.removeAction(tb, "COUPER"); - BuActionRemover.removeAction(tb, "COLLER"); - BuActionRemover.removeAction(tb, "COPIER"); - BuActionRemover.removeAction(tb, "DUPLIQUER"); - BuActionRemover.removeAction(tb, "RANGERICONES"); - // BuActionRemover.removeAction(tb, "TOUTSELECTIONNER"); - BuActionRemover.removeAction(tb, "REMPLACER"); - - }*/ - /* - * removeAction("COUPER"); removeAction("COLLER"); removeAction("COPIER"); removeAction("DUPLIQUER"); - * removeAction("TOUTSELECTIONNER"); removeAction("REMPLACER"); - */ - removeAction("ASSISTANT"); -// removeAction("ASTUCE"); - removeAction("POINTEURAIDE"); - removeAction("INDEX_THEMA"); - removeAction("INDEX_ALPHA"); - removeAction("PROPRIETE"); - removeAction("PLEINECRAN"); - removeAction("VISIBLE_LEFTCOLUMN"); - } - - public void start() { - super.start(); - super.addFrameListLeft(); - createProject(true); - } - -} Copied: tags/FudaaModeleur_0_08/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlImplementation.java (from rev 4276, branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlImplementation.java) =================================================================== --- tags/FudaaModeleur_0_08/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlImplementation.java (rev 0) +++ tags/FudaaModeleur_0_08/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlImplementation.java 2008-12-05 14:35:47 UTC (rev 4277) @@ -0,0 +1,777 @@ +/* + * @creation 7 juin 07 + * @license GNU General Public License 2 + * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne + * @mail de...@fu... + */ +package org.fudaa.fudaa.modeleur; + +import java.awt.Dimension; +import java.awt.Point; +import java.awt.event.ActionEvent; +import java.beans.PropertyVetoException; +import java.io.File; +import java.io.IOException; +import java.util.List; + +import javax.swing.JComponent; +import javax.swing.JInternalFrame; +import javax.swing.JOptionPane; +import javax.swing.filechooser.FileFilter; + +import org.fudaa.ctulu.CtuluArkLoader; +import org.fudaa.ctulu.CtuluExportDataInterface; +import org.fudaa.ctulu.CtuluLibFile; +import org.fudaa.ctulu.CtuluLibString; +import org.fudaa.ctulu.CtuluRunnable; +import org.fudaa.ctulu.CtuluTaskDelegate; +import org.fudaa.ctulu.ProgressionInterface; +import org.fudaa.ctulu.gui.CtuluDialogPanel; +import org.fudaa.ctulu.gui.CtuluFileChooserTestWritable; +import org.fudaa.ctulu.gui.CtuluLibDialog; +import org.fudaa.ebli.impression.EbliMiseEnPagePreferencesPanel; +import org.fudaa.ebli.ressource.EbliResource; +import org.fudaa.fudaa.commun.FudaaLib; +import org.fudaa.fudaa.commun.FudaaProjectStateListener; +import org.fudaa.fudaa.commun.FudaaProjetStateInterface; +import org.fudaa.fudaa.commun.impl.FudaaCommonImplementation; +import org.fudaa.fudaa.commun.impl.FudaaGuiLib; +import org.fudaa.fudaa.commun.impl.FudaaLookPreferencesPanel; +import org.fudaa.fudaa.commun.impl.FudaaStartupExitPreferencesPanel; +import org.fudaa.fudaa.commun.save.FudaaSaveLib; +import org.fudaa.fudaa.commun.save.FudaaSaveProject; +import org.fudaa.fudaa.commun.save.FudaaSaveZipLoader; +import org.fudaa.fudaa.modeleur.action.MdlShow1DFrameAction; +import org.fudaa.fudaa.modeleur.action.MdlShow2DFrameAction; +import org.fudaa.fudaa.ressource.FudaaResource; +import org.fudaa.fudaa.sig.FSigProjectPersistence; +import org.fudaa.fudaa.sig.FSigResource; +import org.fudaa.fudaa.tr.common.TrResource; + +import com.memoire.bu.BuAbstractPreferencesPanel; +import com.memoire.bu.BuBrowserPreferencesPanel; +import com.memoire.bu.BuColumn; +import com.memoire.bu.BuDesktopPreferencesPanel; +import com.memoire.bu.BuInformationsSoftware; +import com.memoire.bu.BuLanguagePreferencesPanel; +import com.memoire.bu.BuLib; +import com.memoire.bu.BuMainPanel; +import com.memoire.bu.BuMenu; +import com.memoire.bu.BuMenuBar; +import com.memoire.bu.BuMenuItem; +import com.memoire.bu.BuMenuRecentFiles; +import com.memoire.bu.BuPreferences; +import com.memoire.bu.BuRegistry; +import com.memoire.bu.BuResource; +import com.memoire.bu.BuScrollPane; +import com.memoire.bu.BuTaskView; +import com.memoire.bu.BuUserPreferencesPanel; +import com.memoire.fu.FuLog; + +/** + * La classe principale de mise en place de l'application, de gestion des + * actions, des \xE9tats de l'interface, etc. + * + * @author Bertrand Marchand + * @version $Id$ + */ +public class MdlImplementation extends FudaaCommonImplementation implements FudaaProjectStateListener { + + protected static BuInformationsSoftware isMdl_ = new BuInformationsSoftware(); + static { + isMdl_.name = "Modeleur"; + isMdl_.version = "0.08"; + isMdl_.date = "2008-12-05"; + isMdl_.rights = "Tous droits r\xE9serv\xE9s. CETMEF (c)1999-2008"; + isMdl_.license = "GPL2"; + isMdl_.languages = "fr,en"; + isMdl_.authors=new String[]{"F.Deniger, B.Marchand"}; + isMdl_.contact="nic...@eq..."; + isMdl_.http="http://www.fudaa.fr/mdl/"; + + isMdl_.logo = EbliResource.EBLI.getIcon("draw-palette"); + isMdl_.banner = BuResource.BU.getIcon("aproposde_32"); + } + + public static File getDestFile(File _init) { + return CtuluLibFile.appendExtensionIfNeeded(_init, getExtension()); + } + + public static String getExtension() { + return "mod.zip"; + } + + public static class MdlFileFilter extends FileFilter { + final String extension_ = '.' + getExtension(); + + public boolean accept(File _f) { + return _f != null && (_f.isDirectory() || _f.getName().endsWith(extension_)); + } + + public String getDescription() { + return FSigResource.FSIG.getString("Fudaa Modeleur (*.mod.zip)"); + } + + } + + public static BuInformationsSoftware informationsSoftware() { + return isMdl_; + } + + public final static FileFilter FILTER = new MdlFileFilter(); + + /** Fenetre interne pour le modeleur 2D. */ + MdlFille2d mdl2dFrame_; + /** Fenetre interne pour le modeleur 1D */ + MdlFille1d mdl1dFrame_=null; + /** Projet modeleur. */ + MdlProjet project_; + + public MdlImplementation() { + super(); + useNewHelp_ = false; + } + + /** + * Retourne le fichier s\xE9lectionn\xE9 par boite de dialogue. + * @param _saveDialog true : Save dialog, test si fichier existant avant ecriture. + * @return LE fichier, ou null si op\xE9ration abort\xE9e. + */ + private File chooseNewFile(boolean _saveDialog) { + return getDestFile(chooseFile(_saveDialog)); + } + + private File chooseFile(boolean _saveDialog) { + return FudaaGuiLib.ouvrirFileChooser(FSigResource.FSIG.getString("Fichier modeleur"), FILTER, this.getFrame(), + _saveDialog, _saveDialog ? new CtuluFileChooserTestWritable(this) : null); + } + + protected void setFileIfNeeded() { + if (project_.getParamsFile() == null) { + project_.setParamFile(chooseNewFile(true)); + } + } + + public void projectStateChanged(FudaaProjetStateInterface _proj) { + updateActionsState(); + } + + /** + * Mise \xE0 jour de l'\xE9tat des boutons. + */ + void updateActionsState() { + boolean bprjOpen=project_!=null; + boolean bprjModPar=bprjOpen && project_.getProjectState().isParamsModified(); + boolean buiMod=bprjOpen && project_.getProjectState().isUIModified(); + + setEnabledForAction("ENREGISTRER", bprjModPar | buiMod); + setEnabledForAction("ENREGISTRERSOUS", bprjOpen); + setEnabledForAction("FERMER", bprjOpen); + setEnabledForAction("IMPORT_PROJECT", bprjOpen); + setEnabledForAction(CtuluExportDataInterface.EXPORT_CMD, bprjOpen); + } + + /** + * Creation de la vue 2D, et ajout. + */ + void createNew2dFrame() { + mdl2dFrame_ = new MdlFille2d(this); + addInternalFrame(mdl2dFrame_); + } + + /** + * @return La vue 2D, ou null si inexistante. + */ + public MdlFille2d get2dFrame() { + return mdl2dFrame_; + } + + /** + * Installe la vue 1d sur le desktop, et la rend active. + */ + public void install1dFrame() { + if (mdl1dFrame_==null) { + mdl1dFrame_ = new MdlFille1d(this); + } + boolean alwaysInstalled=false; + for (JInternalFrame f: getAllInternalFrames()) { + if (f.equals(mdl1dFrame_)) { + alwaysInstalled=true; + break; + } + } + if (!alwaysInstalled) addInternalFrame(mdl1dFrame_); + activateInternalFrame(mdl1dFrame_); + } + + protected boolean buildExportDataToolIcon() { + return true; + } + + protected boolean buildFudaaReportTool() { + return true; + } + + protected boolean buildImageToolIcon() { + return true; + } + + /** + * Ferme le projet, ferme les fenetres associ\xE9s, sans demande d'enregistrement en cas + * de modif (ce controle a \xE9t\xE9 effectu\xE9 en amont). + */ + protected void closeProject() { + if (project_==null) return; + project_.close(); + try { + mdl2dFrame_.setClosed(true); + } catch (PropertyVetoException _evt) { + FuLog.error(_evt); + + } + removeInternalFrames(getAllInternalFrames()); + getMainMenuBar().getMenu("mnPROJECT").setVisible(false); + project_ = null; + } + + /** + * Cr\xE9e un nouveau projet, la fenetre 2D si necessaire. + * @param _add true : Recr\xE9e la fenetre. + */ + protected void createProject(final boolean _add) { + project_ = new MdlProjet(); + project_.setOpening(true); + if (_add) createNew2dFrame(); + else ((MdlVisuPanel)mdl2dFrame_.getVisuPanel()).initCalques(false); + project_.install(this); + BuLib.invokeLater(new Runnable() { + + public void run() { + project_.setOpening(false); +// changeSaveActions(false); + updateActionsState(); + project_.setSaved(); + getMainMenuBar().getMenu("mnPROJECT").setVisible(true); + } + }); + } + + protected boolean useScrollInBuDesktop() { + return true; + } + + public void actionPerformed(ActionEvent _evt) { + final String action = _evt.getActionCommand(); + if (action == null) { + return; + } + if ("OUVRIR".equals(action)) { + ouvrir(null); + } else if ("ENREGISTRER".equals(action)) { + save(); + } else if ("ENREGISTRERSOUS".equals(action)) { + saveAs(); + } else if ("FERMER".equals(action)) { + close(); + } else if ("CREER".equals(action)) { + create(); + } else if ("IMPORT_PROJECT".equals(action)) { + importProject(); + } else if ("AIDE_INDEX".equals(action)) { + displayHelp(getAideIndexUrl()); + } else if (action.startsWith("TOGGLE")) { + final BuColumn c = getMainPanel().getRightColumn(); + final JComponent comp = c.getToggleComponent(action); + if (comp != null) { + comp.setVisible(!comp.isVisible()); + c.revalidate(); + } + } else if (action.startsWith("REOUVRIR")) { + FuLog.trace(action.substring(9,action.length()-1)); + ouvrir(new File(action.substring(9,action.length()-1))); + } else + super.actionPerformed(_evt); + } + + /** + * Met a jour les fichiers recents chaque fois que necessaire. + */ + private void updateRecentFiles(File _fichier) { + getMainMenuBar().addRecentFile(_fichier.getPath(),null); + MdlPreferences.MDL.writeIniFile(); + } + + /** + * Surcharge de la m\xE9thode pour pouvoir sauvegarder les pr\xE9f\xE9rences. + */ + public void exit() { + confirmExit(); + } + + /** + * Confirmation de la sortie avec ou sans sauvegarde. + */ + public boolean confirmExit() { + if (!FudaaStartupExitPreferencesPanel.isExitConfirmed() || + question(BuResource.BU.getString("Quitter"), BuResource.BU + .getString("Voulez-vous vraiment quitter ce logiciel ?"))) { + return saveAndCloseProjet(new Runnable() { + // Lanc\xE9 apr\xE8s la sauvegarde, si op\xE9ration de sauvegarde concluante ou si pas de sauvegarde demand\xE9e. + public void run() { + savePreferencesAndTerminate(); + } + }); + } + return true; + } + + /** + * Action "Creer" un nouveau projet. + */ + public void create() { + saveAndCloseProjet(new Runnable() { + public void run() { + createProject(true); + } + }); + } + + /** + * Action "Fermer" le projet en cours. + */ + public void close() { + saveAndCloseProjet(null); + updateActionsState(); + } + + protected String getAideIndexUrl() { + return getHelpDir() + "modeleur/index.html"; + } + + public BuPreferences getApplicationPreferences() { + return null; + } + + public BuInformationsSoftware getInformationsSoftware() { + return informationsSoftware(); + } + + /** + * Action "Ouvrir" un nouveau projet. Peut demander la sauvegarde du projet pr\xE9c\xE9demment ouvert si + * existant. + * @param _f Le fichier projet \xE0 ouvrir. null, si le fichier doit etre choisi par l'utilisateur. + */ + public void ouvrir(final File _f) { + if (isProjectModified()) { + saveAndCloseProjet(new Runnable() { + + public void run() { + ouvrir(_f); + } + }); + return; + } + + closeProject(); + + final File f = CtuluLibFile.exists(_f) ? _f : chooseFile(false); + if (f==null) return; // Abandon utilisateur. + + createProject(false); + setGlassPaneStop(); + new CtuluRunnable(BuResource.BU.getString("Ouvrir"), MdlImplementation.this) { + + public boolean run(ProgressionInterface _proj) { + project_.setOpening(true); + Runnable r = null; + try { + try { + FudaaSaveZipLoader loader=new FudaaSaveZipLoader(f); + // Recup des infos pour utilisateur. + BuInformationsSoftware is=FudaaSaveProject.getSoftwareInfos(loader); + FuLog.warning("File version : "+(is.version==null ? "Undefined":is.version)); + + r= FudaaSaveLib.restoreFille(MdlImplementation.this, mdl2dFrame_, _proj,loader); + } catch (final IOException _evt) { + FuLog.error(_evt); + + } + + project_.setParamFile(f); + + } finally { + + final Runnable swingRun = r; + BuLib.invokeLater(new Runnable() { + + public void run() { + try { + addInternalFrame(mdl2dFrame_); + if (swingRun != null) swingRun.run(); + + // le projet a ete install\xE9: on enl\xE8ve les flag de modification + project_.setOpening(false); + project_.setSaved(); + if (swingRun == null) { + MdlImplementation.this.warn(BuResource.BU.getString("Ouvrir"), FSigResource.FSIG + .getString("Le projet n'a pas \xE9t\xE9 ouvert!")); + } + else { + updateRecentFiles(project_.getParamsFile()); + } + } finally { + unsetGlassPaneStop(); + + } + } + + }); + + } + return r != null; + } + }.run(); + } + + /** + * Action "Enregistrer" le projet. + */ + public void save() { + if (project_.getParamsFile() != null) { + CtuluRunnable act = new CtuluRunnable(FudaaSaveLib.getActionSaveTitle(), this) { + + public boolean run(ProgressionInterface _proj) { + if (FSigProjectPersistence.saveProject(MdlImplementation.this, project_, project_.getParamsFile(), _proj)) { + updateRecentFiles(project_.getParamsFile()); + return true; + } + return false; + } + }; + act.setAfterRunnable(getSaveSwingRunnable(project_.getParamsFile()), true); + act.run(); + } else + saveAs(); + } + + /** + * Action "Enregistrer sous" le projet. + */ + public void saveAs() { + final File f = chooseNewFile(true); + if (f == null) return; + + CtuluRunnable act = new CtuluRunnable(FudaaSaveLib.getActionSaveTitle(), this) { + + public boolean run(ProgressionInterface _proj) { + if (FSigProjectPersistence.saveProject(MdlImplementation.this, project_, f, _proj)) { + updateRecentFiles(f); + return true; + } + return false; + } + }; + act.setAfterRunnable(getSaveSwingRunnable(f), true); + act.run(); + } + + protected boolean isProjectModified() { + return project_ != null + && (project_.getProjectState().isParamsModified() || project_.getProjectState().isUIModified()); + } + + public void importProject() { + MdlProjectImportPanel pn=new MdlProjectImportPanel(); + if (CtuluDialogPanel.isOkResponse(pn.afficheModale(getFrame(), "Import d'un projet"))) { + File f=pn.getFile(); + try { + FudaaSaveZipLoader loader = new FudaaSaveZipLoader(f); + String[] ignoredLayers=pn.getIgnoredLayers(); + for (String s : ignoredLayers) { + loader.setOption(CtuluArkLoader.OPTION_LAYER_IGNORE+s,CtuluLibString.toString(true)); + } + + final CtuluTaskDelegate createTask = createTask("Import d'un projet"); +// FIXME BM: Suppression de la tache dans un thread diff\xE9rent, car l'appli se bloque +// Probable pb de deadlock. +// createTask.start(new Runnable() { +// public void run() { + FudaaSaveLib.restoreAndLaunch(MdlImplementation.this, mdl2dFrame_, createTask.getStateReceiver(), loader); +// } +// }); + + // Liberation du fichier. + loader.close(); + } catch (final IOException _evt) { + FuLog.error(_evt); + + } + } + } + + /** + * Dans le thread swing.... + * + * @param _relaunch l'exe a lancer apr\xE8s: si l'utilisateur a accept\xE9 la fermeture du projet + */ + public boolean saveAndCloseProjet(final Runnable _relaunch) { + final Runnable r = new Runnable() { + + public void run() { + closeProject(); + if (_relaunch != null) _relaunch.run(); + } + }; + boolean save = false; + if (isProjectModified()) { + final int i = CtuluLibDialog.confirmExitIfProjectisModified(getFrame()); + // l'utilisateur veut annuler l'op\xE9ration + if (i == JOptionPane.CANCEL_OPTION) { + FuLog.debug("FSI: close operation cancelled by user"); + return false; + } + save = (i == JOptionPane.OK_OPTION); + } + + FuLog.debug("FSI: close operation accepted and save option= " + save); + // pas de sauvegarde: on lance l'op\xE9ration suivante: + if (!save) { + r.run(); + } else { + // on initilialise le fichier de dest si n\xE9cessaire + setFileIfNeeded(); + if (project_.getParamsFile()==null) return false; + CtuluRunnable act = new CtuluRunnable(FudaaSaveLib.getActionSaveTitle(), this) { + + public boolean run(ProgressionInterface _prog) { + // le fichier peut etre null si l'utilisateur a refuse de pr\xE9ciser un fichier + // dans ce cas, on ne sauvegarde pas. + if (project_.getParamsFile() != null) { + setGlassPaneStop(); + FSigProjectPersistence.saveProject(MdlImplementation.this, project_, + project_.getParamsFile(), _prog); + updateRecentFiles(project_.getParamsFile()); + + unsetGlassPaneStop(); + return true; + } + else return false; + } + }; + // le r sera lance apres et dans le thread swing + act.setAfterRunnable(r, true); + act.run(); + return false; + } + return true; + } + + protected Runnable getSaveSwingRunnable(final File _paramFile) { + return new Runnable() { + + public void run() { + if (_paramFile != null) project_.setParamFile(_paramFile); + project_.setSaved(); + + } + }; + } + + /** + * Construit le menu projet. + * @return Le menu projet. + */ + protected BuMenu buildProjectMenu() { + BuMenu mn=new BuMenu(FudaaResource.FUDAA.getString("Projet"),"mnPROJECT"); + mn.add(new MdlShow2DFrameAction(this)); +// mn.add(new MdlShow1DFrameAction(this)); + + mn.setVisible(false); + return mn; + } + + /** + * Methode surcharg\xE9e pour les panneau de pr\xE9f\xE9rence. + */ + protected void buildPreferences(final List<BuAbstractPreferencesPanel> _frAddTab) { + _frAddTab.add(new BuUserPreferencesPanel(this)); + _frAddTab.add(new BuLanguagePreferencesPanel(this)); + _frAddTab.add(new BuDesktopPreferencesPanel(this)); + _frAddTab.add(new FudaaStartupExitPreferencesPanel(true)); + _frAddTab.add(new FudaaLookPreferencesPanel(this)); + _frAddTab.add(new BuBrowserPreferencesPanel(this)); + _frAddTab.add(new EbliMiseEnPagePreferencesPanel()); + } + + /** + * Cr\xE9ation du panneau des taches, dans la colonne de droite. + */ + protected void buildTaskView() { + final BuMainPanel mp = getMainPanel(); + final BuColumn lc = mp.getLeftColumn(); + lc.setFocusable(false); + final BuColumn rc = mp.getRightColumn(); + rc.setFocusable(false); + lc.setBorder(null); + // rc.setBorder(new EmptyBorder(0,2,0,2)); + BuTaskView taches = new BuTaskView(); + taches.setToolTipText(TrResource.getS("Les t\xE2ches en cours")); + final BuScrollPane sp = new BuScrollPane(taches); + sp.setPreferredSize(new Dimension(150, 80)); + sp.setToolTipText(TrResource.getS("Les t\xE2ches en cours")); + rc.addToggledComponent(BuResource.BU.getString("T\xE2ches"), "TOGGLE_TACHE", BuResource.BU.getToolIcon("tache"), sp, + true, this).setToolTipText(TrResource.getS("Cacher/Afficher les t\xE2ches")); + mp.setTaskView(taches); + } + + /** + * Sauvegarde des pr\xE9f\xE9rences de l'appli \xE0 la sortie. + * + * Remarque importante : Certaines infos sauv\xE9es par cette m\xE9thode sont relues + * par d'autres applications Fudaa, qui risquent alors de s'afficher de facon + * inattendue. + */ + protected void savePreferencesAndTerminate() { + final Point p = getFrame().getLocation(); + final Dimension d = getFrame().getSize(); + BuPreferences.BU.putIntegerProperty("window.x", p.x); + BuPreferences.BU.putIntegerProperty("window.y", p.y); + BuPreferences.BU.putIntegerProperty("window.w", d.width); + BuPreferences.BU.putIntegerProperty("window.h", d.height); + BuPreferences.BU.writeIniFile(); + + BuRegistry.unregister(this.getFrame()); + } + + /** + * Mise en place de l'application ava,nt affichage. + */ + public void init() { + super.init(); + // Pour forcer l'activation du command listener. + getUndoCmdListener(); + + removeUnusedActions(); + final BuMenuBar mb = getMainMenuBar(); + // on enleve le menu des look and feel : moche car tout n'est pas mis a jour +/* Issu de Fudaa-Prepro + final BuMenu mAide = (BuMenu) b.getMenu("MENU_AIDE"); + + mAide.add(TrLib.buildAideContextItem(this), 0); + TrLib.addJavawsForJnlp(mAide); + TrLib.addJava3DJMFTest(mAide);*/ + + setEnabledForAction("QUITTER", true); + setEnabledForAction("PREFERENCE", true); + setEnabledForAction("CREER", true); + setEnabledForAction("OUVRIR", true); + setEnabledForAction("IMPORTER", true); + setEnabledForAction("EXPORTER", true); + + BuMenuRecentFiles mr= (BuMenuRecentFiles)mb.getMenu("REOUVRIR"); + if (mr != null) { + mr.setPreferences(MdlPreferences.MDL); + mr.setResource(MdlResource.MDL); + mr.setEnabled(true); + } + +/* setEnabledForAction("MAJ", true); + setEnabledForAction("SEND_COMMENT", true); + setEnabledForAction("LAUNCH_JAVAWS", true); + final BuMenu mFichier = (BuMenu) b.getMenu("MENU_FICHIER"); + mFichier.addMenuItem(TrResource.getS("Fermer toutes les applications"), "CLOSE_ALL", BuResource.BU + .getIcon("fermer"), true, 0); + final BuToolBar tb = getMainToolBar(); + if (!isSupervisor()) { + + tb.addToolButton(TrResource.getSupervisorName(), TrResource.getS("ouvrir le superviseur"), "SUPERVISEUR", + TrResource.getSupervisorIcon(), true).setVisible(true); + + }*/ + // les menus exporter et importer sont construit dynamiquement +// b.getMenu(getExporterCmd()).addItemListener(this); + BuMenu mmImport = (BuMenu) mb.getMenu("IMPORTER"); + BuMenu mnExport = (BuMenu) mb.getMenu("EXPORTER"); + +// menu.addMenuItem(FSigImageImportAction.getCommonTitle(), "IMPORT_IMAGE", FSigImageImportAction.getCommonImage(), +// this).setEnabled(false); + mmImport.addMenuItem(FudaaLib.getS("Importer un projet"), "IMPORT_PROJECT", BuResource.BU.getMenuIcon("importer"), this) + .setEnabled(false); +// menu.addItemListener(this); + setEnabledForAction("IMPORT_PROJECT", true); + mmImport.setEnabled(true); + + BuMenuItem itExportData = new BuMenuItem(); + super.initExportDataButton(itExportData); + mnExport.add(itExportData); + + BuMenu mnProject=buildProjectMenu(); + mb.addMenu(mnProject); + +/* setEnabledForAction("RANGERICONES", true); + if (!isSupervisor()) { + final JComponent cp = getMainPanel().getMiddleComponent(); + if (cp instanceof JScrollPane) { + ScrollPaneSelector.installScrollPaneSelector((JScrollPane) cp); + } + }*/ + buildTaskView(); + } + + /** + * Suppression des commandes par d\xE9faut dans Fudaa. + */ + protected void removeUnusedActions() { +/* Issu de Fudaa-Prepro + final BuMenu r = (BuMenu) getMainMenuBar().getMenu("MENU_EDITION"); + if (r != null) { + r.removeAll(); + r.addMenuItem(BuResource.BU.getString("D\xE9faire"), "DEFAIRE", false, KeyEvent.VK_Z); + r.addMenuItem(BuResource.BU.getString("Refaire"), "REFAIRE", false).setAccelerator( + KeyStroke.getKeyStroke(KeyEvent.VK_Z, InputEvent.CTRL_MASK | InputEvent.SHIFT_MASK)); + // normalement Ctrl-Y + // r.addSeparator(); + // + r.addMenuItem(BuResource.BU.getString("Copier"), "COPIER", false, KeyEvent.VK_C); + r.addMenuItem(BuResource.BU.getString("Couper"), "COUPER", false, KeyEvent.VK_X); + r.addMenuItem(BuResource.BU.getString("Coller"), "COLLER", false, KeyEvent.VK_V); + // r.addMenuItem(BuResource.BU.getString("Dupliquer" ),"DUPLIQUER" ,false) + // .setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,KeyEvent.CTRL_MASK|KeyEvent.SHIFT_MASK)); + r.addSeparator(); + FSigLib.addSelectionAction(r, null); + // r.addMenuItem(BuResource.BU.getString("Remplacer..." ),"REMPLACER" + // ,false,KeyEvent.VK_R); + r.addSeparator(); + r.addMenuItem(BuResource.BU.getString("Pr\xE9f\xE9rences"), "PREFERENCE", false, KeyEvent.VK_F2); + addConsoleMenu(r); + final BuToolBar tb = getMainToolBar(); + BuActionRemover.removeAction(tb, "COUPER"); + BuActionRemover.removeAction(tb, "COLLER"); + BuActionRemover.removeAction(tb, "COPIER"); + BuActionRemover.removeAction(tb, "DUPLIQUER"); + BuActionRemover.removeAction(tb, "RANGERICONES"); + // BuActionRemover.removeAction(tb, "TOUTSELECTIONNER"); + BuActionRemover.removeAction(tb, "REMPLACER"); + + }*/ + /* + * removeAction("COUPER"); removeAction("COLLER"); removeAction("COPIER"); removeAction("DUPLIQUER"); + * removeAction("TOUTSELECTIONNER"); removeAction("REMPLACER"); + */ + removeAction("ASSISTANT"); +// removeAction("ASTUCE"); + removeAction("POINTEURAIDE"); + removeAction("INDEX_THEMA"); + removeAction("INDEX_ALPHA"); + removeAction("PROPRIETE"); + removeAction("PLEINECRAN"); + removeAction("VISIBLE_LEFTCOLUMN"); + } + + public void start() { + super.start(); + super.addFrameListLeft(); + createProject(true); + } + +} Deleted: tags/FudaaModeleur_0_08/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/MdlShow1DFrameAction.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/MdlShow1DFrameAction.java 2008-12-05 14:18:58 UTC (rev 4275) +++ tags/FudaaModeleur_0_08/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/MdlShow1DFrameAction.java 2008-12-05 14:35:47 UTC (rev 4277) @@ -1,35 +0,0 @@ -/* - * @creation 1 avr. 2005 - * @modification $Date$ - * @license GNU General Public License 2 - * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne - * @mail de...@fu... - */ -package org.fudaa.fudaa.modeleur.action; - -import java.awt.event.ActionEvent; - -import org.fudaa.ebli.commun.EbliActionSimple; -import org.fudaa.ebli.ressource.EbliResource; -import org.fudaa.fudaa.modeleur.MdlImplementation; - -/** - * Une action pour visualiser la fenetre 2D. - * @author Bertrand Marchand - * @version $Id$ - */ -public class MdlShow1DFrameAction extends EbliActionSimple { - MdlImplementation impl_; - - /** - * @param _m l'arbre des calques - */ - public MdlShow1DFrameAction(MdlImplementation _impl) { - super(EbliResource.EBLI.getString("Vue 1D"), null, "VUE1D"); - impl_=_impl; - } - - public void actionPerformed(final ActionEvent _e) { - impl_.warn("Pas impl\xE9ment\xE9","La fenetre 1D est a venir..."); - } -} Copied: tags/FudaaModeleur_0_08/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/MdlShow1DFrameAction.java (from rev 4276, branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/MdlShow1DFrameAction.java) =================================================================== --- tags/FudaaModeleur_0_08/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/MdlShow1DFrameAction.java (rev 0) +++ tags/FudaaModeleur_0_08/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/MdlShow1DFrameAction.java 2008-12-05 14:35:47 UTC (rev 4277) @@ -0,0 +1,35 @@ +/* + * @creation 1 avr. 2005 + * @modification $Date$ + * @license GNU General Public License 2 + * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne + * @mail de...@fu... + */ +package org.fudaa.fudaa.modeleur.action; + +import java.awt.event.ActionEvent; + +import org.fudaa.ebli.commun.EbliActionSimple; +import org.fudaa.ebli.ressource.EbliResource; +import org.fudaa.fudaa.modeleur.MdlImplementation; + +/** + * Une action pour visualiser la fenetre 2D. + * @author Bertrand Marchand + * @version $Id$ + */ +public class MdlShow1DFrameAction extends EbliActionSimple { + MdlImplementation impl_; + + /** + * @param _m l'arbre des calques + */ + public MdlShow1DFrameAction(MdlImplementation _impl) { + super(EbliResource.EBLI.getString("Vue 1D"), null, "VUE1D"); + impl_=_impl; + } + + public void actionPerformed(final ActionEvent _e) { + impl_.install1dFrame(); + } +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2008-12-05 14:33:37
|
Revision: 4276 http://fudaa.svn.sourceforge.net/fudaa/?rev=4276&view=rev Author: bmarchan Date: 2008-12-05 14:33:27 +0000 (Fri, 05 Dec 2008) Log Message: ----------- Debut mise en place 1D. Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlImplementation.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/MdlShow1DFrameAction.java Added Paths: ----------- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlFille1d.java Added: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlFille1d.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlFille1d.java (rev 0) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlFille1d.java 2008-12-05 14:33:27 UTC (rev 4276) @@ -0,0 +1,71 @@ +/* + * @creation 20 janv. 08 + * @modification $Date$ + * @license GNU General Public License 2 + * @copyright (c)1998-2008 CETMEF 2 bd Gambetta F-60231 Compiegne + * @mail fud...@li... + */ +package org.fudaa.fudaa.modeleur; + +import java.awt.Dimension; +import java.awt.Graphics; +import java.awt.print.PageFormat; + +import com.db4o.ObjectContainer; + +import com.memoire.bu.BuCutCopyPasteInterface; +import com.memoire.bu.BuInformationsDocument; +import com.memoire.bu.BuUndoRedoInterface; + +import org.fudaa.ctulu.CtuluCommandManager; +import org.fudaa.ctulu.CtuluExportDataInterface; +import org.fudaa.ctulu.CtuluUI; +import org.fudaa.ctulu.CtuluUndoRedoInterface; +import org.fudaa.ctulu.ProgressionInterface; +import org.fudaa.ctulu.image.CtuluImageImporter; +import org.fudaa.ctulu.image.CtuluImageProducer; + +import org.fudaa.ebli.calque.ZEbliFilleCalques; +import org.fudaa.ebli.impression.EbliFilleImprimable; + +import org.fudaa.fudaa.commun.impl.FudaaCommonImplementation; +import org.fudaa.fudaa.commun.save.FudaaFilleVisuPersistence; +import org.fudaa.fudaa.commun.save.FudaaSavable; +import org.fudaa.fudaa.commun.save.FudaaSaveZipWriter; +import org.fudaa.fudaa.sig.FSigResource; + +/** + * La fenetre interne vue 2D des donn\xE9es du modeleur. Elle construit le composant arbre de + * calques {@link org.fudaa.ebli.calque.BArbreCalque}. La plupart des traitements est + * d\xE9l\xE9gu\xE9e au composant {@link org.fudaa.ebli.calque.ZEbliCalquesPanel} encapsul\xE9. + * + * @author fred deniger + * @author bertrand marchand + * @version $Id$ + */ +public class MdlFille1d extends EbliFilleImprimable { + + public MdlFille1d(FudaaCommonImplementation _appli) { + super("", true, false, true, true, _appli, null); + setName("mdlFille1d"); + setTitle(FSigResource.FSIG.getString("Vue 1D")); + setPreferredSize(new Dimension(500, 400)); + setClosable(true); + } + + /* (non-Javadoc) + * @see org.fudaa.ebli.impression.EbliPageable#print(java.awt.Graphics, java.awt.print.PageFormat, int) + */ + public int print(Graphics _g, PageFormat _format, int _page) { + // TODO Auto-generated method stub + return 0; + } + + /* (non-Javadoc) + * @see java.awt.print.Pageable#getNumberOfPages() + */ + public int getNumberOfPages() { + // TODO Auto-generated method stub + return 0; + } +} Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlFille1d.java ___________________________________________________________________ Added: svn:keywords + Date Revision Author URL Id Added: svn:eol-style + native Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlImplementation.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlImplementation.java 2008-12-05 14:18:58 UTC (rev 4275) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlImplementation.java 2008-12-05 14:33:27 UTC (rev 4276) @@ -15,6 +15,7 @@ import java.util.List; import javax.swing.JComponent; +import javax.swing.JInternalFrame; import javax.swing.JOptionPane; import javax.swing.filechooser.FileFilter; @@ -40,6 +41,7 @@ import org.fudaa.fudaa.commun.save.FudaaSaveLib; import org.fudaa.fudaa.commun.save.FudaaSaveProject; import org.fudaa.fudaa.commun.save.FudaaSaveZipLoader; +import org.fudaa.fudaa.modeleur.action.MdlShow1DFrameAction; import org.fudaa.fudaa.modeleur.action.MdlShow2DFrameAction; import org.fudaa.fudaa.ressource.FudaaResource; import org.fudaa.fudaa.sig.FSigProjectPersistence; @@ -120,6 +122,8 @@ /** Fenetre interne pour le modeleur 2D. */ MdlFille2d mdl2dFrame_; + /** Fenetre interne pour le modeleur 1D */ + MdlFille1d mdl1dFrame_=null; /** Projet modeleur. */ MdlProjet project_; @@ -181,6 +185,24 @@ public MdlFille2d get2dFrame() { return mdl2dFrame_; } + + /** + * Installe la vue 1d sur le desktop, et la rend active. + */ + public void install1dFrame() { + if (mdl1dFrame_==null) { + mdl1dFrame_ = new MdlFille1d(this); + } + boolean alwaysInstalled=false; + for (JInternalFrame f: getAllInternalFrames()) { + if (f.equals(mdl1dFrame_)) { + alwaysInstalled=true; + break; + } + } + if (!alwaysInstalled) addInternalFrame(mdl1dFrame_); + activateInternalFrame(mdl1dFrame_); + } protected boolean buildExportDataToolIcon() { return true; @@ -562,7 +584,7 @@ protected BuMenu buildProjectMenu() { BuMenu mn=new BuMenu(FudaaResource.FUDAA.getString("Projet"),"mnPROJECT"); mn.add(new MdlShow2DFrameAction(this)); -// mnProject.add(new MdlShow1DFrameAction(this)); +// mn.add(new MdlShow1DFrameAction(this)); mn.setVisible(false); return mn; Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/MdlShow1DFrameAction.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/MdlShow1DFrameAction.java 2008-12-05 14:18:58 UTC (rev 4275) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/MdlShow1DFrameAction.java 2008-12-05 14:33:27 UTC (rev 4276) @@ -30,6 +30,6 @@ } public void actionPerformed(final ActionEvent _e) { - impl_.warn("Pas impl\xE9ment\xE9","La fenetre 1D est a venir..."); + impl_.install1dFrame(); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <emm...@us...> - 2008-12-05 14:19:02
|
Revision: 4275 http://fudaa.svn.sourceforge.net/fudaa/?rev=4275&view=rev Author: emmanuel_martin Date: 2008-12-05 14:18:58 +0000 (Fri, 05 Dec 2008) Log Message: ----------- bugfix : chargement d'une image petite plante l'appli Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueImageRaster.java 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-05 13:55:12 UTC (rev 4274) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueImageRaster.java 2008-12-05 14:18:58 UTC (rev 4275) @@ -172,7 +172,9 @@ if (im!=null) { final int wi=im.getWidth(this); final int hi=im.getHeight(this); - final int r=Math.max(wi/w, hi/h); + int r=Math.max(wi/w, hi/h); + if(r==0) + r=1; final int wImage=wi/r-1; final int hImage=hi/r-1; _g.drawImage(im, (w-wImage)/2+1, (h-hImage)/2+1, wImage, hImage, _c); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <emm...@us...> - 2008-12-05 13:55:14
|
Revision: 4274 http://fudaa.svn.sourceforge.net/fudaa/?rev=4274&view=rev Author: emmanuel_martin Date: 2008-12-05 13:55:12 +0000 (Fri, 05 Dec 2008) Log Message: ----------- Am?\195?\169lioration du comportement du wizard d'import/modification d'image. Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigImageImportAction.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/fudaa/src/org/fudaa/fudaa/sig/layer/FSigImageImportAction.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigImageImportAction.java 2008-12-04 17:48:11 UTC (rev 4273) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigImageImportAction.java 2008-12-05 13:55:12 UTC (rev 4274) @@ -48,10 +48,9 @@ public void actionPerformed(final ActionEvent _e) { final ZCalqueImageRaster img = (ZCalqueImageRaster) visu_.getArbreCalqueModel().getSelectedCalque(); - final FSigImageWizardTask task = new FSigImageWizardTask(); + final FSigImageWizardTask task = new FSigImageWizardTask(visu_.getEditor().getPanel().getArbreCalqueModel()); task.setModelToModiy(img); afficheWizard(task); - } public void updateStateBeforeShow() { 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-04 17:48:11 UTC (rev 4273) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/wizard/FSigImageWizardStepImage.java 2008-12-05 13:55:12 UTC (rev 4274) @@ -20,8 +20,6 @@ import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; -import com.memoire.bu.*; - import org.fudaa.ctulu.CtuluAnalyze; import org.fudaa.ctulu.CtuluLib; import org.fudaa.ctulu.CtuluLibString; @@ -32,10 +30,24 @@ import org.fudaa.ctulu.image.CtuluImageContainer; import org.fudaa.ctulu.image.CtuluImageExport; import org.fudaa.ctulu.image.CtuluImageIconFixeSize; +import org.fudaa.ctulu.image.RasterData; import org.fudaa.ctulu.image.RasterDataInterface; - import org.fudaa.fudaa.sig.FSigLib; +import com.memoire.bu.BuBorderLayout; +import com.memoire.bu.BuButton; +import com.memoire.bu.BuCheckBox; +import com.memoire.bu.BuFileFilter; +import com.memoire.bu.BuGlassPaneStop; +import com.memoire.bu.BuGridLayout; +import com.memoire.bu.BuLabel; +import com.memoire.bu.BuLib; +import com.memoire.bu.BuPanel; +import com.memoire.bu.BuResource; +import com.memoire.bu.BuTextField; +import com.memoire.bu.BuVerticalLayout; +import com.memoire.bu.BuWizardTask; + /** * L'etape de chargement de l'image pour le wizard d'import d'image. * @@ -193,7 +205,9 @@ if (isError(an)) { return; } - data_ = null; + if(data_==null) + data_=new RasterData(); + ((RasterData) data_).setImg(imgReader_); isLoaded_ = true; } } catch (final IOException _evt) { @@ -227,7 +241,7 @@ public void run() { setErrorDefaultText(); - if (imgReader_ == null) { + if (imgReader_ == null||!imgReader_.isImageLoaded()) { String error = getErrorFileNotFound(); if (error == null) { error = FSigLib.getS("Le fichier {0} n'es pas valide.", lastFile_ == null ? "?" : lastFile_.getName()); @@ -238,7 +252,7 @@ final Component c = dialog_.getGlassPane(); c.setVisible(false); dialog_.remove(c); - if (_wizard != null && imgReader_ != null) { + if (_wizard != null && imgReader_ != null && imgReader_.isImageLoaded()) { _wizard.nextStep(); } if (_afficheInIcon) { 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-04 17:48:11 UTC (rev 4273) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/wizard/FSigImageWizardTask.java 2008-12-05 13:55:12 UTC (rev 4274) @@ -12,19 +12,18 @@ import javax.swing.JFrame; import javax.swing.JRootPane; -import com.memoire.bu.BuLib; -import com.memoire.bu.BuWizardTask; - import org.fudaa.ctulu.image.RasterDataInterface; - +import org.fudaa.ebli.calque.BArbreCalqueModel; import org.fudaa.ebli.calque.BGroupeCalque; import org.fudaa.ebli.calque.ZCalqueImageRaster; import org.fudaa.ebli.calque.ZEbliCalquesPanel; import org.fudaa.ebli.calque.ZModeleImageRaster; import org.fudaa.ebli.calque.ZModeleStatiqueImageRaster; - import org.fudaa.fudaa.sig.FSigLib; +import com.memoire.bu.BuLib; +import com.memoire.bu.BuWizardTask; + /** * Un wizard pour l'import d'une image. Le wizard gere plusieurs \xE9tapes. * @@ -33,6 +32,16 @@ */ public class FSigImageWizardTask extends BuWizardTask { + private BArbreCalqueModel tree_; + + public FSigImageWizardTask(){ + + } + + public FSigImageWizardTask(BArbreCalqueModel _tree){ + tree_=_tree; + } + public interface CalqueFactory { ZCalqueImageRaster createCalque(ZModeleImageRaster _model); } @@ -125,6 +134,8 @@ model.setProj(res.ptImg_, res.ptReel_, res.transform_, res.error_); if (calqueToModify_ != null) { calqueToModify_.imgChanged(); + if(tree_!=null) + tree_.fireObservableChanged(); return; } ZCalqueImageRaster calque = null; @@ -162,7 +173,7 @@ public void nextStep() { if (currentStep_ == img_) { - if (img_.getImg() == null) { + if (img_.getImg() == null||!img_.getImg().isImageLoaded()) { img_.loadImage(this, false); return; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <emm...@us...> - 2008-12-04 17:48:14
|
Revision: 4273 http://fudaa.svn.sourceforge.net/fudaa/?rev=4273&view=rev Author: emmanuel_martin Date: 2008-12-04 17:48:11 +0000 (Thu, 04 Dec 2008) Log Message: ----------- On peut maintenant voir le 'z' lors de l'import dans des fichiers mascaret 2D ; la sonde de l'outil de calcul de l'abscisse curviligne est toujours plac?\195?\169 sur la polyligne Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/mascaret/io/MascaretReader.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/SceneAbscisseCurviligneAction.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/ZCalqueAbscisseCurviligneInteraction.java Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/mascaret/io/MascaretReader.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/mascaret/io/MascaretReader.java 2008-12-04 16:38:20 UTC (rev 4272) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/dodico/src/org/fudaa/dodico/mascaret/io/MascaretReader.java 2008-12-04 17:48:11 UTC (rev 4273) @@ -1,6 +1,6 @@ /* * @creation 13 nov. 2008 - * @modification $Date:$ + * @modification $Date$ * @license GNU General Public License 2 * @copyright (c)1998-2008 CETMEF 2 bd Gambetta F-60231 Compiegne * @mail fud...@li... @@ -241,7 +241,7 @@ progress_.setDesc(DodicoLib.getS("Lecture de ")+fileName_); // Cr\xE9ation de la GISZoneCollectionLigneBrisee GISZoneCollectionLigneBrisee zone=new GISZoneCollectionLigneBrisee(); - zone.setAttributes(new GISAttributeInterface[]{GISAttributeConstants.TITRE, GISAttributeConstants.NATURE}, null); + zone.setAttributes(new GISAttributeInterface[]{GISAttributeConstants.TITRE, GISAttributeConstants.NATURE, GISAttributeConstants.BATHY}, null); // G\xE9n\xE9ration des profiles et des traces de profiles \\ for(int k=0;k<profils_.size();k++){ progress_.setProgression((int)((float)k/profils_.size()*100)); @@ -252,15 +252,16 @@ coordSeq.setOrdinate(i, 0, profil.coordXYTraceProfil.get(i)[0]); coordSeq.setOrdinate(i, 1, profil.coordXYTraceProfil.get(i)[1]); } - zone.addGeometry(new GISPolyligne(coordSeq), new Object[]{profil.nomProfil, GISAttributeConstants.ATT_NATURE_TP}, null); + zone.addGeometry(new GISPolyligne(coordSeq), new Object[]{profil.nomProfil, GISAttributeConstants.ATT_NATURE_TP, null}, null); // Profil coordSeq=new CoordinateArraySequence(profil.coordXYProfil.size()); + Object[] z=new Object[profil.coordXYProfil.size()]; for(int i=0;i<profil.coordXYProfil.size();i++){ coordSeq.setOrdinate(i, 0, profil.coordXYProfil.get(i)[0]); coordSeq.setOrdinate(i, 1, profil.coordXYProfil.get(i)[1]); - coordSeq.setOrdinate(i, 2, profil.coordZ.get(i)); + z[i]=profil.coordZ.get(i); } - zone.addGeometry(new GISPolyligne(coordSeq), new Object[]{profil.nomProfil, GISAttributeConstants.ATT_NATURE_PF}, null); + zone.addGeometry(new GISPolyligne(coordSeq), new Object[]{profil.nomProfil, GISAttributeConstants.ATT_NATURE_PF, z}, null); } if (profils_.size()>1) { // G\xE9n\xE9ration de l'axe hydraulique \\ @@ -269,7 +270,7 @@ coordSeq.setOrdinate(i, 0, profils_.get(i).coordIntersectionAxeHydraulique[0]); coordSeq.setOrdinate(i, 1, profils_.get(i).coordIntersectionAxeHydraulique[1]); } - zone.addGeometry(new GISPolyligne(coordSeq), new Object[]{null, GISAttributeConstants.ATT_NATURE_AH}, null); + zone.addGeometry(new GISPolyligne(coordSeq), new Object[]{null, GISAttributeConstants.ATT_NATURE_AH, null}, null); } else analyze_.addInfo(fileName_+DodicoLib.getS(" : le fichier ne comporte qu'un profil, aucun axe hydraulique ne sera g\xE9n\xE9r\xE9.")); Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/SceneAbscisseCurviligneAction.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/SceneAbscisseCurviligneAction.java 2008-12-04 16:38:20 UTC (rev 4272) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/SceneAbscisseCurviligneAction.java 2008-12-04 17:48:11 UTC (rev 4273) @@ -29,6 +29,8 @@ import org.fudaa.ebli.calque.ZSelectionListener; import org.fudaa.ebli.calque.edition.ZEditorDefault; import org.fudaa.ebli.commun.EbliActionPaletteAbstract; +import org.fudaa.ebli.geometrie.GrPoint; +import org.fudaa.ebli.geometrie.GrSegment; import org.fudaa.ebli.ressource.EbliResource; import org.fudaa.fudaa.commun.FudaaLib; import org.fudaa.fudaa.modeleur.layer.BPaletteAbscisseCurviligne; @@ -152,11 +154,11 @@ } /** - * Est appel\xE9 par le calque d'interaction pour indiquer le point click\xE9. + * Est appel\xE9 par le calque d'interaction pour indiquer le point cliqu\xE9. * @param _coord la coordonn\xE9 r\xE9el. - * @return true si le click est consid\xE9r\xE9 comme sur la g\xE9om\xE9trie, false sinon + * @return la coordonn\xE9 projet\xE9 si le point click\xE9 est dans la tol\xE9rance, null sinon. */ - public boolean coordinateClicked(Coordinate _coord, double tolerance){ + public Coordinate coordinateClicked(Coordinate _coord, double tolerance){ Point ptClick=new GeometryFactory().createPoint(_coord); boolean returnValue=false; if (selectedGeometry_!=null&&selectedGeometry_.distance(ptClick)<tolerance) { @@ -172,17 +174,18 @@ // Calcule de l'abscisse curviligne double valueCurviligne=0; for (int j=1; j<=i; j++) - valueCurviligne+=Math.sqrt(Math.pow(coordSeq.getOrdinate(j, 0)-coordSeq.getOrdinate(j-1, 0), 2) - +Math.pow(coordSeq.getOrdinate(j, 1)-coordSeq.getOrdinate(j-1, 1), 2)); - // th de Pythagore - valueCurviligne+=Math.sqrt(Math.pow((Math.sqrt(Math.pow(coordSeq.getOrdinate(i, 0)-ptClick.getX(), 2) - +Math.pow(coordSeq.getOrdinate(i, 1)-ptClick.getY(), 2))), 2) - -Math.pow(selectedGeometry_.distance(ptClick), 2)); + valueCurviligne+=coordSeq.getCoordinate(j).distance(coordSeq.getCoordinate(j-1)); + // Point projet\xE9 + GrPoint pp=new GrSegment(new GrPoint(coordSeq.getCoordinate(i)), new GrPoint(coordSeq.getCoordinate(i+1))).pointPlusProche(new GrPoint(_coord)); + Coordinate ppc=new Coordinate(pp.x_, pp.y_, pp.z_); + // Mise \xE0 jour de l'abscisse curviligne + valueCurviligne+=coordSeq.getCoordinate(i).distance(ppc); ((BPaletteAbscisseCurviligne)palette_).setAbcisseCurviligne(valueCurviligne); + return ppc; } else if(selectedGeometry_!=null) ((BPaletteAbscisseCurviligne)palette_).setMessage(FudaaLib.getS("pas de valeur")); - return returnValue; + return null; } @Override Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/ZCalqueAbscisseCurviligneInteraction.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/ZCalqueAbscisseCurviligneInteraction.java 2008-12-04 16:38:20 UTC (rev 4272) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/ZCalqueAbscisseCurviligneInteraction.java 2008-12-04 17:48:11 UTC (rev 4273) @@ -34,15 +34,20 @@ /** L'action g\xE9rant le calcule de l'abcisse curviligne. */ private SceneAbscisseCurviligneAction controller_; - /** Le dernier click effectu\xE9. */ - private Coordinate lastClick_; + /** La position de la sonde en coordonn\xE9 r\xE9el. */ + private Coordinate positionReelSonde_; + /** Derni\xE8re position de la sonde en coordonn\xE9 \xE9cran. */ + private Coordinate oldPositionSonde_; /** La sonde \xE0 afficher \xE0 l'endroit du click. */ private TraceIcon sonde_; /** Indique si la sonde est affich\xE9e. */ private boolean sondePainted_; + /** Indique si le curseur est en dehors de la fen\xEAtre. */ + private boolean cursOut_; public ZCalqueAbscisseCurviligneInteraction(SceneAbscisseCurviligneAction _controller){ setName("cqInteractifAbscisseCurviligne"); + cursOut_=false; controller_=_controller; sondePainted_=false; sonde_=new TraceIcon(TraceIcon.RIEN, 6) { @@ -72,11 +77,8 @@ sonde_.setCouleur(Color.BLACK); } - private void drawSonde(Graphics g){ - if (lastClick_!=null) { - Coordinate c=reelToEcran(lastClick_); - sonde_.paintIconCentre(this, g, (int)c.x, (int)c.y); - } + private void drawSonde(Graphics g, Coordinate c){ + sonde_.paintIconCentre(this, g, (int)c.x, (int)c.y); } protected void afficheSonde(){ @@ -84,7 +86,10 @@ Graphics g=getGraphics(); if(g!=null){ g.setXORMode(getBackground()); - drawSonde(g); + if (positionReelSonde_!=null) { + drawSonde(g, reelToEcran(positionReelSonde_)); + oldPositionSonde_=reelToEcran(positionReelSonde_); + } } sondePainted_=true; } @@ -95,7 +100,10 @@ Graphics g=getGraphics(); if(g!=null){ g.setXORMode(getBackground()); - drawSonde(g); + if (oldPositionSonde_!=null) { + drawSonde(g, oldPositionSonde_); + oldPositionSonde_=null; + } } sondePainted_=false; } @@ -132,6 +140,7 @@ public void mouseClicked(final MouseEvent _evt) {} public void mouseEntered(final MouseEvent _evt) { + cursOut_=false; if(!isGele()) afficheSonde(); } @@ -139,6 +148,7 @@ public void mousePressed(final MouseEvent _evt) {} public void mouseExited(final MouseEvent _evt) { + cursOut_=true; if(!isGele()) effaceSonde(); } @@ -146,7 +156,6 @@ public void mouseReleased(final MouseEvent _evt) { if (!isGele()&&_evt.getButton()==MouseEvent.BUTTON1){ effaceSonde(); - lastClick_=ecranToReel(new Coordinate(_evt.getX(), _evt.getY())); // Calcule de la tol\xE9rance au click double tolerance; GrPoint p1=new GrPoint(0, 0, 0); @@ -156,20 +165,21 @@ p2.autoApplique(getVersEcran()); tolerance/=p1.distance(p2); // Mise a jour de l'action - if(controller_.coordinateClicked(lastClick_, tolerance)) + positionReelSonde_=controller_.coordinateClicked(ecranToReel(new Coordinate(_evt.getX(), _evt.getY())), tolerance); + if(positionReelSonde_!=null) afficheSonde(); } } /** Indique au calque qu'il faut s'arr\xEAter. */ public void stopEdition(){ - lastClick_=null; + positionReelSonde_=null; } public void setGele(boolean _gele){ if(_gele) effaceSonde(); - else + else if(!cursOut_) afficheSonde(); super.setGele(_gele); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2008-12-04 16:38:25
|
Revision: 4272 http://fudaa.svn.sourceforge.net/fudaa/?rev=4272&view=rev Author: bmarchan Date: 2008-12-04 16:38:20 +0000 (Thu, 04 Dec 2008) Log Message: ----------- Caract?\195?\168re invalide dans fichier. Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlImplementation.java Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlImplementation.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlImplementation.java 2008-12-04 16:34:08 UTC (rev 4271) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlImplementation.java 2008-12-04 16:38:20 UTC (rev 4272) @@ -1,6 +1,5 @@ /* * @creation 7 juin 07 - * @modification $Date$ * @license GNU General Public License 2 * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne * @mail de...@fu... This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2008-12-04 16:34:13
|
Revision: 4271 http://fudaa.svn.sourceforge.net/fudaa/?rev=4271&view=rev Author: bmarchan Date: 2008-12-04 16:34:08 +0000 (Thu, 04 Dec 2008) Log Message: ----------- Chgt de version => 0.08 Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlImplementation.java Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlImplementation.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlImplementation.java 2008-12-04 16:08:50 UTC (rev 4270) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlImplementation.java 2008-12-04 16:34:08 UTC (rev 4271) @@ -8,24 +8,19 @@ package org.fudaa.fudaa.modeleur; import java.awt.Dimension; -import java.awt.EventQueue; import java.awt.Point; import java.awt.event.ActionEvent; import java.beans.PropertyVetoException; import java.io.File; import java.io.IOException; -import java.net.URL; import java.util.List; -import javax.swing.Action; import javax.swing.JComponent; -import javax.swing.JInternalFrame; import javax.swing.JOptionPane; import javax.swing.filechooser.FileFilter; import org.fudaa.ctulu.CtuluArkLoader; import org.fudaa.ctulu.CtuluExportDataInterface; -import org.fudaa.ctulu.CtuluLib; import org.fudaa.ctulu.CtuluLibFile; import org.fudaa.ctulu.CtuluLibString; import org.fudaa.ctulu.CtuluRunnable; @@ -33,16 +28,12 @@ import org.fudaa.ctulu.ProgressionInterface; import org.fudaa.ctulu.gui.CtuluDialogPanel; import org.fudaa.ctulu.gui.CtuluFileChooserTestWritable; -import org.fudaa.ctulu.gui.CtuluHelpComponent; import org.fudaa.ctulu.gui.CtuluLibDialog; -import org.fudaa.ebli.calque.ZEbliFilleCalques; -import org.fudaa.ebli.commun.EbliActionMap; import org.fudaa.ebli.impression.EbliMiseEnPagePreferencesPanel; import org.fudaa.ebli.ressource.EbliResource; import org.fudaa.fudaa.commun.FudaaLib; import org.fudaa.fudaa.commun.FudaaProjectStateListener; import org.fudaa.fudaa.commun.FudaaProjetStateInterface; -import org.fudaa.fudaa.commun.aide.FudaaHelpPanel; import org.fudaa.fudaa.commun.impl.FudaaCommonImplementation; import org.fudaa.fudaa.commun.impl.FudaaGuiLib; import org.fudaa.fudaa.commun.impl.FudaaLookPreferencesPanel; @@ -50,15 +41,10 @@ import org.fudaa.fudaa.commun.save.FudaaSaveLib; import org.fudaa.fudaa.commun.save.FudaaSaveProject; import org.fudaa.fudaa.commun.save.FudaaSaveZipLoader; -import org.fudaa.fudaa.modeleur.action.MdlShow1DFrameAction; import org.fudaa.fudaa.modeleur.action.MdlShow2DFrameAction; import org.fudaa.fudaa.ressource.FudaaResource; -import org.fudaa.fudaa.sig.FSigLib; import org.fudaa.fudaa.sig.FSigProjectPersistence; import org.fudaa.fudaa.sig.FSigResource; -import org.fudaa.fudaa.tr.TrLauncherDefault; -import org.fudaa.fudaa.tr.common.TrProjectImportPanel; -import org.fudaa.fudaa.tr.common.TrProjectPersistence; import org.fudaa.fudaa.tr.common.TrResource; import com.memoire.bu.BuAbstractPreferencesPanel; @@ -66,7 +52,6 @@ import com.memoire.bu.BuColumn; import com.memoire.bu.BuDesktopPreferencesPanel; import com.memoire.bu.BuInformationsSoftware; -import com.memoire.bu.BuInternalFrame; import com.memoire.bu.BuLanguagePreferencesPanel; import com.memoire.bu.BuLib; import com.memoire.bu.BuMainPanel; @@ -94,8 +79,8 @@ protected static BuInformationsSoftware isMdl_ = new BuInformationsSoftware(); static { isMdl_.name = "Modeleur"; - isMdl_.version = "0.08-alpha"; - isMdl_.date = "2008-11-12"; + isMdl_.version = "0.08"; + isMdl_.date = "2008-12-05"; isMdl_.rights = "Tous droits r\xE9serv\xE9s. CETMEF (c)1999-2008"; isMdl_.license = "GPL2"; isMdl_.languages = "fr,en"; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2008-12-04 16:08:56
|
Revision: 4270 http://fudaa.svn.sourceforge.net/fudaa/?rev=4270&view=rev Author: bmarchan Date: 2008-12-04 16:08:50 +0000 (Thu, 04 Dec 2008) Log Message: ----------- Chgt mineur. Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/EbliSingleObjectEditorPanel.java Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/EbliSingleObjectEditorPanel.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/EbliSingleObjectEditorPanel.java 2008-12-04 15:02:10 UTC (rev 4269) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/EbliSingleObjectEditorPanel.java 2008-12-04 16:08:50 UTC (rev 4270) @@ -365,10 +365,10 @@ // Axe des Y axeY_=new EGAxeVertical(); axeY_.setGraduations(true); - axeY_.setTitre(EbliLib.getS("Ordonn\xE9") + " : " + model_.getColumnName(zCol_)); + axeY_.setTitre(EbliLib.getS("Ordonn\xE9e") + " : " + model_.getColumnName(zCol_)); axeY_.setUnite(EbliLib.getS("m\xE8tre")); - DecimalFormat df=new DecimalFormat(); - df.setMaximumFractionDigits(1); + DecimalFormat df=CtuluLib.getDecimalFormat(); + df.setMaximumFractionDigits(2); axeY_.setSpecificFormat(new CtuluNumberFormatDefault(df)); // Calcule des x generateCoordX(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <emm...@us...> - 2008-12-04 15:02:28
|
Revision: 4269 http://fudaa.svn.sourceforge.net/fudaa/?rev=4269&view=rev Author: emmanuel_martin Date: 2008-12-04 15:02:10 +0000 (Thu, 04 Dec 2008) Log Message: ----------- petite am?\195?\169lioration du calcul de la projection dans l'algo de test de l'interpolation de profil a partir d'une trace de profil Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/interpolation/profile/InterpolationProfilTest.java Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/interpolation/profile/InterpolationProfilTest.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/interpolation/profile/InterpolationProfilTest.java 2008-12-04 13:33:31 UTC (rev 4268) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/interpolation/profile/InterpolationProfilTest.java 2008-12-04 15:02:10 UTC (rev 4269) @@ -195,20 +195,17 @@ /** Projection de a(x, y, z) sur la droite passant par o et e. */ private Coordinate projection(GISPoint o, GISPoint e, double x, double y, double z) { - // Calcul de vecteur u=vec oe et normalisation - Coordinate vecU=new Coordinate(e.getX()-o.getX(), e.getY()-o.getY(), e.getZ()-o.getZ()); - double normeU=Math.sqrt(vecU.x*vecU.x+vecU.y*vecU.y+vecU.z*vecU.z); - vecU.x=vecU.x/normeU; - vecU.y=vecU.y/normeU; - vecU.z=vecU.z/normeU; - // Calcul du produit scalaire u et oa =k - double k=(x-o.getX())*vecU.x+(y-o.getY())*vecU.y+(z-o.getZ())*vecU.z; - // OP=ku - Coordinate p=new Coordinate(k*vecU.x+o.getX(), k*vecU.y+o.getY(), k*vecU.z+o.getZ()); - if(dist(o.getCoordinate(), p)+dist(p, e.getCoordinate())!=dist(o.getCoordinate(), e.getCoordinate())) + Coordinate vOE=new Coordinate(e.getX()-o.getX(), e.getY()-o.getY(), e.getZ()-o.getZ()); + Coordinate vOA=new Coordinate(x-o.getX(), y-o.getY(), z-o.getZ()); + double normeOE=Math.sqrt(vOE.x*vOE.x+vOE.y*vOE.y+vOE.z*vOE.z); + double produitScalaireOEOA=vOE.x*vOA.x+vOE.y*vOA.y+vOE.z*vOA.z; + + double rapportSurAB=produitScalaireOEOA/(normeOE*normeOE); + + if(rapportSurAB<0||rapportSurAB>1) return null; else - return p; + return new Coordinate(vOE.x*rapportSurAB+o.getX(), vOE.y*rapportSurAB+o.getY(), vOE.z*rapportSurAB+o.getZ()); } /** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <emm...@us...> - 2008-12-04 13:33:41
|
Revision: 4268 http://fudaa.svn.sourceforge.net/fudaa/?rev=4268&view=rev Author: emmanuel_martin Date: 2008-12-04 13:33:31 +0000 (Thu, 04 Dec 2008) Log Message: ----------- modification de l'algo de test de l'interpolation de profil a partir d'une trace : le profil g?\195?\169n?\195?\169r?\195?\169 est entir?\195?\168rement contenu dans la trace. Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/interpolation/profile/InterpolationProfilTest.java Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/interpolation/profile/InterpolationProfilTest.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/interpolation/profile/InterpolationProfilTest.java 2008-12-04 11:09:38 UTC (rev 4267) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/interpolation/profile/InterpolationProfilTest.java 2008-12-04 13:33:31 UTC (rev 4268) @@ -16,7 +16,7 @@ /** * @author Emmanuel MARTIN - * @version $Id:$ + * @version $Id$ */ public class InterpolationProfilTest { @@ -45,9 +45,12 @@ double y=cloud_.getY(i); double z=cloud_.getZ(i); Coordinate proj=projection(ptTrace1, ptTrace2, x, y, z); - pointProj.add(new Object[]{proj, i, dist(proj.x, proj.y, proj.z, x, y, z), dist(ptTrace1.getCoordinate(), proj), - enHaut(ptTrace1, ptTrace2, x, y, z)}); + // Si le point projet\xE9 est situ\xE9 sur la trace, on garde sinon on l'oublie. + if(proj!=null) + pointProj.add(new Object[]{proj, i, dist(proj.x, proj.y, proj.z, x, y, z), dist(ptTrace1.getCoordinate(), proj), + enHaut(ptTrace1, ptTrace2, x, y, z)}); } + // Tri des points projet\xE9s par rapport \xE0 la distance entre le point proj et // l'origine de la trace for (int i=0; i<pointProj.size(); i++) @@ -201,7 +204,11 @@ // Calcul du produit scalaire u et oa =k double k=(x-o.getX())*vecU.x+(y-o.getY())*vecU.y+(z-o.getZ())*vecU.z; // OP=ku - return new Coordinate(k*vecU.x+o.getX(), k*vecU.y+o.getY(), k*vecU.z+o.getZ()); + Coordinate p=new Coordinate(k*vecU.x+o.getX(), k*vecU.y+o.getY(), k*vecU.z+o.getZ()); + if(dist(o.getCoordinate(), p)+dist(p, e.getCoordinate())!=dist(o.getCoordinate(), e.getCoordinate())) + return null; + else + return p; } /** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2008-12-04 11:09:43
|
Revision: 4267 http://fudaa.svn.sourceforge.net/fudaa/?rev=4267&view=rev Author: bmarchan Date: 2008-12-04 11:09:38 +0000 (Thu, 04 Dec 2008) Log Message: ----------- bugfix. Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/SceneProfilInterpolation.java Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/SceneProfilInterpolation.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/SceneProfilInterpolation.java 2008-12-04 10:21:24 UTC (rev 4266) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/SceneProfilInterpolation.java 2008-12-04 11:09:38 UTC (rev 4267) @@ -1,6 +1,6 @@ /* * @creation 26 nov. 2008 - * @modification $Date:$ + * @modification $Date$ * @license GNU General Public License 2 * @copyright (c)1998-2008 CETMEF 2 bd Gambetta F-60231 Compiegne * @mail fud...@li... @@ -53,7 +53,9 @@ // La nature de la g\xE9om\xE9trie est bien trace profil if(calque.modeleDonnees() instanceof ZModeleGeometry){ GISZoneCollection zone=((ZModeleGeometry) calque.modeleDonnees()).getGeomData(); - b=zone.getValue(zone.getIndiceOf(GISAttributeConstants.NATURE), idGeom).equals(GISAttributeConstants.ATT_NATURE_TP); + int iattNat=zone.getIndiceOf(GISAttributeConstants.NATURE); + if (iattNat!=-1) + b=zone.getValue(iattNat, idGeom).equals(GISAttributeConstants.ATT_NATURE_TP); } } setEnabled(b); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2008-12-04 10:21:26
|
Revision: 4266 http://fudaa.svn.sourceforge.net/fudaa/?rev=4266&view=rev Author: bmarchan Date: 2008-12-04 10:21:24 +0000 (Thu, 04 Dec 2008) Log Message: ----------- Chgt nom de classe SceneLinearisePolyligne -> SceneLinearisePolyligneAction Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlEditionManager.java Added Paths: ----------- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/SceneLinearisePolyligneAction.java Removed Paths: ------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/SceneLinearisePolyligne.java Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlEditionManager.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlEditionManager.java 2008-12-04 09:55:13 UTC (rev 4265) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlEditionManager.java 2008-12-04 10:21:24 UTC (rev 4266) @@ -34,7 +34,7 @@ import org.fudaa.fudaa.modeleur.action.SceneInvertAction; import org.fudaa.fudaa.modeleur.action.SceneMoveInLayerAction; import org.fudaa.fudaa.modeleur.action.SceneProfilInterpolation; -import org.fudaa.fudaa.modeleur.action.SceneLinearisePolyligne; +import org.fudaa.fudaa.modeleur.action.SceneLinearisePolyligneAction; import org.fudaa.fudaa.modeleur.action.SceneProjectionAction; import org.fudaa.fudaa.modeleur.action.SceneRefinementAction; import org.fudaa.fudaa.sig.layer.FSigEditor; @@ -83,7 +83,7 @@ acts.add(new SceneInvertAction((MdlSceneEditor)sceneEditor_)); acts.add(new SceneProjectionAction((MdlSceneEditor)sceneEditor_)); acts.add(new SceneProfilInterpolation((MdlSceneEditor)sceneEditor_)); - acts.add(new SceneLinearisePolyligne((MdlSceneEditor) sceneEditor_)); + acts.add(new SceneLinearisePolyligneAction((MdlSceneEditor) sceneEditor_)); acts.add(new SceneAbscisseCurviligneAction(this)); getSceneEditor().setActions(acts.toArray(new EbliActionAbstract[0])); } Deleted: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/SceneLinearisePolyligne.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/SceneLinearisePolyligne.java 2008-12-04 09:55:13 UTC (rev 4265) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/SceneLinearisePolyligne.java 2008-12-04 10:21:24 UTC (rev 4266) @@ -1,73 +0,0 @@ -/* - * @creation 2 d\xE9c. 2008 - * @modification $Date:$ - * @license GNU General Public License 2 - * @copyright (c)1998-2008 CETMEF 2 bd Gambetta F-60231 Compiegne - * @mail fud...@li... - */ -package org.fudaa.fudaa.modeleur.action; - -import java.awt.event.ActionEvent; - -import org.fudaa.ctulu.CtuluLib; -import org.fudaa.ctulu.gis.GISAttributeConstants; -import org.fudaa.ctulu.gis.GISPolyligne; -import org.fudaa.ctulu.gis.GISZoneCollection; -import org.fudaa.ebli.calque.ZCalqueAffichageDonneesInterface; -import org.fudaa.ebli.calque.ZModeleGeometry; -import org.fudaa.ebli.calque.ZScene; -import org.fudaa.ebli.calque.ZSelectionEvent; -import org.fudaa.ebli.calque.ZSelectionListener; -import org.fudaa.ebli.calque.ZScene.SceneSelectionHelper; -import org.fudaa.ebli.commun.EbliActionSimple; -import org.fudaa.fudaa.modeleur.MdlSceneEditor; -import org.fudaa.fudaa.ressource.FudaaResource; - -/** - * Action permettant de rendre rectiligne un profil. - * @author Emmanuel MARTIN - * @version $Id:$ - */ -public class SceneLinearisePolyligne extends EbliActionSimple implements ZSelectionListener { - protected MdlSceneEditor sceneEditor_; - - public SceneLinearisePolyligne(MdlSceneEditor _sceneEditor) { - super(FudaaResource.FUDAA.getString("Rendre rectiligne une ou plusieurs polyligne(s)"), null, "RECTILIGNE_POLYLIGNE"); - setDefaultToolTip(FudaaResource.FUDAA.getString("Rend rectiligne une ou plusieurs polyligne(s)")); - sceneEditor_=_sceneEditor; - sceneEditor_.getScene().addSelectionListener(this); - } - - public void actionPerformed(final ActionEvent _e) { - sceneEditor_.linearisePolyligne(); - } - - public void updateForSelectionChanged() { - ZScene scn=sceneEditor_.getScene(); - SceneSelectionHelper hlp=sceneEditor_.getScene().getSelectionHelper(); - // Au moins une et seulement des polylignes de selectionn\xE9es. Et si en mode - // atomique, deux sommets doivent \xEAtre selectionn\xE9s pour chacune d'entre - // elles. - int[] geomSelected=scn.getSelectionHelper().getSelectedIndexes(); - boolean b=geomSelected.length>0; - int i=0; - while(b&&i<geomSelected.length){ - b=scn.getObject(geomSelected[i]) instanceof GISPolyligne; - if(scn.isAtomicMode()) - b=b&&scn.getLayerSelectionMulti()!=null&&scn.getLayerSelectionMulti().getSelection(geomSelected[i]).getNbSelectedIndex()==2; - i++; - } - setEnabled(b); - } - - public String getEnableCondition() { - return CtuluLib.getS("Selectionner une ou plusieurs polyligne(s), en mode global ou atomique (pour cette derni\xE8re selectionnez deux points pour chaque polyligne)."); - } - - /* (non-Javadoc) - * @see org.fudaa.ebli.calque.ZSelectionListener#selectionChanged(org.fudaa.ebli.calque.ZSelectionEvent) - */ - public void selectionChanged(ZSelectionEvent _evt) { - updateForSelectionChanged(); - } -} Copied: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/SceneLinearisePolyligneAction.java (from rev 4265, branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/SceneLinearisePolyligne.java) =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/SceneLinearisePolyligneAction.java (rev 0) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/SceneLinearisePolyligneAction.java 2008-12-04 10:21:24 UTC (rev 4266) @@ -0,0 +1,73 @@ +/* + * @creation 2 d\xE9c. 2008 + * @modification $Date:$ + * @license GNU General Public License 2 + * @copyright (c)1998-2008 CETMEF 2 bd Gambetta F-60231 Compiegne + * @mail fud...@li... + */ +package org.fudaa.fudaa.modeleur.action; + +import java.awt.event.ActionEvent; + +import org.fudaa.ctulu.CtuluLib; +import org.fudaa.ctulu.gis.GISAttributeConstants; +import org.fudaa.ctulu.gis.GISPolyligne; +import org.fudaa.ctulu.gis.GISZoneCollection; +import org.fudaa.ebli.calque.ZCalqueAffichageDonneesInterface; +import org.fudaa.ebli.calque.ZModeleGeometry; +import org.fudaa.ebli.calque.ZScene; +import org.fudaa.ebli.calque.ZSelectionEvent; +import org.fudaa.ebli.calque.ZSelectionListener; +import org.fudaa.ebli.calque.ZScene.SceneSelectionHelper; +import org.fudaa.ebli.commun.EbliActionSimple; +import org.fudaa.fudaa.modeleur.MdlSceneEditor; +import org.fudaa.fudaa.ressource.FudaaResource; + +/** + * Action permettant de rendre rectiligne un profil. + * @author Emmanuel MARTIN + * @version $Id$ + */ +public class SceneLinearisePolyligneAction extends EbliActionSimple implements ZSelectionListener { + protected MdlSceneEditor sceneEditor_; + + public SceneLinearisePolyligneAction(MdlSceneEditor _sceneEditor) { + super(FudaaResource.FUDAA.getString("Rendre rectiligne des polylignes"), null, "RECTILIGNE_POLYLIGNE"); +// setDefaultToolTip(FudaaResource.FUDAA.getString("Rend rectiligne une ou plusieurs polyligne(s)")); + sceneEditor_=_sceneEditor; + sceneEditor_.getScene().addSelectionListener(this); + } + + public void actionPerformed(final ActionEvent _e) { + sceneEditor_.linearisePolyligne(); + } + + public void updateForSelectionChanged() { + ZScene scn=sceneEditor_.getScene(); + SceneSelectionHelper hlp=sceneEditor_.getScene().getSelectionHelper(); + // Au moins une et seulement des polylignes de selectionn\xE9es. Et si en mode + // atomique, deux sommets doivent \xEAtre selectionn\xE9s pour chacune d'entre + // elles. + int[] geomSelected=scn.getSelectionHelper().getSelectedIndexes(); + boolean b=geomSelected.length>0; + int i=0; + while(b&&i<geomSelected.length){ + b=scn.getObject(geomSelected[i]) instanceof GISPolyligne; + if(scn.isAtomicMode()) + b=b&&scn.getLayerSelectionMulti()!=null&&scn.getLayerSelectionMulti().getSelection(geomSelected[i]).getNbSelectedIndex()==2; + i++; + } + setEnabled(b); + } + + public String getEnableCondition() { + return CtuluLib.getS("<p>En mode sommet, s\xE9lectionner deux points pour chaque polyligne<p>En mode global, s\xE9lectionner une ou plusieurs polyligne(s)."); + } + + /* (non-Javadoc) + * @see org.fudaa.ebli.calque.ZSelectionListener#selectionChanged(org.fudaa.ebli.calque.ZSelectionEvent) + */ + public void selectionChanged(ZSelectionEvent _evt) { + updateForSelectionChanged(); + } +} Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/SceneLinearisePolyligneAction.java ___________________________________________________________________ Added: svn:keywords + Id Added: svn:mergeinfo + /branches/Br_FudaaModeleur_TF/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/SceneLinearisePolyligne.java:3445-3850 /branches/FudaaModeleur_TC1/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/SceneLinearisePolyligne.java:3861-3891 Added: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <emm...@us...> - 2008-12-04 09:55:18
|
Revision: 4265 http://fudaa.svn.sourceforge.net/fudaa/?rev=4265&view=rev Author: emmanuel_martin Date: 2008-12-04 09:55:13 +0000 (Thu, 04 Dec 2008) Log Message: ----------- bugfix : divers bug concernant la selection , la destruction et le d?\195?\169placement en mode point. Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollectionGeometry.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZModeleLigneBriseeEditable.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/SceneAbscisseCurviligneAction.java Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollectionGeometry.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollectionGeometry.java 2008-12-03 15:00:00 UTC (rev 4264) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/gis/GISZoneCollectionGeometry.java 2008-12-04 09:55:13 UTC (rev 4265) @@ -254,8 +254,8 @@ } // les nouvelles coordonnees. final Coordinate[] newCs = new Coordinate[nbPt-nbSel]; - // cette liste contient les indice a enlever : creee que si necessaire - // si des attribute atomics existent + // cette liste contient les indices a enlever : creee que si necessaire + // si des attributes atomics existent final TIntArrayList idxToRemove = containsAtomicAttribute() ? new TIntArrayList(nbPt-nbSel) : null; // compteur tempo Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZModeleLigneBriseeEditable.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZModeleLigneBriseeEditable.java 2008-12-03 15:00:00 UTC (rev 4264) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZModeleLigneBriseeEditable.java 2008-12-04 09:55:13 UTC (rev 4265) @@ -132,6 +132,7 @@ //les points a enlever final CtuluListSelectionInterface sel = (CtuluListSelectionInterface) iterator.value(); geometries_.removeAtomics(idxLigne, sel, _ui, cmp); + sel.clear(); } if (_cmd != null) { _cmd.addCmd(cmp.getSimplify()); @@ -580,14 +581,8 @@ FuLog.warning("EBL:Pb l'attribut pour Z n'est pas dans la liste des attributs du calque!"); } - if (isGeometryFermee(i)) { - final GISPolygone poly = (GISPolygone) GISGeometryFactory.INSTANCE.createLinearRing(newSeq); - geometries_.setGeometry(i, poly, cmp); - } - else { - final GISPolyligne poly = (GISPolyligne) GISGeometryFactory.INSTANCE.createLineString(newSeq); - geometries_.setGeometry(i, poly, cmp); - } + final Geometry poly = GISGeometryFactory.INSTANCE.createGeometry(geometries_.getGeometry(i).getClass(), newSeq); + geometries_.setGeometry(i, poly, cmp); } } if (_cmd != null) { @@ -653,26 +648,13 @@ } } - if (isGeometryFermee(idx)) { - final GISPolygone poly = (GISPolygone) GISGeometryFactory.INSTANCE.createLinearRing(newSeq); - if (!poly.isValid()) { - if (_ui != null) { - _ui.error(null,EbliLib.getS("La nouvelle ligne n'est pas valide"), false); - } - return false; - } - geometries_.setGeometry(idx, poly, cmp); + final Geometry poly = GISGeometryFactory.INSTANCE.createGeometry(geometries_.getGeometry(idx).getClass(), newSeq); + if (!poly.isValid()) { + if (_ui != null) + _ui.error(null,EbliLib.getS("La nouvelle ligne n'est pas valide"), false); + return false; } - else { - final GISPolyligne poly = (GISPolyligne) GISGeometryFactory.INSTANCE.createLineString(newSeq); - if (!poly.isValid()) { - if (_ui != null) { - _ui.error(null,EbliLib.getS("La nouvelle ligne n'est pas valide"), false); - } - return false; - } - geometries_.setGeometry(idx, poly, cmp); - } + geometries_.setGeometry(idx, poly, cmp); if (newvals!=null) getGeomData().getModel(zAtt).setObject(idx, newvals, cmp); Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/SceneAbscisseCurviligneAction.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/SceneAbscisseCurviligneAction.java 2008-12-03 15:00:00 UTC (rev 4264) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/SceneAbscisseCurviligneAction.java 2008-12-04 09:55:13 UTC (rev 4265) @@ -135,7 +135,7 @@ * est activable et un ref\xE9rence sur cette g\xE9om\xE9trie est concerv\xE9e dans * 'selectedGeometry_'. */ - if (scene_.isOnlyOneObjectSelected()) { + if (scene_.isOnlyOneObjectSelected()&&scene_.sceneId2LayerId(scene_.getSelectionHelper().getUniqueSelectedIdx())!=-1) { int idxGeom=scene_.getSelectionHelper().getUniqueSelectedIdx(); ZCalqueAffichageDonneesInterface calque=scene_.getLayerForId(idxGeom); Geometry geom=((ZModeleGeometry)calque.modeleDonnees()).getGeomData().getGeometry(scene_.sceneId2LayerId(idxGeom)); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <emm...@us...> - 2008-12-03 15:00:04
|
Revision: 4264 http://fudaa.svn.sourceforge.net/fudaa/?rev=4264&view=rev Author: emmanuel_martin Date: 2008-12-03 15:00:00 +0000 (Wed, 03 Dec 2008) Log Message: ----------- Tache #119 : "Suivi de l'ordonn?\195?\169e sur trac?\195?\169 de courbe lors de l'?\195?\169dition d'une g?\195?\169om?\195?\169trie ?\195?\160 moiti?\195?\169 cach?\195?\169." Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/EbliSingleObjectEditorPanel.java Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/EbliSingleObjectEditorPanel.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/EbliSingleObjectEditorPanel.java 2008-12-03 14:11:17 UTC (rev 4263) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/EbliSingleObjectEditorPanel.java 2008-12-03 15:00:00 UTC (rev 4264) @@ -12,6 +12,7 @@ import java.awt.Container; import java.awt.Dimension; import java.awt.GridLayout; +import java.text.DecimalFormat; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; @@ -40,6 +41,7 @@ import org.fudaa.ctulu.CtuluListSelectionEvent; import org.fudaa.ctulu.CtuluListSelectionInterface; import org.fudaa.ctulu.CtuluListSelectionListener; +import org.fudaa.ctulu.CtuluNumberFormatDefault; import org.fudaa.ctulu.gis.GISAttributeConstants; import org.fudaa.ctulu.gis.GISAttributeDouble; import org.fudaa.ctulu.gis.GISAttributeModel; @@ -363,8 +365,11 @@ // Axe des Y axeY_=new EGAxeVertical(); axeY_.setGraduations(true); - axeY_.setTitre(model_.getColumnName(zCol_)); + axeY_.setTitre(EbliLib.getS("Ordonn\xE9") + " : " + model_.getColumnName(zCol_)); axeY_.setUnite(EbliLib.getS("m\xE8tre")); + DecimalFormat df=new DecimalFormat(); + df.setMaximumFractionDigits(1); + axeY_.setSpecificFormat(new CtuluNumberFormatDefault(df)); // Calcule des x generateCoordX(); axeX_.setBounds(0, lengthPolyligne_); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <emm...@us...> - 2008-12-03 14:11:21
|
Revision: 4263 http://fudaa.svn.sourceforge.net/fudaa/?rev=4263&view=rev Author: emmanuel_martin Date: 2008-12-03 14:11:17 +0000 (Wed, 03 Dec 2008) Log Message: ----------- Rollback d'une modification inutile sur GrSegment. Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/geometrie/GrSegment.java Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/geometrie/GrSegment.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/geometrie/GrSegment.java 2008-12-03 13:56:39 UTC (rev 4262) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/geometrie/GrSegment.java 2008-12-03 14:11:17 UTC (rev 4263) @@ -11,8 +11,6 @@ import org.fudaa.ctulu.CtuluLibGeometrie; -import com.vividsolutions.jts.geom.Coordinate; - /** * Un segment 3D. * @@ -136,16 +134,17 @@ /** * Retourne le point appartenant au segment le plus proche du point donne. */ - public GrPoint pointPlusProche(final GrPoint _a) { - GrVecteur vecOA=new GrVecteur(_a.x_-o_.x_, _a.y_-o_.y_, _a.z_-o_.z_); - GrPoint r3; - if(vecOA.division(vecteur())<=0.) - r3=new GrPoint(o_.x_, o_.y_, o_.z_); - else if(vecOA.division(vecteur())>=1.) - r3=new GrPoint(e_.x_, e_.y_, e_.z_); - else - r3=o_.addition(vecOA.projection(vecteur())); - return r3; + public GrPoint pointPlusProche(final GrPoint _p) { + final double d = _p.soustraction(o_).division(vecteur()); + GrPoint r; + if (d <= 0.) { + r = new GrPoint(o_.x_, o_.y_, o_.z_); + } else if (d >= 1.) { + r = new GrPoint(e_.x_, e_.y_, e_.z_); + } else { + r = o_.addition(vecteur().multiplication(d)); + } + return r; } /** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bma...@us...> - 2008-12-03 13:56:44
|
Revision: 4262 http://fudaa.svn.sourceforge.net/fudaa/?rev=4262&view=rev Author: bmarchan Date: 2008-12-03 13:56:39 +0000 (Wed, 03 Dec 2008) Log Message: ----------- Tache #104 : Les actions ?\195?\169diter et joindre sont mises dans menu "G?\195?\169ometrie" Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/SceneSplitAction.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZCalqueEditable.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZCalqueLigneBriseeEditable.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZCalqueMultiPointEditable.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZCalquePointEditable.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZSceneEditor.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlEditionManager.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlVisuPanel.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dLine.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dMultiPoint.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigEditor.java Added Paths: ----------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/SceneJoinAction.java Added: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/SceneJoinAction.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/SceneJoinAction.java (rev 0) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/SceneJoinAction.java 2008-12-03 13:56:39 UTC (rev 4262) @@ -0,0 +1,105 @@ +/* + * @creation 3 juil. 2008 + * @modification $Date:$ + * @license GNU General Public License 2 + * @copyright (c)1998-2008 CETMEF 2 bd Gambetta F-60231 Compiegne + * @mail fud...@li... + */ +package org.fudaa.ebli.calque.action; + +import java.awt.event.ActionEvent; + +import javax.swing.Action; + +import org.fudaa.ctulu.CtuluLib; +import org.fudaa.ctulu.gis.GISMultiPoint; +import org.fudaa.ctulu.gis.GISPolyligne; +import org.fudaa.ctulu.gis.GISZoneCollectionLigneBrisee; +import org.fudaa.ebli.calque.ZModeleGeometry; +import org.fudaa.ebli.calque.ZScene; +import org.fudaa.ebli.calque.ZSelectionEvent; +import org.fudaa.ebli.calque.ZSelectionListener; +import org.fudaa.ebli.calque.ZScene.SceneSelectionHelper; +import org.fudaa.ebli.calque.edition.ZCalqueEditable; +import org.fudaa.ebli.calque.edition.ZCalqueLigneBriseeEditable; +import org.fudaa.ebli.calque.edition.ZCalqueMultiPointEditable; +import org.fudaa.ebli.calque.edition.ZSceneEditor; +import org.fudaa.ebli.commun.EbliActionSimple; + +import com.memoire.bu.BuResource; +import com.memoire.fu.Fu; +import com.memoire.fu.FuLog; + + +/** + * Une action pour joindre 2 polylignes \xE0 partir de leurs extremit\xE9s. Valable uniquement sur des calques + * {@link ZCalqueLigneBriseeEditable}. Ne fonctionne pas sur des polygones. + * @author Bertrand Marchand + */ +public class SceneJoinAction extends EbliActionSimple implements ZSelectionListener { + ZSceneEditor editor_; + + public SceneJoinAction(ZSceneEditor _editor) { + super(BuResource.BU.getString("Joindre"), null, "GIS_JOIN"); + editor_=_editor; + editor_.getScene().addSelectionListener(this); + setDefaultToolTip(CtuluLib.getS("Joindre 2 polylignes ou 2 multipoints d'un m\xEAme calque")); + } + + public void actionPerformed(final ActionEvent _e) { + editor_.joinSelectedObjects(); + } + + public void updateStateBeforeShow() { + super.setEnabled(isActivable()); + } + + /** + * Definit si l'action peut \xEAtre activ\xE9e. + * @return true si c'est possible. + */ + private boolean isActivable() { + putValue(Action.NAME, BuResource.BU.getString("Joindre")); + + ZScene scn=editor_.getScene(); + SceneSelectionHelper hlp=editor_.getScene().getSelectionHelper(); + + // On autorise la jonction que sur 2 g\xE9om\xE9tries d'un m\xEAme calque. + + // La selection est vide + if (scn.isSelectionEmpty()) return false; + // Le nombre de geometries n'est pas egal \xE0 2 + int[] idxgeom=hlp.getSelectedIndexes(); + if (idxgeom.length!=2) return false; + // Les g\xE9om\xE9tries n'appartiennent pas au m\xEAme calque. + if (scn.getLayerForId(idxgeom[0])!=scn.getLayerForId(idxgeom[1])) return false; + + // Les g\xE9om\xE9tries sont 2 multipoints, ok quelque soit le mode. + if (scn.getObject(idxgeom[0]) instanceof GISMultiPoint && + scn.getObject(idxgeom[1]) instanceof GISMultiPoint) { + + putValue(Action.NAME, BuResource.BU.getString("Joindre les multipoints")); + return true; + } + + // Les g\xE9om\xE9tries ne sont pas 2 polylignes + if (!(scn.getObject(idxgeom[0]) instanceof GISPolyligne) || + !(scn.getObject(idxgeom[1]) instanceof GISPolyligne)) return false; + + // Le mode n'est pas sommet pour des polylignes + if (!scn.isAtomicMode()) return false; + // Le nombre de sommets selectionn\xE9 n'est pas \xE9gal \xE0 2 + if (hlp.getNbAtomicSelected()!=2) return false; + + putValue(Action.NAME, BuResource.BU.getString("Joindre les polylignes")); + return true; + } + + public String getEnableCondition() { + return CtuluLib.getS("S\xE9lectionner les sommets extremit\xE9s de 2 polylignes ou deux semis de points"); + } + + public void selectionChanged(ZSelectionEvent _evt) { + updateStateBeforeShow(); + } +} Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/SceneJoinAction.java ___________________________________________________________________ Added: svn:keywords + Id Added: svn:eol-style + native Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/SceneSplitAction.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/SceneSplitAction.java 2008-12-03 11:49:10 UTC (rev 4261) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/action/SceneSplitAction.java 2008-12-03 13:56:39 UTC (rev 4262) @@ -15,6 +15,8 @@ import org.fudaa.ctulu.gis.GISMultiPoint; import org.fudaa.ctulu.gis.GISPolyligne; import org.fudaa.ebli.calque.ZScene; +import org.fudaa.ebli.calque.ZSelectionEvent; +import org.fudaa.ebli.calque.ZSelectionListener; import org.fudaa.ebli.calque.ZScene.SceneSelectionHelper; import org.fudaa.ebli.calque.edition.ZCalqueEditable; import org.fudaa.ebli.calque.edition.ZSceneEditor; @@ -27,12 +29,13 @@ * {@link ZCalqueEditable}. Ne fonctionne pas sur des polygones. * @author Bertrand Marchand */ -public class SceneSplitAction extends EbliActionSimple { +public class SceneSplitAction extends EbliActionSimple implements ZSelectionListener { ZSceneEditor editor_; public SceneSplitAction(ZSceneEditor _editor) { super(BuResource.BU.getString("Scinder"), BuResource.BU.getIcon("couperligne"), "GIS_SPLIT"); editor_=_editor; + editor_.getScene().addSelectionListener(this); setDefaultToolTip(CtuluLib.getS("Scinder la g\xE9om\xE9trie")); } @@ -69,4 +72,8 @@ public String getEnableCondition() { return CtuluLib.getS("S\xE9lectionner 2 sommets consecutifs d'une polyligne<br>ou les sommets d'un multipoint"); } + + public void selectionChanged(ZSelectionEvent _evt) { + updateStateBeforeShow(); + } } Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZCalqueEditable.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZCalqueEditable.java 2008-12-03 11:49:10 UTC (rev 4261) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZCalqueEditable.java 2008-12-03 13:56:39 UTC (rev 4262) @@ -76,6 +76,13 @@ public boolean splitSelectedObject(CtuluCommandContainer _cmd, CtuluUI _ui); /** + * Joint 2 g\xE9ometries. + * @param _cmd La pile de commandes. + * @return true si les objets ont \xE9t\xE9 joints. + */ + public boolean joinSelectedObjects(final CtuluCommandContainer _cmd); + + /** * Retourne si la forme d'un certain type peut \xEAtre ajout\xE9e. * @param _typeForme Le type de forme * @return true si ce type de forme peut \xEAtre ajout\xE9. Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZCalqueLigneBriseeEditable.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZCalqueLigneBriseeEditable.java 2008-12-03 11:49:10 UTC (rev 4261) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZCalqueLigneBriseeEditable.java 2008-12-03 13:56:39 UTC (rev 4262) @@ -79,7 +79,7 @@ * @param _cmd La pile de commandes. * @return true si les polylignes ont \xE9t\xE9 jointes. */ - public boolean joinGeometries(final CtuluCommandContainer _cmd) { + public boolean joinSelectedObjects(final CtuluCommandContainer _cmd) { if (isSelectionEmpty() || !isAtomicMode()) return false; int[] idxLines=new int[2]; Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZCalqueMultiPointEditable.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZCalqueMultiPointEditable.java 2008-12-03 11:49:10 UTC (rev 4261) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZCalqueMultiPointEditable.java 2008-12-03 13:56:39 UTC (rev 4262) @@ -362,7 +362,7 @@ * @param _cmd La pile de commandes. * @return true si les semis de points ont \xE9t\xE9 jointes. */ - public boolean joinGeometries(final CtuluCommandContainer _cmd) { + public boolean joinSelectedObjects(final CtuluCommandContainer _cmd) { if (isSelectionEmpty()) return false; Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZCalquePointEditable.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZCalquePointEditable.java 2008-12-03 11:49:10 UTC (rev 4261) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZCalquePointEditable.java 2008-12-03 13:56:39 UTC (rev 4262) @@ -293,4 +293,9 @@ public boolean splitSelectedObject(CtuluCommandContainer _cmd, CtuluUI _ui) { return false; } + + /* Sans objet */ + public boolean joinSelectedObjects(final CtuluCommandContainer _cmd) { + return false; + } } Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZSceneEditor.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZSceneEditor.java 2008-12-03 11:49:10 UTC (rev 4261) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZSceneEditor.java 2008-12-03 13:56:39 UTC (rev 4262) @@ -131,6 +131,18 @@ cq.splitSelectedObject(mng_,ui_); } + /** + * Joint 2 g\xE9om\xE9tries d'un m\xEAme calque en 1<p> + * Principe : <br> + * Pour 2 multipoints, selection des 2 multipoints, ou d'un ou plusieurs sommets de 2 multipoints.<br> + * Pour 2 polylignes, selection de 2 sommets extremit\xE9. + */ + public void joinSelectedObjects() { + int[] idxs=getScene().getLayerSelectionMulti().getIdxSelected(); + ZCalqueEditable cq=(ZCalqueEditable)getScene().getLayerForId(idxs[0]); + cq.joinSelectedObjects(mng_); + } + protected void methodNotImplemented() { StackTraceElement stel=new Throwable().getStackTrace()[1]; String name=stel.getClassName()+"."+stel.getMethodName(); Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlEditionManager.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlEditionManager.java 2008-12-03 11:49:10 UTC (rev 4261) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlEditionManager.java 2008-12-03 13:56:39 UTC (rev 4262) @@ -20,6 +20,7 @@ import org.fudaa.ctulu.gui.CtuluLibSwing; import org.fudaa.ebli.calque.BCalque; import org.fudaa.ebli.calque.BGroupeCalque; +import org.fudaa.ebli.calque.action.SceneJoinAction; import org.fudaa.ebli.calque.action.SceneSplitAction; import org.fudaa.ebli.calque.dessin.DeForme; import org.fudaa.ebli.calque.edition.BPaletteEdition; @@ -69,11 +70,16 @@ EbliActionInterface[] actSuper=sceneEditor_.getActions(); if (actSuper!=null) acts.addAll(Arrays.asList(actSuper)); + acts.addAll(Arrays.asList(getEditAction())); + acts.add(null); + acts.add(new SceneJoinAction(sceneEditor_)); acts.add(new SceneSplitAction(sceneEditor_)); + acts.add(null); + acts.add(new SceneDecimationAction((MdlSceneEditor)sceneEditor_)); + acts.add(new SceneRefinementAction((MdlSceneEditor)sceneEditor_)); + acts.add(null); acts.add(new SceneInterpolationAction((MdlSceneEditor)sceneEditor_)); acts.add(new SceneMoveInLayerAction((MdlSceneEditor)sceneEditor_, getPanel().getArbreCalqueModel())); - acts.add(new SceneDecimationAction((MdlSceneEditor)sceneEditor_)); - acts.add(new SceneRefinementAction((MdlSceneEditor)sceneEditor_)); acts.add(new SceneInvertAction((MdlSceneEditor)sceneEditor_)); acts.add(new SceneProjectionAction((MdlSceneEditor)sceneEditor_)); acts.add(new SceneProfilInterpolation((MdlSceneEditor)sceneEditor_)); Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlVisuPanel.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlVisuPanel.java 2008-12-03 11:49:10 UTC (rev 4261) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlVisuPanel.java 2008-12-03 13:56:39 UTC (rev 4262) @@ -10,6 +10,7 @@ import javax.swing.Action; import org.fudaa.ebli.calque.BArbreCalque; +import org.fudaa.ebli.calque.BCalque; import org.fudaa.ebli.calque.BGroupeCalque; import org.fudaa.ebli.calque.ZSelectionEvent; import org.fudaa.ebli.calque.ZSelectionListener; @@ -45,6 +46,7 @@ import org.fudaa.fudaa.tr.common.TrResource; import com.memoire.bu.BuMenu; +import com.memoire.bu.BuPopupMenu; /** * Le panneau de visu 2D des donn\xE9es du modeleur au travers des calques. Contient le composant vue @@ -237,6 +239,17 @@ cqMdl1d_.add(cqAxe); } + protected void fillCmdContextuelles(final BuPopupMenu _menu) { + if (getScene() != null) { + fillMenuWithSceneActions(_menu); + } + _menu.add(getMenuSelectionPath()); + if (contextTools_ == null) { + buildTools(); + } + _menu.add(contextTools_); + } + /** * Mise a jour des actions. * @see org.fudaa.ebli.calque.ZSelectionListener#selectionChanged(org.fudaa.ebli.calque.ZSelectionEvent) Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dLine.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dLine.java 2008-12-03 11:49:10 UTC (rev 4261) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dLine.java 2008-12-03 13:56:39 UTC (rev 4262) @@ -49,9 +49,6 @@ private void installActions() { FSigEditor editor=(FSigEditor)getEditor(); ArrayList vacts=new ArrayList(); - vacts.addAll(Arrays.asList(editor.getEditAction())); - vacts.add(editor.getJoinAction()); - vacts.add(null); vacts.add(editor.getImportAction()); EbliActionInterface[] acts=(EbliActionInterface[])vacts.toArray(new EbliActionInterface[0]); Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dMultiPoint.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dMultiPoint.java 2008-12-03 11:49:10 UTC (rev 4261) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/layer/MdlLayer2dMultiPoint.java 2008-12-03 13:56:39 UTC (rev 4262) @@ -48,11 +48,6 @@ private void installActions() { FSigEditor editor=(FSigEditor)getEditor(); ArrayList vacts=new ArrayList(); - vacts.addAll(Arrays.asList(editor.getEditAction())); - vacts.add(editor.getJoinAction()); -// vacts.add(editor.getSplitAction()); -// vacts.add(editor.getJoinAction()); - vacts.add(null); vacts.add(editor.getImportAction()); EbliActionInterface[] acts=(EbliActionInterface[])vacts.toArray(new EbliActionInterface[0]); Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigEditor.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigEditor.java 2008-12-03 11:49:10 UTC (rev 4261) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/layer/FSigEditor.java 2008-12-03 13:56:39 UTC (rev 4262) @@ -20,10 +20,7 @@ import org.fudaa.ctulu.ProgressionInterface; import org.fudaa.ctulu.gis.GISAttributeInterface; import org.fudaa.ctulu.gis.GISGeometryFactory; -import org.fudaa.ctulu.gis.GISMultiPoint; import org.fudaa.ctulu.gis.GISPolygone; -import org.fudaa.ctulu.gis.GISPolyligne; -import org.fudaa.ctulu.gis.GISZoneCollectionLigneBrisee; import org.fudaa.ctulu.gis.GISZoneListener; import org.fudaa.ctulu.gis.factory.GISExportDataStoreFactory; import org.fudaa.ctulu.gui.CtuluFileChooser; @@ -34,14 +31,11 @@ import org.fudaa.ebli.calque.BCalque; import org.fudaa.ebli.calque.ZCalqueAffichageDonnees; import org.fudaa.ebli.calque.ZCalqueAffichageDonneesInterface; -import org.fudaa.ebli.calque.ZCalqueAffichageDonneesMulti; import org.fudaa.ebli.calque.ZEbliCalquesPanel; import org.fudaa.ebli.calque.ZModelGeometryListener; import org.fudaa.ebli.calque.ZModeleGeometry; import org.fudaa.ebli.calque.edition.ZCalqueEditable; import org.fudaa.ebli.calque.edition.ZCalqueEditionGroup; -import org.fudaa.ebli.calque.edition.ZCalqueLigneBriseeEditable; -import org.fudaa.ebli.calque.edition.ZCalqueMultiPointEditable; import org.fudaa.ebli.calque.edition.ZEditorDefault; import org.fudaa.ebli.calque.edition.ZSceneEditor; import org.fudaa.ebli.commun.EbliActionSimple; @@ -225,17 +219,6 @@ } return importAction_; } - - /** - * Une action pour joindre 2 polylignes ou deux multipoint. N'est pas dans les actions par defaut. - * @return L'action - */ - public EbliActionSimple getJoinAction() { - if (joinAction_ == null) { - joinAction_ = new JoinAction(); - } - return joinAction_; - } private class VisuAction extends EbliActionSimple { @@ -328,79 +311,6 @@ } } - /** - * Une action pour joindre 2 polylignes \xE0 partir de leurs extremit\xE9s. Valable uniquement sur des calques - * {@link ZCalqueLigneBriseeEditable}. Ne fonctionne pas sur des polygones. - * @author Bertrand Marchand - */ - private class JoinAction extends EbliActionSimple { - - protected JoinAction() { - super(BuResource.BU.getString("Joindre"), /*BuResource.BU.getIcon("joindreligne")*/null, "GIS_JOIN"); - setDefaultToolTip(FudaaLib.getS("Joindre 2 polylignes ou 2 multipoint")); - } - - public void actionPerformed(final ActionEvent _e) { - joinSelectedGeometries(); - } - - public void updateStateBeforeShow() { - if (Fu.DEBUG && FuLog.isDebug()) { - FuLog.debug("FTR gis target= " + FSigEditor.this.getTarget()); - } - boolean b=false; - if (getSupport().getCalqueActif() instanceof ZCalqueLigneBriseeEditable) { - ZCalqueLigneBriseeEditable cq=(ZCalqueLigneBriseeEditable)getSupport().getCalqueActif(); - // Si le calque est editable, en mode atomique, et si le nombre de - // sommets est 2. - b=cq!=null&&FSigEditor.this.isEditable(cq)&&!cq.isSelectionEmpty()&&cq.isAtomicMode() - &&cq.getLayerSelectionMulti().getNbSelectedItem()==2; - // Si les sommets sont sur 2 des objets distincts, que ces objets sont - // des polylignes - if (b) { - int[] idxLignes=cq.getLayerSelectionMulti().getIdxSelected(); - b&=idxLignes.length==2; - if (b) { - for (int i=0; i<idxLignes.length; i++) - b&=(((GISZoneCollectionLigneBrisee)((ZModeleGeometry)cq.modeleDonnees()).getGeomData()).getGeometry(idxLignes[i]) instanceof GISPolyligne); - } - } - } - // Ou si c'est deux semis de points qui sont selectionn\xE9s - else if (getSupport().getCalqueActif() instanceof ZCalqueMultiPointEditable) { - ZCalqueMultiPointEditable cq=(ZCalqueMultiPointEditable)getSupport().getCalqueActif(); - // Deux selections en mode sommet ou global - // Ces deux s\xE9lections doivent \xEAtre des semis de points - if (cq!=null&&FSigEditor.this.isEditable(cq)&&!cq.isSelectionEmpty() - &&(cq.getLayerSelectionMulti()!=null&&cq.getLayerSelectionMulti().getNbSelectedItem()==2||cq.getLayerSelection()!=null&&cq.getLayerSelection().getNbSelectedIndex()==2)) { - int[] idxGeom; - if (cq.getLayerSelectionMulti()!=null&&cq.getLayerSelectionMulti().getNbSelectedItem()!=0) - idxGeom=cq.getLayerSelectionMulti().getIdxSelected(); - else - idxGeom=cq.getLayerSelection().getSelectedIndex(); - b=true; - for (int i=0; i<idxGeom.length; i++) - b=b&&(cq.modeleDonnees().getObject(idxGeom[i]) instanceof GISMultiPoint); - } - } - super.setEnabled(b); - } - - public String getEnableCondition() { - return FudaaLib.getS("S\xE9lectionner les sommets extremit\xE9s de 2 polylignes ou deux semis de points"); - } - } - - /** - * Joint 2 polylignes distinctes ou deux semis de points. - */ - protected void joinSelectedGeometries() { - if (getSupport().getCalqueActif() instanceof ZCalqueLigneBriseeEditable) - ((ZCalqueLigneBriseeEditable)getSupport().getCalqueActif()).joinGeometries(getMng()); - else if (getSupport().getCalqueActif() instanceof ZCalqueMultiPointEditable) - ((ZCalqueMultiPointEditable)getSupport().getCalqueActif()).joinGeometries(getMng()); - } - protected boolean canExportSelectedLayer() { final BCalque[] parent = super.getPanel().getArbreCalqueModel().getSelection(); if (parent == null) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <emm...@us...> - 2008-12-03 11:51:04
|
Revision: 4261 http://fudaa.svn.sourceforge.net/fudaa/?rev=4261&view=rev Author: emmanuel_martin Date: 2008-12-03 11:49:10 +0000 (Wed, 03 Dec 2008) Log Message: ----------- Tache #118 : "Rendre rectiligne une polyligne" Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/geometrie/GrSegment.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlEditionManager.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlSceneEditor.java Added Paths: ----------- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/SceneLinearisePolyligne.java Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/geometrie/GrSegment.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/geometrie/GrSegment.java 2008-12-02 15:14:53 UTC (rev 4260) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/geometrie/GrSegment.java 2008-12-03 11:49:10 UTC (rev 4261) @@ -11,6 +11,8 @@ import org.fudaa.ctulu.CtuluLibGeometrie; +import com.vividsolutions.jts.geom.Coordinate; + /** * Un segment 3D. * @@ -134,17 +136,16 @@ /** * Retourne le point appartenant au segment le plus proche du point donne. */ - public GrPoint pointPlusProche(final GrPoint _p) { - final double d = _p.soustraction(o_).division(vecteur()); - GrPoint r; - if (d <= 0.) { - r = new GrPoint(o_.x_, o_.y_, o_.z_); - } else if (d >= 1.) { - r = new GrPoint(e_.x_, e_.y_, e_.z_); - } else { - r = o_.addition(vecteur().multiplication(d)); - } - return r; + public GrPoint pointPlusProche(final GrPoint _a) { + GrVecteur vecOA=new GrVecteur(_a.x_-o_.x_, _a.y_-o_.y_, _a.z_-o_.z_); + GrPoint r3; + if(vecOA.division(vecteur())<=0.) + r3=new GrPoint(o_.x_, o_.y_, o_.z_); + else if(vecOA.division(vecteur())>=1.) + r3=new GrPoint(e_.x_, e_.y_, e_.z_); + else + r3=o_.addition(vecOA.projection(vecteur())); + return r3; } /** Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlEditionManager.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlEditionManager.java 2008-12-02 15:14:53 UTC (rev 4260) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlEditionManager.java 2008-12-03 11:49:10 UTC (rev 4261) @@ -33,6 +33,7 @@ import org.fudaa.fudaa.modeleur.action.SceneInvertAction; import org.fudaa.fudaa.modeleur.action.SceneMoveInLayerAction; import org.fudaa.fudaa.modeleur.action.SceneProfilInterpolation; +import org.fudaa.fudaa.modeleur.action.SceneLinearisePolyligne; import org.fudaa.fudaa.modeleur.action.SceneProjectionAction; import org.fudaa.fudaa.modeleur.action.SceneRefinementAction; import org.fudaa.fudaa.sig.layer.FSigEditor; @@ -76,6 +77,7 @@ acts.add(new SceneInvertAction((MdlSceneEditor)sceneEditor_)); acts.add(new SceneProjectionAction((MdlSceneEditor)sceneEditor_)); acts.add(new SceneProfilInterpolation((MdlSceneEditor)sceneEditor_)); + acts.add(new SceneLinearisePolyligne((MdlSceneEditor) sceneEditor_)); acts.add(new SceneAbscisseCurviligneAction(this)); getSceneEditor().setActions(acts.toArray(new EbliActionAbstract[0])); } Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlSceneEditor.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlSceneEditor.java 2008-12-02 15:14:53 UTC (rev 4260) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlSceneEditor.java 2008-12-03 11:49:10 UTC (rev 4261) @@ -11,7 +11,10 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; import java.util.List; +import java.util.Map; import javax.swing.BorderFactory; import javax.swing.JButton; @@ -22,6 +25,7 @@ import org.fudaa.ctulu.CtuluCommandComposite; import org.fudaa.ctulu.CtuluListSelection; import org.fudaa.ctulu.CtuluListSelectionInterface; +import org.fudaa.ctulu.collection.CtuluCollection; import org.fudaa.ctulu.gis.GISAttributeConstants; import org.fudaa.ctulu.gis.GISAttributeInterface; import org.fudaa.ctulu.gis.GISAttributeModelDoubleArray; @@ -49,7 +53,10 @@ import org.fudaa.ebli.calque.ZScene; import org.fudaa.ebli.calque.dessin.DeForme; import org.fudaa.ebli.calque.edition.ZCalqueEditable; +import org.fudaa.ebli.calque.edition.ZModeleEditable; import org.fudaa.ebli.calque.edition.ZSceneEditor; +import org.fudaa.ebli.geometrie.GrPoint; +import org.fudaa.ebli.geometrie.GrVecteur; import org.fudaa.fudaa.commun.FudaaLib; import org.fudaa.fudaa.modeleur.layer.MdlModel2dLine; import org.fudaa.fudaa.modeleur.layer.MdlModel2dMultiPoint; @@ -384,6 +391,127 @@ } /** + * Rend rectiligne une polyligne. + */ + public void linearisePolyligne() { + /** Class contenant les informations relativent \xE0 une polyligne. */ + class Poly { + public GISPolyligne poly; + public Object[] data; + public Poly(GISPolyligne _poly, Object[] _data) { + poly=_poly; + data=_data; + } + } + /** Class contenant les infromations relatives \xE0 une coordonn\xE9s projet\xE9e. */ + class PointProj implements Comparable<PointProj> { + public Coordinate c; // Coordonn\xE9 projet\xE9e + public double indiceCurviligne; // Indice Curviligne (k tq k*VecDirecteur=Vec(PtOrigine, c)) + public List<Object> data=new ArrayList<Object>(); // valeur des attributs atomiques + /** M\xE9thode pour utiliser les alorithmes de tris fournis par java. */ + public int compareTo(PointProj o) { + if (indiceCurviligne<o.indiceCurviligne) + return -1; + else if (indiceCurviligne==o.indiceCurviligne) + return 0; + else + return 1; + } + } + int[] geoms=getScene().getSelectionHelper().getSelectedIndexes(); + Map<ZCalqueAffichageDonneesInterface, List<Poly>> newPoly=new HashMap<ZCalqueAffichageDonneesInterface, List<Poly>>(); + // Verification de la selection \\ + boolean selectionValid=true; + int w=-1; + while(selectionValid&&++w<geoms.length) + selectionValid=getScene().getObject(geoms[w]) instanceof GISPolyligne; + if(selectionValid){ + // Pour chaque polyligne selectionn\xE9es + for (int i : geoms) { + GISPolyligne polyligne=((GISPolyligne)getScene().getObject(i)); + ZCalqueAffichageDonneesInterface calque=getScene().getLayerForId(i); + GISZoneCollection zone=((ZModeleEditable)calque.modeleDonnees()).getGeomData(); + /* + * Si deux points sont selectionn\xE9s dans cette polyligne, on les utilises + * comme destination de projection, sinon, ou si le nombre de point + * selectionn\xE9 n'est pas exactement deux, on utilise le premier et le + * dernier point de la polyligne comme destination de la projection. pt1 + * et pt2 sont ces deux points de r\xE9f\xE9rence. + */ + GrPoint pt1; + GrPoint pt2; + if (getScene().isAtomicMode()&&getScene().getLayerSelectionMulti().getSelection(i).getNbSelectedIndex()==2) { + pt1=new GrPoint(polyligne.getCoordinateSequence().getCoordinate(getScene().getLayerSelectionMulti().getSelection(i).getSelectedIndex()[0])); + pt2=new GrPoint(polyligne.getCoordinateSequence().getCoordinate(getScene().getLayerSelectionMulti().getSelection(i).getSelectedIndex()[1])); + } + else { + pt1=new GrPoint(polyligne.getCoordinateSequence().getCoordinate(0)); + pt2=new GrPoint(polyligne.getCoordinateSequence().getCoordinate(polyligne.getCoordinateSequence().size()-1)); + } + // Vecteur de la droite de destination + GrVecteur vecP1P2=new GrVecteur(pt2.x_-pt1.x_, pt2.y_-pt1.y_, pt2.z_-pt1.z_); + // Construction de l'ensemble des points composant la nouvelle polyligne \\ + PointProj[] newPtsCurv=new PointProj[polyligne.getCoordinateSequence().size()]; + for (int j=0; j<newPtsCurv.length; j++) { + GrPoint a=new GrPoint(polyligne.getCoordinateSequence().getCoordinate(j)); + // Projection + GrVecteur vecP1A=new GrVecteur(a.x_-pt1.x_, a.y_-pt1.y_, a.z_-pt1.z_); + GrPoint p=pt1.addition(vecP1A.projection(vecP1P2)); + Coordinate cp=new Coordinate(p.x_, p.y_, p.z_); + // Remplissage des informations relatives au point calcul\xE9 + newPtsCurv[j]=new PointProj(); + newPtsCurv[j].c=cp; + newPtsCurv[j].indiceCurviligne=new GrVecteur(cp.x-pt1.x_, cp.y-pt1.y_, cp.z-pt1.z_).division(vecP1P2); + for (int k=0; k<zone.getNbAttributes(); k++) + if (zone.getAttribute(k).isAtomicValue()) + newPtsCurv[j].data.add(((CtuluCollection)zone.getValue(k, getScene().sceneId2LayerId(i))).getObjectValueAt(j)); + } + // Tri des points en fonction de leur abcisse curviligne \\ + Arrays.sort(newPtsCurv); + // R\xE9cup\xE9ration des coordonn\xE9s + Coordinate[] newPts=new Coordinate[newPtsCurv.length]; + for (int j=0; j<newPts.length; j++) + newPts[j]=newPtsCurv[j].c; + // R\xE9cup\xE9ration des values des attributs atomiques + Object[] newData=new Object[zone.getNbAttributes()]; + int nemeAttAtomique=0; + for (int j=0; j<zone.getNbAttributes(); j++) { + if (zone.getAttribute(j).isAtomicValue()) { + Object[] values=new Object[newPtsCurv.length]; + for (int k=0; k<newPtsCurv.length; k++) + values[k]=newPtsCurv[k].data.get(nemeAttAtomique); + newData[j]=zone.getAttribute(j).createDataForGeom(values, newPtsCurv.length); + nemeAttAtomique++; + } + else + newData[j]=zone.getValue(j, getScene().sceneId2LayerId(i)); + } + // Ajout \xE0 la list des nouvelles polylignes \\ + if (!newPoly.containsKey(calque)) + newPoly.put(calque, new ArrayList<Poly>()); + newPoly.get(calque).add(new Poly(GISGeometryFactory.INSTANCE.createLineString(newPts), newData)); + } + CtuluCommandComposite cmd=new CtuluCommandComposite(); + // Destruction des anciennes polylignes + Arrays.sort(geoms); + for (int i=geoms.length-1; i>=0; i--) + ((ZModeleEditable)getScene().getLayerForId(geoms[i]).modeleDonnees()).getGeomData().removeGeometries(new int[]{getScene().sceneId2LayerId(geoms[i])}, cmd); + // Ajout des nouvelles polylignes + for (Map.Entry<ZCalqueAffichageDonneesInterface, List<Poly>> entry : newPoly.entrySet()) { + GISZoneCollection zone=((ZModeleEditable)((ZCalqueEditable)entry.getKey()).modeleDonnees()).getGeomData(); + List<Poly> polys=entry.getValue(); + for (int i=0; i<polys.size(); i++) + zone.addGeometry(polys.get(i).poly, polys.get(i).data, cmd); + } + // Mise \xE0 jour du undo/redo + if(mng_!=null) + mng_.addCmd(cmd.getSimplify()); + // Suppression de la selection + getScene().clearSelection(); + } + } + + /** * Interpole un profil \xE0 partir d'un nuage de point. */ public void interpolateProfile() { Added: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/SceneLinearisePolyligne.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/SceneLinearisePolyligne.java (rev 0) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/SceneLinearisePolyligne.java 2008-12-03 11:49:10 UTC (rev 4261) @@ -0,0 +1,73 @@ +/* + * @creation 2 d\xE9c. 2008 + * @modification $Date:$ + * @license GNU General Public License 2 + * @copyright (c)1998-2008 CETMEF 2 bd Gambetta F-60231 Compiegne + * @mail fud...@li... + */ +package org.fudaa.fudaa.modeleur.action; + +import java.awt.event.ActionEvent; + +import org.fudaa.ctulu.CtuluLib; +import org.fudaa.ctulu.gis.GISAttributeConstants; +import org.fudaa.ctulu.gis.GISPolyligne; +import org.fudaa.ctulu.gis.GISZoneCollection; +import org.fudaa.ebli.calque.ZCalqueAffichageDonneesInterface; +import org.fudaa.ebli.calque.ZModeleGeometry; +import org.fudaa.ebli.calque.ZScene; +import org.fudaa.ebli.calque.ZSelectionEvent; +import org.fudaa.ebli.calque.ZSelectionListener; +import org.fudaa.ebli.calque.ZScene.SceneSelectionHelper; +import org.fudaa.ebli.commun.EbliActionSimple; +import org.fudaa.fudaa.modeleur.MdlSceneEditor; +import org.fudaa.fudaa.ressource.FudaaResource; + +/** + * Action permettant de rendre rectiligne un profil. + * @author Emmanuel MARTIN + * @version $Id:$ + */ +public class SceneLinearisePolyligne extends EbliActionSimple implements ZSelectionListener { + protected MdlSceneEditor sceneEditor_; + + public SceneLinearisePolyligne(MdlSceneEditor _sceneEditor) { + super(FudaaResource.FUDAA.getString("Rendre rectiligne une ou plusieurs polyligne(s)"), null, "RECTILIGNE_POLYLIGNE"); + setDefaultToolTip(FudaaResource.FUDAA.getString("Rend rectiligne une ou plusieurs polyligne(s)")); + sceneEditor_=_sceneEditor; + sceneEditor_.getScene().addSelectionListener(this); + } + + public void actionPerformed(final ActionEvent _e) { + sceneEditor_.linearisePolyligne(); + } + + public void updateForSelectionChanged() { + ZScene scn=sceneEditor_.getScene(); + SceneSelectionHelper hlp=sceneEditor_.getScene().getSelectionHelper(); + // Au moins une et seulement des polylignes de selectionn\xE9es. Et si en mode + // atomique, deux sommets doivent \xEAtre selectionn\xE9s pour chacune d'entre + // elles. + int[] geomSelected=scn.getSelectionHelper().getSelectedIndexes(); + boolean b=geomSelected.length>0; + int i=0; + while(b&&i<geomSelected.length){ + b=scn.getObject(geomSelected[i]) instanceof GISPolyligne; + if(scn.isAtomicMode()) + b=b&&scn.getLayerSelectionMulti()!=null&&scn.getLayerSelectionMulti().getSelection(geomSelected[i]).getNbSelectedIndex()==2; + i++; + } + setEnabled(b); + } + + public String getEnableCondition() { + return CtuluLib.getS("Selectionner une ou plusieurs polyligne(s), en mode global ou atomique (pour cette derni\xE8re selectionnez deux points pour chaque polyligne)."); + } + + /* (non-Javadoc) + * @see org.fudaa.ebli.calque.ZSelectionListener#selectionChanged(org.fudaa.ebli.calque.ZSelectionEvent) + */ + public void selectionChanged(ZSelectionEvent _evt) { + updateForSelectionChanged(); + } +} Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/SceneLinearisePolyligne.java ___________________________________________________________________ Added: svn:keywords + Id Added: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <emm...@us...> - 2008-12-02 15:14:59
|
Revision: 4260 http://fudaa.svn.sourceforge.net/fudaa/?rev=4260&view=rev Author: emmanuel_martin Date: 2008-12-02 15:14:53 +0000 (Tue, 02 Dec 2008) Log Message: ----------- calque image : conservation des points m?\195?\170me quand l'image n'est plus accessible. 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 11:12:31 UTC (rev 4259) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BCalqueImagePersistence.java 2008-12-02 15:14:53 UTC (rev 4260) @@ -81,12 +81,17 @@ if (imgFile != null && !imgFile.exists()) { _target.getUI().put(getImageFile(), _helper.getTrimTextFor("file")); } - if (imgFile == null || !imgFile.exists()) { + else { + _target.getUI().put(getImageFile(), imgFile.getAbsolutePath()); + } + + /*if (imgFile == null || !imgFile.exists()) { FuLog.warning("ECQ: no file"); return; } _target.getUI().put(getImageFile(), imgFile.getAbsolutePath()); - +*/ + final NodeList list = _helper.getDoc().getElementsByTagName("point"); if (list != null && list.getLength() > 0) { @@ -129,16 +134,6 @@ 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(); - - /* if (img == null) { FuLog.error("ECQ: no image"); return; @@ -148,7 +143,6 @@ 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"); @@ -160,26 +154,24 @@ _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"); - } - - _out.write("</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"); } + + _out.write("</points>"); } public BCalqueSaverInterface save(final BCalque _cq, final ProgressionInterface _prog) { @@ -228,23 +220,17 @@ 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); + if (ptImg == null || ptReal == null || ptReal.length != ptImg.length || ptReal.length < 3) return null; - } + if (file != null) { final File f = new File(file); - if (!f.exists()) { - return null; - } final ZModeleImageRaster model = new ZModeleStatiqueImageRaster(new CtuluImageContainer(f)); model.setProj(ptImg, ptReal); cq.setModele(model); return res; } return null; - } File dir_; 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 11:12:31 UTC (rev 4259) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueImageRaster.java 2008-12-02 15:14:53 UTC (rev 4260) @@ -38,8 +38,6 @@ 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); @@ -48,20 +46,7 @@ public BCalquePersistenceInterface getPersistenceMng() { 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; @@ -174,7 +159,7 @@ public void paintIcon(final Component _c, final Graphics _g, final int _x, final int _y) { final int w=getIconWidth()-1; final int h=getIconHeight()-1; - if (getModelImage()==null) { + if (modele_ == null || !getModelImage().isImageLoaded()) { // Dessine une croix rouge indiquant une erreur. Color c=_g.getColor(); _g.setColor(Color.red); 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 11:12:31 UTC (rev 4259) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/wizard/FSigImageWizardStepImage.java 2008-12-02 15:14:53 UTC (rev 4260) @@ -63,14 +63,6 @@ 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) { 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 11:12:31 UTC (rev 4259) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/wizard/FSigImageWizardTask.java 2008-12-02 15:14:53 UTC (rev 4260) @@ -200,10 +200,9 @@ if (_modelToModiy.getModelImage()!=null) { final RasterDataInterface data=_modelToModiy.getModelImage().getData(); img_.setData(data, _modelToModiy.getTitle()); - nextStep(); + if(_modelToModiy.getModelImage().isImageLoaded()) + nextStep(); } - else - img_.setDataPartial(_modelToModiy.getImagePath(), _modelToModiy.getTitle()); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
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. |
From: <emm...@us...> - 2008-12-02 09:24:51
|
Revision: 4258 http://fudaa.svn.sourceforge.net/fudaa/?rev=4258&view=rev Author: emmanuel_martin Date: 2008-12-02 09:24:47 +0000 (Tue, 02 Dec 2008) Log Message: ----------- Tache #111 : "G?\195?\169rer correctement quand un fond de carte est manquant." Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueAffichageDonnees.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueImageRaster.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalquePoint.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZScene.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/BPaletteEditVisibility.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlEditionManager.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlSceneEditor.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/SceneMoveInLayerAction.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/ZCalqueAffichageDonnees.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueAffichageDonnees.java 2008-12-01 16:09:55 UTC (rev 4257) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueAffichageDonnees.java 2008-12-02 09:24:47 UTC (rev 4258) @@ -58,7 +58,10 @@ */ public void initSelection() { if (selection_ == null) { - selection_ = new CtuluListSelection(modeleDonnees().getNombre() / 2 + 1); + if(modeleDonnees()!=null) + selection_ = new CtuluListSelection(modeleDonnees().getNombre() / 2 + 1); + else + selection_ = new CtuluListSelection(0); // selection_.addListeSelectionListener(this); } } 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-01 16:09:55 UTC (rev 4257) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalqueImageRaster.java 2008-12-02 09:24:47 UTC (rev 4258) @@ -9,6 +9,7 @@ package org.fudaa.ebli.calque; import java.awt.AlphaComposite; +import java.awt.Color; import java.awt.Component; import java.awt.Graphics; import java.awt.Graphics2D; @@ -156,20 +157,26 @@ * @param _y lieu cible de l'icone (y) */ public void paintIcon(final Component _c, final Graphics _g, final int _x, final int _y) { - // boolean attenue = isAttenue(); - if (getModelImage() == null) { - return; + final int w=getIconWidth()-1; + final int h=getIconHeight()-1; + if (getModelImage()==null) { + // Dessine une croix rouge indiquant une erreur. + Color c=_g.getColor(); + _g.setColor(Color.red); + _g.drawLine(0, 0, w, h); + _g.drawLine(0, h, w, 0); + _g.setColor(c); } - final int w = getIconWidth() - 1; - final int h = getIconHeight() - 1; - final Image im = getModelImage().getImage(); - if (im != null) { - final int wi = im.getWidth(this); - final int hi = im.getHeight(this); - final int r = Math.max(wi / w, hi / h); - final int wImage = wi / r - 1; - final int hImage = hi / r - 1; - _g.drawImage(im, (w - wImage) / 2 + 1, (h - hImage) / 2 + 1, wImage, hImage, _c); + else { + final Image im=getModelImage().getImage(); + if (im!=null) { + final int wi=im.getWidth(this); + final int hi=im.getHeight(this); + final int r=Math.max(wi/w, hi/h); + final int wImage=wi/r-1; + final int hImage=hi/r-1; + _g.drawImage(im, (w-wImage)/2+1, (h-hImage)/2+1, wImage, hImage, _c); + } } } Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalquePoint.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalquePoint.java 2008-12-01 16:09:55 UTC (rev 4257) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZCalquePoint.java 2008-12-02 09:24:47 UTC (rev 4258) @@ -350,7 +350,7 @@ } public CtuluListSelection selectionBasic(final LinearRing _poly, final int _mode) { - if (modele_.getNombre() == 0 || !isVisible()) { + if (modele_==null||modele_.getNombre() == 0 || !isVisible()) { return null; } final Envelope polyEnv = _poly.getEnvelopeInternal(); @@ -402,7 +402,7 @@ } protected CtuluListSelection selectionBasic(final GrPoint _pt, final int _tolerance) { - if (modele().getNombre() == 0 || (!isVisible())) { + if (modele()==null||modele().getNombre() == 0 || (!isVisible())) { return null; } final int i = getSelectedPoint(modele_, _pt, _tolerance, getVersReel(), getClipReel(getGraphics())); Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZScene.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZScene.java 2008-12-01 16:09:55 UTC (rev 4257) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/ZScene.java 2008-12-02 09:24:47 UTC (rev 4258) @@ -189,7 +189,8 @@ System.arraycopy(isels, 0, iglobsels, ipt, isels.length); ipt+=isels.length; } - idecal+=cqs[i].modeleDonnees().getNombre(); + if(cqs[i].modeleDonnees()!=null) + idecal+=cqs[i].modeleDonnees().getNombre(); } } // for (int i=0; i<lists_.length-1; i++) { @@ -543,7 +544,9 @@ */ public int getNombre() { int nb=0; - for (ZCalqueAffichageDonneesInterface cq : getTargetLayers()) nb+=cq.modeleDonnees().getNombre(); + for (ZCalqueAffichageDonneesInterface cq : getTargetLayers()) + if(cq.modeleDonnees()!=null) + nb+=cq.modeleDonnees().getNombre(); return nb; } Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/BPaletteEditVisibility.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/BPaletteEditVisibility.java 2008-12-01 16:09:55 UTC (rev 4257) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/BPaletteEditVisibility.java 2008-12-02 09:24:47 UTC (rev 4258) @@ -394,15 +394,19 @@ for(int i=0;i<calques_.length;i++){ if(calques_[i].getTitle().equals(calque_.getSelectedItem())||calque_.getSelectedItem()==allCalquesEntry_){ ZModeleEditable model = calques_[i].getModelEditable(); - // Extraction des donn\xE9es utiles - GISZoneCollection zone=model.getGeomData(); - int indexTitre=zone.getIndiceOf(GISAttributeConstants.TITRE); - int indexVisibility=zone.getIndiceOf(GISAttributeConstants.VISIBILITE); - if(indexTitre!=-1&&indexVisibility!=-1) - for(int j=0;j<zone.getNbGeometries();j++) - if(!onlyInvisible_||zone.getValue(indexVisibility, j)==GISAttributeConstants.ATT_VAL_FALSE) - if(j<zone.getModel(indexVisibility).getSize()&&j<zone.getModel(indexTitre).getSize()) - rows.add(new Object[]{zone.getValue(indexTitre, j), zone.getValue(indexVisibility, j).equals(GISAttributeConstants.ATT_VAL_TRUE)?true:false, model, scene_.layerId2SceneId(calques_[i], j)}); + if (model!=null) { + // Extraction des donn\xE9es utiles + GISZoneCollection zone=model.getGeomData(); + int indexTitre=zone.getIndiceOf(GISAttributeConstants.TITRE); + int indexVisibility=zone.getIndiceOf(GISAttributeConstants.VISIBILITE); + if (indexTitre!=-1&&indexVisibility!=-1) + for (int j=0; j<zone.getNbGeometries(); j++) + if (!onlyInvisible_||zone.getValue(indexVisibility, j)==GISAttributeConstants.ATT_VAL_FALSE) + if (j<zone.getModel(indexVisibility).getSize()&&j<zone.getModel(indexTitre).getSize()) + rows.add(new Object[]{zone.getValue(indexTitre, j), + zone.getValue(indexVisibility, j).equals(GISAttributeConstants.ATT_VAL_TRUE) ? true:false, model, + scene_.layerId2SceneId(calques_[i], j)}); + } } } table_.setModel(new GeomTableModel(new String[]{EbliLib.getS("Nom"), EbliLib.getS("Visibilit\xE9")}, rows.toArray(new Object[0][]))); @@ -567,7 +571,8 @@ public void doHide(){ // Suppression de l'\xE9coute de tout les calques for(int i=0;i<listenModels_.length;i++) - listenModels_[i].removeModelListener(this); + if(listenModels_[i]!=null) + listenModels_[i].removeModelListener(this); // Mise a jour du tableau de listeners listenModels_=new ZModeleEditable[0]; } Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlEditionManager.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlEditionManager.java 2008-12-01 16:09:55 UTC (rev 4257) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlEditionManager.java 2008-12-02 09:24:47 UTC (rev 4258) @@ -70,7 +70,7 @@ acts.add(new SceneSplitAction(sceneEditor_)); acts.add(new SceneInterpolationAction((MdlSceneEditor)sceneEditor_)); - acts.add(new SceneMoveInLayerAction((MdlSceneEditor)sceneEditor_)); + acts.add(new SceneMoveInLayerAction((MdlSceneEditor)sceneEditor_, getPanel().getArbreCalqueModel())); acts.add(new SceneDecimationAction((MdlSceneEditor)sceneEditor_)); acts.add(new SceneRefinementAction((MdlSceneEditor)sceneEditor_)); acts.add(new SceneInvertAction((MdlSceneEditor)sceneEditor_)); Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlSceneEditor.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlSceneEditor.java 2008-12-01 16:09:55 UTC (rev 4257) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/MdlSceneEditor.java 2008-12-02 09:24:47 UTC (rev 4258) @@ -138,8 +138,12 @@ */ public void moveInLayerSelectedGeometries() { ZModeleGeometry mdldest=(ZModeleGeometry)((ZCalqueAffichageDonneesInterface)getScene().getCalqueActif()).modeleDonnees(); + if(mdldest==null) + return; GISZoneCollection coldest=mdldest.getGeomData(); - + if(coldest==null) + return; + int[] idxGeom=getScene().getLayerSelection().getSelectedIndex(); Geometry[] geoms=new Geometry[idxGeom.length]; for (int i=0; i<idxGeom.length; i++) { Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/SceneMoveInLayerAction.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/SceneMoveInLayerAction.java 2008-12-01 16:09:55 UTC (rev 4257) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/SceneMoveInLayerAction.java 2008-12-02 09:24:47 UTC (rev 4258) @@ -9,48 +9,36 @@ import java.awt.event.ActionEvent; -import javax.swing.tree.TreeSelectionModel; +import javax.swing.event.TreeSelectionEvent; +import javax.swing.event.TreeSelectionListener; -import org.fudaa.ctulu.gis.GISPolyligne; -import org.fudaa.ctulu.gis.GISZoneCollectionLigneBrisee; +import org.fudaa.ebli.calque.BArbreCalqueModel; import org.fudaa.ebli.calque.ZScene; import org.fudaa.ebli.calque.ZSelectionEvent; import org.fudaa.ebli.calque.ZSelectionListener; -import org.fudaa.ebli.calque.edition.BPaletteEdition; -import org.fudaa.ebli.calque.edition.ZCalqueEditable; -import org.fudaa.ebli.calque.edition.ZCalqueLigneBriseeEditable; -import org.fudaa.ebli.calque.edition.ZCalqueMultiPointEditable; -import org.fudaa.ebli.calque.edition.ZEditorInterface; -import org.fudaa.ebli.calque.edition.BPaletteRotation; -import org.fudaa.ebli.calque.edition.ZSceneEditor; -import org.fudaa.ebli.commun.BPalettePanelInterface; -import org.fudaa.ebli.commun.EbliActionPaletteTreeModel; import org.fudaa.ebli.commun.EbliActionSimple; -import org.fudaa.ebli.commun.EbliFormatterInterface; import org.fudaa.ebli.ressource.EbliResource; import org.fudaa.fudaa.modeleur.MdlSceneEditor; import org.fudaa.fudaa.modeleur.layer.MdlLayer2dLine; import org.fudaa.fudaa.modeleur.layer.MdlLayer2dMultiPoint; -import com.memoire.fu.Fu; -import com.memoire.fu.FuLog; - /** * Une action pour d\xE9placer un objet dans un autre calque, reagissant au changement de calque selectionn\xE9. * @author Fred Deniger * @version $Id: SceneMoveInLayerAction.java,v 1.1.2.1 2008-05-13 12:10:53 bmarchan Exp $ */ -public class SceneMoveInLayerAction extends EbliActionSimple implements ZSelectionListener { +public class SceneMoveInLayerAction extends EbliActionSimple implements ZSelectionListener, TreeSelectionListener { MdlSceneEditor sceneEditor_; /** * @param _m l'arbre des calques */ - public SceneMoveInLayerAction(MdlSceneEditor _sceneEditor) { + public SceneMoveInLayerAction(MdlSceneEditor _sceneEditor, BArbreCalqueModel _tree) { super(EbliResource.EBLI.getString("D\xE9placer dans le calque cible"), null/*EbliResource.EBLI.getToolIcon("draw-rotation")*/, "MOVE_IN_LAYER"); setSceneEditor(_sceneEditor); sceneEditor_.getScene().addSelectionListener(this); + _tree.addTreeSelectionListener(this); } public void actionPerformed(final ActionEvent _e) { @@ -89,4 +77,11 @@ public void selectionChanged(ZSelectionEvent _evt) { updateForSelectionChanged(); } + + /* (non-Javadoc) + * @see javax.swing.event.TreeSelectionListener#valueChanged(javax.swing.event.TreeSelectionEvent) + */ + public void valueChanged(TreeSelectionEvent e) { + updateForSelectionChanged(); + } } 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-01 16:09:55 UTC (rev 4257) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/sig/wizard/FSigImageWizardTask.java 2008-12-02 09:24:47 UTC (rev 4258) @@ -82,7 +82,7 @@ } public int getStepCount() { - return calqueToModify_ == null ? 2 : 1; + return calqueToModify_ == null || force2Step_ ? 2 : 1; } public void cancelTask() { @@ -94,6 +94,11 @@ 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) { @@ -115,7 +120,12 @@ } else { calqueToModify_.setTitle(img_.getCalqueTitle()); model = calqueToModify_.getModelImage(); - model.setImage(img_.getImg()); + if(model!=null) + model.setImage(img_.getImg()); + else { + calqueToModify_.setModele(new ZModeleStatiqueImageRaster(img_.getImg())); + model = calqueToModify_.getModelImage(); + } } model.setProj(res.ptImg_, res.ptReel_, res.transform_, res.error_); if (calqueToModify_ != null) { @@ -190,11 +200,17 @@ } public void setModelToModiy(final ZCalqueImageRaster _modelToModiy) { - calqueToModify_ = _modelToModiy; - final RasterDataInterface data = _modelToModiy.getModelImage().getData(); - img_.setData(data, _modelToModiy.getTitle()); - nextStep(); - + 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; + } } public CalqueFactory getFact() { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <emm...@us...> - 2008-12-01 16:09:57
|
Revision: 4257 http://fudaa.svn.sourceforge.net/fudaa/?rev=4257&view=rev Author: emmanuel_martin Date: 2008-12-01 16:09:55 +0000 (Mon, 01 Dec 2008) Log Message: ----------- Tache #116 : "Dialogue d'?\195?\169dition de profil : Corriger le comportement du bouton ajustement automatique" Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/EbliSingleObjectEditorPanel.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZEditorDefault.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/courbe/EGFillePanel.java Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/EbliSingleObjectEditorPanel.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/EbliSingleObjectEditorPanel.java 2008-12-01 14:49:27 UTC (rev 4256) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/EbliSingleObjectEditorPanel.java 2008-12-01 16:09:55 UTC (rev 4257) @@ -640,10 +640,25 @@ * @param index : index de l'onglet \xE0 selecionner. */ public void setSelectedTab(int index){ - tabbedPane_.setSelectedIndex(index); + if(tabbedPane_!=null) + tabbedPane_.setSelectedIndex(index); } /** + * Retourne l'index de l'onglet selectionnn\xE9. + */ + public int getSelectedTab(){ + if(tabbedPane_!=null) + return tabbedPane_.getSelectedIndex(); + return 0; + } + + /** Retourne vrai si l'edition contient des onglets. Faux sinon. */ + public boolean hasTab(){ + return tabbedPane_!=null; + } + + /** * @return la s\xE9quence des coordonn\xE9es modifi\xE9es. */ protected CoordinateSequence getNewCoordinate() { Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZEditorDefault.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZEditorDefault.java 2008-12-01 14:49:27 UTC (rev 4256) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/ZEditorDefault.java 2008-12-01 16:09:55 UTC (rev 4257) @@ -727,7 +727,7 @@ for (int i=0; i<calques.length; i++) if (!calques[i].isSelectionEmpty()) claquesWithSelectedObjects.add(calques[i]); - // Verification du le nombre de calques contenant des selections + // Verification du nombre de calques contenant des selections if (claquesWithSelectedObjects.size()==0) return EbliLib.getS("La s\xE9lection courante est vide"); else if (claquesWithSelectedObjects.size()>1){ @@ -765,6 +765,13 @@ } /** + * Contient l'index de l'onglet selectionn\xE9 dans le panel d'edition d'objet + * seul. C'est pour que d'une \xE9dition \xE0 l'autre le m\xEAme onglet est + * automatiquement selectionn\xE9. + */ + private int SingleObjectEditorPanel_selectedTab_=0; + + /** * L'\xE9dition pour un objet selectionn\xE9 unique. * @param _target Le calque cible editable. */ @@ -774,8 +781,11 @@ final EbliSingleObjectEditorPanel ed = new EbliSingleObjectEditorPanel(_target.getModelEditable(), idxSelected, true, editAttribute, getXYFormatter()); ed.setCmd(getMng()); + if(ed.hasTab()) + ed.setSelectedTab(SingleObjectEditorPanel_selectedTab_); ed.afficheModale(getFrame(), _target.getTitle()); - + if(ed.hasTab()) + SingleObjectEditorPanel_selectedTab_=ed.getSelectedTab(); } protected void editVertexObject(final ZCalqueEditable _target) { Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/courbe/EGFillePanel.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/courbe/EGFillePanel.java 2008-12-01 14:49:27 UTC (rev 4256) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/courbe/EGFillePanel.java 2008-12-01 16:09:55 UTC (rev 4257) @@ -135,6 +135,9 @@ getGraphe().setAutoRestore(isSelected()); } }; + // EM:Si la fonctionnalit\xE9 'Restaurer automatiquement' est d\xE9j\xE0 activ\xE9e, selectionner l'action. + ((EbliActionChangeState)s).setSelected(getGraphe().isAutoRestore()); + // s.putValue(Action.SHORT_DESCRIPTION, EbliLib.getS("Restaurer automatiquement la vue")); r.add(s); r.add(new EGActionAxeRepereConfigure(getGraphe())); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <emm...@us...> - 2008-12-01 14:49:42
|
Revision: 4256 http://fudaa.svn.sourceforge.net/fudaa/?rev=4256&view=rev Author: emmanuel_martin Date: 2008-12-01 14:49:27 +0000 (Mon, 01 Dec 2008) Log Message: ----------- Tache #108 : "Palette de visibilit?\195?\169 visible: Ouverture d'un projet contenant une image impossible" Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/interpolation/profile/ProfileCalculator.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/BPaletteEditVisibility.java Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/interpolation/profile/ProfileCalculator.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/interpolation/profile/ProfileCalculator.java 2008-12-01 14:06:00 UTC (rev 4255) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/interpolation/profile/ProfileCalculator.java 2008-12-01 14:49:27 UTC (rev 4256) @@ -6,17 +6,10 @@ */ package org.fudaa.ctulu.interpolation.profile ; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.fudaa.ctulu.CtuluLib; import org.fudaa.ctulu.CtuluLibGeometrie; import org.fudaa.ctulu.gis.GISGeometryFactory; import org.fudaa.ctulu.gis.GISLib; import org.fudaa.ctulu.gis.GISPoint; -import org.fudaa.ctulu.gis.GISPolyligne; import com.memoire.fu.FuLog; import com.vividsolutions.jts.geom.Coordinate; Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/BPaletteEditVisibility.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/BPaletteEditVisibility.java 2008-12-01 14:06:00 UTC (rev 4255) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/calque/edition/BPaletteEditVisibility.java 2008-12-01 14:49:27 UTC (rev 4256) @@ -153,8 +153,8 @@ btCont.add(btDown_); add(btCont, BuBorderLayout.SOUTH); // Ajout des informations \\ + calque_.addActionListener(this); fillCalqueComboBox(); - calque_.addActionListener(this); cb.addChangeListener(this); fillTableGeometry(); updateBtMovement(); @@ -328,6 +328,7 @@ * choisis ainsi que l'entr\xE9e sp\xE9ciale 'tout les calques'. */ protected void fillCalqueComboBox(){ + calque_.removeActionListener(this); // Changement du contenu de la comboBox Object selectedItem=calque_.getSelectedItem(); calque_.removeAllItems(); @@ -341,6 +342,7 @@ calque_.setSelectedItem(selectedItem); else calque_.setSelectedIndex(0); + calque_.addActionListener(this); updateListen(); } @@ -350,7 +352,8 @@ protected void updateListen(){ // Suppression de l'\xE9coute de tout les models for(int i=0;i<listenModels_.length;i++) - listenModels_[i].removeModelListener(this); + if(listenModels_[i]!=null) + listenModels_[i].removeModelListener(this); // Mise a jour du tableau de listeners if(calque_.getSelectedItem()==allCalquesEntry_){ listenModels_=new ZModeleEditable[calques_.length]; @@ -369,7 +372,8 @@ } // Ajout de l'\xE9coute de tout les calques for(int i=0;i<listenModels_.length;i++){ - listenModels_[i].addModelListener(this); + if(listenModels_[i]!=null) + listenModels_[i].addModelListener(this); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |