From: <had...@us...> - 2008-08-27 16:53:45
|
Revision: 3846 http://fudaa.svn.sourceforge.net/fudaa/?rev=3846&view=rev Author: hadouxad Date: 2008-08-27 16:53:48 +0000 (Wed, 27 Aug 2008) Log Message: ----------- reecriture de code - Methode duplicate dans le widgetCreator, prend en param un node - Creation d un EbliWidgetController qui gere les actions et les menus de la widget. Est surcharge pour les calques et graphe car il n utilise pas les memes actions - remplacement dans trpostVisu de l indice par la source courante utilisee pour le multi-source - Creation d une bordure par defaut pour toutes les widgets EbliWidgetBordure widget qui contient une ebliWidget au choix. - prise en compte des actions masquer/supprimer / dupliquer - Creation de controller speciaux: un qui ne gere que les actions -> utilis?\195?\169 par la bordure. un qui ne gere que les bordures -> utilis?\195?\169 par les widget contenus dans la bordure. - la bordure est modifiable en selectionnant la widget et en cliquant sur l icone "configuration" - prise en compte de la bordure pour: - les calques - les graphes - le textLabel - l imageWidget - gestion du undo/redo pour le masquage (g?\195?\169r?\195?\169 pour les 2 cas: depuis le tree et menu widget) - gestion du undo/redo pour la suppression des widgets - Creation des Legende des calques tout en widget !!! - Affichage des legende - Affichage des couleurs - Affichage aussi des tooltips!! - gestion de toutes les fonctionnalit?\195?\169s pour toutes les legendes ( calque et graphe) - creation depuis le calque/graphe - impossible d en cree plus d'une a la fois - action undo redo pour la suppression/masquage - duplication impossible pour ces elements - LES bordures sont aussi g?\195?\169r?\195?\169es ! Modified Paths: -------------- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/calque/BCalqueLegende.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/calque/BCalqueLegendePanel.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/palette/BPalettePlageLegende.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliNodeDefault.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliScene.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidget.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetCreator.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetCreatorDblFleche.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetCreatorFleche.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetCreatorImage.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetCreatorShape.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetCreatorTextEditor.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetDBLFleche.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetFleche.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetImage.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetLine.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetShape.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetTextEditor.java 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/EbliWidgetCreatorVueCalque.java 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/graphe/EbliWidgetCreatorGraphe.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/graphe/EbliWidgetCreatorLegende.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/graphe/EbliWidgetGraphe.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/graphe/WidgetLegendeManager.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/graphe/WidgetLegendeManagerOLD.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/tree/EbliWidgetTreeTableNode.java branches/Prepro-0.92-SNAPSHOT/ebli/test/org/fudaa/ebli/all/TestGraphe2.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/TrPostImplementation.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostActionChooseAndCreateCalque.java 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 branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostVisuPanel.java Added Paths: ----------- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetBordure.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetController.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetControllerActionOnly.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetControllerMenuOnly.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetCreatorTextLabel.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetTextLabel.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/CommandMasquer.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/CommandSupprimer.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetControllerCalque.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetCreatorLegende.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetPlageTitle.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/graphe/EbliWidgetControllerGraphe.java Removed Paths: ------------- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetCreatorRectangleTexte.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetRectangle.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetCreatorCalqueLegende.java Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/calque/BCalqueLegende.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/calque/BCalqueLegende.java 2008-08-27 07:19:28 UTC (rev 3845) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/calque/BCalqueLegende.java 2008-08-27 16:53:48 UTC (rev 3846) @@ -26,11 +26,7 @@ import javax.swing.JPanel; import javax.swing.SwingConstants; -import com.memoire.bu.BuGridLayout; -import com.memoire.bu.BuPanel; - import org.fudaa.ctulu.gui.CtuluHorizontalLayout; - import org.fudaa.ebli.commun.EbliLib; import org.fudaa.ebli.commun.EbliPreferences; import org.fudaa.ebli.commun.EbliUIProperties; @@ -38,6 +34,9 @@ import org.fudaa.ebli.controle.BSelecteurTargetInterface; import org.fudaa.ebli.palette.BPaletteCouleurSimple; +import com.memoire.bu.BuGridLayout; +import com.memoire.bu.BuPanel; + /** * Un calque d'affichage de legendes. * @@ -55,7 +54,7 @@ } private int ancre_; - private Map cqAffPanels_; + protected Map cqAffPanels_; /** * Bloque le rafraichissement en modification d'attribut. */ @@ -659,5 +658,8 @@ default_.setBorderColor(_c); repaint(); } + + + } \ No newline at end of file Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/calque/BCalqueLegendePanel.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/calque/BCalqueLegendePanel.java 2008-08-27 07:19:28 UTC (rev 3845) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/calque/BCalqueLegendePanel.java 2008-08-27 16:53:48 UTC (rev 3846) @@ -16,12 +16,12 @@ import javax.swing.JLabel; import javax.swing.SwingConstants; +import org.fudaa.ebli.commun.EbliPreferences; + import com.memoire.bu.BuBorderLayout; import com.memoire.bu.BuLib; import com.memoire.bu.BuPanel; -import org.fudaa.ebli.commun.EbliPreferences; - /** * @author Fred Deniger * @version $Id: BCalqueLegendePanel.java,v 1.14 2007-06-28 09:26:47 deniger Exp $ @@ -32,6 +32,14 @@ BCalqueAffichage aff_; + public BCalqueAffichage getAff_() { + return aff_; + } + + public void setAff_(BCalqueAffichage aff_) { + this.aff_ = aff_; + } + /** * @return la couleur du bord sauvee */ Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/palette/BPalettePlageLegende.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/palette/BPalettePlageLegende.java 2008-08-27 07:19:28 UTC (rev 3845) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/palette/BPalettePlageLegende.java 2008-08-27 16:53:48 UTC (rev 3846) @@ -76,6 +76,14 @@ } BPalettePlageInterface model_; + public BPalettePlageInterface getModel_() { + return model_; + } + + public void setModel_(BPalettePlageInterface model_) { + this.model_ = model_; + } + // Le symbole par d\xE9faut pour les plages private final JLabel lbTitre_ = new JLabel(); private final JPanel pnPlages_ = new JPanel(); @@ -86,6 +94,10 @@ private final JLabel lbSSTitre_ = new JLabel(); final JList listPlages_; + public JList getListPlages_() { + return listPlages_; + } + /** * Cr\xE9ation d'une palette vide. */ Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliNodeDefault.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliNodeDefault.java 2008-08-27 07:19:28 UTC (rev 3845) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliNodeDefault.java 2008-08-27 16:53:48 UTC (rev 3846) @@ -2,14 +2,8 @@ import java.awt.Dimension; import java.awt.Point; -import java.util.HashMap; import java.util.Map; -import org.fudaa.ebli.visuallibrary.calque.EbliWidgetCreatorVueCalque; -import org.fudaa.ebli.visuallibrary.graphe.EbliWidgetCreatorGraphe; - -import com.sun.org.apache.bcel.internal.generic.GETSTATIC; - public class EbliNodeDefault implements EbliNode { EbliWidgetCreator creator; @@ -25,54 +19,9 @@ * methode qui permet de dupliquer un node */ public EbliNode duplicate(Map options) { - // TODO Auto-generated method stub - EbliNode duplique = new EbliNodeDefault(); + return getCreator().duplicate(this); + } - duplique.setTitle(getTitle()); - // FIXME cree un methode duplicate dans le creator. - // Les params doivent contenir - // ne pas oublier de - // duplicate(Map optionsGraphique) - // -- duplique rectangle - if (creator instanceof EbliWidgetCreatorRectangleTexte) { - duplique.setCreator(new EbliWidgetCreatorRectangleTexte(((EbliWidgetCreatorRectangleTexte) getCreator()).getG())); - } else if (creator instanceof EbliWidgetCreatorFleche) { - duplique.setCreator(new EbliWidgetCreatorFleche(((EbliWidgetCreatorFleche) getCreator()).orientation)); - } else if (creator instanceof EbliWidgetCreatorDblFleche) { - duplique.setCreator(new EbliWidgetCreatorDblFleche(((EbliWidgetCreatorDblFleche) getCreator()).getG())); - } else if (creator instanceof EbliWidgetCreatorGraphe) { - duplique - .setCreator(new EbliWidgetCreatorGraphe(((EbliWidgetCreatorGraphe) getCreator()).getGraphe().duplicate())); - } else if (creator instanceof EbliWidgetCreatorVueCalque) { - - Map duplicOptions = new HashMap(); - duplicOptions.put("scene", getCreator().getWidget().getEbliScene()); - duplique.setCreator(new EbliWidgetCreatorVueCalque(((EbliWidgetCreatorVueCalque) getCreator()).getCalque() - .duplicate(duplicOptions), ((EbliWidgetCreatorVueCalque) getCreator()).getCalque().getVueCalque() - .getViewBoite())); - - } else if (creator instanceof EbliWidgetCreatorShape) { - duplique.setCreator(new EbliWidgetCreatorShape(((EbliWidgetCreatorShape) getCreator()).getTypeObject_())); - } else if (creator instanceof EbliWidgetCreatorImage) { - duplique.setCreator(new EbliWidgetCreatorImage(((EbliWidgetCreatorImage) getCreator()).getG())); - } else { - // instance pas identifie, impossible de dupliquer - return null; - } - - // recopie des tailles - duplique.setPreferedSize(getPreferedSize()); - - // -- calcul nouvelle position - Point nouvellePosition = new Point(getCreator().getWidget().getLocation().x, (int) (getCreator().getWidget() - .getLocation().y + getCreator().getWidget().getClientArea().height)); - - duplique.setPreferedLocation(nouvellePosition); - // duplique.setPreferedLocation(getPreferedLocation()); - - return duplique; - } - public void setTitle(String title) { this.title = title; } Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliScene.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliScene.java 2008-08-27 07:19:28 UTC (rev 3845) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliScene.java 2008-08-27 16:53:48 UTC (rev 3846) @@ -18,7 +18,6 @@ import org.netbeans.api.visual.widget.LayerWidget; import org.netbeans.api.visual.widget.Scene; import org.netbeans.api.visual.widget.Widget; -import org.netbeans.modules.visual.action.SelectAction; /** * classe de gestion de la scene principale @@ -290,5 +289,8 @@ public void setVisu_(LayerWidget visu_) { this.visu_ = visu_; } + + + } Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidget.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidget.java 2008-08-27 07:19:28 UTC (rev 3845) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidget.java 2008-08-27 16:53:48 UTC (rev 3846) @@ -2,35 +2,21 @@ import java.awt.Color; import java.awt.Font; -import java.awt.Point; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; import java.beans.PropertyChangeListener; import java.util.HashMap; import java.util.Map; -import javax.swing.JDialog; -import javax.swing.JMenuItem; -import javax.swing.JOptionPane; -import javax.swing.JPopupMenu; - import org.fudaa.ctulu.CtuluLibString; -import org.fudaa.ctulu.CtuluResource; import org.fudaa.ebli.commun.EbliLib; import org.fudaa.ebli.controle.BConfigurableComposite; import org.fudaa.ebli.controle.BConfigurableInterface; -import org.fudaa.ebli.controle.BConfigurePalette; import org.fudaa.ebli.controle.BSelecteurTargetInterface; import org.fudaa.ebli.trace.TraceLigneModel; import org.fudaa.ebli.visuallibrary.actions.CommandeUndoRedoGraphicalProperties; import org.fudaa.ebli.visuallibrary.actions.WidgetConfigure; -import org.netbeans.api.visual.action.ActionFactory; -import org.netbeans.api.visual.action.PopupMenuProvider; import org.netbeans.api.visual.model.ObjectState; import org.netbeans.api.visual.widget.Widget; -import com.memoire.bu.BuResource; - /** * Widget version EBLI * @@ -46,17 +32,11 @@ */ public Map propGraphique; - private String description_; + + protected EbliWidgetController controller_; - public String getDescription_() { - return description_; - } + - public void setDescription_(String description_) { - this.description_ = description_; - setToolTipText(description_); - } - /** * Liste des clef utilisees pour les composants graphiques */ @@ -180,7 +160,23 @@ public boolean isTitleModifiable() { return true; } + + /** + * Utilise par la plupart des composant sauf calque et graphe qui necessitent + * un controller particulier. + * + * @param scene + * @param controllerDefaut + */ + public EbliWidget(EbliScene scene, boolean controllerDefaut) { + this(scene); + + // -- creation du controller par defaut --// + if (controllerDefaut) + controller_ = new EbliWidgetController(this); + + } /** * @param scene * @param Point : indiaue la location preferentiel. peut etre nul @@ -206,112 +202,22 @@ // -- ajout de l angle de rotation par default PI --// propGraphique.put(ROTATION, Math.PI); - - // -- construction des actions --// - getActions().addAction(scene.createSelectAction()); - getActions().addAction(ActionFactory.createResizeAction()); - getActions().addAction(scene.createWidgetHoverAction()); - getActions().addAction(scene.getMoveAction()); - - // positionnement de la widget si precise - // if(preferredLocation!=null) - // setPreferredLocation(preferredLocation); - - // menu clic droit basique (fermeture, duplication) - setMenu(); - - } - /** - * Methode de construction des menus de base - * - * @param _popup - */ - public void constructPopupMenuBase(JPopupMenu _popup) { - JMenuItem menuItem3 = _popup.add("Informations"); - menuItem3.setIcon(BuResource.BU.getIcon("crystal_aide")); - menuItem3.addActionListener(new ActionListener() { + + - public void actionPerformed(ActionEvent e) { - JOptionPane.showMessageDialog(null, getDescription_(), "Informations", JOptionPane.DEFAULT_OPTION, null); - } - }); - - menuItem3 = _popup.add("Masquer l'objet"); - menuItem3.setIcon(CtuluResource.CTULU.getIcon("crystal_visibilite")); - menuItem3.addActionListener(new ActionListener() { - - public void actionPerformed(ActionEvent e) { - - EbliWidget.this.setVisible(false); - - } - - }); - - JMenuItem menuItem1 = _popup.add("Dupliquer l'objet"); - menuItem1.setIcon(CtuluResource.CTULU.getIcon("crystal_cascade")); - menuItem1.addActionListener(new ActionListener() { - - public void actionPerformed(ActionEvent e) { - - // -- recuperation du node a dupliquer --// - EbliNode n = (EbliNode) EbliWidget.this.getEbliScene().findObject(EbliWidget.this); - - // duplication du node en question - EbliNode duplique = n.duplicate(null); - - // nouvelle position a cote de son predecesseur - // duplique.setPreferedLocation(nouvellePosition); - - // -- ajout dans la scene --// - if (duplique != null && EbliWidget.this.getScene() != null) { - EbliWidget.this.getEbliScene().addNode(duplique); - - // -- duplication des map de property graphique de la widget --// - duplique.getCreator().getWidget().propGraphique = n.getCreator().getWidget().duplicateGraphicalProperties(); - // -- duplication de la taille --// - duplique.getCreator().getWidget().setPreferredBounds(n.getCreator().getWidget().getPreferredBounds()); - - // -- raffraichissement de la scene --// - EbliWidget.this.getEbliScene().refresh(); - } - - } - - }); - - JMenuItem menuItem2 = _popup.add("Supprimer l'objet"); - menuItem2.setIcon(CtuluResource.CTULU.getIcon("crystal_non")); - menuItem2.addActionListener(new ActionListener() { - - public void actionPerformed(ActionEvent e) { - - EbliNode n = (EbliNode) EbliWidget.this.getEbliScene().findObject(EbliWidget.this); - EbliWidget.this.getEbliScene().removeNode(n); - - // -- raffraichissement de la scene --// - EbliWidget.this.getEbliScene().refresh(); - - } - - }); - + + + public EbliWidgetController getController_() { + return controller_; } - /** - * methode qui construit une widget duplication pqr default, doit etre surchargee pour reproduire l' evenement - * - * @return - */ - public EbliNode duplicate() { - EbliNode duplique = null; - - return duplique; + public void setController_(EbliWidgetController controller_) { + this.controller_ = controller_; } public EbliScene getEbliScene() { @@ -328,60 +234,9 @@ setBorder(getScene().getLookFeel().getBorder(newState)); } - /** - * Methode generique qui fait apparaitre un menuItem propre au composant et offre les op\xE9rations de base on ouvre le - * menu via le clic droit ou le raccourcis shift+F10 - */ + + - public void setMenu() { - getActions().addAction(ActionFactory.createPopupMenuAction(new PopupMenuProvider() { - public JPopupMenu getPopupMenu(Widget widget, Point localLocation) { - JPopupMenu popup = new JPopupMenu(); - - // -- construction du menu pour les graphismees --// - constructPopupMenuBaseGraphique(popup); - // -- creation du menu commun a tous les widgets - constructPopupMenuBase(popup); - - return popup; - } - })); - } - - /** - * Attention ce menu ne doit pas apparaitre pour les calques et graphe car il n a aucun effet. - * - * @param _popup - */ - public void constructPopupMenuBaseGraphique(JPopupMenu _popup) { - - JMenuItem menuItem4 = _popup.add("Configuration"); - menuItem4.setIcon(CtuluResource.CTULU.getIcon("crystal_configurer")); - // BuResource.BU.getIcon("configurer") - menuItem4.addActionListener(new ActionListener() { - - public void actionPerformed(ActionEvent e) { - - EbliWidget found = EbliWidget.this; - - BConfigurePalette palette = new BConfigurePalette(false); - - BConfigurableComposite cmp = new BConfigurableComposite(found.getConfigureInterfaces(), "test"); - - palette.setTargetConf(cmp); - JDialog d = new JDialog(); - d.setModal(true); - d.setTitle("Configuration graphique"); - d.setContentPane(palette); - - d.pack(); - d.setVisible(true); - - } - - }); - } - public void setScene_(EbliScene _scene) { this.scene_ = _scene; } Added: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetBordure.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetBordure.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetBordure.java 2008-08-27 16:53:48 UTC (rev 3846) @@ -0,0 +1,83 @@ +package org.fudaa.ebli.visuallibrary; + +import java.awt.Graphics2D; +import java.awt.Insets; +import java.awt.Rectangle; + +import org.fudaa.ebli.trace.TraceLigne; +import org.fudaa.ebli.visuallibrary.layout.OverlayLayoutGap; + +/** + * classe qui genere une bordure pour contenir une widget classique. + * + * @author genesis + * + */ +public class EbliWidgetBordure extends EbliWidget { + + /** + * Widget contenu en intern dans la widget bordure + */ + EbliWidget intern_; + + + public float epaisseurHisto_ = 0; + /** + * constructeur qui gere un controller uniquement pour les actions. + * + * @param scene + */ + public EbliWidgetBordure(EbliWidget _intern) { + super(_intern.getEbliScene(), false); + + intern_ = _intern; + + //-- mise a jour du layout + setLayout(new OverlayLayoutGap(createInset((int) getTraceLigneModel().getEpaisseur()))); + + // -- ajout du child --// + addChild(intern_); + + // --ajout du controller specifique au bordure --// + this.setController_(new EbliWidgetControllerActionOnly(this)); + + } + + + public Insets createInset(int epaisseur) { + + return new Insets(epaisseur, epaisseur, epaisseur, epaisseur); + } + +protected void paintWidget() { + + // -- mise a jour de la fonte que si il y a eu une modification --// + + Graphics2D g = getGraphics(); + + Rectangle rec = getClientArea(); + + if(epaisseurHisto_!=getTraceLigneModel().getEpaisseur()) + setLayout(new OverlayLayoutGap(createInset((int) getTraceLigneModel().getEpaisseur()))); + + + // -- couleur de fond --// + // g.setColor(getColorFond()); + // g.fillRect(0, 0, rec.width, rec.height); + + g.translate(rec.x, rec.y); + // la ligne + + TraceLigne l = new TraceLigne(getTraceLigneModel()); + l.setCouleur(getColorContour()); + + l.dessineRectangle(g, (int) (l.getEpaisseur() / 2), (int) (l.getEpaisseur() / 2), (int) (rec.width - l + .getEpaisseur()), (int) (rec.height - l.getEpaisseur())/* , rec.width */); + + g.translate(-rec.x, -rec.y); + + epaisseurHisto_ = getTraceLigneModel().getEpaisseur(); + + } + +} Added: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetController.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetController.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetController.java 2008-08-27 16:53:48 UTC (rev 3846) @@ -0,0 +1,243 @@ +package org.fudaa.ebli.visuallibrary; + +import java.awt.Point; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +import javax.swing.JDialog; +import javax.swing.JMenuItem; +import javax.swing.JOptionPane; +import javax.swing.JPopupMenu; + +import org.fudaa.ctulu.CtuluCommandContainer; +import org.fudaa.ctulu.CtuluResource; +import org.fudaa.ebli.controle.BConfigurableComposite; +import org.fudaa.ebli.controle.BConfigurePalette; +import org.fudaa.ebli.visuallibrary.actions.CommandMasquer; +import org.fudaa.ebli.visuallibrary.actions.CommandSupprimer; +import org.netbeans.api.visual.action.ActionFactory; +import org.netbeans.api.visual.action.PopupMenuProvider; +import org.netbeans.api.visual.widget.Widget; + +import com.memoire.bu.BuResource; + +/** + * Classe qui g\xE8re les actions de contr\xF4le de la widget + * + * @author genesis + * + */ +public class EbliWidgetController { + + protected boolean canDuplicate_ = true; + + private String description_; + + protected EbliWidget widget_; + +public EbliWidgetController(EbliWidget widget_) { + + this.widget_ = widget_; + + // creation des actions par defaut + createdefaultAction(); + + // menu intern propre a la widget + setMenu(); + +} + + /** + * methode qui cree les actions par defaut pour la widget. + * + */ + public void createdefaultAction() { + // -- construction des actions --// + widget_.getActions().addAction(widget_.getEbliScene().createSelectAction()); + widget_.getActions().addAction(ActionFactory.createResizeAction()); + widget_.getActions().addAction(widget_.getEbliScene().createWidgetHoverAction()); + widget_.getActions().addAction(widget_.getEbliScene().getMoveAction()); + } + + + + public String getDescription_() { + return description_; + } + public void setDescription_(String description_) { + this.description_ = description_; + widget_.setToolTipText(description_); + } + /** + * Methode de construction des menus de base + * + * @param _popup + */ + public void constructPopupMenuBase(JPopupMenu _popup) { + + // -- reference vers le gestionnaire de commandeundo/redo --// + final CtuluCommandContainer cmd_ = getWidget_().getEbliScene().getCmdMng(); + + JMenuItem menuItem3 = _popup.add("Informations"); + menuItem3.setIcon(BuResource.BU.getIcon("crystal_aide")); + menuItem3.addActionListener(new ActionListener() { + + public void actionPerformed(ActionEvent e) { + + JOptionPane.showMessageDialog(null, getDescription_(), "Informations", JOptionPane.DEFAULT_OPTION, null); + } + + }); + + menuItem3 = _popup.add("Masquer l'objet"); + menuItem3.setIcon(CtuluResource.CTULU.getIcon("crystal_visibilite")); + menuItem3.addActionListener(new ActionListener() { + + public void actionPerformed(ActionEvent e) { + + + + // -- si la widget a une bordure c'est la bordure que l on masque --// + + EbliNode n = (EbliNode) widget_.getEbliScene().findObject(widget_); + if (n.getCreator().getBordure() != null) { + n.getCreator().getBordure().setVisible(false); + cmd_.addCmd(new CommandMasquer(n.getCreator().getBordure())); + } else { + widget_.setVisible(false); + cmd_.addCmd(new CommandMasquer(widget_)); + } + + + + } + + }); + if (canDuplicate_) { + JMenuItem menuItem1 = _popup.add("Dupliquer l'objet"); + menuItem1.setIcon(CtuluResource.CTULU.getIcon("crystal_cascade")); + menuItem1.addActionListener(new ActionListener() { + + public void actionPerformed(ActionEvent e) { + + // -- recuperation du node a dupliquer --// + EbliNode n = (EbliNode) widget_.getEbliScene().findObject(widget_); + + // duplication du node en question + EbliNode duplique = n.duplicate(null); + + // nouvelle position a cote de son predecesseur + // duplique.setPreferedLocation(nouvellePosition); + + // -- ajout dans la scene --// + if (duplique != null && widget_.getScene() != null) { + widget_.getEbliScene().addNode(duplique); + + // -- duplication des map de property graphique de la widget --// + duplique.getCreator().getWidget().propGraphique = n.getCreator().getWidget().duplicateGraphicalProperties(); + // -- duplication de la taille --// + duplique.getCreator().getWidget().setPreferredBounds(n.getCreator().getWidget().getPreferredBounds()); + + // -- raffraichissement de la scene --// + widget_.getEbliScene().refresh(); + } + + } + + }); + } + + JMenuItem menuItem2 = _popup.add("Supprimer l'objet"); + menuItem2.setIcon(CtuluResource.CTULU.getIcon("crystal_non")); + menuItem2.addActionListener(new ActionListener() { + + public void actionPerformed(ActionEvent e) { + + + + EbliNode n = (EbliNode) widget_.getEbliScene().findObject(widget_); + + //-- on enregistre la commande undo redo --// + cmd_.addCmd(new CommandSupprimer(n, widget_.getEbliScene(), widget_)); + + //-- on enleve le node de la scene --// + widget_.getEbliScene().removeNode(n); + + // -- raffraichissement de la scene --// + widget_.getEbliScene().refresh(); + + } + + }); + + } + + /** + * Methode generique qui fait apparaitre un menuItem propre au composant et + * offre les op\xE9rations de base on ouvre le menu via le clic droit ou le + * raccourcis shift+F10 + */ + + public void setMenu() { + widget_.getActions().addAction(ActionFactory.createPopupMenuAction(new PopupMenuProvider() { + public JPopupMenu getPopupMenu(Widget widget, Point localLocation) { + JPopupMenu popup = new JPopupMenu(); + + // -- construction du menu pour les graphismees --// + constructPopupMenuBaseGraphique(popup); + // -- creation du menu commun a tous les widgets + constructPopupMenuBase(popup); + + return popup; + } + })); + } + + /** + * Attention ce menu ne doit pas apparaitre pour les calques et graphe car il + * n a aucun effet. + * + * @param _popup + */ + public void constructPopupMenuBaseGraphique(JPopupMenu _popup) { + + JMenuItem menuItem4 = _popup.add("Configuration graphique"); + menuItem4.setIcon(CtuluResource.CTULU.getIcon("crystal_configurer")); + // BuResource.BU.getIcon("configurer") + menuItem4.addActionListener(new ActionListener() { + + public void actionPerformed(ActionEvent e) { + + EbliWidget found = widget_; + + BConfigurePalette palette = new BConfigurePalette(false); + + BConfigurableComposite cmp = new BConfigurableComposite(found.getConfigureInterfaces(), "test"); + + palette.setTargetConf(cmp); + JDialog d = new JDialog(); + d.setModal(true); + d.setTitle("Configuration graphique"); + d.setContentPane(palette); + + d.pack(); + d.setVisible(true); + + } + + }); + } + + + +public EbliWidget getWidget_() { + return widget_; +} + +public void setWidget_(EbliWidget widget_) { + this.widget_ = widget_; +}; + + + +} Added: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetControllerActionOnly.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetControllerActionOnly.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetControllerActionOnly.java 2008-08-27 16:53:48 UTC (rev 3846) @@ -0,0 +1,24 @@ +package org.fudaa.ebli.visuallibrary; + +/** + * Classe qui herite du controller. Gere uniquement les actions. ne gere pas + * menus + * + * @author Adrien Hadoux. + * + */ +public class EbliWidgetControllerActionOnly extends EbliWidgetController { + + public EbliWidgetControllerActionOnly(EbliWidget widget_) { + super(widget_); + } + + /** + * surcharge de la methode menu pour ne pas cree de sous menus. + */ + public void setMenu() { + + // ne rien faire + } + +} Added: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetControllerMenuOnly.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetControllerMenuOnly.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetControllerMenuOnly.java 2008-08-27 16:53:48 UTC (rev 3846) @@ -0,0 +1,37 @@ +package org.fudaa.ebli.visuallibrary; + +/** + * Classe qui herite du controller. Gere uniquement les menus. Pas d actions + * gerees par ce controlleur. + * + * @author Adrien Hadoux. + * + */ +public class EbliWidgetControllerMenuOnly extends EbliWidgetController { + + public EbliWidgetControllerMenuOnly(EbliWidget widget_) { + super(widget_); + } + + public EbliWidgetControllerMenuOnly(EbliWidget widget_, boolean canDuplicate) { + super(widget_); + + canDuplicate_ = canDuplicate; + } + + + /** + * surcharge de la methode pour ne pas creer d actions. + */ + public void createdefaultAction() { + // -- construction des actions --// + //widget_.getActions().addAction(widget_.getEbliScene().createSelectAction() + // ); + // widget_.getActions().addAction(ActionFactory.createResizeAction()); + // widget_.getActions().addAction(widget_.getEbliScene(). + // createWidgetHoverAction()); + // widget_.getActions().addAction(widget_.getEbliScene().getMoveAction()); + + } + +} Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetCreator.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetCreator.java 2008-08-27 07:19:28 UTC (rev 3845) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetCreator.java 2008-08-27 16:53:48 UTC (rev 3846) @@ -7,7 +7,14 @@ // FIXME a mettre dans le EbliNode EbliWidget getWidget(); -// void widgetCreated(EbliWidget w); - //void nodeRemoved(); - + /** + * Duplication de l ebliNode en fonction de son creator. + * + * @param options + * @return + */ + EbliNode duplicate(EbliNode _nodeAdupliquer); + + EbliWidgetBordure getBordure(); + } Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetCreatorDblFleche.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetCreatorDblFleche.java 2008-08-27 07:19:28 UTC (rev 3845) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetCreatorDblFleche.java 2008-08-27 16:53:48 UTC (rev 3846) @@ -1,5 +1,7 @@ package org.fudaa.ebli.visuallibrary; +import java.awt.Point; + public class EbliWidgetCreatorDblFleche implements EbliWidgetCreator { @@ -32,5 +34,26 @@ return res; } + + public EbliNode duplicate(EbliNode _nodeAdupliquer) { + + EbliNode duplique = new EbliNodeDefault(); + + duplique.setCreator(new EbliWidgetCreatorDblFleche(getG())); + + duplique.setTitle(_nodeAdupliquer.getTitle()); + // recopie des tailles + duplique.setPreferedSize(_nodeAdupliquer.getPreferedSize()); + // -- calcul nouvelle position + Point nouvellePosition = new Point(getWidget().getLocation().x, (int) (getWidget().getLocation().y + getWidget() + .getClientArea().height)); + duplique.setPreferedLocation(nouvellePosition); + + return duplique; + } + + public EbliWidgetBordure getBordure() { + return null; + } } Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetCreatorFleche.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetCreatorFleche.java 2008-08-27 07:19:28 UTC (rev 3845) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetCreatorFleche.java 2008-08-27 16:53:48 UTC (rev 3846) @@ -1,5 +1,7 @@ package org.fudaa.ebli.visuallibrary; +import java.awt.Point; + public class EbliWidgetCreatorFleche implements EbliWidgetCreator { int orientation; @@ -31,4 +33,27 @@ return res; } + + public EbliNode duplicate(EbliNode _nodeAdupliquer) { + + EbliNode duplique = new EbliNodeDefault(); + + duplique.setCreator(new EbliWidgetCreatorFleche(orientation)); + + duplique.setTitle(_nodeAdupliquer.getTitle()); + // recopie des tailles + duplique.setPreferedSize(_nodeAdupliquer.getPreferedSize()); + // -- calcul nouvelle position + Point nouvellePosition = new Point(getWidget().getLocation().x, (int) (getWidget().getLocation().y + getWidget() + .getClientArea().height)); + duplique.setPreferedLocation(nouvellePosition); + + return duplique; + } + + public EbliWidgetBordure getBordure() { + return null; + } + + } Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetCreatorImage.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetCreatorImage.java 2008-08-27 07:19:28 UTC (rev 3845) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetCreatorImage.java 2008-08-27 16:53:48 UTC (rev 3846) @@ -1,6 +1,7 @@ package org.fudaa.ebli.visuallibrary; import java.awt.Image; +import java.awt.Point; /** * Creator de la widget image. @@ -11,8 +12,10 @@ public class EbliWidgetCreatorImage implements EbliWidgetCreator { Image image_; - EbliWidgetImage res; + // EbliWidgetImage res; + EbliWidgetBordure res; + public EbliWidgetCreatorImage(Image g) { super(); this.image_ = g; @@ -28,7 +31,7 @@ public EbliWidget create(EbliScene _scene) { - res = new EbliWidgetImage(_scene, getG()); + res = new EbliWidgetBordure(new EbliWidgetImage(_scene, getG())); return res; } @@ -38,4 +41,25 @@ return res; } + public EbliNode duplicate(EbliNode _nodeAdupliquer) { + + EbliNode duplique = new EbliNodeDefault(); + + duplique.setCreator(new EbliWidgetCreatorImage(getG())); + + duplique.setTitle(_nodeAdupliquer.getTitle()); + // recopie des tailles + duplique.setPreferedSize(_nodeAdupliquer.getPreferedSize()); + // -- calcul nouvelle position + Point nouvellePosition = new Point(getWidget().getLocation().x, (int) (getWidget().getLocation().y + getWidget() + .getClientArea().height)); + duplique.setPreferedLocation(nouvellePosition); + + return duplique; + } + + public EbliWidgetBordure getBordure() { + return res; + } + } Deleted: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetCreatorRectangleTexte.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetCreatorRectangleTexte.java 2008-08-27 07:19:28 UTC (rev 3845) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetCreatorRectangleTexte.java 2008-08-27 16:53:48 UTC (rev 3846) @@ -1,34 +0,0 @@ -package org.fudaa.ebli.visuallibrary; - - - -public class EbliWidgetCreatorRectangleTexte implements EbliWidgetCreator { - - String label_; - EbliWidgetRectangle res; - - public EbliWidgetCreatorRectangleTexte(String g) { - super(); - this.label_ = g; - } - - public String getG() { - return label_; - } - - public void setG(String g) { - this.label_ = g; - } - - public EbliWidget create(EbliScene _scene) { - res= new EbliWidgetRectangle(_scene, getG()); - - return res; - } - - public EbliWidget getWidget() { - // TODO Auto-generated method stub - return res; - } - -} Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetCreatorShape.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetCreatorShape.java 2008-08-27 07:19:28 UTC (rev 3845) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetCreatorShape.java 2008-08-27 16:53:48 UTC (rev 3846) @@ -1,7 +1,8 @@ package org.fudaa.ebli.visuallibrary; +import java.awt.Point; + import org.fudaa.ebli.visuallibrary.creator.ShapeCreator; -import org.fudaa.ebli.visuallibrary.creator.ShapeCreatorFleche; /** * Creator pour les objets graphiques de type shape. @@ -48,5 +49,29 @@ // TODO Auto-generated method stub return res; } + + public EbliNode duplicate(EbliNode _nodeAdupliquer) { + EbliNode duplique = new EbliNodeDefault(); + + duplique.setCreator(new EbliWidgetCreatorShape(getTypeObject_())); + + duplique.setTitle(_nodeAdupliquer.getTitle()); + // recopie des tailles + duplique.setPreferedSize(_nodeAdupliquer.getPreferedSize()); + // -- calcul nouvelle position + Point nouvellePosition = new Point(getWidget().getLocation().x, (int) (getWidget().getLocation().y + getWidget() + .getClientArea().height)); + duplique.setPreferedLocation(nouvellePosition); + + return duplique; + } + + + + public EbliWidgetBordure getBordure() { + return null; + } + + } Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetCreatorTextEditor.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetCreatorTextEditor.java 2008-08-27 07:19:28 UTC (rev 3845) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetCreatorTextEditor.java 2008-08-27 16:53:48 UTC (rev 3846) @@ -38,4 +38,12 @@ return res; } + public EbliNode duplicate(EbliNode _nodeAdupliquer) { + return null; + } + + public EbliWidgetBordure getBordure() { + return null; + } + } Copied: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetCreatorTextLabel.java (from rev 3832, branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetCreatorRectangleTexte.java) =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetCreatorTextLabel.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetCreatorTextLabel.java 2008-08-27 16:53:48 UTC (rev 3846) @@ -0,0 +1,59 @@ +package org.fudaa.ebli.visuallibrary; + +import java.awt.Point; + + + +public class EbliWidgetCreatorTextLabel implements EbliWidgetCreator { + + String label_; + // EbliWidgetRectangle res; + EbliWidgetBordure res; + public EbliWidgetCreatorTextLabel(String g) { + super(); + this.label_ = g; + } + + public String getG() { + return label_; + } + + public void setG(String g) { + this.label_ = g; + } + + public EbliWidget create(EbliScene _scene) { + res = new EbliWidgetBordure(new EbliWidgetTextLabel(_scene, getG())); + + return res; + } + + public EbliWidget getWidget() { + // TODO Auto-generated method stub + return res; + } + + + public EbliNode duplicate(EbliNode _nodeAdupliquer) { + + EbliNode duplique = new EbliNodeDefault(); + + duplique.setCreator(new EbliWidgetCreatorTextLabel(getG())); + + duplique.setTitle(_nodeAdupliquer.getTitle()); + // recopie des tailles + duplique.setPreferedSize(_nodeAdupliquer.getPreferedSize()); + // -- calcul nouvelle position + Point nouvellePosition = new Point(getWidget().getLocation().x, (int) (getWidget().getLocation().y + getWidget() + .getClientArea().height)); + duplique.setPreferedLocation(nouvellePosition); + + return duplique; + } + + public EbliWidgetBordure getBordure() { + return res; + } + + +} Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetDBLFleche.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetDBLFleche.java 2008-08-27 07:19:28 UTC (rev 3845) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetDBLFleche.java 2008-08-27 16:53:48 UTC (rev 3846) @@ -1,34 +1,13 @@ package org.fudaa.ebli.visuallibrary; -import java.awt.BasicStroke; -import java.awt.Color; -import java.awt.Graphics2D; import java.awt.Insets; import java.awt.Point; -import java.awt.Rectangle; -import java.awt.geom.GeneralPath; -import java.util.ArrayList; -import org.fudaa.ebli.courbe.EGCourbe; -import org.fudaa.ebli.trace.TraceIcon; -import org.fudaa.ebli.trace.TraceIconModel; -import org.fudaa.ebli.trace.TraceLigne; -import org.netbeans.api.visual.action.ActionFactory; -import org.netbeans.api.visual.action.ConnectProvider; -import org.netbeans.api.visual.action.TextFieldInplaceEditor; -import org.netbeans.api.visual.action.WidgetAction; import org.netbeans.api.visual.anchor.AnchorFactory; import org.netbeans.api.visual.anchor.AnchorShape; import org.netbeans.api.visual.anchor.AnchorShapeFactory; -import org.netbeans.api.visual.layout.LayoutFactory.SerialAlignment; import org.netbeans.api.visual.widget.ConnectionWidget; -import org.netbeans.api.visual.widget.LabelWidget; -import org.netbeans.api.visual.widget.Scene; -import org.netbeans.api.visual.widget.Widget; -import org.netbeans.api.visual.widget.LabelWidget.VerticalAlignment; -import org.netbeans.modules.visual.layout.FlowLayout; -import org.netbeans.modules.visual.layout.OverlayLayout; /** * Legende Widget qui permet de construire une fleche double @@ -62,7 +41,7 @@ * @param _scene */ public EbliWidgetDBLFleche(EbliScene _scene, int orientation) { - super(_scene); + super(_scene, true); //-- creation de la fleche --// Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetFleche.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetFleche.java 2008-08-27 07:19:28 UTC (rev 3845) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetFleche.java 2008-08-27 16:53:48 UTC (rev 3846) @@ -3,37 +3,13 @@ -import java.awt.BasicStroke; import java.awt.Color; import java.awt.Graphics2D; import java.awt.Insets; -import java.awt.Point; -import java.awt.Polygon; import java.awt.Rectangle; -import java.awt.Shape; -import java.awt.geom.GeneralPath; -import java.util.ArrayList; -import org.fudaa.ebli.courbe.EGCourbe; -import org.fudaa.ebli.trace.TraceIcon; -import org.fudaa.ebli.trace.TraceIconModel; import org.fudaa.ebli.trace.TraceLigne; import org.fudaa.ebli.visuallibrary.layout.OverlayLayoutGap; -import org.netbeans.api.visual.action.ActionFactory; -import org.netbeans.api.visual.action.ConnectProvider; -import org.netbeans.api.visual.action.TextFieldInplaceEditor; -import org.netbeans.api.visual.action.WidgetAction; -import org.netbeans.api.visual.anchor.AnchorFactory; -import org.netbeans.api.visual.anchor.AnchorShape; -import org.netbeans.api.visual.anchor.AnchorShapeFactory; -import org.netbeans.api.visual.layout.LayoutFactory.SerialAlignment; -import org.netbeans.api.visual.widget.ConnectionWidget; -import org.netbeans.api.visual.widget.LabelWidget; -import org.netbeans.api.visual.widget.Scene; -import org.netbeans.api.visual.widget.Widget; -import org.netbeans.api.visual.widget.LabelWidget.VerticalAlignment; -import org.netbeans.modules.visual.layout.FlowLayout; -import org.netbeans.modules.visual.layout.OverlayLayout; /** * Legende Widget qui permet de construire une fleche @@ -59,7 +35,7 @@ * @param _scene */ public EbliWidgetFleche(EbliScene _scene, int orientation) { - super(_scene); + super(_scene, true); inGaps_ = new Insets(largeurBorder + espaceInterieur, largeurBorder + espaceInterieur, largeurBorder + espaceInterieur, largeurBorder + espaceInterieur); @@ -100,7 +76,7 @@ l.setEpaisseur(largeurBorder); l.setCouleur(couleurContour); - //FIXME prob fleche pas tres jolie + l.dessineFleche(g,(int)( l.getEpaisseur() / 2),(int)( rec.height/2), (int)(rec.width-l.getEpaisseur()/2), (int)(rec.height/2)); /*Shape shape; Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetImage.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetImage.java 2008-08-27 07:19:28 UTC (rev 3845) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetImage.java 2008-08-27 16:53:48 UTC (rev 3846) @@ -10,8 +10,12 @@ Image image; public EbliWidgetImage(EbliScene scene, Image _img) { - super(scene); + super(scene, false); image = _img; + + // -- controller menu seulement, la bordure englobante contient le + // controller action --// + setController_(new EbliWidgetControllerMenuOnly(this)); } Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetLine.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetLine.java 2008-08-27 07:19:28 UTC (rev 3845) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetLine.java 2008-08-27 16:53:48 UTC (rev 3846) @@ -9,7 +9,6 @@ import org.fudaa.ebli.trace.TraceIcon; import org.fudaa.ebli.trace.TraceIconModel; import org.fudaa.ebli.trace.TraceLigne; -import org.netbeans.api.visual.widget.Scene; /** @@ -26,7 +25,7 @@ * @param _scene */ public EbliWidgetLine(EbliScene _scene, EGCourbe _cb, Point preferedLocation) { - super(_scene); + super(_scene, true); cb_ = _cb; setMinimumSize(new Dimension(30, 10)); setPreferredSize(new Dimension(40, 10)); Deleted: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetRectangle.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetRectangle.java 2008-08-27 07:19:28 UTC (rev 3845) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetRectangle.java 2008-08-27 16:53:48 UTC (rev 3846) @@ -1,150 +0,0 @@ -package org.fudaa.ebli.visuallibrary; - -import java.awt.Font; -import java.awt.Graphics2D; -import java.awt.Insets; -import java.awt.Rectangle; - -import org.fudaa.ebli.trace.TraceLigne; -import org.fudaa.ebli.visuallibrary.layout.OverlayLayoutGap; -import org.netbeans.api.visual.action.ActionFactory; -import org.netbeans.api.visual.action.TextFieldInplaceEditor; -import org.netbeans.api.visual.action.WidgetAction; -import org.netbeans.api.visual.widget.LabelWidget; -import org.netbeans.api.visual.widget.Widget; -import org.netbeans.api.visual.widget.LabelWidget.Alignment; -import org.netbeans.api.visual.widget.LabelWidget.VerticalAlignment; - -/** - * Legende Widget qui permet de construire des rectangles avec du texte - * - * @author Adrien Hadoux - * TODO a generaliser avec autre chose qu'un LabelWidget - */ -public class EbliWidgetRectangle extends EbliWidget implements - TextFieldInplaceEditor { - - LabelWidget intern; - Insets inGaps_; - int largeurBorder = 15; - int espaceInterieur = 5; - - - public Font fontForme; - - /** - * @param _scene - */ - public EbliWidgetRectangle(EbliScene _scene, String label) { - super(_scene); - inGaps_ = new Insets(largeurBorder + espaceInterieur, largeurBorder - + espaceInterieur, largeurBorder + espaceInterieur, - largeurBorder + espaceInterieur); - // Ce layout permet de placer le texte - - setLayout(new OverlayLayoutGap(inGaps_)); - - intern = new LabelWidget(_scene); - intern.setVerticalAlignment(VerticalAlignment.CENTER); - intern.setAlignment(Alignment.CENTER); - intern.setFont(getFormeFont()); - - intern.setLabel(label); - - //-- layout du texte --// - addChild(intern); - - // -- ajouter l option de remplacer le text dans le label --// - - // -- creation de l action --// - WidgetAction editorAction = ActionFactory - .createInplaceEditorAction(this); - - - - // -- ajout de l action au label correspondant --// - intern.getActions().addAction(editorAction); - - intern.getActions().addAction(ActionFactory.createResizeAction()); - - // setEnabled(false); - } - - public void majLabel(String label) { - // intern.setForeground(); - intern.setLabel(label); - revalidate(); - } - - // @Override - // protected Rectangle calculateClientArea() { - // // Rectangle res = intern.getPreferredBounds(); - // // // TODO Auto-generated method stub - // // return new Rectangle(0, 0, 2 * (largeurBorder + espaceInterieur) - // // + res.width, 2 * (largeurBorder + espaceInterieur) + res.height); - // } - - protected void paintWidget() { - - // -- mise a jour de la fonte que si il y a eu une modification --// - if (intern.getFont() != getFormeFont()) - intern.setFont(getFormeFont()); - - if (intern.getForeground() != getColorContour()) - intern.setForeground(getColorContour()); - - - Graphics2D g = getGraphics(); - - - Rectangle rec = getClientArea(); - - //-- couleur de fond --// - // g.setColor(getColorFond()); - // g.fillRect(0, 0, rec.width, rec.height); - - - g.translate(rec.x, rec.y); - // la ligne - - TraceLigne l = new TraceLigne(getTraceLigneModel()); - l.setCouleur(getColorContour()); - - l.dessineRectangle(g, (int) (l.getEpaisseur() / 2), (int) (l.getEpaisseur() / 2), - (int) (rec.width - l - .getEpaisseur()), (int) (rec.height - l.getEpaisseur())/* , rec.width */); - - g.translate(-rec.x, -rec.y); - - - - - } - - public String getText(Widget widget) { - - return ((LabelWidget) widget).getLabel(); - } - - public boolean isEnabled(Widget widget) { - // TODO Auto-generated method stub - return true; - } - - public void setText(Widget widget, String text) { - ((LabelWidget) widget).setLabel(text); - revalidate(); - - } - - - - - - - - - - - -} \ No newline at end of file Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetShape.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetShape.java 2008-08-27 07:19:28 UTC (rev 3845) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetShape.java 2008-08-27 16:53:48 UTC (rev 3846) @@ -55,7 +55,7 @@ // } public EbliWidgetShape (EbliScene scene, ShapeCreator _shaper, Map _options) { - super(scene); + super(scene, true); super.setCheckClipping(true); options_ = new HashMap(); if (_options != null) { Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetTextEditor.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetTextEditor.java 2008-08-27 07:19:28 UTC (rev 3845) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetTextEditor.java 2008-08-27 16:53:48 UTC (rev 3846) @@ -25,7 +25,7 @@ BuPanel conteneur = null; public EbliWidgetTextEditor(EbliScene scene, CtuluHtmlEditorPanel content) { - super(scene); + super(scene, true); editorPane_ = content; // widget = new ComponentWidget(scene, editorPane_) { Copied: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetTextLabel.java (from rev 3833, branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetRectangle.java) =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetTextLabel.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetTextLabel.java 2008-08-27 16:53:48 UTC (rev 3846) @@ -0,0 +1,130 @@ +package org.fudaa.ebli.visuallibrary; + +import java.awt.Font; +import java.awt.Insets; + +import org.netbeans.api.visual.action.ActionFactory; +import org.netbeans.api.visual.action.TextFieldInplaceEditor; +import org.netbeans.api.visual.action.WidgetAction; +import org.netbeans.api.visual.widget.LabelWidget; +import org.netbeans.api.visual.widget.Widget; +import org.netbeans.api.visual.widget.LabelWidget.Alignment; +import org.netbeans.api.visual.widget.LabelWidget.VerticalAlignment; + +/** + * Legende Widget qui permet de construire des rectangles avec du texte + * + * @author Adrien Hadoux + * TODO a generaliser avec autre chose qu'un LabelWidget + */ +public class EbliWidgetTextLabel extends EbliWidget implements + TextFieldInplaceEditor { + + LabelWidget intern; + Insets inGaps_; + int largeurBorder = 15; + int espaceInterieur = 5; + + + public Font fontForme; + + /** + * @param _scene + */ + public EbliWidgetTextLabel(EbliScene _scene, String label) { + super(_scene, false); + // inGaps_ = new Insets(largeurBorder + espaceInterieur, largeurBorder + // + espaceInterieur, largeurBorder + espaceInterieur, + // largeurBorder + espaceInterieur); + // Ce layout permet de placer le texte + + // setLayout(new OverlayLayoutGap(inGaps_)); + + intern = new LabelWidget(_scene); + intern.setVerticalAlignment(VerticalAlignment.CENTER); + intern.setAlignment(Alignment.CENTER); + intern.setFont(getFormeFont()); + + intern.setLabel(label); + + //-- layout du texte --// + addChild(intern); + + // -- ajouter l option de remplacer le text dans le label --// + + // -- creation de l action --// + WidgetAction editorAction = ActionFactory + .createInplaceEditorAction(this); + + + + // -- ajout de l action au label correspondant --// + this.getActions().addAction(editorAction); + + // intern.getActions().addAction(ActionFactory.createResizeAction()); + + // setEnabled(false); + + // -- ajout du controller special sans actions, juste le menu --/ + setController_(new EbliWidgetControllerMenuOnly(this)); + } + + public void majLabel(String label) { + // intern.setForeground(); + intern.setLabel(label); + revalidate(); + } + + // @Override + // protected Rectangle calculateClientArea() { + // // Rectangle res = intern.getPreferredBounds(); + // // // TODO Auto-generated method stub + // // return new Rectangle(0, 0, 2 * (largeurBorder + espaceInterieur) + // // + res.width, 2 * (largeurBorder + espaceInterieur) + res.height); + // } + + protected void paintWidget() { + + // -- mise a jour de la fonte que s... [truncated message content] |