From: <de...@us...> - 2008-08-12 20:22:40
|
Revision: 3792 http://fudaa.svn.sourceforge.net/fudaa/?rev=3792&view=rev Author: deniger Date: 2008-08-12 20:22:49 +0000 (Tue, 12 Aug 2008) Log Message: ----------- Modified Paths: -------------- 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/EbliWidgetVueCalque.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetVueCalque.java 2008-08-12 19:55:32 UTC (rev 3791) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetVueCalque.java 2008-08-12 20:22:49 UTC (rev 3792) @@ -18,6 +18,7 @@ import org.fudaa.ctulu.image.CtuluLibImage; import org.fudaa.ebli.calque.BCalque; 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.netbeans.api.visual.action.ActionFactory; @@ -31,6 +32,10 @@ EditCreator editor_; JFrame frame_; + BufferedImage image; + + GrBoite zoom_; + public EbliWidgetVueCalque(EbliScene scene, ZEbliCalquesPanel vue) { super(scene); calquePanel_ = vue; @@ -40,7 +45,8 @@ setPreferredSize(new Dimension(200, 200)); setMinimumSize(new Dimension(200, 200)); initSize(new Rectangle(0, 0, 200, 200)); - calquePanel_.restaurer(); + // zoom_ = calquePanel_.getVueCalque().getCalque().getDomaine(); + // calquePanel_.restaurer(); // -- creation de l action pour editor --// WidgetAction editorAction = ActionFactory.createEditAction(this); @@ -50,42 +56,6 @@ } - @Override - protected void paintWidget() { - - 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; - - } - // GrBoite b = vue_.getVueCalque().getViewBoite(); - // vue_.getVueCalque().changeRepere(this, b); - // TODO a ameliorer - initSize(rec); - - calquePanel_.getVueCalque().paintImage(g, Collections.EMPTY_MAP); - g.translate(-rec.x, -rec.y); - } - - 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); - } - } - /* * (non-Javadoc) * @@ -97,6 +67,7 @@ if (frame_ != null) frame_.toFront(); else { + // final GrBoite gr = calquePanel_.getVueCalque().getViewBoite(); Rectangle rec = convertLocalToScene(getClientArea()); Point p = new Point(rec.x, rec.y); JComponent jc = getEbliScene().getView(); @@ -105,6 +76,7 @@ frame_ = editor_.createFrame(calquePanel_); frame_.setLocation(p); frame_.pack(); + // calquePanel_.getVueCalque().changeRepere(this, gr); frame_.setVisible(true); frame_.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); frame_.addWindowListener(new WindowAdapter() { @@ -116,9 +88,50 @@ frame_ = null; } + @Override + public void windowClosing(WindowEvent _e) { + zoom_ = calquePanel_.getVueCalque().getViewBoite(); + // image = null; + // getEbliScene().refresh(); + } + }); } // TODO Auto-generated method stub } + + private void initSize(Rectangle rec) { + BCalque[] tousCalques = calquePanel_.getVueCalque().getCalque().getTousCalques(); + calquePanel_.getVueCalque().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); + } + } + + @Override + protected void paintWidget() { + + Rectangle rec = getClientArea(); + Graphics2D g = getGraphics(); + if (frame_ == null) { + initSize(rec); + } + if (zoom_ != null) { +// image=null; + calquePanel_.getVueCalque().changeRepere(this, zoom_); + + } else + calquePanel_.restaurer(); + // mode edition + if (image == null || image.getWidth() != rec.width || image.getHeight() != rec.height) { + Map params = new HashMap(); + CtuluLibImage.setCompatibleImageAsked(params); + // a ameliorer: il ne faudrait pas recreer l'image a chaque fois + image = calquePanel_.produceImage(rec.width, rec.height, params); + } + g.drawImage(image, rec.x, rec.y, rec.width, rec.height, null); + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |