From: <de...@us...> - 2008-08-14 21:42:35
|
Revision: 3807 http://fudaa.svn.sourceforge.net/fudaa/?rev=3807&view=rev Author: deniger Date: 2008-08-14 21:42:43 +0000 (Thu, 14 Aug 2008) Log Message: ----------- Corrections bogues Modified Paths: -------------- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliNodeDefault.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliNodeListener.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/actions/EbliWidgetActionConfigure.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetActionFont.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/tree/EbliWidgetCellRendererBuilder.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/tree/EbliWidgetJXTreeTableModel.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/post/TrPostLayoutFille.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostProjet.java Added Paths: ----------- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostLayoutPanelController.java 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-14 19:08:56 UTC (rev 3806) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliNodeDefault.java 2008-08-14 21:42:43 UTC (rev 3807) @@ -29,7 +29,6 @@ // FIXME cree un methode duplicate dans le creator // ne pas oublier de // duplicate(Map optionsGraphique) - System.err.println("je suis instance de la classe " + creator.toString()); // -- duplique rectangle if (creator instanceof EbliWidgetCreatorRectangleTexte) { duplique.setCreator(new EbliWidgetCreatorRectangleTexte(((EbliWidgetCreatorRectangleTexte) getCreator()).getG())); Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliNodeListener.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliNodeListener.java 2008-08-14 19:08:56 UTC (rev 3806) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliNodeListener.java 2008-08-14 21:42:43 UTC (rev 3807) @@ -4,6 +4,6 @@ void nodeAdded(EbliNode node); - void noderemoved(EbliNode node); + void nodeRemoved(EbliNode node); } 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-14 19:08:56 UTC (rev 3806) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliScene.java 2008-08-14 21:42:43 UTC (rev 3807) @@ -87,19 +87,16 @@ @Override protected void attachEdgeSourceAnchor(EbliEdge edge, EbliNode oldSourceNode, EbliNode sourceNode) { - // TODO Auto-generated method stub } @Override protected void attachEdgeTargetAnchor(EbliEdge edge, EbliNode oldTargetNode, EbliNode targetNode) { - // TODO Auto-generated method stub } @Override protected Widget attachEdgeWidget(EbliEdge edge) { - // TODO Auto-generated method stub return null; } @@ -186,7 +183,7 @@ for (Iterator<EbliNodeListener> it = listenerList.iterator(); it.hasNext();) { EbliNodeListener listener = it.next(); - listener.noderemoved(node); + listener.nodeRemoved(node); } } Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetActionConfigure.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetActionConfigure.java 2008-08-14 19:08:56 UTC (rev 3806) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetActionConfigure.java 2008-08-14 21:42:43 UTC (rev 3807) @@ -4,53 +4,51 @@ import java.util.Iterator; import java.util.Set; -import javax.swing.AbstractAction; import javax.swing.JDialog; +import org.fudaa.ebli.commun.EbliActionSimple; +import org.fudaa.ebli.commun.EbliLib; import org.fudaa.ebli.controle.BConfigurableComposite; import org.fudaa.ebli.controle.BConfigurePalette; import org.fudaa.ebli.visuallibrary.EbliWidgetShape; import org.netbeans.api.visual.model.ObjectScene; import org.netbeans.api.visual.widget.Widget; +import com.memoire.bu.BuResource; +public class EbliWidgetActionConfigure extends EbliActionSimple { -public class EbliWidgetActionConfigure extends AbstractAction { + ObjectScene scene_; - ObjectScene scene_; + public EbliWidgetActionConfigure(ObjectScene _widget) { + super(EbliLib.getS("Configure"), BuResource.BU.getIcon("configurer"), "CONFIGURE"); + scene_ = _widget; + } - public EbliWidgetActionConfigure(ObjectScene _widget) { - super("configure"); - scene_ = _widget; - } - - /** + /** * */ - public void actionPerformed(ActionEvent e) { - EbliWidgetShape found = findWidget(); - if (found != null) { - BConfigurePalette palette = new BConfigurePalette(false); - BConfigurableComposite cmp = new BConfigurableComposite(new WidgetConfigure(found), "test"); - palette.setTargetConf(cmp); - JDialog d = new JDialog(); - d.setContentPane(palette); - d.pack(); - d.setVisible(true); - } + public void actionPerformed(ActionEvent e) { + EbliWidgetShape found = findWidget(); + if (found != null) { + BConfigurePalette palette = new BConfigurePalette(false); + BConfigurableComposite cmp = new BConfigurableComposite(new WidgetConfigure(found), "test"); + palette.setTargetConf(cmp); + JDialog d = new JDialog(); + d.setContentPane(palette); + d.pack(); + d.setVisible(true); } + } - EbliWidgetShape findWidget() { - Set objs = scene_.getSelectedObjects(); - for (Iterator iterator = objs.iterator(); iterator.hasNext();) { - Object object = iterator.next(); - Widget w = scene_.findWidget(object); - if (w instanceof EbliWidgetShape) { - return (EbliWidgetShape) w; - } - } - return null; - + EbliWidgetShape findWidget() { + Set objs = scene_.getSelectedObjects(); + for (Iterator iterator = objs.iterator(); iterator.hasNext();) { + Object object = iterator.next(); + Widget w = scene_.findWidget(object); + if (w instanceof EbliWidgetShape) { return (EbliWidgetShape) w; } } -} + return null; + } +} Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetActionFont.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetActionFont.java 2008-08-14 19:08:56 UTC (rev 3806) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetActionFont.java 2008-08-14 21:42:43 UTC (rev 3807) @@ -23,133 +23,108 @@ import org.fudaa.ebli.visuallibrary.EbliScene; import org.fudaa.ebli.visuallibrary.EbliWidget; - - /** - * Classe qui gere un petit panel permettant de changer la police. - * Style logiciel windows. + * Classe qui gere un petit panel permettant de changer la police. Style + * logiciel windows. + * * @author Adrien Hadoux - * + * */ -public class EbliWidgetActionFont implements ActionListener{ +public class EbliWidgetActionFont implements ActionListener { - -CtuluCommandContainer cmd_; + CtuluCommandContainer cmd_; -/** - * liste de tous les fontes - */ -BuComboBox fonts ; - + /** + * liste de tous les fontes + */ + BuComboBox fonts; -/** - * scene. - */ -EbliScene scene_; - + /** + * scene. + */ + EbliScene scene_; + public EbliWidgetActionFont(EbliScene _scene) { -public EbliWidgetActionFont(EbliScene _scene){ - -scene_=_scene; -cmd_=_scene.getCmdMng(); - - -//-- creation de la combobox --// -GraphicsEnvironment gEnv = GraphicsEnvironment.getLocalGraphicsEnvironment(); -Font envfonts[] = gEnv.getAllFonts(); -ArrayList<Font> listeFont = new ArrayList<Font>(); -for (int i = 1; i < envfonts.length; i++) { - listeFont.add(envfonts[i]); -} -fonts = new BuComboBox(listeFont.toArray()); -fonts.addActionListener(this); - -} + scene_ = _scene; + cmd_ = _scene.getCmdMng(); + // -- creation de la combobox --// + GraphicsEnvironment gEnv = GraphicsEnvironment.getLocalGraphicsEnvironment(); + Font envfonts[] = gEnv.getAllFonts(); + ArrayList<Font> listeFont = new ArrayList<Font>(); + for (int i = 1; i < envfonts.length; i++) { + listeFont.add(envfonts[i]); + } + fonts = new BuComboBox(listeFont.toArray()); + fonts.addActionListener(this); + } -public BuComboBox getFonts() { - return fonts; -} + public BuComboBox getFonts() { + return fonts; + } + public void setFonts(BuComboBox fonts) { + this.fonts = fonts; + } + /** + * appelee dans le cas d event du combo. + */ + public void actionPerformed(ActionEvent e) { -public void setFonts(BuComboBox fonts) { - this.fonts = fonts; -} + if (e.getSource().equals(fonts)) { + // -- choix de la fontpar l utilisateur --// + // -- recuperation de la font + java.util.List<Font> oldFonts = new ArrayList<Font>(); + // on met a jour les font pour toutes les widgets selectionnees --// + Font newFont = (Font) fonts.getSelectedItem(); + // -- liste des widget selectionnees --// + java.util.List<EbliWidget> listeWidget = new ArrayList<EbliWidget>(); -/** - * appelee dans le cas d event du combo. - */ -public void actionPerformed(ActionEvent e) { - - - - if(e.getSource().equals(fonts)){ - - System.err.println("Aller dans actionperformed du combobox"); - - - //-- choix de la fontpar l utilisateur --// - - - //-- recuperation de la font - java.util.List<Font> oldFonts=new ArrayList<Font>(); - - //on met a jour les font pour toutes les widgets selectionnees --// - Font newFont=(Font)fonts.getSelectedItem(); - - //-- liste des widget selectionnees --// - java.util.List<EbliWidget> listeWidget=new ArrayList<EbliWidget>(); - - //-- liste des nodes selectionnes --// - Set<EbliNode> listeNode = (Set<EbliNode>) scene_.getSelectedObjects();// scene_ - - - for (Iterator<EbliNode> it = listeNode.iterator(); it.hasNext();) { + // -- liste des nodes selectionnes --// + Set<EbliNode> listeNode = (Set<EbliNode>) scene_.getSelectedObjects();// scene_ - EbliNode currentNode = it.next(); - - if(currentNode.hasWidget()){ - - EbliWidget widget=currentNode.getCreator().getWidget(); - //-- recuperatioon de l ancienne color et de la widget associee pour le undo --// - - //-- test pour savoir si le widget gere le font --// - if(widget.getFormeFont()!=null){ - - //-- ajout pour les undo redo - listeWidget.add(widget); - oldFonts.add(widget.getFormeFont()); - - //-- mise a jour de la nouvelle couleur --// - widget.setFormeFont(newFont); - - - - } - - } - } - //-- rafraichissement de la scene --// - scene_.refresh(); - - //-- ajout de l action undo redo --// - if (cmd_ != null) { - cmd_.addCmd(new CommandFont(listeWidget, oldFonts, newFont)); - - } + for (Iterator<EbliNode> it = listeNode.iterator(); it.hasNext();) { - - -} + EbliNode currentNode = it.next(); -} + if (currentNode.hasWidget()) { + EbliWidget widget = currentNode.getCreator().getWidget(); + // -- recuperatioon de l ancienne color et de la widget associee pour + // le undo --// + // -- test pour savoir si le widget gere le font --// + if (widget.getFormeFont() != null) { + + // -- ajout pour les undo redo + listeWidget.add(widget); + oldFonts.add(widget.getFormeFont()); + + // -- mise a jour de la nouvelle couleur --// + widget.setFormeFont(newFont); + + } + + } + } + // -- rafraichissement de la scene --// + scene_.refresh(); + + // -- ajout de l action undo redo --// + if (cmd_ != null) { + cmd_.addCmd(new CommandFont(listeWidget, oldFonts, newFont)); + + } + + } + + } + } 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-14 19:08:56 UTC (rev 3806) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetVueCalque.java 2008-08-14 21:42:43 UTC (rev 3807) @@ -27,6 +27,15 @@ import org.netbeans.api.visual.action.WidgetAction; import org.netbeans.api.visual.widget.Widget; +import com.memoire.fu.FuLog; + +/** + * + * Classe permettant d'afficher un calque en tant que Widget + * + * @author deniger + * + */ public class EbliWidgetVueCalque extends EbliWidget implements EditProvider { ZEbliCalquesPanel calquePanel_; @@ -37,10 +46,9 @@ GrBoite zoom_; - public Color couleurContour=Color.black; - public Color couleurFond=Color.white; + public Color couleurContour = Color.black; + public Color couleurFond = Color.white; - public EbliWidgetVueCalque(EbliScene scene, ZEbliCalquesPanel vue) { super(scene); calquePanel_ = vue; @@ -61,16 +69,8 @@ } - /* - * (non-Javadoc) - * - * @see - * org.netbeans.api.visual.action.EditProvider#edit(org.netbeans.api.visual - * .widget.Widget) - */ public void edit(Widget _widget) { - if (frame_ != null) - frame_.toFront(); + if (frame_ != null) frame_.toFront(); else { // final GrBoite gr = calquePanel_.getVueCalque().getViewBoite(); Rectangle rec = convertLocalToScene(getClientArea()); @@ -88,8 +88,7 @@ @Override public void windowClosed(WindowEvent _e) { - if (frame_ != null) - frame_.dispose(); + if (frame_ != null) frame_.dispose(); frame_ = null; } @@ -121,40 +120,35 @@ Rectangle rec = getClientArea(); Graphics2D g = getGraphics(); - - - + if (frame_ == null) { initSize(rec); + if (zoom_ != null) { + // image=null; + calquePanel_.getVueCalque().changeRepere(this, zoom_); + + } else calquePanel_.restaurer(); } - 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) { + FuLog.debug("EWI: recreate image"); Map params = new HashMap(); CtuluLibImage.setCompatibleImageAsked(params); // a ameliorer: il ne faudrait pas recreer l'image a chaque fois - - if(image==null) image = calquePanel_.produceImage(rec.width, rec.height, params); - - + } g.drawImage(image, rec.x, rec.y, rec.width, rec.height, null); } - - - public void setColorFond(Color newColor){ - couleurFond=newColor; - repaint(); + + public void setColorFond(Color newColor) { + couleurFond = newColor; + repaint(); } - - public Color getColorFond(){ - return couleurFond; + + public Color getColorFond() { + return couleurFond; } - + } Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/tree/EbliWidgetCellRendererBuilder.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/tree/EbliWidgetCellRendererBuilder.java 2008-08-14 19:08:56 UTC (rev 3806) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/tree/EbliWidgetCellRendererBuilder.java 2008-08-14 21:42:43 UTC (rev 3807) @@ -6,16 +6,21 @@ import javax.swing.Icon; import javax.swing.tree.TreeCellRenderer; -import org.fudaa.ebli.visuallibrary.EbliNodeDefault; +import org.fudaa.ctulu.CtuluLibString; import org.jdesktop.swingx.renderer.DefaultTreeRenderer; import org.jdesktop.swingx.renderer.IconValue; import org.jdesktop.swingx.renderer.StringValue; +/** + * @author deniger + * + */ +// TODO a am\xE9liorer public class EbliWidgetCellRendererBuilder { private static final class WidgetIconValue implements IconValue { public Icon getIcon(Object _value) { - EbliNodeDefault node = new EbliNodeDefault(); + // EbliNodeDefault node = new EbliNodeDefault(); Icon ic = new Icon() { public void paintIcon(Component _c, Graphics _g, int _x, int _y) { @@ -33,18 +38,16 @@ return 16; } }; - System.err.println("eee " + _value.getClass()); - // TODO Auto-generated method stub return ic; } } + @SuppressWarnings("serial") public static TreeCellRenderer getNodeIconCellRenderer() { return new DefaultTreeRenderer(new WidgetIconValue(), new StringValue() { public String getString(Object _value) { - // TODO Auto-generated method stub - return ""; + return CtuluLibString.EMPTY_STRING; } }); } Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/tree/EbliWidgetJXTreeTableModel.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/tree/EbliWidgetJXTreeTableModel.java 2008-08-14 19:08:56 UTC (rev 3806) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/tree/EbliWidgetJXTreeTableModel.java 2008-08-14 21:42:43 UTC (rev 3807) @@ -7,9 +7,11 @@ import javax.swing.Icon; import javax.swing.tree.TreePath; +import org.fudaa.ctulu.CtuluLibString; import org.fudaa.ebli.commun.EbliLib; import org.fudaa.ebli.visuallibrary.EbliNode; import org.fudaa.ebli.visuallibrary.EbliNodeListener; +import org.fudaa.ebli.visuallibrary.EbliScene; import org.jdesktop.swingx.treetable.DefaultMutableTreeTableNode; import org.jdesktop.swingx.treetable.DefaultTreeTableModel; import org.jdesktop.swingx.treetable.MutableTreeTableNode; @@ -22,448 +24,117 @@ * @author Adrien Hadoux * */ -public class EbliWidgetJXTreeTableModel extends DefaultTreeTableModel implements - EbliNodeListener { +public class EbliWidgetJXTreeTableModel extends DefaultTreeTableModel implements EbliNodeListener { - // -- le nombre de colonnes est statique --// - final static int NBCOLUMN = 3; + // -- le nombre de colonnes est statique --// + // final static int NBCOLUMN = 3; - /** - * titres des colonnes. - */ - public String[] title = { "", EbliLib.getS("Nom"), "V" }; + /** + * titres des colonnes. + */ + private static final String[] title = { "", EbliLib.getS("Nom"), "V" }; - /** - * Icones associees au treemodeltable. - */ - // public Icon iconLeafEnabled = - // CtuluResource.CTULU.getIcon("crystal22_previsualiser"); - // public Icon iconLeafDisabled = - // CtuluResource.CTULU.getIcon("crystal22_cacher"); - // public Icon iconSubDirectorie = - // CtuluResource.CTULU.getIcon("reouvrir_26"); - // public Icon iconRoot = CtuluResource.CTULU.getIcon("maison_32"); - // - // /** - // * composant graphique utiliser ppuor afficher l etat masquer/visible du - // * widget . - // */ - // public BuCheckBox chexBox_ = new BuCheckBox(); - // - // public BuLabel labelIcon = new BuLabel(); - // - // public BuLabel labelTexte = new BuLabel(); - /** - * scene dont le model est associe - */ - // public EbliScene scene_; - /** - * numero du layer - */ - // int numLayer; - // FIXME le model n'a pas a connaitre le JXTree - // JXTreeTable tree_; - // - // public JXTreeTable getTree() { - // return tree_; - // } - // - // public void setTree_(JXTreeTable tree) { - // this.tree_ = tree; - // } - // -- noeud aui se trouve au sommet --// - // FIXME deja donne par getNodeRoot - // DefaultMutableTreeTableNode nodeRoot_; - /** - * constructeur. - * - * @param numLayer - * @param scene_ - */ - public EbliWidgetJXTreeTableModel(DefaultMutableTreeTableNode nodeRoot/* - * , - * Widget - * parent - */) { - super(nodeRoot); - // this.numLayer = numLayer; - // this.scene_ = scene_; + final EbliScene scene_; - // --initialisation du node root --// - // nodeRoot_ = nodeRoot;// new - // DefaultMutableTreeTableNode("Layer "+numLayer); + /** + * constructeur. + * + * @param numLayer + * @param scene_ + */ + public EbliWidgetJXTreeTableModel(EbliScene _scene) { + super(EbliWidgetTreeTableNode.build(_scene)); + scene_ = _scene; + } - } + public EbliScene getScene() { + return scene_; + } - public void nodeAdded(EbliNode _node) { - refresh(); - } + public void nodeAdded(EbliNode _node) { + refresh(); + } - public void noderemoved(EbliNode _node) { - // refresh(); + public void nodeRemoved(EbliNode _node) { + MutableTreeTableNode aSuppr = findTreeTableNode(_node); - // -- modifs --// - DefaultMutableTreeTableNode Asuppr = null; - // -- recuperation des nodes --// - Enumeration<MutableTreeTableNode> liste = (Enumeration<MutableTreeTableNode>) getRoot().children(); + // -- suppression du node de ses parents + if (aSuppr != null) removeNodeFromParent(aSuppr); - while (liste.hasMoreElements() && Asuppr == null) { + // -- rafraichissement du modele --// + // modeleTree.reload(); + // reload(); - DefaultMutableTreeTableNode suspect = (DefaultMutableTreeTableNode) liste.nextElement(); + // setResizeColumn(); - // recuperation du node - EbliNode nodeSuspect = (EbliNode) suspect.getUserObject(); + } - if (nodeSuspect != null && nodeSuspect == _node) - Asuppr = suspect; + public MutableTreeTableNode findTreeTableNode(EbliNode _node) { + // -- recuperation des nodes --// + TreeTableNode parent = getRoot(); + Enumeration<? extends TreeTableNode> childrens = parent.children(); + while (childrens.hasMoreElements()) { + MutableTreeTableNode suspect = findTreeTableNode(_node, (MutableTreeTableNode) childrens.nextElement()); + if (suspect != null) return suspect; } + return null; + } - // -- suppression du node de ses parents - if (Asuppr != null) - removeNodeFromParent(Asuppr); + public MutableTreeTableNode findTreeTableNode(EbliNode _node, MutableTreeTableNode parent) { + if (parent.getUserObject() == _node) return parent; + Enumeration<? extends TreeTableNode> childrens = parent.children(); + while (childrens.hasMoreElements()) { + MutableTreeTableNode suspect = (MutableTreeTableNode) childrens.nextElement(); + if (suspect.getUserObject() == _node) return suspect; - // -- rafraichissement du modele --// - // modeleTree.reload(); - reload(); + } + return null; - // setResizeColumn(); - - - } + } - private void refresh() { - EbliWidgetTreeTableNode root = (EbliWidgetTreeTableNode) getRoot(); + private void refresh() { + EbliWidgetTreeTableNode root = (EbliWidgetTreeTableNode) getRoot(); - Enumeration<? extends MutableTreeTableNode> children = root.children(); - int childCount = root.getChildCount(); - List<TreeTableNode> res = new ArrayList(childCount); - for (int i = 0; i < childCount; i++) { - res.add(root.getChildAt(i)); - } - for (TreeTableNode treeTableNode : res) { - removeNodeFromParent((MutableTreeTableNode) treeTableNode); - } - EbliWidgetTreeTableNode.fillRoot(root); - modelSupport.fireNewRoot(); - } + Enumeration<? extends MutableTreeTableNode> children = root.children(); + int childCount = root.getChildCount(); + List<TreeTableNode> res = new ArrayList(childCount); + for (int i = 0; i < childCount; i++) { + res.add(root.getChildAt(i)); + } + for (TreeTableNode treeTableNode : res) { + removeNodeFromParent((MutableTreeTableNode) treeTableNode); + } + EbliWidgetTreeTableNode.fillRoot(root); + modelSupport.fireNewRoot(); + } - public Class<?> getColumnClass(int arg0) { - // TODO Auto-generated method stub - switch (arg0) { - case 0: - return Icon.class; - case 1: - return String.class; - case 2: - return Boolean.class; - default: - return null; - } + public Class<?> getColumnClass(int arg0) { + switch (arg0) { + case 0: + return Icon.class; + case 1: + return String.class; + case 2: + return Boolean.class; + default: + return null; + } - } + } - // - // public int getColumnCount() { - // return NBCOLUMN; - // } - // - public String getColumnName(int arg0) { - if (arg0 < NBCOLUMN) - return title[arg0]; - else - return ""; - } - // - // /** - // * recupere l objet correspondant: il s agit d un defaultMutableTreeNoce. - // */ - // public Object getValueAt(Object arg0, int column) { - // - // // -- recuperation du mutableTreenode qui contient le node de la scene - // --// - // DefaultMutableTreeTableNode nodeTree = (DefaultMutableTreeTableNode) - // arg0; - // return nodeTree.getUserObject(); - // // - // // // -- test si il s agit du node root --// - // // if (nodeTree == nodeRoot_) { - // // if (column == 0) { - // // labelIcon.setIcon(iconRoot); - // // return iconRoot;// labelIcon; - // // } else if (column == 1) { - // // - // // return "Layer " + numLayer; - // // } else { - // // // recherche si au moins un sous fils est affiche sinon retourne false - // // boolean auMoinsUnSousElementAffiche = false; - // // - // // Enumeration<MutableTreeTableNode> liste = - // // (Enumeration<MutableTreeTableNode>) nodeRoot_.children(); - // // while (liste.hasMoreElements() && !auMoinsUnSousElementAffiche) { - // // - // // // System.err.println( - // // // "je suis setValueAt(Object arg0, int column et value) )"+box); - // // DefaultMutableTreeTableNode modif = (DefaultMutableTreeTableNode) - // // liste.nextElement(); - // // - // // // -- si il existe au moins un sous fils qi est affiche alors on est - // // // ok --// - // // if (((Boolean) getValueAt(modif, 2)).booleanValue()) { - // // auMoinsUnSousElementAffiche = true; - // // } - // // - // // } - // // - // // return auMoinsUnSousElementAffiche; - // // } - // // } - // // // --recuperation du node de la scene --// - // // EbliNode node = (EbliNode) nodeTree.getUserObject(); - // // - // // // -- cas 1 recuperation de l icone --// - // // if (column == 0) { - // // if (node.hasWidget() && node.getCreator().getWidget().isVisible()) - // // labelIcon.setIcon(iconLeafEnabled); - // // else - // // labelIcon.setIcon(iconLeafDisabled); - // // - // // return iconLeafEnabled;// labelIcon; - // // - // // } else - // // // -- recuperation du title --// - // // if (column == 1) { - // // // labelTexte.setText(node.getTitle()); - // // return node.getTitle();// labelTexte; - // // - // // } else - // // // -- recuperation de la checkbox --// - // // if (column == 2) { - // // boolean coche; - // // System.err.println("je suis la checbox: wodget selectionee:" + - // // node.getCreator().getWidget().isVisible()); - // // if (node.hasWidget() && node.getCreator().getWidget().isVisible()) - // // // coche la checkbox - // // coche = true;// chexBox_.setSelected(true); - // // else - // // coche = false;// chexBox_.setSelected(false); - // // - // // return coche;// chexBox_; - // // } - // // - // // return null; - // } - // - // /** - // * seul le texte et la checkbox sont editables - // */ - // public boolean isCellEditable(Object arg0, int column) { - // // TODO Auto-generated method stub - // - // if (column == 0 || column >= NBCOLUMN) - // return false; - // else - // return true; - // } - // - // /** - // * placer une valeur - // */ - // - // public void setValueAt(Object value, Object nodeT, int column) { - // // TODO Auto-generated method stub - // - // // -- recuperation du mutableTreenode qui contient le node de la scene - // --// - // DefaultMutableTreeTableNode nodeTree = (DefaultMutableTreeTableNode) - // nodeT; - // - // // // -- on essaie de masquer tous les sous repertoires --// - // // if (nodeTree == nodeRoot_ && column == 2) { - // // - // // // si on coche sur la check, on fait tout disparaitre - // // // --recupeation de la checkBox --// - // // boolean box = ((Boolean) value).booleanValue(); - // // Enumeration<MutableTreeTableNode> liste = - // // (Enumeration<MutableTreeTableNode>) nodeRoot_.children(); - // // while (liste.hasMoreElements()) { - // // - // //System.err.println( - // "je suis setValueAt(Object arg0, int column et value) )" - // // + box); - // // DefaultMutableTreeTableNode modif = (DefaultMutableTreeTableNode) - // // liste.nextElement(); - // // - // // - // //((EbliNode)modif.getUserObject()).getCreator().getWidget().setVisible( - // // // box); - // // - // // // -- envoi du signal a tous les noeuds fils: reccurence sur le - // checkbox - // // // --// - // // setValueAt(value, modif, 2); - // // - // // } - // // - // // } - // // // -- si node tree = ROOT on arrete les frais --// - // // if (!nodeTree.isLeaf()) - // // return; - // // - // // // --recuperation du node de la scene --// - // // EbliNode node = (EbliNode) nodeTree.getUserObject(); - // // - // // // -- recuperation de la value en fonction de la colonne --// - // // if (column == 1) { - // // // --recuperation du nouveau nom --// - // // String newTitle = ((/* BuLabel */String) value);// .getText(); - // // node.setTitle(newTitle); - // // } else { - // // // --recupeation de la checkBox --// - // // boolean box = ((Boolean) value).booleanValue(); - // // - // // // -- affichage de la widget --// - // // node.getCreator().getWidget().setVisible(box); - // // - // // // -- rafraichissement de la scene --// - // // scene_.refresh(); - // // } - // // - // // // rafraichissement de l arbre - // // reload(); - // // - // // setResizeColumn(); - // - // } - // - // /** - // * Raffraichissement maison du jxtreetable - // */ - public void reload() { - - this.modelSupport.fireTreeStructureChanged(new TreePath(getPathToRoot(getRoot()))); + public String getColumnName(int arg0) { + if (arg0 < title.length) return title[arg0]; + return CtuluLibString.EMPTY_STRING; } - // - // /** - // * methode qui redimensionne les colonens du table. - // */ - // // public void setResizeColumn() { - // // if (tree_ == null) - // // return; - // // tree_.getColumn(0).setPreferredWidth(60); - // // tree_.getColumn(1).setPreferredWidth(50); - // // tree_.getColumn(2).setPreferredWidth(5); - // // - // // tree_.getColumn(0).setResizable(false); - // // tree_.getColumn(1).setResizable(false); - // // tree_.getColumn(2).setResizable(false); - // // tree_.validate(); - // // } - // /* - // * public void addTreeModelListener(TreeModelListener l) { // TODO - // * Auto-generated method stub - // * - // * } - // */ - // /* - // * public Object getChild(Object parent, int index) { // TODO - // Auto-generated - // * method stub DefaultMutableTreeTableNode nodeParent= - // * (DefaultMutableTreeTableNode) parent; - // * - // * return nodeParent.getChildAt(index); - // * - // * } - // * - // * public int getChildCount(Object parent) { // TODO Auto-generated method - // * stub DefaultMutableTreeTableNode nodeParent= - // (DefaultMutableTreeTableNode) - // * parent; return nodeParent.getChildCount(); } - // * - // * public int getIndexOfChild(Object parent, Object child) { // TODO - // * Auto-generated method stub DefaultMutableTreeTableNode nodeParent= - // * (DefaultMutableTreeTableNode) parent; - // * - // * return nodeParent.getIndex((TreeNode) child); } / public Object - // getRoot() - // { - // * // TODO Auto-generated method stub return nodeRoot_; } - // * - // * public boolean isLeaf(Object _node) { // TODO Auto-generated method - // stub - // * DefaultMutableTreeTableNode node= (DefaultMutableTreeTableNode) _node; - // * - // * return node.isLeaf(); } - // * - // * public void removeTreeModelListener(TreeModelListener l) { // TODO - // * Auto-generated method stub - // * - // * } - // * - // * public void valueForPathChanged(TreePath path, Object newValue) { // - // TODO - // * Auto-generated method stubSystem.err.println( - // * "je suis valueForPathChanged(TreePath path, Object newValue)"); } - // */ - // // -- utilisation de l interface node added - // public void nodeAdded(EbliNode node) { - // // TODO Auto-generated method stub - // - // System.err.println("je suis nodeAdded(EbliNode node)"); - // // -- ajout du nouveau node --// - // - // DefaultMutableTreeTableNode newNode = new - // DefaultMutableTreeTableNode(node); - // // nodeRoot_.add(newNode); - // - // // -- rafraichissement du modele --// - // - // // -- ajout du node dans le tree en fin de liste--// - // // insertNodeInto(newNode,nodeRoot_, nodeRoot_.getChildCount()); - // - // // -- ajout du node dans le tree en debut de liste--// - // insertNodeInto(newNode, (MutableTreeTableNode) getRoot(), 0); - // - // // setResizeColumn(); - // // scene_.refresh(); - // - // } - // - // /** - // * Methode appelee lorsau elel recoit un signal de suppression de node de - // la - // * scene. a pour effet de chercher le treetableNode associee et de le - // * supprimer du tree ainsi que mettre a jour l arbre. - // */ - // public void noderemoved(EbliNode node) { - // - // DefaultMutableTreeTableNode Asuppr = null; - // // -- recuperation des nodes --// - // Enumeration<MutableTreeTableNode> liste = - // (Enumeration<MutableTreeTableNode>) getRoot().children(); - // - // while (liste.hasMoreElements() && Asuppr == null) { - // - // DefaultMutableTreeTableNode suspect = (DefaultMutableTreeTableNode) - // liste.nextElement(); - // - // // recuperation du node - // EbliNode nodeSuspect = (EbliNode) suspect.getUserObject(); - // - // if (nodeSuspect != null && nodeSuspect == node) - // Asuppr = suspect; - // - // } - // - // // -- suppression du node de ses parents - // if (Asuppr != null) - // removeNodeFromParent(Asuppr); - // - // // -- rafraichissement du modele --// - // // modeleTree.reload(); - // reload(); - // - // // setResizeColumn(); - // } + // /** + // * Raffraichissement maison du jxtreetable + // */ + // private void reload() { + // + // this.modelSupport.fireTreeStructureChanged(new + // TreePath(getPathToRoot(getRoot()))); + // } + } Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/tree/EbliWidgetTreeTableNode.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/tree/EbliWidgetTreeTableNode.java 2008-08-14 19:08:56 UTC (rev 3806) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/tree/EbliWidgetTreeTableNode.java 2008-08-14 21:42:43 UTC (rev 3807) @@ -52,7 +52,6 @@ } public Object getValueAt(int _column) { - System.err.println("get at" + _column); if (root) return "root"; if (_column == 0) { Modified: branches/Prepro-0.92-SNAPSHOT/ebli/test/org/fudaa/ebli/all/TestGraphe2.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/test/org/fudaa/ebli/all/TestGraphe2.java 2008-08-14 19:08:56 UTC (rev 3806) +++ branches/Prepro-0.92-SNAPSHOT/ebli/test/org/fudaa/ebli/all/TestGraphe2.java 2008-08-14 21:42:43 UTC (rev 3807) @@ -323,7 +323,7 @@ f.setSize(new Dimension(1024, 768)); final BuPanel p = new BuPanel(); p.setLayout(new BuBorderLayout()); - EbliWidgetJXTreeTableModel tree = new EbliWidgetJXTreeTableModel(EbliWidgetTreeTableNode.build(scene)); + EbliWidgetJXTreeTableModel tree = new EbliWidgetJXTreeTableModel(scene); scene.addEbliNodeListener(tree); // FIXME: mettre tout cela dans la construction de EbliWidgetJXTree // EbliCheckBoxTreeRenderer renderer = new EbliCheckBoxTreeRenderer(); @@ -335,8 +335,8 @@ // tree.getColumn(2).setPreferredWidth(5); JXTreeTable view = new JXTreeTable(tree); - BConfigurePaletteAction action = new BConfigurePaletteAction(view.getTreeSelectionModel()){ - + BConfigurePaletteAction action = new BConfigurePaletteAction(view.getTreeSelectionModel()) { + protected Object getTarget(final TreeSelectionModel _m) { final TreePath[] p = _m.getSelectionPaths(); @@ -351,7 +351,7 @@ } return null; } - + }; view.setTreeCellRenderer(EbliWidgetCellRendererBuilder.getNodeIconCellRenderer()); p.add(new JScrollPane(view), BuBorderLayout.WEST); @@ -403,15 +403,13 @@ bar.add(new EbliActionSimple("undo", BuResource.BU.getToolIcon("defaire"), "UNDO") { @Override public void actionPerformed(ActionEvent _e) { - if (scene.getCmdMng().canUndo()) - scene.getCmdMng().undo(); + if (scene.getCmdMng().canUndo()) scene.getCmdMng().undo(); } }); bar.add(new EbliActionSimple("redo", BuResource.BU.getToolIcon("refaire"), "REDO") { @Override public void actionPerformed(ActionEvent _e) { - if (scene.getCmdMng().canRedo()) - scene.getCmdMng().redo(); + if (scene.getCmdMng().canRedo()) scene.getCmdMng().redo(); } }); bar.addSeparator(); Modified: 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/TrPostLayoutFille.java 2008-08-14 19:08:56 UTC (rev 3806) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostLayoutFille.java 2008-08-14 21:42:43 UTC (rev 3807) @@ -1,46 +1,27 @@ package org.fudaa.fudaa.tr.post; +import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.Point; -import java.awt.event.ActionEvent; +import javax.swing.JButton; +import javax.swing.JComponent; +import javax.swing.JMenu; +import javax.swing.JPanel; import javax.swing.JScrollPane; -import javax.swing.JToolBar; -import javax.swing.ListSelectionModel; import org.fudaa.ctulu.CtuluCommandManager; +import org.fudaa.ctulu.CtuluUndoRedoInterface; +import org.fudaa.ctulu.gui.CtuluFilleWithComponent; import org.fudaa.ebli.calque.ZEbliCalquesPanel; -import org.fudaa.ebli.commun.EbliActionSimple; -import org.fudaa.ebli.ressource.EbliResource; import org.fudaa.ebli.visuallibrary.EbliNode; -import org.fudaa.ebli.visuallibrary.EbliNodeDefault; import org.fudaa.ebli.visuallibrary.EbliScene; -import org.fudaa.ebli.visuallibrary.EbliWidgetCreatorFleche; -import org.fudaa.ebli.visuallibrary.EbliWidgetCreatorRectangleTexte; -import org.fudaa.ebli.visuallibrary.EbliWidgetCreatorShape; -import org.fudaa.ebli.visuallibrary.actions.EbliWidgetActionAlign; -import org.fudaa.ebli.visuallibrary.actions.EbliWidgetActionBackGround; -import org.fudaa.ebli.visuallibrary.actions.EbliWidgetActionColorBackground; -import org.fudaa.ebli.visuallibrary.actions.EbliWidgetActionColorForeground; -import org.fudaa.ebli.visuallibrary.actions.EbliWidgetActionConfigure; -import org.fudaa.ebli.visuallibrary.actions.EbliWidgetActionDuplicate; -import org.fudaa.ebli.visuallibrary.actions.EbliWidgetActionForeGround; -import org.fudaa.ebli.visuallibrary.calque.EbliWidgetCreatorVueCalque; -import org.fudaa.ebli.visuallibrary.creator.ShapeCreatorCircle; -import org.fudaa.ebli.visuallibrary.creator.ShapeCreatorEllipse; -import org.fudaa.ebli.visuallibrary.creator.ShapeCreatorFleche; -import org.fudaa.ebli.visuallibrary.creator.ShapeCreatorRectangle; -import org.fudaa.ebli.visuallibrary.tree.EbliJXTreeTableCellRenderer; -import org.fudaa.ebli.visuallibrary.tree.EbliWidgetJXTreeTableModel; -import org.fudaa.ebli.visuallibrary.tree.EbliWidgetTreeTableNode; +import org.fudaa.fudaa.tr.common.TrLib; import org.fudaa.fudaa.tr.common.TrResource; -import org.jdesktop.swingx.JXTreeTable; -import org.jdesktop.swingx.decorator.HighlighterFactory; +import org.jdesktop.swingx.JXCollapsiblePane; -import com.memoire.bu.BuBorderLayout; import com.memoire.bu.BuInternalFrame; -import com.memoire.bu.BuPanel; -import com.memoire.bu.BuResource; +import com.memoire.bu.BuUndoRedoInterface; /** * InternalFrame qui contient la scene EbliScene. @@ -48,9 +29,18 @@ * @author Adrien Hadoux * */ -public class TrPostLayoutFille extends BuInternalFrame { +public class TrPostLayoutFille extends BuInternalFrame implements CtuluFilleWithComponent, CtuluUndoRedoInterface, + BuUndoRedoInterface { /** + * @param _node + * @see org.fudaa.fudaa.tr.post.TrPostLayoutPanelController#addNode(org.fudaa.ebli.visuallibrary.EbliNode) + */ + public void addNode(EbliNode _node) { + controller_.addNode(_node); + } + + /** * */ private static final long serialVersionUID = -2769884291563880931L; @@ -58,288 +48,97 @@ /** * scene de l internalFrame. */ - final private EbliScene scene_; + // final private EbliScene scene_; + TrPostLayoutPanelController controller_; - /** - * Calque principal associ\xE9 a la vue layout. - */ - private ZEbliCalquesPanel calquePrincipal; + JComponent right; /** - * Model du Jxtree associe. - */ - // private EbliWidgetJXTreeModel modelTree_; - /** - * Tree associe a la scene. - */ - private JXTreeTable tree_; - - public int indiceLayer = 1; - - /** * Constructeur de la fenetre. */ public TrPostLayoutFille() { super(); - // TODO Auto-generated constructor stub setTitle(TrResource.getS("vue 2D")); // creation de la scene EBLI - scene_ = new EbliScene(); + controller_ = new TrPostLayoutPanelController(new EbliScene()); + setContentPane(controller_.getPanel()); + } - // -- construction du jtree - /* - * // etape 1 construction du model EbliWidgetJXTreeModel model = new - * EbliWidgetJXTreeModel(1); - * - * // etape 2 SUPER IMPORTANT: ajout du model comme listener de la scene - * scene_.addEbliNodeListener(model); - * - * // etape 3 creation du jxtree tree_ = new EbliWidgetJXTree(model); - * - * //renderer du jxtree EbliJXTreeTableCellRenderer renderer = new - * EbliJXTreeTableCellRenderer(); tree_.setCellRenderer(renderer); - * tree_.setCellEditor(new EbliCheckBoxNodeEditor(tree_)); - * tree_.setEditable(true); //tree_.setPreferredSize(new - * Dimension(300,600)); - */ + JMenu[] menus_; + JComponent[] tools_; - // -- construction du JXTABLETREE --// - // creation du node root--// - // DefaultMutableTreeTableNode nodeRoot=new - // DefaultMutableTreeTableNode("Layer "+indiceLayer); - // -- creation du tablemodel --// - EbliWidgetJXTreeTableModel modeltable = new EbliWidgetJXTreeTableModel(EbliWidgetTreeTableNode.build(scene_)); - - // -- ajout au listener de la scene--// - scene_.addEbliNodeListener(modeltable); - - // -- creation du JXtabletree --// - tree_ = new JXTreeTable(modeltable); - - // -- ajout du tree au model pour les dimensionnements --// - // modeltable.setTree_(tree_); - - // --vision du noeud root --// - tree_.setRootVisible(false); - - // --ajout du renderer pour les images-// - tree_.setTreeCellRenderer(new EbliJXTreeTableCellRenderer()); - - // -- ouvert par defaut --// - tree_.expandAll(); - - // -- ajout des highlighters customs --// - tree_.setHighlighters(HighlighterFactory.createSimpleStriping()); - tree_.setShowsRootHandles(true); - // -- selection unique --// - tree_.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); - tree_.setEditable(true); - - // --dimensions des colonnes --// - tree_.getColumn(0).setPreferredWidth(60); - tree_.getColumn(1).setPreferredWidth(50); - tree_.getColumn(2).setPreferredWidth(5); - // FIXME Adrien: si on edite du texte dans le jxtreetable els colonnes se - // redimensionnents - tree_.getColumn(0).setResizable(false); - tree_.getColumn(1).setResizable(false); - tree_.getColumn(2).setResizable(false); - tree_.validate(); - - // -- initialisation de la frame --// - init(); + @Override + public JMenu[] getSpecificMenus() { + if (menus_ == null) { + menus_ = new JMenu[] { controller_.createMenu() }; + } + return menus_; } - public ZEbliCalquesPanel getCalquePrincipal() { - return calquePrincipal; + @Override + public JComponent[] getSpecificTools() { + if (tools_ == null) { + tools_ = controller_.createSpecificComponent(getDesktopPane(), this); + } + return tools_; } - public void setCalquePrincipal(ZEbliCalquesPanel calquePrincipal) { - this.calquePrincipal = calquePrincipal; + public void clearCmd(final CtuluCommandManager _source) { + if (getCmdMng() != null && _source != getCmdMng()) { + getCmdMng().clean(); + } } - public EbliScene getScene_() { - return scene_; - } + public JComponent createComponent() { + if (right == null) { + right = new JPanel(new BorderLayout()); -// public EbliWidgetJXTreeModel getModelTree_() { -// return modelTree_; -// } -// -// public void setModelTree_(EbliWidgetJXTreeModel modelTree_) { -// this.modelTree_ = modelTree_; -// } - - public JXTreeTable getTree_() { - return tree_; + JXCollapsiblePane pane = new JXCollapsiblePane(); + JButton toggle = new JButton(pane.getActionMap().get(JXCollapsiblePane.TOGGLE_ACTION)); + toggle.setText("Overview"); + JPanel over = new JPanel(new BorderLayout()); + over.add(toggle, BorderLayout.NORTH); + over.add(pane, BorderLayout.CENTER); + pane.add(getScene().createSatelliteView()); + right.add(over, BorderLayout.NORTH); + right.add(new JScrollPane(controller_.createTree()), BorderLayout.CENTER); + } + return right; } - public void setTree_(JXTreeTable tree_) { - this.tree_ = tree_; + public ZEbliCalquesPanel getCalquePrincipal() { + return controller_.getCalquePrincipal(); } /** - * methode appelee pour l init de la construction de la internalframe + * @param _title + * @param _preferredLocation + * @param _preferedDimension + * @param _calque + * @return + * @see org.fudaa.fudaa.tr.post.TrPostLayoutPanelController#addCalque(java.lang.String, + * java.awt.Point, java.awt.Dimension, + * org.fudaa.ebli.calque.ZEbliCalquesPanel) */ - public void init() { - - // -- creation du conteneur de base qui contient tout --// - BuPanel content = new BuPanel(new BuBorderLayout()); - - // -- creation de la box sur le cote qui contient le tree et la sattelite - // view --// - // Box contentEast=Box.createVerticalBox(); - - this.add(content); - - this.setLayout(new BuBorderLayout()); - - // ajout de la scene au centre - content.add(new JScrollPane(scene_.createView()), BuBorderLayout.CENTER); - - // FIXME Adrien bug affichage du tree les noeuds sont renfonces sur eux - // ajout du jtree sur la droite - getTree_().setPreferredSize(new Dimension(200, 500)); - // contentEast.add(new BuScrollPane(getTree_())); - - // -- ajout de la vue sattelite dans la box --// - // contentEast.add(getScene_().createSatelliteView()); - - // -- ajout de la box dans le content --// - // content.add(contentEast,BuBorderLayout.EAST); - - // content.doLayout(); - // this.pack(); - this.setVisible(true); - - // -- construction de la barre des commandes de base --// - content.add(buildToolBar(), BuBorderLayout.NORTH); - + public EbliNode addCalque(String _title, Point _preferredLocation, Dimension _preferedDimension, + ZEbliCalquesPanel _calque) { + return controller_.addCalque(_title, _preferredLocation, _preferedDimension, _calque); } - /** - * Methode generique d ajout d un node widget a la scene. - * - * @param node - */ - public void addNode(EbliNode node) { - getScene_().addNode(node); - - // -- rafraichissement de la scene pour eviter les plantages --// - getScene_().refresh(); + public CtuluCommandManager getCmdMng() { + return getScene().getCmdMng(); } - /** - * Methode specialisee dans l ajout d un ndoe de type calque a la scene. - * - * @param title - * de la widget - * @param preferredLocation - * de la widget - * @param preferedDimension - * de la widget - * @param calque - * contenu de la widget - * @return le node cree - */ - public EbliNode addCalque(String title, Point preferredLocation, Dimension preferedDimension, ZEbliCalquesPanel calque) { - - // -- enregistrement du calque principal --// - if (calquePrincipal == null) - // -- alors le calque recupere sera considere comem le calque principal - // --// - setCalquePrincipal(calque); - - // on ajoute le calque sous forme d'un node - - // construction du node correspondant - final EbliNode nodeCalque = new EbliNodeDefault(); - nodeCalque.setTitle(title); - nodeCalque.setPreferedSize(preferedDimension);// new Dimension(400, 200) - nodeCalque.setPreferedLocation(preferredLocation);// new Point(250, 170) - nodeCalque.setCreator(new EbliWidgetCreatorVueCalque(calque)); - - // ajout du node au layout - addNode(nodeCalque); - - return nodeCalque; + public Class getComponentClass() { + return JPanel.class; } - /** - * Methode d ajout de composant de base graphique. - * - * @return - */ - public EbliNode addRectangleTexte() { - // -- ajout du rectangle --// - final EbliNodeDefault nodeRect = new EbliNodeDefault(); - nodeRect.setTitle("Rectangle texte"); - nodeRect.setCreator(new EbliWidgetCreatorRectangleTexte("Tapez votre texte ici")); - nodeRect.setPreferedSize(new Dimension(200, 100)); - nodeRect.setPreferedLocation(new Point(350, 125)); - // ajout du node au layout - addNode(nodeRect); - - return nodeRect; + public String getComponentTitle() { + return TrLib.getString("Layout"); } - - public EbliNode addEllipse() { - // -- ajout du rectangle --// - final EbliNodeDefault nodeEllipse = new EbliNodeDefault(); - nodeEllipse.setTitle("Ellipse"); - nodeEllipse.setCreator(new EbliWidgetCreatorShape(new ShapeCreatorEllipse())); - nodeEllipse.setPreferedSize(new Dimension(200, 100)); - nodeEllipse.setPreferedLocation(new Point(350, 125)); - // ajout du node au layout - addNode(nodeEllipse); - return nodeEllipse; - } - - public EbliNode addCercle() { - // -- ajout du rectangle --// - final EbliNodeDefault nodeCercle = new EbliNodeDefault(); - nodeCercle.setTitle("Cercle"); - nodeCercle.setCreator(new EbliWidgetCreatorShape(new ShapeCreatorCircle())); - nodeCercle.setPreferedSize(new Dimension(200, 100)); - nodeCercle.setPreferedLocation(new Point(350, 125)); - // ajout du node au layout - addNode(nodeCercle); - - return nodeCercle; - } - - - public EbliNode addRectangle() { - // -- ajout du rectangle --// - final EbliNodeDefault nodeCercle = new EbliNodeDefault(); - nodeCercle.setTitle("rectangle"); - nodeCercle.setCreator(new EbliWidgetCreatorShape(new ShapeCreatorRectangle())); - nodeCercle.setPreferedSize(new Dimension(200, 100)); - nodeCercle.setPreferedLocation(new Point(350, 125)); - // ajout du node au layout - addNode(nodeCercle); - - return nodeCercle; - } - - /** - * Methode d ajout de composant de base graphique. - * - * @return - */ - public EbliNode addFleche() { - // -- ajout du rectangle --// - final EbliNodeDefault nodeFleche = new EbliNodeDefault(); - nodeFleche.setTitle("Fleche"); - nodeFleche.setCreator(new EbliWidgetCreatorShape(new ShapeCreatorFleche())); - nodeFleche.setPreferedSize(new Dimension(100, 50)); - nodeFleche.setPreferedLocation(new Point(350, 125)); - - // ajout du node au layout - addNode(nodeFleche); - - return nodeFleche; + public EbliScene getScene() { + return controller_.getScene(); } /** @@ -352,118 +151,22 @@ return getCalquePrincipal(); } - /** - * Methode qui construit la toolbar contenant toutes les actions alignements, - * duplication et premier plan de la scene - * - * @return - */ - public JToolBar buildToolBar() { + public void majComponent(Object _o) {} - JToolBar bar = new JToolBar(); - // -- actions d etat des widgets --// - buildActions(bar); - - // -- action liees a la palette d objets graphiques --// - buildPaletteGraphique(bar); - - bar.setFloatable(false); - - return bar; + public void redo() { + final CtuluCommandManager c = getCmdMng(); + if (c != null) { + c.redo(); + } } - /** - * Ajoute les actions a la toolbar - */ - public void buildActions(JToolBar bar) { - // om met en place le undo/redo - scene_.setCmdMng(new CtuluCommandManager()); - bar.add(new EbliActionSimple("undo", BuResource.BU.getToolIcon("defaire"), "UNDO") { - @Override - public void actionPerformed(ActionEvent _e) { - if (scene_.getCmdMng().canUndo()) - scene_.getCmdMng().undo(); - } - }); + public void setActive(final boolean _b) {} - bar.add(new EbliActionSimple("redo", BuResource.BU.getToolIcon("refaire"), "REDO") { - @Override - public void actionPerformed(ActionEvent _e) { - if (scene_.getCmdMng().canRedo()) - scene_.getCmdMng().redo(); - } - }); - bar.addSeparator(); - // -- actions d alignement --// - bar.add(new EbliWidgetActionAlign.Left(scene_)); - bar.add(new EbliWidgetActionAlign.Right(scene_)); - bar.add(new EbliWidgetActionAlign.Middle(scene_)); - bar.add(new EbliWidgetActionAlign.Center(scene_)); - bar.add(new EbliWidgetActionAlign.Top(scene_)); - bar.add(new EbliWidgetActionAlign.Bottom(scene_)); - bar.addSeparator(); - // -- action de positions --// - bar.add(new EbliWidgetActionForeGround(scene_)); - bar.add(new EbliWidgetActionBackGround(scene_)); - bar.addSeparator(); - // -- action de duplication --// - bar.add(new EbliWidgetActionDuplicate(scene_)); - bar.addSeparator(); - - //-- Action sur le format --// - bar.add(new EbliWidgetActionColorForeground(scene_)); - bar.add(new EbliWidgetActionColorBackground(scene_)); - bar.add(new EbliWidgetActionConfigure(scene_)); - bar.addSeparator(); + public void undo() { + final CtuluCommandManager c = getCmdMng(); + if (c != null) { + c.undo(); + } } - /** - * Ajoute la palette graphique a la toolbar - */ - public void buildPaletteGraphique(JToolBar bar) { - bar.addSeparator(); - // -- palette rectangle texte--// - bar.add(new EbliActionSimple(EbliResource.EBLI.getString("Rectangle texte"), EbliResource.EBLI - .getToolIcon("draw-rectangle"), "WIDGETRECTANGLE") { - public void actionPerformed(ActionEvent _evt) { - addRectangleTexte(); - } - }); - // -- palette fleche --// - bar.add(new EbliActionSimple(EbliResource.EBLI.getString("Fleche"), EbliResource.EBLI - .getToolIcon("crystal_bu_link"), "WIDGETFLECHE") { - public void actionPerformed(ActionEvent _evt) { - addFleche(); - } - }); - //-- palette Ellipse --// - bar.add(new EbliActionSimple(EbliResource.EBLI.getString("Ellipse"), EbliResource.EBLI - .getToolIcon("ellip"), "WIDGETELLIPSE") { - public void actionPerformed(ActionEvent _evt) { - - addEllipse(); - } - }); - bar.add(new EbliActionSimple(EbliResource.EBLI.getString("Cercle"), EbliResource.EBLI - .getToolIcon("cerc"), "WIDGETCERCLE") { - public void actionPerformed(ActionEvent _evt) { - - addCercle(); - } - }); - bar.add(new EbliActionSimple(EbliResource.EBLI.getString("Rectangle"), EbliResource.EBLI - .getToolIcon("rect"), "WIDGETRECT") { - public void actionPerformed(ActionEvent _evt) { - - addRectangle(); - } - }); - - - - - bar.addSeparator(); - // getVisuPanel().getArbreCalqueModel().fillMenu(_m); - } - } Added: 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/TrPostLayoutPanelController.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostLayoutPanelController.java 2008-08-14 21:42:43 UTC (rev 3807) @@ -0,0 +1,371 @@ +package org.fudaa.fudaa.tr.post; + +import java.awt.Dimension; +import java.awt.Point; +import java.awt.event.ActionEvent; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +import javax.swing.JComponent; +import javax.swing.JDesktopPane; +import javax.swing.JMenu; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.ListSelectionModel; + +import org.fudaa.ctulu.CtuluCommandManager; +import org.fudaa.ebli.calque.ZEbliCalquesPanel; +import org.fudaa.ebli.commun.EbliActionAbstract; +import org.fudaa.ebli.commun.EbliActionInterface; +import org.fudaa.ebli.commun.EbliActionPaletteAbstract; +import org.fudaa.ebli.commun.EbliActionSimple; +import org.fudaa.ebli.commun.EbliComponentFactory; +import org.fudaa.ebli.commun.EbliLib; +import org.fudaa.ebli.ressource.EbliResource; +import org.fudaa.ebli.visuallibrary.EbliNode; +import org.fudaa.ebli.visuallibrary.EbliNodeDefault; +import org.fudaa.ebli.visuallibrary.EbliScene; +import org.fudaa.ebli.visuallibrary.EbliWidgetCreatorRectangleTexte; +import org.fudaa.ebli.visuallibrary.EbliWidgetCreatorShape; +import org.fudaa.ebli.visuallibrary.actions.EbliWidgetActionAlign; +import org.fudaa.ebli.visuallibrary.actions.EbliWidgetActionBackGround; +import org.fudaa.ebli.visuallibrary.actions.EbliWidgetActionColorBackground; +import org.fudaa.ebli.visuallibrary.actions.EbliWidgetActionColorForeground; +import org.fudaa.ebli.visuallibrary.actions.EbliWidgetActionConfigure; +import org.fudaa.ebli.visuallibrary.actions.EbliWidgetActionDuplicate; +import org.fudaa.ebli.visuallibrary.actions.EbliWidgetActionForeGround; +import org.fudaa.ebli.visuallibrary.calque.EbliWidgetCreatorVueCalque; +import org.fudaa.ebli.visuallibrary.creator.ShapeCreatorCircle; +import org.fudaa.ebli.visuallibrary.creator.ShapeCreatorEllipse; +import org.fudaa.ebli.visuallibrary.creator.ShapeCreatorFleche; +import org.fudaa.ebli.visuallibrary.creator.ShapeCreatorRectangle; +import org.fudaa.ebli.visuallibrary.tree.EbliJXTreeTableCellRenderer; +import org.fudaa.ebli.visuallibrary.tree.EbliWidgetJXTreeTableModel; +import org.jdesktop.swingx.JXTreeTable; +import org.jdesktop.swingx.decorator.HighlighterFactory; + +import com.memoire.bu.BuBorderLayout; +import com.memoire.bu.BuDesktop; +import com.memoire.bu.BuMenu; +import com.memoire.bu.BuPanel; +import com.memoire.bu.BuSeparator; + +public class TrPostLayoutPanelController { + + JPanel pn_; + EbliWidgetJXTreeTableModel treeModel_; + List<EbliActionAbstract> actions; + + /** + * Calque principal associ\xE9 a la vue layout. + */ + private ZEbliCalquesPanel calquePrincipal; + + TrPostLayoutPanelController(EbliScene _scene) { + treeModel_ = new EbliWidgetJXTreeTableModel(_scene); + _scene.addEbliNodeListener(treeModel_); + _scene.setCmdMng(new CtuluCommandManager()); + } + + /** + * Methode specialisee dans l ajout d un ndoe de type calque a la scene. + * + * @param title + * de la widget + ... [truncated message content] |