From: <de...@us...> - 2008-08-12 19:55:22
|
Revision: 3791 http://fudaa.svn.sourceforge.net/fudaa/?rev=3791&view=rev Author: deniger Date: 2008-08-12 19:55:32 +0000 (Tue, 12 Aug 2008) Log Message: ----------- Modified Paths: -------------- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetVueCalque.java Added Paths: ----------- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EditCreator.java Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetVueCalque.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetVueCalque.java 2008-08-12 19:54:13 UTC (rev 3790) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetVueCalque.java 2008-08-12 19:55:32 UTC (rev 3791) @@ -1,139 +1,124 @@ package org.fudaa.ebli.visuallibrary.calque; -import java.awt.BorderLayout; import java.awt.Dimension; -import java.awt.FlowLayout; import java.awt.Graphics2D; +import java.awt.Point; import java.awt.Rectangle; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.awt.image.BufferedImage; import java.util.Collections; -import java.util.EnumSet; +import java.util.HashMap; +import java.util.Map; +import javax.swing.JComponent; import javax.swing.JFrame; -import javax.swing.JLabel; +import javax.swing.SwingUtilities; -import org.fudaa.ebli.calque.BArbreCalque; +import org.fudaa.ctulu.image.CtuluLibImage; import org.fudaa.ebli.calque.BCalque; import org.fudaa.ebli.calque.ZEbliCalquesPanel; import org.fudaa.ebli.visuallibrary.EbliScene; import org.fudaa.ebli.visuallibrary.EbliWidget; import org.netbeans.api.visual.action.ActionFactory; -import org.netbeans.api.visual.action.InplaceEditorProvider; +import org.netbeans.api.visual.action.EditProvider; import org.netbeans.api.visual.action.WidgetAction; import org.netbeans.api.visual.widget.Widget; -import sun.swing.BakedArrayList; +public class EbliWidgetVueCalque extends EbliWidget implements EditProvider { -import com.memoire.bu.BuBorderLayout; -import com.memoire.bu.BuButton; -import com.memoire.bu.BuPanel; + ZEbliCalquesPanel calquePanel_; + EditCreator editor_; + JFrame frame_; -public class EbliWidgetVueCalque extends EbliWidget implements - InplaceEditorProvider<BuPanel> { + public EbliWidgetVueCalque(EbliScene scene, ZEbliCalquesPanel vue) { + super(scene); + calquePanel_ = vue; - ZEbliCalquesPanel vue_; + editor_ = EditCreator.INSTANCE; + // FIXME a enlever par la suite + setPreferredSize(new Dimension(200, 200)); + setMinimumSize(new Dimension(200, 200)); + initSize(new Rectangle(0, 0, 200, 200)); + calquePanel_.restaurer(); - public EbliWidgetVueCalque(EbliScene scene, ZEbliCalquesPanel vue) { - super(scene); - vue_ = vue; - setPreferredSize(new Dimension(200, 200)); - setMinimumSize(new Dimension(200, 200)); + // -- creation de l action pour editor --// + WidgetAction editorAction = ActionFactory.createEditAction(this); - // -- creation de l action pour editor --// - WidgetAction editorAction = ActionFactory - .createInplaceEditorAction(this); + // -- ajout de l action au widget correspondant --// + this.getActions().addAction(editorAction); - // -- ajout de l action au widget correspondant --// - this.getActions().addAction(editorAction); + } - } + @Override + protected void paintWidget() { - @Override - protected void paintWidget() { - Rectangle rec = getClientArea(); - Graphics2D g = getGraphics(); - g.translate(rec.x, rec.y); - // GrBoite b = vue_.getVueCalque().getViewBoite(); - // vue_.getVueCalque().changeRepere(this, b); - // TODO a ameliorer - BCalque[] tousCalques = vue_.getVueCalque().getCalque() - .getTousCalques(); - vue_.getVueCalque().setSize(rec.width, rec.height); - vue_.getVueCalque().getCalque().setSize(rec.width, rec.height); - for (int i = 0; i < tousCalques.length; i++) { - tousCalques[i].setSize(rec.width, rec.height); - } - vue_.restaurer(); - vue_.getVueCalque().paintImage(g, Collections.EMPTY_MAP); - g.translate(-rec.x, -rec.y); - } + Rectangle rec = getClientArea(); + Graphics2D g = getGraphics(); + g.translate(rec.x, rec.y); + // mode edition + if (frame_ != null) { + Map params = new HashMap(); + CtuluLibImage.setCompatibleImageAsked(params); + // a ameliorer: il ne faudrait pas recreer l'image a chaque fois + BufferedImage image = calquePanel_.produceImage(rec.width, rec.height, params); + g.drawImage(image, 0, 0, rec.width, rec.height, null); + return; - // -- methodes implements InplaceEditorProvider --// + } + // GrBoite b = vue_.getVueCalque().getViewBoite(); + // vue_.getVueCalque().changeRepere(this, b); + // TODO a ameliorer + initSize(rec); - /** - * Methode appeleee pour creer un editor correspondant - */ - public BuPanel createEditorComponent( - org.netbeans.api.visual.action.InplaceEditorProvider.EditorController controller, - Widget widget) { - // TODO Auto-generated method stub + calquePanel_.getVueCalque().paintImage(g, Collections.EMPTY_MAP); + g.translate(-rec.x, -rec.y); + } - final BuPanel panelTest = new BuPanel(new FlowLayout(FlowLayout.CENTER)); - panelTest.add(new JLabel("test panel")); - BuButton boutonTest = new BuButton("bouton cool"); - boutonTest.addActionListener(new ActionListener() { + private void initSize(Rectangle rec) { + BCalque[] tousCalques = calquePanel_.getVueCalque().getCalque().getTousCalques(); + calquePanel_.getVueCalque().setSize(rec.width, rec.height); + calquePanel_.setSize(rec.width, rec.height); + calquePanel_.setPreferredSize(new Dimension(rec.width, rec.height)); + calquePanel_.getVueCalque().getCalque().setSize(rec.width, rec.height); + for (int i = 0; i < tousCalques.length; i++) { + tousCalques[i].setSize(rec.width, rec.height); + } + } - public void actionPerformed(ActionEvent e) { - // TODO Auto-generated method stub - panelTest.add(new JLabel("bouton appuy\xE9")); - panelTest.validate(); - JFrame frameTruc = new JFrame(); - frameTruc.getContentPane().add(new JLabel("bouton appuy\xE9")); - frameTruc.setSize(200, 200); - frameTruc.setVisible(true); - } + /* + * (non-Javadoc) + * + * @see + * org.netbeans.api.visual.action.EditProvider#edit(org.netbeans.api.visual + * .widget.Widget) + */ + public void edit(Widget _widget) { + if (frame_ != null) + frame_.toFront(); + else { + Rectangle rec = convertLocalToScene(getClientArea()); + Point p = new Point(rec.x, rec.y); + JComponent jc = getEbliScene().getView(); + SwingUtilities.convertPointToScreen(p, jc); - }); - panelTest.add(boutonTest); - BuPanel res = new BuPanel(new BuBorderLayout()); - res.add(vue_); - res - .add(new BArbreCalque(vue_.getArbreCalqueModel()), - BorderLayout.EAST); - // panelTest.add(vue_); + frame_ = editor_.createFrame(calquePanel_); + frame_.setLocation(p); + frame_.pack(); + frame_.setVisible(true); + frame_.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); + frame_.addWindowListener(new WindowAdapter() { - return /* panelTest */res; - } + @Override + public void windowClosed(WindowEvent _e) { + if (frame_ != null) + frame_.dispose(); + frame_ = null; + } - public EnumSet<org.netbeans.api.visual.action.InplaceEditorProvider.ExpansionDirection> getExpansionDirections( - org.netbeans.api.visual.action.InplaceEditorProvider.EditorController controller, - Widget widget, BuPanel editor) { - // TODO Auto-generated method stub - return null; - } + }); + } + // TODO Auto-generated method stub - public Rectangle getInitialEditorComponentBounds( - org.netbeans.api.visual.action.InplaceEditorProvider.EditorController controller, - Widget widget, BuPanel editor, Rectangle viewBounds) { - return new Rectangle(viewBounds.x, viewBounds.y, viewBounds.width + 200, - viewBounds.height); - // TODO Auto-generated method stub - //return null; - } - - public void notifyClosing( - org.netbeans.api.visual.action.InplaceEditorProvider.EditorController controller, - Widget widget, BuPanel editor, boolean commit) { - // TODO Auto-generated method stub - - } - - public void notifyOpened( - org.netbeans.api.visual.action.InplaceEditorProvider.EditorController controller, - Widget widget, BuPanel editor) { - // TODO Auto-generated method stub - - } - + } } Added: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EditCreator.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EditCreator.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EditCreator.java 2008-08-12 19:55:32 UTC (rev 3791) @@ -0,0 +1,117 @@ +package org.fudaa.ebli.visuallibrary.calque; + +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.Dimension; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.util.Iterator; +import java.util.List; + +import javax.swing.JComponent; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JMenu; +import javax.swing.JMenuBar; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JToolBar; +import javax.swing.border.LineBorder; + +import org.flexdock.docking.DockingConstants; +import org.flexdock.docking.DockingManager; +import org.flexdock.docking.DockingPort; +import org.flexdock.docking.defaults.DefaultDockingPort; +import org.flexdock.view.View; +import org.fudaa.ebli.calque.BArbreCalque; +import org.fudaa.ebli.calque.ZEbliCalquesPanel; +import org.fudaa.ebli.commun.EbliActionInterface; +import org.fudaa.ebli.commun.EbliComponentFactory; + +/** + * A ameliorer... + * + * @author deniger + * + */ +public final class EditCreator { + + private EditCreator() { + + } + + public static final EditCreator INSTANCE = new EditCreator(); + + JFrame createFrame(ZEbliCalquesPanel pn) { + JFrame frame = new JFrame("Flexdock Test App"); + + frame.getContentPane().setLayout(new BorderLayout()); + JMenu[] specificMenus = pn.getSpecificMenus("test"); + JMenuBar mb = new JMenuBar(); + frame.setJMenuBar(mb); + for (int i = 0; i < specificMenus.length; i++) { + mb.add(specificMenus[i]); + } + JToolBar tb = new JToolBar(); + List actions = pn.getController().getActions(); + for (Iterator iterator = actions.iterator(); iterator.hasNext();) { + EbliActionInterface object = (EbliActionInterface) iterator.next(); + if (object == null) { + tb.addSeparator(); + } else { + tb.add(object.buildToolButton(EbliComponentFactory.INSTANCE)); + } + } + frame.getContentPane().add(tb, BorderLayout.NORTH); + pn.setPreferredSize(pn.getPreferredSize()); + final DefaultDockingPort globalPort = createDockingPort(); + JComponent centerComponent = createView(pn, "VUE 2D"); + DockingManager.dock(centerComponent, (DockingPort) globalPort); + JComponent rightComponent = createView(new JScrollPane(new BArbreCalque(pn.getArbreCalqueModel())), "arbre", true); + DockingManager.dock(rightComponent, centerComponent, DockingConstants.EAST_REGION, 0.75f); + + frame.getContentPane().add(globalPort, BorderLayout.CENTER); + frame.addWindowListener(new WindowAdapter() { + + @Override + public void windowClosed(WindowEvent _e) { + globalPort.clear(); + } + + }); + return frame; + + } + + private static DefaultDockingPort createDockingPort() { + DefaultDockingPort port = new DefaultDockingPort(); + port.setPreferredSize(new Dimension(400, 400)); + return port; + } + + private static JComponent createDockableComponent(String name) { + JPanel panel = new JPanel(new BorderLayout()); + panel.setBorder(new LineBorder(Color.BLUE)); + panel.add(new JLabel("COUCOU " + name)); + return createView(panel, name, true); + } + + private static JComponent createView(JComponent jc, String name) { + return createView(jc, name, false); + } + + private static JComponent createView(JComponent jc, String name, boolean dockage) { + View view = new View(name); + view.getViewProperties().setDockingEnabled(false); + if (dockage) { + view.addAction(DockingConstants.CLOSE_ACTION); + view.getViewProperties().setDockingEnabled(true); + } + view.setContentPane(jc); + view.setTitle(name, true); + // DockingManager.registerDockable(view.getComponent(), name); + + return view; + } + +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <de...@us...> - 2008-08-25 20:36:20
|
Revision: 3834 http://fudaa.svn.sourceforge.net/fudaa/?rev=3834&view=rev Author: deniger Date: 2008-08-25 20:36:21 +0000 (Mon, 25 Aug 2008) Log Message: ----------- Modified Paths: -------------- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetCreatorVueCalque.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetVueCalque.java Removed Paths: ------------- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetCalqueLegende.java Deleted: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetCalqueLegende.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetCalqueLegende.java 2008-08-25 18:11:33 UTC (rev 3833) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetCalqueLegende.java 2008-08-25 20:36:21 UTC (rev 3834) @@ -1,45 +0,0 @@ -package org.fudaa.ebli.visuallibrary.calque; - -import java.awt.Rectangle; - -import org.fudaa.ebli.calque.BCalqueLegendePanel; -import org.fudaa.ebli.visuallibrary.EbliScene; -import org.fudaa.ebli.visuallibrary.EbliWidget; -import org.netbeans.api.visual.layout.LayoutFactory.SerialAlignment; -import org.netbeans.api.visual.widget.ComponentWidget; -import org.netbeans.modules.visual.layout.FlowLayout; - -/** - * Classe de la l\xE9gende associ\xE9e au graphe. - * - * @author Adrien Hadoux - * - */ -public class EbliWidgetCalqueLegende extends EbliWidget { - - public BCalqueLegendePanel calqueLegende_; - ComponentWidget intern_; - - public EbliWidgetCalqueLegende(EbliScene scene, BCalqueLegendePanel _calqueLegende) { - super(scene); - calqueLegende_ = _calqueLegende; - - setLayout(new FlowLayout(false, SerialAlignment.CENTER, 5)); - - - intern_ = new ComponentWidget(scene, _calqueLegende); - - - // intern_.setPreferredSize(preferredSize) - addChild(intern_); - - this.setPreferredBounds(new Rectangle(200, 200)); - - intern_.setPreferredBounds(new Rectangle(150, 150)); - - } - - - - -} Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetCreatorVueCalque.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetCreatorVueCalque.java 2008-08-25 18:11:33 UTC (rev 3833) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetCreatorVueCalque.java 2008-08-25 20:36:21 UTC (rev 3834) @@ -3,30 +3,39 @@ import java.awt.Dimension; import org.fudaa.ebli.calque.ZEbliCalquesPanel; +import org.fudaa.ebli.geometrie.GrBoite; import org.fudaa.ebli.visuallibrary.EbliScene; import org.fudaa.ebli.visuallibrary.EbliWidget; import org.fudaa.ebli.visuallibrary.EbliWidgetCreator; public class EbliWidgetCreatorVueCalque implements EbliWidgetCreator { - ZEbliCalquesPanel calque; + ZEbliCalquesPanel calque_; + public ZEbliCalquesPanel getCalque() { - return calque; -} + return calque_; + } -public void setCalque(ZEbliCalquesPanel calque) { - this.calque = calque; -} + public void setCalque(ZEbliCalquesPanel calque) { + this.calque_ = calque; + } -EbliWidgetVueCalque res; + EbliWidgetVueCalque res; + GrBoite initZoom_; public EbliWidgetCreatorVueCalque(ZEbliCalquesPanel calque) { super(); - this.calque = calque; + this.calque_ = calque; } + public EbliWidgetCreatorVueCalque(ZEbliCalquesPanel calque, GrBoite _initZoom) { + super(); + this.calque_ = calque; + initZoom_ = _initZoom; + } + public EbliWidget create(EbliScene _scene) { - res = new EbliWidgetVueCalque(_scene, calque); + res = new EbliWidgetVueCalque(_scene, calque_,initZoom_); res.setPreferredSize(new Dimension(200, 200)); return res; } Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetVueCalque.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetVueCalque.java 2008-08-25 18:11:33 UTC (rev 3833) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetVueCalque.java 2008-08-25 20:36:21 UTC (rev 3834) @@ -51,24 +51,34 @@ ZEbliCalquesPanel calquePanel_; - public Color couleurContour = Color.black; - public Color couleurFond = Color.white; - private EbliNodeDefault nodeLegende = null; Window frame_; BufferedImage image; + GrBoite initZoom_; BuPanel conteneurEditor; // GrBoite zoom_; + public EbliWidgetVueCalque(EbliScene _scene, ZEbliCalquesPanel _vue) { + this(_scene, _vue, null); - public EbliWidgetVueCalque(EbliScene _scene, ZEbliCalquesPanel _vue) { + } + + /** + * TODO a am\xE9liorer avec une Map + * + * @param _scene + * @param _vue + * @param _initZoom + */ + public EbliWidgetVueCalque(EbliScene _scene, ZEbliCalquesPanel _vue, GrBoite _initZoom) { super(_scene); calquePanel_ = _vue; + initZoom_ =_initZoom; calquePanel_.setBorder(null); -// calquePanel_.setBorder(BuBorders.EMPTY1111); + // calquePanel_.setBorder(BuBorders.EMPTY1111); // FIXME a enlever par la suite setPreferredSize(new Dimension(500, 400)); @@ -120,7 +130,7 @@ image = null; getEbliScene().refresh(); -// calquePanel_.setBorder(BuBorders.EMPTY1111); + // calquePanel_.setBorder(BuBorders.EMPTY1111); this.repaint(); } @@ -173,7 +183,7 @@ } public Color getColorFond() { - return couleurFond; + return null; } private void initSize(Rectangle rec) { @@ -193,15 +203,18 @@ protected void paintWidget() { Rectangle rec = getClientArea(); - rec.width-=1; - rec.height-=1; + rec.width -= 1; + rec.height -= 1; Graphics2D g = getGraphics(); if (frame_ == null) { initSize(rec); if (first_) { first_ = false; - calquePanel_.restaurer(); + if (initZoom_ != null && initZoom_.getDeltaX() > 0 && initZoom_.getDeltaY() > 0) { + calquePanel_.getVueCalque().changeRepere(this, initZoom_); + initZoom_ = null; + } else calquePanel_.restaurer(); } // if (zoom_ != null) { // // image=null; @@ -270,7 +283,7 @@ // EbliWidgetVueCalque.this.getEbliScene().addNode(nodeLegende); // methode qui permet d ajouter une legemde -// calquePanel_.addWidgetLegendeCalque(); + // calquePanel_.addWidgetLegendeCalque(); EbliWidgetVueCalque.this.getEbliScene().refresh(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <de...@us...> - 2009-01-12 20:08:55
|
Revision: 4347 http://fudaa.svn.sourceforge.net/fudaa/?rev=4347&view=rev Author: deniger Date: 2009-01-12 20:08:48 +0000 (Mon, 12 Jan 2009) Log Message: ----------- Modified Paths: -------------- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetFusionCalques.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetVueCalque.java Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetFusionCalques.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetFusionCalques.java 2009-01-12 19:51:23 UTC (rev 4346) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetFusionCalques.java 2009-01-12 20:08:48 UTC (rev 4347) @@ -24,47 +24,45 @@ */ public final class EbliWidgetFusionCalques extends EbliWidgetGroup implements PropertyChangeListener { - public final ArrayList<EbliWidgetVueCalque> listeWidgetCalque_ = new ArrayList<EbliWidgetVueCalque>(); + public final ArrayList<EbliWidgetVueCalque> listeWidgetCalque_ = new ArrayList<EbliWidgetVueCalque>(); - public EbliWidgetFusionCalques(final EbliScene _scene) { - super(_scene); - // calquePanel_.getVueCalque().getAbstractCalque().addPropertyChangeListener( - // "versReel", listener); + public EbliWidgetFusionCalques(final EbliScene _scene) { + super(_scene); + // calquePanel_.getVueCalque().getAbstractCalque().addPropertyChangeListener( + // "versReel", listener); - } + } - public void addChildCalque(final EbliWidget child) { + public void addChildCalque(final EbliWidget child) { - addChild(child); + addChild(child); - final EbliWidgetVueCalque widgetCalque = (EbliWidgetVueCalque) child.getIntern(); - listeWidgetCalque_.add(widgetCalque); + final EbliWidgetVueCalque widgetCalque = (EbliWidgetVueCalque) child.getIntern(); + listeWidgetCalque_.add(widgetCalque); + // widgetCalque.calquePanel_.getVueCalque().getAbstractCalque(). + // addPropertyChangeListener("versReel", this); + } + boolean noCyclePropertieChange = true; - // widgetCalque.calquePanel_.getVueCalque().getAbstractCalque(). - // addPropertyChangeListener("versReel", this); + /** + * Methode a appelee a la fin des ajout de widget pour synchroniser les zooms de tous les calques du groupe. Il faut + * le faire dans l'ordre inverse afin de pr\xE9server le zoom de la widget initiale. + */ + public void synchronyseZoom() { - } - boolean noCyclePropertieChange = true; - - /** - * Methode a appelee a la fin des ajout de widget pour synchroniser les zooms de tous les calques du groupe. - * Il faut le faire dans l'ordre inverse afin de pr\xE9server le zoom de la widget initiale. - */ - public void synchronyseZoom(){ - - // -- on met a jour le modele de zoom pour toutes les filles en prenant le + // -- on met a jour le modele de zoom pour toutes les filles en prenant le // dernier widget (= la widget temoin) GrBoite boite = null; - ZEbliCalquesPanel pn = null; + ZEbliCalquesPanel pn = null; for (int i = listeWidgetCalque_.size() - 1; i >= 0; i--) { EbliWidgetVueCalque vue = listeWidgetCalque_.get(i); - if (boite == null) { + if (boite == null) { boite = vue.getViewBoite(); - - pn = vue.calquePanel_; + + pn = vue.calquePanel_; } // } else if (vue.getViewBoite() != null) { // boite.ajuste(vue.getViewBoite()); @@ -74,120 +72,113 @@ // vue.image = null; // vue.repaint(); // } -// vue.calquePanel_.getVueCalque().addPropertyChangeListener("repere", this); + // vue.calquePanel_.getVueCalque().addPropertyChangeListener("repere", this); vue.calquePanel_.getVueCalque().addPropertyChangeListener("repereEvt", this); vue.image = null; vue.repaint(); - + } - if (boite != null) { - // -- on force le redimensionnement de la widget calque initiale avec le + if (boite != null) { + // -- on force le redimensionnement de la widget calque initiale avec le // meme zoom // -- le fait de faire appel a ceci mettra a jour les zooms de toutes les // autres widgets pn.getVueCalque().changeRepere(pn, boite, 0, 0); } - getEbliScene().refresh(); + getEbliScene().refresh(); - } + } - + public void propertyChange(final PropertyChangeEvent _evt) { - public void propertyChange(final PropertyChangeEvent _evt) { + if (!noCyclePropertieChange) return; + noCyclePropertieChange = false; + // listeWidgetCalque_.get(0).calquePanel_.getVueCalque().changeViewBoite( + // _source, _boite, _rapide) + System.err.println("on recommence le tout"); + final BVueCalque vueCalque = (BVueCalque) _evt.getSource(); + RepereEvent newRepere = (RepereEvent) _evt.getNewValue(); + for (final Iterator<Widget> it = getChildren().iterator(); it.hasNext();) { + final EbliWidgetVueCalque widget = (EbliWidgetVueCalque) ((EbliWidget) it.next()).getIntern(); + if (widget.calquePanel_.getVueCalque() != vueCalque) { + widget.repereModifie(newRepere); + } - if (!noCyclePropertieChange) return; - noCyclePropertieChange = false; - // listeWidgetCalque_.get(0).calquePanel_.getVueCalque().changeViewBoite( - // _source, _boite, _rapide) - final BVueCalque vueCalque = (BVueCalque) _evt.getSource(); - final GrBoite boite = vueCalque.getViewBoite(); - RepereEvent newRepere=(RepereEvent) _evt.getNewValue(); - for (final Iterator<Widget> it = getChildren().iterator(); it.hasNext();) { - final EbliWidgetVueCalque widget = (EbliWidgetVueCalque) ((EbliWidget) it.next()).getIntern(); - if (widget.calquePanel_.getVueCalque() != vueCalque) { -// widget.calquePanel_.getVueCalque().changeRepere(widget.calquePanel_, boite, 0, 0); - widget.calquePanel_.getVueCalque().repereModifie(newRepere); - } - widget.image = null; - widget.repaint(); - } - noCyclePropertieChange = true; - getEbliScene().refresh(); - } + } + noCyclePropertieChange = true; + getEbliScene().refresh(); + } - /** - * Surcharge de la methode de ebli, utilisse pour virer les property change listener - */ - @Override - public void removePropertyChangeListenerFormWidget(final EbliWidget child) { - EbliWidgetVueCalque widgetCalque; - if (child instanceof EbliWidgetVueCalque) widgetCalque = (EbliWidgetVueCalque) child; - else widgetCalque = (EbliWidgetVueCalque) ((EbliWidget) child.getChildren().get(0)).getIntern(); - widgetCalque.calquePanel_.getVueCalque().getAbstractCalque().removePropertyChangeListener("repere", this); + /** + * Surcharge de la methode de ebli, utilisse pour virer les property change listener + */ + @Override + public void removePropertyChangeListenerFormWidget(final EbliWidget child) { + EbliWidgetVueCalque widgetCalque; + if (child instanceof EbliWidgetVueCalque) widgetCalque = (EbliWidgetVueCalque) child; + else widgetCalque = (EbliWidgetVueCalque) ((EbliWidget) child.getChildren().get(0)).getIntern(); + widgetCalque.calquePanel_.getVueCalque().getAbstractCalque().removePropertyChangeListener("repereEvt", this); - } + } - ZCalqueSondeSynchroniserFusion managerSondesFusion_; + ZCalqueSondeSynchroniserFusion managerSondesFusion_; - /** - * Methode a appeler a la fin de la creation de la sonde fusion pour ajouter l action sonde fusion dans chaque - * calques. - */ - public void synchroniseSondeFusion() { + /** + * Methode a appeler a la fin de la creation de la sonde fusion pour ajouter l action sonde fusion dans chaque + * calques. + */ + public void synchroniseSondeFusion() { - // -- creation du manager de sonde fusion qui synchronise toute ses sondes - // --// - managerSondesFusion_ = new ZCalqueSondeSynchroniserFusion(); + // -- creation du manager de sonde fusion qui synchronise toute ses sondes + // --// + managerSondesFusion_ = new ZCalqueSondeSynchroniserFusion(); - for (final EbliWidgetVueCalque widget : listeWidgetCalque_) { - final ZEbliCalquesPanel panel = widget.calquePanel_; + for (final EbliWidgetVueCalque widget : listeWidgetCalque_) { + final ZEbliCalquesPanel panel = widget.calquePanel_; - // -- il faut initialiser les actions specifiques si pas deja fait pour - // activer les interactions--// - panel.getController().initSpecificActions(); + // -- il faut initialiser les actions specifiques si pas deja fait pour + // activer les interactions--// + panel.getController().initSpecificActions(); - // --recuperation de la sonde du calque --// - final ZCalqueSondeInteraction sonde = panel.getController().getCalqueSondeInteraction(); + // --recuperation de la sonde du calque --// + final ZCalqueSondeInteraction sonde = panel.getController().getCalqueSondeInteraction(); - // -- ajout de la sonde dans le manager - managerSondesFusion_.addZCalqueSondeInteraction(sonde, widget); - } - // -- ajout dans les toolbars de tous les calques de la meme action --// - // for (EbliWidgetVueCalque widget : listeWidgetCalque_) { - // - // ((EbliWidgetControllerCalque) - // widget.getController()).getToolbarComponent().add( - // new CalqueActionSonde(sondeFusion)); - // - // } - } + // -- ajout de la sonde dans le manager + managerSondesFusion_.addZCalqueSondeInteraction(sonde, widget); + } + // -- ajout dans les toolbars de tous les calques de la meme action --// + // for (EbliWidgetVueCalque widget : listeWidgetCalque_) { + // + // ((EbliWidgetControllerCalque) + // widget.getController()).getToolbarComponent().add( + // new CalqueActionSonde(sondeFusion)); + // + // } + } - /** - * Methode a appeler au ungroup ou undo sur la fusion. Desynchronise les sondes des calques. - */ - public void desynchroniseSondeFusion() { - managerSondesFusion_.removeAllListenningSonde(); - } + /** + * Methode a appeler au ungroup ou undo sur la fusion. Desynchronise les sondes des calques. + */ + public void desynchroniseSondeFusion() { + managerSondesFusion_.removeAllListenningSonde(); + } - - public boolean hasSattelite() { - - return true; - - } + public boolean hasSattelite() { - public List<EbliWidget> getSattelite() { - - List<EbliWidget> liste = new ArrayList<EbliWidget>(); + return true; - for (int i = listeWidgetCalque_.size() - 1; i >= 0; i--) { - EbliWidgetVueCalque vue = listeWidgetCalque_.get(i); - if(vue.hasSattelite()) - liste.addAll(vue.getSattelite()); - } - return liste; + } - } - - + public List<EbliWidget> getSattelite() { + + List<EbliWidget> liste = new ArrayList<EbliWidget>(); + + for (int i = listeWidgetCalque_.size() - 1; i >= 0; i--) { + EbliWidgetVueCalque vue = listeWidgetCalque_.get(i); + if (vue.hasSattelite()) liste.addAll(vue.getSattelite()); + } + return liste; + + } + } Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetVueCalque.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetVueCalque.java 2009-01-12 19:51:23 UTC (rev 4346) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetVueCalque.java 2009-01-12 20:08:48 UTC (rev 4347) @@ -22,6 +22,7 @@ import org.fudaa.ebli.calque.BCalque; import org.fudaa.ebli.calque.ZEbliCalquesPanel; import org.fudaa.ebli.geometrie.GrBoite; +import org.fudaa.ebli.repere.RepereEvent; import org.fudaa.ebli.visuallibrary.EbliNode; import org.fudaa.ebli.visuallibrary.EbliNodeDefault; import org.fudaa.ebli.visuallibrary.EbliScene; @@ -49,7 +50,7 @@ BufferedImage image; - public GrBoite initZoom_; +// public GrBoite initZoom_; BuPanel conteneurEditor; @@ -70,7 +71,8 @@ public EbliWidgetVueCalque(final EbliScene _scene, final ZEbliCalquesPanel _vue, final GrBoite _initZoom) { super(_scene); calquePanel_ = _vue; - initZoom_ = _initZoom; +// initZoom_ = _initZoom; + zoom_ = _initZoom; calquePanel_.setBorder(null); setPreferredSize(new Dimension(500, 400)); @@ -143,7 +145,7 @@ return (EbliWidgetControllerCalque) getController(); } - boolean first_ = true; +// boolean first_ = true; @Override protected void paintWidget() { @@ -157,28 +159,31 @@ final Graphics2D g = getGraphics(); initSize(rec); - if (first_) { - first_ = false; - if (initZoom_ != null && initZoom_.getDeltaX() > 0 && initZoom_.getDeltaY() > 0) { - calquePanel_.getVueCalque().changeRepere(this, initZoom_); - - //-- tres important!!: le zoom doit prendre la valeur initial du zoom pour conserver le bon angle si on fais le cas suivant: - //-- lros du chargement d un calque avec zoom specifique, suivi d'un agrandissement ou reduction: il faut que le zoom!=null pour ne pas reinitialiser le repere (cf boucle suivante) - zoom_=initZoom_; - initZoom_ = null; - } else calquePanel_.restaurer(); +// if (first_) { +// first_ = false; +// if (initZoom_ != null && initZoom_.getDeltaX() > 0 && initZoom_.getDeltaY() > 0) { +// calquePanel_.getVueCalque().changeRepere(this, initZoom_); +// +// // -- tres important!!: le zoom doit prendre la valeur initial du zoom pour conserver le bon angle si on fais +// // le cas suivant: +// // -- lros du chargement d un calque avec zoom specifique, suivi d'un agrandissement ou reduction: il faut que +// // le zoom!=null pour ne pas reinitialiser le repere (cf boucle suivante) +// zoom_ = initZoom_; +// initZoom_ = null; +// } else calquePanel_.restaurer(); +// +// // -- ACHTUNG!!! si on enleve la creation de l'image ici, elle se fera dans l'autre if et ecrasera le zoom +// // init!! --// +// final Map params = new HashMap(); +// CtuluLibImage.setCompatibleImageAsked(params); +// image = calquePanel_.produceImage(rec.width, rec.height, params); +// +// } - //-- ACHTUNG!!! si on enleve la creation de l'image ici, elle se fera dans l'autre if et ecrasera le zoom init!! --// - final Map params = new HashMap(); - CtuluLibImage.setCompatibleImageAsked(params); - image = calquePanel_.produceImage(rec.width, rec.height, params); - - } - // mode edition if (image == null || image.getWidth() != rec.width || image.getHeight() != rec.height) { FuLog.debug("EWI: recreate image"); - if (zoom_ != null) { + if (zoom_ != null && zoom_.getDeltaX() > 0 && zoom_.getDeltaY() > 0) { calquePanel_.getVueCalque().changeRepere(this, zoom_); } else calquePanel_.restaurer(); @@ -219,7 +224,7 @@ public void notifyOpened(final org.netbeans.api.visual.action.InplaceEditorProvider.EditorController controller, final Widget widget, final BuPanel editor) { editingStart(); -// calquePanel_.setBorder(BorderFactory.createLineBorder(Color.GRAY, 1)); + // calquePanel_.setBorder(BorderFactory.createLineBorder(Color.GRAY, 1)); } // public void setColorFond(Color newColor) { @@ -308,12 +313,20 @@ this.image = image; } -public GrBoite getZoom_() { - return zoom_; -} + protected GrBoite getZoom() { + return zoom_; + } -public void setZoom_(GrBoite zoom_) { - this.zoom_ = zoom_; -} + protected void setZoom(GrBoite zoom_) { + this.zoom_ = zoom_; + } + protected void repereModifie(RepereEvent _newRepere) { + image = null; + calquePanel_.getVueCalque().repereModifie(_newRepere); + + zoom_ = calquePanel_.getVueCalque().getViewBoite(); + repaint(); + } + } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |