From: <de...@us...> - 2012-03-06 16:23:28
|
Revision: 6965 http://fudaa.svn.sourceforge.net/fudaa/?rev=6965&view=rev Author: deniger Date: 2012-03-06 16:23:16 +0000 (Tue, 06 Mar 2012) Log Message: ----------- Modified Paths: -------------- trunk/framework/ebli-common/src/main/java/org/fudaa/ebli/impression/EbliPageFormat.java trunk/framework/ebli-visuallibrary/src/main/java/org/fudaa/ebli/visuallibrary/EbliScene.java trunk/framework/ebli-visuallibrary/src/main/java/org/fudaa/ebli/visuallibrary/EbliWidgetShape.java Added Paths: ----------- trunk/framework/ebli-visuallibrary/src/main/java/org/fudaa/ebli/visuallibrary/EbliPrintOverviewLayer.java Modified: trunk/framework/ebli-common/src/main/java/org/fudaa/ebli/impression/EbliPageFormat.java =================================================================== --- trunk/framework/ebli-common/src/main/java/org/fudaa/ebli/impression/EbliPageFormat.java 2012-03-06 15:23:16 UTC (rev 6964) +++ trunk/framework/ebli-common/src/main/java/org/fudaa/ebli/impression/EbliPageFormat.java 2012-03-06 16:23:16 UTC (rev 6965) @@ -1,9 +1,13 @@ /* - * @creation 2001-09-27 + * @creation 2001-09-27 + * * @modification $Date: 2006-09-19 14:55:54 $ - * @license GNU General Public License 2 - * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne - * @mail de...@fu... + * + * @license GNU General Public License 2 + * + * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne + * + * @mail de...@fu... */ package org.fudaa.ebli.impression; @@ -26,8 +30,10 @@ import com.memoire.bu.BuInformationsSoftware; import org.fudaa.ebli.ressource.EbliResource; + /** * Une extension du <code>PageFormat</code> qui gere les entetes et pieds de pages. + * * @version $Id: EbliPageFormat.java,v 1.14 2006-09-19 14:55:54 deniger Exp $ * @author Fred Deniger */ @@ -38,32 +44,26 @@ */ private static final Font FONTBASE = new Font("SansSerif", Font.PLAIN, 10); - private static String getNth(){ + private static String getNth() { return "nothing"; } + /** - * Les differents types d'entetes. La premiere colonne correspond aux cles des entetes et la - * deuxieme aux valeurs affichees. + * Les differents types d'entetes. La premiere colonne correspond aux cles des entetes et la deuxieme aux valeurs + * affichees. */ - static final String[][] TYPE_ENTETE = new String[][] { - { getNth(), EbliResource.EBLI.getString("aucun")}, - { "page", EbliResource.EBLI.getString("page")}, - { "date", EbliResource.EBLI.getString("date")}, - { "title", EbliResource.EBLI.getString("titre du document")}, - { "author", EbliResource.EBLI.getString("auteur")}, - { "organization", EbliResource.EBLI.getString("organisation")}, - { "department", EbliResource.EBLI.getString("departement")}, - { "contact", EbliResource.EBLI.getString("email")}, - { "application", EbliResource.EBLI.getString("application")}, - { "location", EbliResource.EBLI.getString("localisation du fichier")}, - { "comment", EbliResource.EBLI.getString("commentaires")}}; + static final String[][] TYPE_ENTETE = new String[][] { { getNth(), EbliResource.EBLI.getString("aucun") }, + { "page", EbliResource.EBLI.getString("page") }, { "date", EbliResource.EBLI.getString("date") }, + { "title", EbliResource.EBLI.getString("titre du document") }, { "author", EbliResource.EBLI.getString("auteur") }, + { "organization", EbliResource.EBLI.getString("organisation") }, { "department", EbliResource.EBLI.getString("departement") }, + { "contact", EbliResource.EBLI.getString("email") }, { "application", EbliResource.EBLI.getString("application") }, + { "location", EbliResource.EBLI.getString("localisation du fichier") }, { "comment", EbliResource.EBLI.getString("commentaires") } }; /** * le format de page utilise. */ private PageFormat pageFormat_; /** - * Correspond au type d'entete utilise (la ligne du tableau <code>TYPE_ENTETE</code>. utilise - * en interne uniquement. + * Correspond au type d'entete utilise (la ligne du tableau <code>TYPE_ENTETE</code>. utilise en interne uniquement. */ private int enteteGauche_; private int enteteMilieu_; @@ -81,16 +81,15 @@ private boolean piedVisible_; /** - * appelle le constructeur <code>EbliPageFormat(PageFormat)</code> avec comme parametre - * <code>null</code>. + * appelle le constructeur <code>EbliPageFormat(PageFormat)</code> avec comme parametre <code>null</code>. */ public EbliPageFormat() { this(null); } /** - * Initialise le format avec <code>_format</code> si non null ( un format A4 par defaut est - * choisi sinon ). L'entete et le pied sont par defaut vide et invisible. + * Initialise le format avec <code>_format</code> si non null ( un format A4 par defaut est choisi sinon ). L'entete + * et le pied sont par defaut vide et invisible. */ public EbliPageFormat(final PageFormat _format) { if (_format == null) { @@ -112,25 +111,29 @@ /** * Construit un format de page correspondant a une feuille A4 Portrait avec des marges de 1cm. */ - public static final PageFormat construireFormatA4Portrait(){ - PrintRequestAttributeSet set=new HashPrintRequestAttributeSet(MediaSizeName.ISO_A4); + public static final PageFormat construireFormatA4Portrait() { + MediaSizeName isoA4 = MediaSizeName.ISO_A4; + return getPageFormat(isoA4,true); + } + + public static PageFormat getPageFormat(MediaSizeName isoA4, boolean withMarge) { + PrintRequestAttributeSet set = new HashPrintRequestAttributeSet(isoA4); PageFormat validatePage = PrinterJob.getPrinterJob().validatePage(PrinterJob.getPrinterJob().getPageFormat(set)); - double marge=cmVersPixel(1.5); + double marge = withMarge ? cmVersPixel(1.5) : 0; Paper paper = validatePage.getPaper(); - double x=paper.getImageableX()+marge; - double y=paper.getImageableY()+marge; - double w=validatePage.getImageableWidth()-2*marge; - double h=validatePage.getImageableHeight()-2*marge; + double x = paper.getImageableX() + marge; + double y = paper.getImageableY() + marge; + double w = validatePage.getImageableWidth() - 2 * marge; + double h = validatePage.getImageableHeight() - 2 * marge; paper.setImageableArea(x, y, w, h); validatePage.setPaper(paper); return validatePage; } /** - * renvoie l'index de <code>TYPE_ELEMENT</code> correspondant a la cle <code>_cle</code>( - * premiere colonne ). + * renvoie l'index de <code>TYPE_ELEMENT</code> correspondant a la cle <code>_cle</code>( premiere colonne ). */ - private static int getIndexDepuisCle(final String _cle){ + private static int getIndexDepuisCle(final String _cle) { if (_cle == null) { return 0; } @@ -143,10 +146,9 @@ } /** - * renvoie l'index de <code>TYPE_ELEMENT</code> correspondant a la valeur <code>_valeur</code>( - * deuxieme colonne ). + * renvoie l'index de <code>TYPE_ELEMENT</code> correspondant a la valeur <code>_valeur</code>( deuxieme colonne ). */ - private static int getIndexDepuisValeur(final String _valeur){ + private static int getIndexDepuisValeur(final String _valeur) { if (_valeur == null) { return 0; } @@ -159,10 +161,9 @@ } /** - * renvoie la cle de <code>TYPE_ELEMENT</code> correspondant a l'index <code>_index</code>( - * premiere colonne ). + * renvoie la cle de <code>TYPE_ELEMENT</code> correspondant a l'index <code>_index</code>( premiere colonne ). */ - private static String getCleDepuisIndex(final int _index){ + private static String getCleDepuisIndex(final int _index) { if ((_index > -1) && (_index < TYPE_ENTETE.length)) { return TYPE_ENTETE[_index][0]; } @@ -170,10 +171,9 @@ } /** - * renvoie la valeur de <code>TYPE_ELEMENT</code> correspondant a l'index <code>_index</code>( - * deuxieme colonne ). + * renvoie la valeur de <code>TYPE_ELEMENT</code> correspondant a l'index <code>_index</code>( deuxieme colonne ). */ - private static String getValeurDepuisIndex(final int _index){ + private static String getValeurDepuisIndex(final int _index) { if ((_index > -1) && (_index < TYPE_ENTETE.length)) { return TYPE_ENTETE[_index][1]; } @@ -181,57 +181,56 @@ } /** - * retourne <code>true</code>, si la cle correspondant a l'index <code>_test</code> est - * <code>"nothing"</code>. + * retourne <code>true</code>, si la cle correspondant a l'index <code>_test</code> est <code>"nothing"</code>. */ - private static boolean isVide(final int _test){ + private static boolean isVide(final int _test) { return getNth().equals(getCleDepuisIndex(_test)); } /** - * retourne <code>true</code>, si les cles correspondant aux index passes en parametres sont - * toutes egales a <code>"nothing"</code>. + * retourne <code>true</code>, si les cles correspondant aux index passes en parametres sont toutes egales a + * <code>"nothing"</code>. */ - private static boolean isVide(final int _gauche,final int _milieu,final int _droit){ + private static boolean isVide(final int _gauche, final int _milieu, final int _droit) { return (isVide(_gauche) && isVide(_milieu) && isVide(_droit)); } /** * En fonction de <code>_g</code>, renvoie la hauteur de la Font <code>FONTBASE</code>. */ - private static int getHauteurFONTBASE(final Graphics _g){ + private static int getHauteurFONTBASE(final Graphics _g) { _g.setFont(FONTBASE); final FontMetrics metric = _g.getFontMetrics(); return metric.getMaxAscent() + metric.getMaxDescent() + metric.getLeading(); } /** - * Renvoie <code>true</code>, si les rectangles de dimensions (<code>_hBase</code>, - * <code>_wBase</code>) et (<code>_hComp</code>,<code>_wComp</code>) sont equivalents. + * Renvoie <code>true</code>, si les rectangles de dimensions (<code>_hBase</code>, <code>_wBase</code>) et ( + * <code>_hComp</code>,<code>_wComp</code>) sont equivalents. */ - private static boolean isRectanglesEquivalents(final int _hBase,final int _wBase,final int _hComp,final int _wComp){ + private static boolean isRectanglesEquivalents(final int _hBase, final int _wBase, final int _hComp, final int _wComp) { return (((_hBase == _hComp) && (_wBase == _wComp)) || ((_hBase == _wComp) && (_wBase == _hComp))); } /** - * Renvoie la cle du type d'entete correpondante a la valeur <code>_valeur</code>. La cle - * d'entete est utilise en interne pour l'identification et la valeur est l'equivalent affiche. + * Renvoie la cle du type d'entete correpondante a la valeur <code>_valeur</code>. La cle d'entete est utilise en + * interne pour l'identification et la valeur est l'equivalent affiche. */ - public static String getCleTypeEnteteDepuisValeur(final String _valeur){ + public static String getCleTypeEnteteDepuisValeur(final String _valeur) { return getCleDepuisIndex(getIndexDepuisValeur(_valeur)); } /** * Renvoie la valeur du type d'entete correpondante a la cle <code>_cle</code>. */ - public static String getValeurTypeEnteteDepuisCle(final String _cle){ + public static String getValeurTypeEnteteDepuisCle(final String _cle) { return getValeurDepuisIndex(getIndexDepuisCle(_cle)); } /** * Les differents types d'entetes possibles. */ - public static String[] getValeursTypeEntete(){ + public static String[] getValeursTypeEntete() { final int taille = TYPE_ENTETE.length; final String[] r = new String[taille]; for (int i = 0; i < taille; i++) { @@ -241,15 +240,15 @@ } /** - * A partir des informations donnees par <code>_pageable</code> et <code>_pageImprimee</code>, - * renvoie la chaine correspondante a la cle <code>_cle</code> du tableau - * <code>TYPE_ENTETE</code>. + * A partir des informations donnees par <code>_pageable</code> et <code>_pageImprimee</code>, renvoie la chaine + * correspondante a la cle <code>_cle</code> du tableau <code>TYPE_ENTETE</code>. + * * @param _cle cle du tableau <code>TYPE_ENTETE</code>. * @param _pageable contient les informations du document. * @param _pageImprimee le numero de la page a imprimer. * @see #TYPE_ENTETE */ - public static String getEquivalent(final String _cle,final EbliPageable _pageable,final int _pageImprimee){ + public static String getEquivalent(final String _cle, final EbliPageable _pageable, final int _pageImprimee) { if (getNth().equals(_cle)) { return ""; } @@ -257,8 +256,7 @@ return ""; } if ("page".equals(_cle)) { - return EbliResource.EBLI.getString("page ") + (_pageImprimee + 1) + "/" - + _pageable.getNumberOfPages(); + return EbliResource.EBLI.getString("page ") + (_pageImprimee + 1) + "/" + _pageable.getNumberOfPages(); } String r = ""; BuInformationsDocument id = _pageable.getInformationsDocument(); @@ -301,21 +299,21 @@ /** * Transforme des centimetres en pixels: un pixel represente 1/72 de inch et un inch=2,54 cm. */ - public static double cmVersPixel(final double _cm){ + public static double cmVersPixel(final double _cm) { return (72D * _cm / 2.54); } /** * pixels en cm. */ - public static double pixelVersCm(final double _pix){ + public static double pixelVersCm(final double _pix) { return (2.54 * _pix / 72D); } /** * Renvoie l'intitule correspondant au format <code>_type</code>. */ - public static String getPageFormatType(final PageFormat _type){ + public static String getPageFormatType(final PageFormat _type) { //h et w en mm final int h = (int) Math.round(pixelVersCm(_type.getHeight()) * 10); final int w = (int) Math.round(pixelVersCm(_type.getWidth()) * 10); @@ -336,7 +334,7 @@ /** * Dessine si necessaire l'entete et le pied de page en fonction des parametres. */ - public static void dessinePage(final Graphics _g,final EbliPageable _target,final int _page){ + public static void dessinePage(final Graphics _g, final EbliPageable _target, final int _page) { final Graphics2D g2d = (Graphics2D) _g; //si l'entete et le pied de page sont vides ou invisibles: arret final EbliPageFormat ebliPage = _target.getDefaultEbliPageFormat(); @@ -364,7 +362,7 @@ final String[] entete = ebliPage.getEnteteEquivalent(_target, _page); //recupere les coordonnees du point en haut a gauche. final double x = format.getImageableX(); - final double y = format.getImageableY(); + final double y = format.getImageableY(); // la hauteur de l'entete avec 2 de plus par securite. final int hauteurEntete = ebliPage.getHauteurEntete(g2d) + 2; //On se place au coin haut gauche. @@ -395,10 +393,9 @@ } /** - * Permet de dessiner les trois chaines <code>_chaines</code> - * dans la largeur precisee. + * Permet de dessiner les trois chaines <code>_chaines</code> dans la largeur precisee. */ - private static void dessineChaine(final Graphics _g2d,final String[] _chaines,final int _largeur){ + private static void dessineChaine(final Graphics _g2d, final String[] _chaines, final int _largeur) { final FontMetrics metric = _g2d.getFontMetrics(); int styloX = 0; final int styloY = metric.getMaxAscent(); @@ -423,14 +420,14 @@ /** * renvoie la hauteur en pixel necessaire a l'affichage de l'entete. */ - private int getHauteurEntete(final Graphics _g){ + private int getHauteurEntete(final Graphics _g) { if ((isEnteteVide()) || (!isEnteteVisible())) { return 0; } return getHauteurFONTBASE(_g); } - private int getHauteurPied(final Graphics _g){ + private int getHauteurPied(final Graphics _g) { if ((isPiedVide()) || (!isPiedVisible())) { return 0; } @@ -440,25 +437,25 @@ /** * Renvoie <code>true</code> si les 3 parties de l'entetes correspondent a "nothing". */ - private boolean isEnteteVide(){ + private boolean isEnteteVide() { return isVide(enteteGauche_, enteteMilieu_, enteteDroit_); } - private boolean isPiedVide(){ + private boolean isPiedVide() { return isVide(piedGauche_, piedMilieu_, piedDroit_); } /** * Renvoie le format de page utilise. */ - public PageFormat getPageFormat(){ + public PageFormat getPageFormat() { return pageFormat_; } /** * Modifie le format de page utilise apres validation. */ - public void setPageFormat(final PageFormat _format){ + public void setPageFormat(final PageFormat _format) { if (_format == null) { return; } @@ -466,10 +463,10 @@ } /** - * Renvoie le format en prenant en compte de la taille de l'entete et du pied de page. Les marges - * "haut" et "bas" sont augmentees en fonction de la taille de l'entete et du pied de page. + * Renvoie le format en prenant en compte de la taille de l'entete et du pied de page. Les marges "haut" et "bas" sont + * augmentees en fonction de la taille de l'entete et du pied de page. */ - public PageFormat getDocumentPageFormat(final Graphics _g){ + public PageFormat getDocumentPageFormat(final Graphics _g) { final PageFormat r = (PageFormat) pageFormat_.clone(); final int he = getHauteurEntete(_g); final int hp = getHauteurPied(_g); @@ -490,90 +487,90 @@ /** * Renvoie <code>true</code>, si l'entete est visible. */ - public boolean isEnteteVisible(){ + public boolean isEnteteVisible() { return enteteVisible_; } - public boolean isPiedVisible(){ + public boolean isPiedVisible() { return piedVisible_; } /** * Modifie la visibilite de l'entete. */ - public void setEnteteVisible(final boolean _new){ + public void setEnteteVisible(final boolean _new) { enteteVisible_ = _new; } - public void setPiedVisible(final boolean _new){ + public void setPiedVisible(final boolean _new) { piedVisible_ = _new; } /** * Renvoie la cle correspondante a la partie gauche de l'entete. */ - public String getEnteteGauche(){ + public String getEnteteGauche() { return getCleDepuisIndex(enteteGauche_); } - public String getEnteteMilieu(){ + public String getEnteteMilieu() { return getCleDepuisIndex(enteteMilieu_); } - public String getEnteteDroit(){ + public String getEnteteDroit() { return getCleDepuisIndex(enteteDroit_); } - public String getPiedGauche(){ + public String getPiedGauche() { return getCleDepuisIndex(piedGauche_); } - public String getPiedMilieu(){ + public String getPiedMilieu() { return getCleDepuisIndex(piedMilieu_); } - public String getPiedDroit(){ + public String getPiedDroit() { return getCleDepuisIndex(piedDroit_); } /** - * modifie la cle correspondante a la partie gauche de l'entete. Si <code>_new</code> ne - * correspond pas a une entete, la cle "nothing" est utilisee. + * modifie la cle correspondante a la partie gauche de l'entete. Si <code>_new</code> ne correspond pas a une entete, + * la cle "nothing" est utilisee. */ - public void setEnteteGauche(final String _new){ + public void setEnteteGauche(final String _new) { enteteGauche_ = getIndexDepuisCle(_new); } - public void setEnteteMilieu(final String _new){ + public void setEnteteMilieu(final String _new) { enteteMilieu_ = getIndexDepuisCle(_new); } - public void setEnteteDroit(final String _new){ + public void setEnteteDroit(final String _new) { enteteDroit_ = getIndexDepuisCle(_new); } - public void setPiedGauche(final String _new){ + public void setPiedGauche(final String _new) { piedGauche_ = getIndexDepuisCle(_new); } - public void setPiedMilieu(final String _new){ + public void setPiedMilieu(final String _new) { piedMilieu_ = getIndexDepuisCle(_new); } - public void setPiedDroit(final String _new){ + public void setPiedDroit(final String _new) { piedDroit_ = getIndexDepuisCle(_new); } /** * Modifie les trois parties de l'entete en meme temps. */ - public void setEntete(final String _gauche,final String _milieu,final String _droit){ + public void setEntete(final String _gauche, final String _milieu, final String _droit) { setEnteteGauche(_gauche); setEnteteMilieu(_milieu); setEnteteDroit(_droit); } - public void setPied(final String _gauche,final String _milieu,final String _droit){ + public void setPied(final String _gauche, final String _milieu, final String _droit) { setPiedGauche(_gauche); setPiedMilieu(_milieu); setPiedDroit(_droit); @@ -581,9 +578,10 @@ /** * Renvoie les trois partie de l'entete. + * * @return un tableau a 3 lignes. */ - public String[] getEntete(){ + public String[] getEntete() { final String[] r = new String[3]; r[0] = getEnteteGauche(); r[1] = getEnteteMilieu(); @@ -591,7 +589,7 @@ return r; } - public String[] getPied(){ + public String[] getPied() { final String[] r = new String[3]; r[0] = getPiedGauche(); r[1] = getPiedMilieu(); @@ -600,10 +598,9 @@ } /** - * renvoie les valeurs reelles des 3 parties de l'entete en fonctin de <code>_page</code> et de - * <code>_numPage</code>. + * renvoie les valeurs reelles des 3 parties de l'entete en fonctin de <code>_page</code> et de <code>_numPage</code>. */ - public String[] getEnteteEquivalent(final EbliPageable _page,final int _numPage){ + public String[] getEnteteEquivalent(final EbliPageable _page, final int _numPage) { final String[] r = new String[3]; r[0] = getEquivalent(getEnteteGauche(), _page, _numPage); r[1] = getEquivalent(getEnteteMilieu(), _page, _numPage); @@ -611,7 +608,7 @@ return r; } - public String[] getPiedEquivalent(final EbliPageable _page,final int _numPage){ + public String[] getPiedEquivalent(final EbliPageable _page, final int _numPage) { final String[] r = new String[3]; r[0] = getEquivalent(getPiedGauche(), _page, _numPage); r[1] = getEquivalent(getPiedMilieu(), _page, _numPage); Added: trunk/framework/ebli-visuallibrary/src/main/java/org/fudaa/ebli/visuallibrary/EbliPrintOverviewLayer.java =================================================================== --- trunk/framework/ebli-visuallibrary/src/main/java/org/fudaa/ebli/visuallibrary/EbliPrintOverviewLayer.java (rev 0) +++ trunk/framework/ebli-visuallibrary/src/main/java/org/fudaa/ebli/visuallibrary/EbliPrintOverviewLayer.java 2012-03-06 16:23:16 UTC (rev 6965) @@ -0,0 +1,40 @@ +package org.fudaa.ebli.visuallibrary; + +import java.awt.Color; +import java.awt.Graphics2D; +import java.awt.print.PageFormat; + +import javax.print.attribute.standard.MediaSizeName; + +import org.fudaa.ebli.impression.EbliPageFormat; +import org.fudaa.ebli.trace.TraceLigne; +import org.netbeans.api.visual.widget.LayerWidget; +import org.netbeans.api.visual.widget.Scene; + +public final class EbliPrintOverviewLayer extends LayerWidget { + + private TraceLigne traceLigne; + + EbliPrintOverviewLayer(Scene scene) { + super(scene); + traceLigne = new TraceLigne(); + traceLigne.setEpaisseur(2f); + traceLigne.setCouleur(Color.RED); + setVisible(false); + } + + protected void paintWidget() { + if(!isVisible()){ + return; + } + final Graphics2D g = getGraphics(); + + PageFormat pg = EbliPageFormat.getPageFormat(MediaSizeName.ISO_A4,false); + int h = (int) pg.getImageableHeight(); + int w = (int) pg.getImageableWidth(); + traceLigne.dessineRectangle(g, 0, 0, w, h); + traceLigne.dessineTrait(g, 0, 0, w, h); + traceLigne.dessineTrait(g, w, 0, 0, h); + + } +} \ No newline at end of file Modified: trunk/framework/ebli-visuallibrary/src/main/java/org/fudaa/ebli/visuallibrary/EbliScene.java =================================================================== --- trunk/framework/ebli-visuallibrary/src/main/java/org/fudaa/ebli/visuallibrary/EbliScene.java 2012-03-06 15:23:16 UTC (rev 6964) +++ trunk/framework/ebli-visuallibrary/src/main/java/org/fudaa/ebli/visuallibrary/EbliScene.java 2012-03-06 16:23:16 UTC (rev 6965) @@ -44,8 +44,7 @@ * * @author Adrien Hadoux */ -public class EbliScene extends GraphScene<EbliNode, EbliEdge> implements CtuluImageProducer, - EbliWidgetInterface<EbliSceneController> { +public class EbliScene extends GraphScene<EbliNode, EbliEdge> implements CtuluImageProducer, EbliWidgetInterface<EbliSceneController> { int idx_ = 0; @@ -64,8 +63,8 @@ public final void setCtuluUi(final CtuluUI _ctuluUi) { ctuluUi_ = _ctuluUi; } - - private static class DelegateMouseListener implements MouseListener{ + + private static class DelegateMouseListener implements MouseListener { private final MouseListener delegate; /** @@ -116,17 +115,16 @@ } } - - + @Override public JComponent createView() { - JComponent res=super.createView(); + JComponent res = super.createView(); //to avoid add bugs with visual library: scrolling while the user exits the mouse from the scene MouseListener mouseListener = (MouseListener) res; res.removeMouseListener(mouseListener); res.addMouseListener(new DelegateMouseListener(mouseListener)); return res; - + } public void clearSelection() { @@ -135,7 +133,9 @@ public final Set<EbliNode> getSelectedNodes() { final Set init = getSelectedObjects(); - if (init == null) { return null; } + if (init == null) { + return null; + } final Set<EbliNode> res = new HashSet<EbliNode>(init.size()); for (final Iterator it = init.iterator(); it.hasNext();) { res.add((EbliNode) it.next()); @@ -155,11 +155,12 @@ } protected void stopEditing(final Widget w) { - if (w == null) { return; } + if (w == null) { + return; + } final Chain actions = w.getActions(); for (final WidgetAction widgetAction : actions.getActions()) { - if (widgetAction instanceof InplaceEditorProvider.EditorController - && ((InplaceEditorProvider.EditorController) widgetAction).isEditorVisible()) { + if (widgetAction instanceof InplaceEditorProvider.EditorController && ((InplaceEditorProvider.EditorController) widgetAction).isEditorVisible()) { ((InplaceEditorProvider.EditorController) widgetAction).closeEditor(true); } } @@ -177,7 +178,9 @@ final Set obj = getObjects(); for (final Iterator it = obj.iterator(); it.hasNext();) { final EbliWidget w = (EbliWidget) findWidget(it.next()); - if (w.getIntern().getId().equals(_id)) { return w; } + if (w.getIntern().getId().equals(_id)) { + return w; + } } return null; @@ -187,7 +190,9 @@ final Set obj = getObjects(); for (final Iterator it = obj.iterator(); it.hasNext();) { final EbliNode w = (EbliNode) it.next(); - if (w.getWidget() != null && w.getWidget().getIntern().getId().equals(_id)) { return w; } + if (w.getWidget() != null && w.getWidget().getIntern().getId().equals(_id)) { + return w; + } } return null; } @@ -237,8 +242,7 @@ } - public void firePropertyChange(final Object _nodeOrEdge, final String propertyName, final Object oldValue, - final Object newValue) { + public void firePropertyChange(final Object _nodeOrEdge, final String propertyName, final Object oldValue, final Object newValue) { PropertyChangeEvent event = new PropertyChangeEvent(this, propertyName, oldValue, newValue); event.setPropagationId(_nodeOrEdge); propertyChangeSupport_.firePropertyChange(event); @@ -275,6 +279,12 @@ private final LayerWidget interactionLayer_; + private final LayerWidget printOverviewLayer; + + public LayerWidget getPrintOverviewLayer() { + return printOverviewLayer; + } + /** * la visu du graphscene */ @@ -283,13 +293,14 @@ /** * la liste des listener associes a la scene */ - // Collection<EbliNodeListener> listenerList; public EbliScene() { super(); setLookFeel(new EbliLookFeel()); // creation du layer de mise en page interactionLayer_ = new LayerWidget(this); + printOverviewLayer = new EbliPrintOverviewLayer(this); addChild(interactionLayer_); + addChild(printOverviewLayer); visu_ = new LayerWidget(this); addChild(visu_); @@ -318,6 +329,12 @@ public void produceImage(Graphics2D g, final int _w, final int _h, final Map _params) { isProducingImage = true; + boolean printOverviewVisible = printOverviewLayer.isVisible(); + if (printOverviewVisible) { + printOverviewLayer.setVisible(false); + refreshScene(this); + } + repaint(); final Dimension d = getDefaultImageDimension(); CtuluLibImage.setBestQuality(g); AffineTransform old = g.getTransform(); @@ -346,11 +363,18 @@ isProducingImage = false; setSelectedObjects(selectedObjects); g.setTransform(old); + printOverviewLayer.setVisible(printOverviewVisible); + refreshScene(this); } public BufferedImage produceImage(final int _w, final int _h, final Map _params) { isProducingImage = true; + boolean printOverviewVisible = printOverviewLayer.isVisible(); + if (printOverviewVisible) { + printOverviewLayer.setVisible(false); + refreshScene(this); + } final Dimension d = getDefaultImageDimension(); final BufferedImage i = CtuluLibImage.createImage(_w, _h, _params); final Graphics2D g = i.createGraphics(); @@ -381,6 +405,8 @@ setSelectedObjects(selectedObjects); g.dispose(); i.flush(); + printOverviewLayer.setVisible(printOverviewVisible); + refreshScene(this); return i; } @@ -414,7 +440,9 @@ // -- on ne cree la widget que si necessaire node.getCreator().create(this); widget = node.getWidget(); - if (widget == null) { return null; } + if (widget == null) { + return null; + } if (node.getCreator().getInitPreferredLocation() != null) { widget.setPreferredLocation(node.getCreator().getInitPreferredLocation()); } @@ -425,7 +453,9 @@ widget = node.getCreator().getWidget(); } - if (widget == null) { return null; } + if (widget == null) { + return null; + } widget.getController().setNode(node); node.getCreator().widgetAttached(); // -- ajout dans la vue layer --// @@ -512,7 +542,9 @@ */ public void resizeInnerWidget(final Dimension newSize, final Dimension oldSize) { // this.getVisu().setPreferredSize(newSize); - if (getNodes().size() == 0) { return; } + if (getNodes().size() == 0) { + return; + } for (final Iterator<EbliNode> it2 = getNodes().iterator(); it2.hasNext();) { final EbliNode currentNode = it2.next(); @@ -538,20 +570,20 @@ public void moveWidgetTo(final EbliWidget widget, final int position) { - // -- ne marche pas.......................... --// + // -- ne marche pas.......................... --// - // - // if (widget.getParentWidget() == null) - // return; - // List<Widget> children = getChildren(); - // int i = children.indexOf (widget); - // if (i < 0) - // return; - // children.remove (i); - // children.add (position, widget); - // widget.revalidate (); - // widget.getParentWidget().revalidate (); - // refresh(); + // + // if (widget.getParentWidget() == null) + // return; + // List<Widget> children = getChildren(); + // int i = children.indexOf (widget); + // if (i < 0) + // return; + // children.remove (i); + // children.add (position, widget); + // widget.revalidate (); + // widget.getParentWidget().revalidate (); + // refresh(); } @@ -626,7 +658,9 @@ final List<Widget> children = layer.getChildren(); final int i = children.indexOf(parent); - if (i < 0 || i == children.size() - 1) { return; } + if (i < 0 || i == children.size() - 1) { + return; + } layer.removeChild(parent); layer.addChild(i + 1, parent); widget.revalidate(); @@ -667,7 +701,9 @@ final List<Widget> children = layer.getChildren(); final int i = children.indexOf(parent); - if (i <= 0) { return; } + if (i <= 0) { + return; + } layer.removeChild(parent); layer.addChild(i - 1, parent); widget.revalidate(); Modified: trunk/framework/ebli-visuallibrary/src/main/java/org/fudaa/ebli/visuallibrary/EbliWidgetShape.java =================================================================== --- trunk/framework/ebli-visuallibrary/src/main/java/org/fudaa/ebli/visuallibrary/EbliWidgetShape.java 2012-03-06 15:23:16 UTC (rev 6964) +++ trunk/framework/ebli-visuallibrary/src/main/java/org/fudaa/ebli/visuallibrary/EbliWidgetShape.java 2012-03-06 16:23:16 UTC (rev 6965) @@ -27,35 +27,11 @@ // double rotation_; - public ShapeCreator getShaper_() { + public ShapeCreator getShaper() { return shaper_; } - // public TraceLigneModel tl_ = new TraceLigneModel(TraceLigne.LISSE, 5, - // couleurContour);//pour l'exempls - /** - * @return the rotation_ - */ - // public double getRotation() { - // return rotation_; - // } - // - // /** - // * @param rotation_ the rotation_ to set - // */ - // public void setRotation(double rotation_) { - // this.rotation_ = rotation_; - // // Dimension dim = getPreferredSize(); - // // if (dim != null) { - // // Shape rec = new Rectangle(0, 0, dim.width, dim.height); - // // AffineTransform tr = AffineTransform.getRotateInstance(dim.width / 2, - // dim.height / 2, rotation_); - // // Rectangle bounds2 = tr.createTransformedShape(rec).getBounds(); - // // dim.height = bounds2.height; - // // dim.width = bounds2.width; - // // setPreferredSize(dim); - // // } - // } + public EbliWidgetShape(final EbliScene scene, final ShapeCreator _shaper, final Map _options) { super(scene, true); super.setCheckClipping(true); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |