From: <bma...@us...> - 2008-11-23 21:43:52
|
Revision: 4237 http://fudaa.svn.sourceforge.net/fudaa/?rev=4237&view=rev Author: bmarchan Date: 2008-11-23 21:43:45 +0000 (Sun, 23 Nov 2008) Log Message: ----------- Javadoc + correction sur calcul d'abscisse curviligne. Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/commun/EbliActionChangeState.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/commun/EbliActionPaletteAbstract.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/SceneAbscisseCurviligneAction.java Property Changed: ---------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/commun/EbliActionChangeState.java branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/commun/EbliActionPaletteAbstract.java branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/SceneAbscisseCurviligneAction.java Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/commun/EbliActionChangeState.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/commun/EbliActionChangeState.java 2008-11-23 19:03:34 UTC (rev 4236) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/commun/EbliActionChangeState.java 2008-11-23 21:43:45 UTC (rev 4237) @@ -1,6 +1,6 @@ /* * @creation 2 oct. 2003 - * @modification $Date: 2006-09-19 14:55:55 $ + * @modification $Date$ * @license GNU General Public License 2 * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne */ @@ -13,7 +13,7 @@ /** * @author deniger - * @version $Id: EbliActionChangeState.java,v 1.9 2006-09-19 14:55:55 deniger Exp $ + * @version $Id$ */ public abstract class EbliActionChangeState extends EbliActionAbstract { @@ -46,6 +46,9 @@ } } + /** + * Appel\xE9 quand l'\xE9tat s\xE9lectionn\xE9 ou non de l'action est modifi\xE9 + */ public abstract void changeAction(); public boolean isSelected() { Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/commun/EbliActionChangeState.java ___________________________________________________________________ Added: svn:keywords + Date Revision Author URL Id Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/commun/EbliActionPaletteAbstract.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/commun/EbliActionPaletteAbstract.java 2008-11-23 19:03:34 UTC (rev 4236) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/commun/EbliActionPaletteAbstract.java 2008-11-23 21:43:45 UTC (rev 4237) @@ -1,6 +1,6 @@ /* * @creation 2 oct. 2003 - * @modification $Date: 2007-06-13 12:57:45 $ + * @modification $Date$ * @license GNU General Public License 2 * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne */ @@ -31,9 +31,14 @@ import com.memoire.bu.BuPalette; /** - * Une action d\xE9clenchant l'affichage d'une palette. + * Une action d\xE9clenchant l'affichage d'une palette. Une palette est un panneau non modal. + * Elle peut \xEAtre associ\xE9e :<p> + * - Soit \xE0 la JInternalFrame active du Desktop donn\xE9 par {@link #setDesktop(BuDesktop)}. Elle + * apparait et disparait en m\xEAme temps qu'elle. Elle est visualis\xE9e sous forme de Palette interne.<p> + * - Soit a l'application par {@link #setParent(Component)}. Dans ce cas, elle est visualis\xE9e sous forme de dialogue externe. + * * @author deniger - * @version $Id: EbliActionPaletteAbstract.java,v 1.21 2007-06-13 12:57:45 deniger Exp $ + * @version $Id$ */ public abstract class EbliActionPaletteAbstract extends EbliActionChangeState implements InternalFrameListener { @@ -42,24 +47,42 @@ Point loc_; + /** Le desktop sur lequel est affich\xE9 la palette si non null. */ protected BuDesktop desktop_; - + /** Le parent utilis\xE9 pour une palette externe */ protected Component parent_; - + /** La palette est resizable */ protected boolean resizable_; - + /** La palette, contenant un composant sp\xE9cifique pour l'action */ protected transient BuPalette window_; + /** + * Construction de l'action. + * @param _name Le nom de l'action. + * @param _icon L'icone de l'action + * @param _actionName La commande de l'action. + */ public EbliActionPaletteAbstract(final String _name, final Icon _icon, final String _actionName) { super(_name, _icon, _actionName); } + /** + * Construction de l'action en pr\xE9cisant le caract\xE8re "resizable" la palette. + * @param _name Le nom de l'action. + * @param _icon L'icone de l'action + * @param _actionName La commande de l'action. + * @param _resizable True Retaillable, false sinn. + */ public EbliActionPaletteAbstract(final String _name, final Icon _icon, final String _actionName, final boolean _resizable) { super(_name, _icon, _actionName); resizable_ = _resizable; } + /** + * Construit la palette, en incluant le composant sp\xE9cifique de l'action. L'action \xE9coute + * les evenements sur la palette. + */ protected void buildWindow() { if (window_ == null) { window_ = new BuPalette() { @@ -88,12 +111,21 @@ } } + /** + * A surcharger pour une op\xE9ration faite apr\xE8s que la palette apparaisse. + */ protected void doAfterDisplay() {} + /** + * @return La palette associ\xE9e \xE0 l'action. + */ protected BuPalette getWindow() { return window_; } + /** + * Fait disparaitre la palette. + */ protected void hideWindow() { if (dial_ != null) { dial_.dispose(); @@ -133,6 +165,9 @@ } + /** + * Fait apparaitre la palette, apr\xE8s l'avoir construite si elle n'existe pas encore. + */ protected void showWindow() { final boolean first = window_ == null; buildWindow(); @@ -235,6 +270,10 @@ return resizable_; } + /** + * Definit le desktop pour une palette associ\xE9e \xE0 l'InternalFrame active. + * @param _desktop Le desktop, null si pas d'association avec une fenetre active. + */ public void setDesktop(final BuDesktop _desktop) { desktop_ = _desktop; } @@ -267,6 +306,10 @@ } } + /** + * Le parent de la palette pour une palette externe. Ne sert pas si la palette est interne. + * @param _parent Le parent. Peut \xEAtre null. + */ public void setParent(Component _parent) { parent_ = _parent; } @@ -290,7 +333,9 @@ /* (non-Javadoc) * @see javax.swing.event.InternalFrameListener#internalFrameClosed(javax.swing.event.InternalFrameEvent) */ - public void internalFrameClosed(InternalFrameEvent e) {} + public void internalFrameClosed(InternalFrameEvent e) { + + } /* (non-Javadoc) * @see javax.swing.event.InternalFrameListener#internalFrameClosing(javax.swing.event.InternalFrameEvent) Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/ebli/src/org/fudaa/ebli/commun/EbliActionPaletteAbstract.java ___________________________________________________________________ Added: svn:keywords + Date Revision Author URL Id 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-11-23 19:03:34 UTC (rev 4236) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/SceneAbscisseCurviligneAction.java 2008-11-23 21:43:45 UTC (rev 4237) @@ -11,7 +11,7 @@ import java.beans.PropertyChangeListener; import javax.swing.JComponent; -import javax.swing.event.InternalFrameEvent; +import javax.swing.SwingUtilities; import org.fudaa.ctulu.gis.GISGeometryFactory; import org.fudaa.ctulu.gis.GISPolygone; @@ -28,9 +28,8 @@ import org.fudaa.ebli.ressource.EbliResource; import org.fudaa.fudaa.modeleur.layer.BPaletteAbscisseCurviligne; import org.fudaa.fudaa.modeleur.layer.ZCalqueAbscisseCurviligneInteraction; -import org.fudaa.fudaa.sig.layer.FSigVisuPanel; -import com.memoire.bu.BuPalette; +import com.memoire.bu.BuDesktop; import com.vividsolutions.jts.geom.Coordinate; import com.vividsolutions.jts.geom.CoordinateSequence; import com.vividsolutions.jts.geom.Geometry; @@ -39,11 +38,10 @@ import com.vividsolutions.jts.geom.Point; /** - * Une action pour afficher une palette indiquant l'abscisse curviligne d'un axe - * hydaulique. + * Une action pour afficher une palette indiquant l'abscisse curviligne d'une polyligne. * * @author Emmanuel MARTIN - * @version $Id:$ + * @version $Id$ */ public class SceneAbscisseCurviligneAction extends EbliActionPaletteAbstract implements PropertyChangeListener, ZSelectionListener { @@ -58,11 +56,9 @@ private LineString selectedGeometry_; /** La palette affichant la donn\xE9e curviligne. */ private BPaletteAbscisseCurviligne palette_; - /** La internalFrame*/ - private BuPalette interFrame_; public SceneAbscisseCurviligneAction(final ZEditorDefault _editor) { - super(EbliResource.EBLI.getString("Abscisse curviligne"), null, "PALETTE_ABSCISSE_CURVILIGNE"); + super(EbliResource.EBLI.getString("Calcul de l'abscisse curviligne"), null, "PALETTE_ABSCISSE_CURVILIGNE"); scene_=_editor.getSceneEditor().getScene(); scene_.addSelectionListener(this); calquesPanel_=_editor.getPanel(); @@ -79,32 +75,6 @@ public String getEnableCondition() { return EbliResource.EBLI.getString("<p>selectionner une polyligne ou un polygone.</p>"); } - - @Override - public void changeAction() { - if (isSelected()) { - calquesPanel_.setCalqueInteractionActif(calqueAbscisseCurviligne_); - if (palette_==null) - // Cr\xE9ation de l'internal frame affichant l'information curviligne - palette_=new BPaletteAbscisseCurviligne(calqueAbscisseCurviligne_, calquesPanel_.getController().getEbliFormatter(), - calquesPanel_); - if(interFrame_==null){ - interFrame_=new BuPalette(); - interFrame_.setResizable(true); - interFrame_.setContent((BPaletteAbscisseCurviligne)palette_); - interFrame_.setClosable(true); - interFrame_.pack(); - interFrame_.addInternalFrameListener(this); - } - ((FSigVisuPanel)calquesPanel_).getImpl().getMainPanel().getDesktop().addInternalFrame(interFrame_); - } - else { - calquesPanel_.unsetCalqueInteractionActif(calqueAbscisseCurviligne_); - ((FSigVisuPanel)calquesPanel_).getImpl().getMainPanel().getDesktop().removeInternalFrame(interFrame_); - if (calquesPanel_.getController().getCqSelectionI()!=null) - calquesPanel_.getController().getCqSelectionI().setGele(false); - } - } public void propertyChange(PropertyChangeEvent _evt) { // Cas un autre calque que celui du zoom, du deplacement de vue et d'edition @@ -112,10 +82,25 @@ if (_evt.getSource()!=calqueZoom_&&_evt.getSource()!=calqueDeplacementVue_&&_evt.getSource()!=calqueAbscisseCurviligne_ &&!((Boolean)_evt.getNewValue()).booleanValue()&&isSelected()) { setSelected(false); - ((FSigVisuPanel)calquesPanel_).getImpl().getMainPanel().getDesktop().removeInternalFrame(interFrame_); + hideWindow(); } } + public void showWindow() { + // Necessaire, sinon la palette est visualis\xE9e en externe. Ne peut \xEAtre fait avant, car le desktop n'est pas + // encore existant. + setDesktop((BuDesktop)SwingUtilities.getAncestorOfClass(BuDesktop.class,calquesPanel_)); + calquesPanel_.setCalqueInteractionActif(calqueAbscisseCurviligne_); + super.showWindow(); + } + + public void hideWindow() { + calquesPanel_.unsetCalqueInteractionActif(calqueAbscisseCurviligne_); + if (calquesPanel_.getController().getCqSelectionI()!=null) + calquesPanel_.getController().getCqSelectionI().setGele(false); + super.hideWindow(); + } + /* (non-Javadoc) * @see org.fudaa.ebli.calque.ZSelectionListener#selectionChanged(org.fudaa.ebli.calque.ZSelectionEvent) */ @@ -167,22 +152,13 @@ ((BPaletteAbscisseCurviligne)palette_).setAbcisseCurviligne(valueCurviligne); } } - - public void internalFrameClosed(InternalFrameEvent e){ - // Lorsque la palette est ferm\xE9e, on d\xE9selectionne l'action, d\xE9active le - // calque, supprime l'internal frame et active la selection - setSelected(false); - calquesPanel_.unsetCalqueInteractionActif(calqueAbscisseCurviligne_); - ((FSigVisuPanel)calquesPanel_).getImpl().getMainPanel().getDesktop().removeInternalFrame(interFrame_); - if (calquesPanel_.getController().getCqSelectionI()!=null) - calquesPanel_.getController().getCqSelectionI().setGele(false); - } - /** - * M\xE9thode non utilis\xE9 dans cette classe : l'impl\xE9mentation de changeAction() ne fait pas de super. - */ @Override public JComponent buildContentPane() { - return null; + if (palette_==null) + // Cr\xE9ation de l'internal frame affichant l'information curviligne + palette_=new BPaletteAbscisseCurviligne(calqueAbscisseCurviligne_, calquesPanel_.getController().getEbliFormatter(), + calquesPanel_); + return palette_.getComponent(); } } \ No newline at end of file Property changes on: branches/FudaaModeleur_TC1Bis/fudaa_devel/fudaa/src/org/fudaa/fudaa/modeleur/action/SceneAbscisseCurviligneAction.java ___________________________________________________________________ Modified: svn:keywords - Id + Date Revision Author URL Id This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |