From: <had...@us...> - 2008-08-19 16:29:59
|
Revision: 3828 http://fudaa.svn.sourceforge.net/fudaa/?rev=3828&view=rev Author: hadouxad Date: 2008-08-19 16:30:04 +0000 (Tue, 19 Aug 2008) Log Message: ----------- - Duplication des Calques - Creation de la legende pour les calques via clic droit + "afficher legende" - Mise en place d usysteme de copier coller (trPostLayoutFille implements BuCutCopyPasteInterface) Bug que je n'arrive pas ?\195?\160 r?\195?\169soudre - duplication calques: les parametres variables ne sont pas enregistr?\195?\169s - duplication calques: les noeuds "resultats" et "vecteurs" sont dupliques et je n arrive pas a les supprimer - legende calque: error bizarre WIN32OSSD .... - Cut/copy/paste action pas prises en compte par trPostLayoutFille , peut etre du a EbliScene.... Modified Paths: -------------- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/calque/BGroupeCalque.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/calque/ZEbliCalquesPanel.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/actions/EbliWidgetEditCreator.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/EbliWidgetGraphe.java branches/Prepro-0.92-SNAPSHOT/ebli/test/org/fudaa/ebli/all/TestGraphe2.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/layer/MvVisuPanel.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/calque/EbliWidgetCalqueLegende.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetCreatorCalqueLegende.java branches/Prepro-0.92-SNAPSHOT/fudaa/bin/ Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/calque/BGroupeCalque.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/calque/BGroupeCalque.java 2008-08-19 03:47:18 UTC (rev 3827) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/calque/BGroupeCalque.java 2008-08-19 16:30:04 UTC (rev 3828) @@ -16,16 +16,15 @@ import java.util.Arrays; import java.util.List; -import com.memoire.fu.FuLog; - import org.fudaa.ctulu.CtuluLibString; - import org.fudaa.ebli.commun.EbliLib; import org.fudaa.ebli.controle.BConfigurableInterface; import org.fudaa.ebli.geometrie.GrBoite; import org.fudaa.ebli.geometrie.GrMorphisme; import org.fudaa.ebli.palette.BPaletteInfo.InfoData; +import com.memoire.fu.FuLog; + /** * Un groupe de calques. Cette classe joue un role structurant. C'est un noeud dans la hierarchie arborescente des * calques. @@ -266,4 +265,7 @@ } return r; } + + + } Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/calque/ZEbliCalquesPanel.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/calque/ZEbliCalquesPanel.java 2008-08-19 03:47:18 UTC (rev 3827) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/calque/ZEbliCalquesPanel.java 2008-08-19 16:30:04 UTC (rev 3828) @@ -23,26 +23,28 @@ import java.awt.print.Printable; import java.util.Map; -import javax.swing.*; +import javax.swing.Action; +import javax.swing.BorderFactory; +import javax.swing.ComboBoxModel; +import javax.swing.JComponent; +import javax.swing.JInternalFrame; +import javax.swing.JLabel; +import javax.swing.JList; +import javax.swing.JMenu; +import javax.swing.JPopupMenu; +import javax.swing.JTabbedPane; +import javax.swing.ListCellRenderer; +import javax.swing.SwingUtilities; import javax.swing.event.TreeModelEvent; import javax.swing.event.TreeModelListener; import javax.swing.tree.TreeModel; -import com.memoire.bu.BuBorderLayout; -import com.memoire.bu.BuDynamicMenu; -import com.memoire.bu.BuLabel; -import com.memoire.bu.BuLib; -import com.memoire.bu.BuMenu; -import com.memoire.bu.BuPanel; -import com.memoire.bu.BuPopupMenu; - import org.fudaa.ctulu.CtuluLibString; import org.fudaa.ctulu.CtuluUI; import org.fudaa.ctulu.gui.CtuluTreeComboboxModel; import org.fudaa.ctulu.gui.CtuluTreeComboboxRenderer; import org.fudaa.ctulu.image.CtuluImageProducer; import org.fudaa.ctulu.image.CtuluLibImage; - import org.fudaa.ebli.animation.EbliAnimationSourceAbstract; import org.fudaa.ebli.commun.EbliActionInterface; import org.fudaa.ebli.commun.EbliComponentFactory; @@ -55,6 +57,14 @@ import org.fudaa.ebli.impression.EbliPrinter; import org.fudaa.ebli.ressource.EbliResource; +import com.memoire.bu.BuBorderLayout; +import com.memoire.bu.BuDynamicMenu; +import com.memoire.bu.BuLabel; +import com.memoire.bu.BuLib; +import com.memoire.bu.BuMenu; +import com.memoire.bu.BuPanel; +import com.memoire.bu.BuPopupMenu; + /** * Fenetre d'affichage de calques contenant des services de base. (position souris, zoom fenetre, selection, * transformations spatiales). Il est possible d'ajouter des boutons grace aux methodes <code>addButtonGroup</code>. @@ -234,6 +244,11 @@ private BGroupeCalque gcDonnees_; + public void setGcDonnees_(BGroupeCalque gcDonnees_) { + + this.gcDonnees_ = gcDonnees_; + } + protected BuMenu contextTools_; protected BuLabel mode_; @@ -819,17 +834,34 @@ * @return le calque legende */ public final BCalqueLegende getCqLegend() { + if (getCqInfos() == null) + addCqInfos(); return (BCalqueLegende) getCqInfos().getCalqueParNom("cqLegende"); } protected void removeCalqueLegend() { - getCqInfos().remove(getCqLegend()); + getCqInfos().remove(getCqLegend()); + // getCqLegend().setVisible(false); } + + public void addCalqueLegend() { + getCqInfos().add(getCqLegend()); + getCqLegend().setVisible(true); + } public void setInfoPaletteActive() { - getController().setInfoPaletteActive(); + getController().setInfoPaletteActive(); + } + + + /** + * Methdoe a surhcarger puor le cas des widgets. + */ + public void addWidgetLegendeCalque() { + } + protected JMenu getMenuSelectionPath() { final BuMenu selection = new BuMenu(EbliLib.getS("S\xE9lection"), "SELECTION"); getController().addSelectionActionTo(selection); @@ -840,4 +872,23 @@ return selection; } + + public ZEbliCalquesPanel duplicate() { + /* + * ZEbliCalquesPanel duplic = new ZEbliCalquesPanel(new CtuluUIDefault()); + * + * // --pas besoin de duplication des groupes de calques --// + * duplic.gcDonnees_ = new BGroupeCalque(); + * + * // -- mais le contenu si --// BCalque[] contenuAdupliquer = + * this.getDonneesCalque().getCalques(); + * + * // -- ajout des calques dupliques un a un --// for (int i = 0; i < + * contenuAdupliquer.length; i++) { + * duplic.addCalque(contenuAdupliquer[i].duplicate()); } + */ + return null; + } + + } \ No newline at end of file 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-19 03:47:18 UTC (rev 3827) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliNodeDefault.java 2008-08-19 16:30:04 UTC (rev 3828) @@ -40,7 +40,12 @@ duplique .setCreator(new EbliWidgetCreatorGraphe(((EbliWidgetCreatorGraphe) getCreator()).getGraphe().duplicate())); } else if (creator instanceof EbliWidgetCreatorVueCalque) { - duplique.setCreator(new EbliWidgetCreatorVueCalque(((EbliWidgetCreatorVueCalque) getCreator()).getCalque())); + + + duplique.setCreator(new EbliWidgetCreatorVueCalque(((EbliWidgetCreatorVueCalque) getCreator()).getCalque() + .duplicate())); + + } else if (creator instanceof EbliWidgetCreatorShape) { duplique.setCreator(new EbliWidgetCreatorShape(((EbliWidgetCreatorShape) getCreator()).getTypeObject_())); } else if (creator instanceof EbliWidgetCreatorImage) { 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-19 03:47:18 UTC (rev 3827) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliScene.java 2008-08-19 16:30:04 UTC (rev 3828) @@ -262,5 +262,12 @@ public void setVisu_(LayerWidget visu_) { this.visu_ = visu_; } + + + + + + + } Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetEditCreator.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetEditCreator.java 2008-08-19 03:47:18 UTC (rev 3827) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetEditCreator.java 2008-08-19 16:30:04 UTC (rev 3828) @@ -86,6 +86,11 @@ } }); + + // -- cas particulier, on ajoute la legende --// + pn.addCalqueLegend(); + pn.repaint(); + return frame; } Added: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetCalqueLegende.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetCalqueLegende.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetCalqueLegende.java 2008-08-19 16:30:04 UTC (rev 3828) @@ -0,0 +1,45 @@ +package org.fudaa.ebli.visuallibrary.calque; + +import java.awt.Rectangle; + +import org.fudaa.ebli.calque.BCalqueLegendePanel; +import org.fudaa.ebli.visuallibrary.EbliScene; +import org.fudaa.ebli.visuallibrary.EbliWidget; +import org.netbeans.api.visual.layout.LayoutFactory.SerialAlignment; +import org.netbeans.api.visual.widget.ComponentWidget; +import org.netbeans.modules.visual.layout.FlowLayout; + +/** + * Classe de la l\xE9gende associ\xE9e au graphe. + * + * @author Adrien Hadoux + * + */ +public class EbliWidgetCalqueLegende extends EbliWidget { + + BCalqueLegendePanel calqueLegende_; + ComponentWidget intern_; + + public EbliWidgetCalqueLegende(EbliScene scene, BCalqueLegendePanel _calqueLegende) { + super(scene); + calqueLegende_ = _calqueLegende; + + setLayout(new FlowLayout(false, SerialAlignment.CENTER, 5)); + + + intern_ = new ComponentWidget(scene, _calqueLegende); + + + // intern_.setPreferredSize(preferredSize) + addChild(intern_); + + this.setPreferredBounds(new Rectangle(200, 200)); + + intern_.setPreferredBounds(new Rectangle(150, 150)); + + } + + + + +} Added: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetCreatorCalqueLegende.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetCreatorCalqueLegende.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetCreatorCalqueLegende.java 2008-08-19 16:30:04 UTC (rev 3828) @@ -0,0 +1,42 @@ +package org.fudaa.ebli.visuallibrary.calque; + +import java.awt.Dimension; + +import org.fudaa.ebli.calque.BCalqueLegendePanel; +import org.fudaa.ebli.visuallibrary.EbliScene; +import org.fudaa.ebli.visuallibrary.EbliWidget; +import org.fudaa.ebli.visuallibrary.EbliWidgetCreator; + +public class EbliWidgetCreatorCalqueLegende implements EbliWidgetCreator { + + BCalqueLegendePanel calque; + EbliWidgetCalqueLegende res; + + + public BCalqueLegendePanel getCalque() { + return calque; + } + + public void setCalque(BCalqueLegendePanel calque) { + this.calque = calque; + } + + + + public EbliWidgetCreatorCalqueLegende(BCalqueLegendePanel legende) { + super(); + this.calque = legende; + } + + public EbliWidget create(EbliScene _scene) { + res = new EbliWidgetCalqueLegende(_scene, calque); + res.setPreferredSize(new Dimension(200, 200)); + return res; + } + + public EbliWidget getWidget() { + // TODO Auto-generated method stub + return res; + } + +} Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetVueCalque.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetVueCalque.java 2008-08-19 03:47:18 UTC (rev 3827) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetVueCalque.java 2008-08-19 16:30:04 UTC (rev 3828) @@ -6,26 +6,30 @@ import java.awt.Point; import java.awt.Rectangle; import java.awt.Window; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.awt.image.BufferedImage; import java.util.HashMap; import java.util.Map; -import java.util.Observable; -import java.util.Observer; import javax.swing.JComponent; -import javax.swing.JFrame; +import javax.swing.JMenuItem; +import javax.swing.JPopupMenu; import javax.swing.SwingUtilities; +import org.fudaa.ctulu.CtuluResource; import org.fudaa.ctulu.image.CtuluLibImage; import org.fudaa.ebli.calque.BCalque; import org.fudaa.ebli.calque.ZEbliCalquesPanel; import org.fudaa.ebli.geometrie.GrBoite; +import org.fudaa.ebli.visuallibrary.EbliNodeDefault; import org.fudaa.ebli.visuallibrary.EbliScene; import org.fudaa.ebli.visuallibrary.EbliWidget; import org.netbeans.api.visual.action.ActionFactory; import org.netbeans.api.visual.action.EditProvider; +import org.netbeans.api.visual.action.PopupMenuProvider; import org.netbeans.api.visual.action.WidgetAction; import org.netbeans.api.visual.widget.Widget; @@ -38,13 +42,15 @@ * @author deniger * */ -public class EbliWidgetVueCalque extends EbliWidget implements EditProvider, Observer { +public class EbliWidgetVueCalque extends EbliWidget implements EditProvider { ZEbliCalquesPanel calquePanel_; public Color couleurContour = Color.black; public Color couleurFond = Color.white; + private EbliNodeDefault nodeLegende = null; + Window frame_; BufferedImage image; @@ -149,14 +155,80 @@ g.drawImage(image, rec.x, rec.y, rec.width, rec.height, null); } - public void setColorFond(Color newColor) { - couleurFond = newColor; - repaint(); + + /** + * Surcharge de la creation du menu de base en ajoutant les menus specifiques + */ + public void setMenu() { + getActions().addAction(ActionFactory.createPopupMenuAction(new PopupMenuProvider() { + public JPopupMenu getPopupMenu(Widget widget, Point localLocation) { + JPopupMenu popup = new JPopupMenu(); + + // -- creation du menu commun a tous les widgets + constructPopupMenuBase(popup); + + // -- Menu sp\xF6cifiques a l'application--// + constructPopupMenuSpecifique(popup); + return popup; + } + })); } + private void constructPopupMenuSpecifique(JPopupMenu _popup) { + JMenuItem menuItem = _popup.add("Ajouter la l\xE9gende"); + menuItem.setIcon(CtuluResource.CTULU.getIcon("crystal22_commentaire")); + menuItem.addActionListener(new ActionListener() { - public void update(Observable _o, Object _arg) { - image = null; - getEbliScene().refresh(); + public void actionPerformed(ActionEvent e) { + + // -- creation de la l\xE9gende --// + if (EbliWidgetVueCalque.this.getEbliScene() != null) { + + // position a cote de la widget graphe + Point nouvellePosition = new Point((int) (EbliWidgetVueCalque.this.getLocation().x), + (int) (EbliWidgetVueCalque.this.getLocation().y + EbliWidgetVueCalque.this.getBounds().height * 1.2)); + + + if (!EbliWidgetVueCalque.this.getEbliScene().isObject(nodeLegende)) { + + + nodeLegende = new EbliNodeDefault(); + // nodeLegende.setTitle("Legende calque"); + // + // if (calquePanel_.getCqLegend()==null) + //JOptionPane.showMessageDialog(null,"calquePqnel.getCqlegend null") + // ; + // nodeLegende.setCreator(new + // EbliWidgetCreatorCalqueLegende(calquePanel_.getCqLegend())); + // nodeLegende.setPreferedSize(new Dimension(200, 100)); + // nodeLegende.setPreferedLocation(new Point(350, 125)); + // // ajout du node au layout + // EbliWidgetVueCalque.this.getEbliScene().addNode(nodeLegende); + + // methode qui permet d ajouter une legemde + calquePanel_.addWidgetLegendeCalque(); + + + EbliWidgetVueCalque.this.getEbliScene().refresh(); + } + + // GrapheWidget.this.addChild(widgetLegende); + } + } + + }); + + } + + +// public void setColorFond(Color newColor) { + // couleurFond = newColor; + // repaint(); + // } + // + // public void update(Observable _o, Object _arg) { + // image = null; + // getEbliScene().refresh(); + // } } Modified: 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/EbliWidgetGraphe.java 2008-08-19 03:47:18 UTC (rev 3827) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/graphe/EbliWidgetGraphe.java 2008-08-19 16:30:04 UTC (rev 3828) @@ -27,7 +27,6 @@ import org.fudaa.ebli.visuallibrary.EbliNodeDefault; import org.fudaa.ebli.visuallibrary.EbliScene; import org.fudaa.ebli.visuallibrary.EbliWidget; -import org.fudaa.ebli.visuallibrary.actions.EbliWidgetEditCreator; import org.netbeans.api.visual.action.ActionFactory; import org.netbeans.api.visual.action.EditProvider; import org.netbeans.api.visual.action.PopupMenuProvider; @@ -173,7 +172,7 @@ //widgetLegende=WidgetLegendeManager.createLegende(EbliWidgetGraphe. // this.getGraphe(), // EbliWidgetGraphe.this.getScene_(),nouvellePosition); - + EbliWidgetGraphe.this.getEbliScene().refresh(); } // GrapheWidget.this.addChild(widgetLegende); 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-19 03:47:18 UTC (rev 3827) +++ branches/Prepro-0.92-SNAPSHOT/ebli/test/org/fudaa/ebli/all/TestGraphe2.java 2008-08-19 16:30:04 UTC (rev 3828) @@ -28,6 +28,7 @@ import org.fudaa.ctulu.CtuluUIDefault; import org.fudaa.ctulu.gui.CtuluLibSwing; import org.fudaa.ctulu.iterator.LogarithmicNumberIterator; +import org.fudaa.ebli.calque.BCalqueLegende; import org.fudaa.ebli.calque.BVueCalque; import org.fudaa.ebli.calque.ZCalqueLigneBrisee; import org.fudaa.ebli.calque.ZEbliCalquesPanel; @@ -272,14 +273,28 @@ nodeShape.setPreferedSize(new Dimension(100, 100)); nodeShape.setPreferedLocation(new Point(270, 225)); scene.addNode(nodeShape); - + scene.refresh(); + + nodeShape = new EbliNodeDefault(); nodeShape.setTitle("Shape Elipse"); nodeShape.setCreator(new EbliWidgetCreatorShape(new ShapeCreatorEllipse())); nodeShape.setPreferedSize(new Dimension(100, 100)); nodeShape.setPreferedLocation(new Point(290, 225)); scene.addNode(nodeShape); - + + scene.refresh(); + /* + * nodeLegende = new EbliNodeDefault(); + * nodeLegende.setTitle("Legende calque"); + * + * nodeLegende.setCreator(new EbliWidgetCreatorCalqueLegende(new + * BCalqueLegende().getLegendePanel(0))); nodeLegende.setPreferedSize(new + * Dimension(200, 100)); nodeLegende.setPreferedLocation(new Point(10, 10)); + * // ajout du node au scene.addNode(nodeLegende); + * + * scene.refresh(); + */ // node.getCreator().getWidget().setState(state) // if(node.getCreator().getWidget().) @@ -463,6 +478,9 @@ bar.add(actionFont.getSizeFonts()); + boxEast.add(new BCalqueLegende()); + + } } \ No newline at end of file Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/layer/MvVisuPanel.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/layer/MvVisuPanel.java 2008-08-19 03:47:18 UTC (rev 3827) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/meshviewer/layer/MvVisuPanel.java 2008-08-19 16:30:04 UTC (rev 3828) @@ -18,24 +18,17 @@ import javax.swing.JMenu; import javax.swing.JMenuItem; -import com.memoire.bu.BuDynamicMenu; -import com.memoire.bu.BuMenu; -import com.memoire.bu.BuPopupMenu; - import org.fudaa.ctulu.CtuluLib; import org.fudaa.ctulu.CtuluLibString; import org.fudaa.ctulu.gis.GISPolygone; import org.fudaa.ctulu.gui.CtuluDialog; import org.fudaa.ctulu.gui.CtuluDialogPanel; - import org.fudaa.dodico.ef.EfFrontierInterface; import org.fudaa.dodico.ef.EfGridInterface; import org.fudaa.dodico.ef.EfGridVolumeInterface; - import org.fudaa.ebli.calque.BGroupeCalque; import org.fudaa.ebli.calque.edition.ZCalqueEditionGroup; import org.fudaa.ebli.controle.BSelecteurReduitFonteNewVersion; - import org.fudaa.fudaa.commun.impl.FudaaCommonImplementation; import org.fudaa.fudaa.meshviewer.MvLayerGrid; import org.fudaa.fudaa.meshviewer.MvResource; @@ -54,6 +47,10 @@ import org.fudaa.fudaa.sig.layer.FSigVisuPanel; import org.fudaa.fudaa.sig.layer.FSigVisuPanelController; +import com.memoire.bu.BuDynamicMenu; +import com.memoire.bu.BuMenu; +import com.memoire.bu.BuPopupMenu; + /** * @author deniger * @version $Id: MvVisuPanel.java,v 1.5 2007-05-04 13:59:50 deniger Exp $ @@ -271,7 +268,7 @@ * * @param _g le maillage associe */ - public final void addCqInfos(final EfGridInterface _g) { + public void addCqInfos(final EfGridInterface _g) { if (getCqInfos() != null) { return; } 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-19 03:47:18 UTC (rev 3827) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostLayoutFille.java 2008-08-19 16:30:04 UTC (rev 3828) @@ -3,10 +3,13 @@ import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.Point; +import java.util.Iterator; +import java.util.Set; import javax.swing.JButton; import javax.swing.JComponent; import javax.swing.JMenu; +import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JScrollPane; @@ -20,6 +23,7 @@ import org.fudaa.fudaa.tr.common.TrResource; import org.jdesktop.swingx.JXCollapsiblePane; +import com.memoire.bu.BuCutCopyPasteInterface; import com.memoire.bu.BuInternalFrame; import com.memoire.bu.BuUndoRedoInterface; @@ -30,7 +34,7 @@ * */ public class TrPostLayoutFille extends BuInternalFrame implements CtuluFilleWithComponent, CtuluUndoRedoInterface, - BuUndoRedoInterface { + BuUndoRedoInterface, BuCutCopyPasteInterface { /** * @@ -58,7 +62,9 @@ // creation de la scene EBLI controller_ = new TrPostLayoutPanelController(new TrPostScene()); setContentPane(controller_.getPanel()); + } + /** * @param _title * @param _preferredLocation @@ -151,7 +157,8 @@ return getCalquePrincipal(); } - public void majComponent(Object _o) {} + public void majComponent(Object _o) { + } public void redo() { final CtuluCommandManager c = getCmdMng(); @@ -160,7 +167,8 @@ } } - public void setActive(final boolean _b) {} + public void setActive(final boolean _b) { + } public void undo() { final CtuluCommandManager c = getCmdMng(); @@ -169,4 +177,73 @@ } } + + // liste des noeuds copies + Set<EbliNode> nodesCopyied = null; + // liste des noeuuds coupes + Set<EbliNode> nodesCutted = null; + public void copy() { + + JOptionPane.showMessageDialog(null, "copy()"); + // on copie la widget selectionnee + // ie on fait une duplication partielle + // on ajoute pas tout de suite le noeud dans la scene + + + //--recuperation des noeuds a copier --// + nodesCopyied = (Set<EbliNode>) getScene().getSelectedObjects(); + + } + + public void cut() { + JOptionPane.showMessageDialog(null, "cut()"); + + // --recuperation des noeuds a copier --// + nodesCutted = (Set<EbliNode>) getScene().getSelectedObjects(); + + + // enlever les nodes de la scene + for (Iterator<EbliNode> it = nodesCutted.iterator(); it.hasNext();) { + EbliNode node = it.next(); + + // le node existe toujours apres l'avoir enleve + getScene().removeNode(node); + + + + } + + } + + public void duplicate() { + JOptionPane.showMessageDialog(null, "duplicate()"); + } + + public void paste() { + + //TODO a ameliorer : TENIR COMPTE DE LA POSITION DE LA SOURIS + + JOptionPane.showMessageDialog(null, "paste()"); + + // --recuperation des noeuds copies --// + if (nodesCopyied != null) { + + + for (Iterator<EbliNode> it = nodesCopyied.iterator(); it.hasNext();) { + EbliNode node = it.next(); + // --duplication du node --// + node.duplicate(null); + } + }else if (nodesCutted != null) { + + + for (Iterator<EbliNode> it = nodesCutted.iterator(); it.hasNext();) { + EbliNode node = it.next(); + // --ajout du node --// + getScene().addNode(node); + } + + } + } + } Modified: 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 2008-08-19 03:47:18 UTC (rev 3827) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostLayoutPanelController.java 2008-08-19 16:30:04 UTC (rev 3828) @@ -15,6 +15,7 @@ import javax.swing.ListSelectionModel; import org.fudaa.ctulu.CtuluCommandManager; +import org.fudaa.ebli.calque.BCalqueLegende; import org.fudaa.ebli.calque.ZEbliCalquesPanel; import org.fudaa.ebli.commun.EbliActionAbstract; import org.fudaa.ebli.commun.EbliActionInterface; @@ -38,7 +39,7 @@ import org.fudaa.ebli.visuallibrary.actions.EbliWidgetActionImageChooser; import org.fudaa.ebli.visuallibrary.actions.EbliWidgetActionRetaillageHorizontal; import org.fudaa.ebli.visuallibrary.actions.EbliWidgetActionRetaillageVertical; -import org.fudaa.ebli.visuallibrary.actions.EbliWidgetActiontextEditor; +import org.fudaa.ebli.visuallibrary.calque.EbliWidgetCreatorCalqueLegende; import org.fudaa.ebli.visuallibrary.calque.EbliWidgetCreatorVueCalque; import org.fudaa.ebli.visuallibrary.creator.ShapeCreatorCircle; import org.fudaa.ebli.visuallibrary.creator.ShapeCreatorEllipse; @@ -56,6 +57,7 @@ import com.memoire.bu.BuSeparator; public class TrPostLayoutPanelController { + JPanel pn_; EbliWidgetJXTreeTableModel treeModel_; @@ -102,9 +104,16 @@ nodeCalque.setPreferedLocation(preferredLocation);// new Point(250, 170) nodeCalque.setCreator(new EbliWidgetCreatorVueCalque(calque)); + + + + // ajout du node au layout addNode(nodeCalque); + + + return nodeCalque; } @@ -202,7 +211,27 @@ return nodeRect; } + + /** + * Methode d ajout d'un calque legende. + * @return + */ + public EbliNode addCalqueLegende(BCalqueLegende legende) { + // -- ajout du rectangle --// + final EbliNodeDefault nodeLegende = new EbliNodeDefault(); + nodeLegende.setTitle("Legende calque"); + nodeLegende.setCreator(new EbliWidgetCreatorCalqueLegende(legende.getLegendePanel(0))); + nodeLegende.setPreferedSize(new Dimension(200, 100)); + nodeLegende.setPreferedLocation(new Point(350, 125)); + // ajout du node au layout + addNode(nodeLegende); + getScene().refresh(); + + return nodeLegende; + } + + protected void addShapeActions(List<EbliActionAbstract> _l) { // -- palette rectangle texte--// _l.add(new EbliActionSimple(EbliResource.EBLI.getString("Rectangle texte"), EbliResource.EBLI Modified: 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/TrPostProjet.java 2008-08-19 03:47:18 UTC (rev 3827) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostProjet.java 2008-08-19 16:30:04 UTC (rev 3828) @@ -10,7 +10,6 @@ import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.Point; -import java.awt.Window; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.beans.PropertyVetoException; @@ -80,7 +79,6 @@ import org.fudaa.fudaa.meshviewer.layer.MvGridLayerGroup; import org.fudaa.fudaa.meshviewer.profile.MvProfileFillePanel; import org.fudaa.fudaa.meshviewer.profile.MvProfileTarget; -import org.fudaa.fudaa.meshviewer.profile.MvProfileTreeModel; import org.fudaa.fudaa.ressource.FudaaResource; import org.fudaa.fudaa.sig.FSigLib; import org.fudaa.fudaa.tr.common.TrFileFormatManager; @@ -297,6 +295,10 @@ public TrPostProjet(final TrPostSource _src, final TrPostCommonImplementation _impl) { this(_src); impl_ = _impl; + + + + } private void showError(final CtuluUI _ui, final File _dbFile, final String _err) { Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostVisuPanel.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostVisuPanel.java 2008-08-19 03:47:18 UTC (rev 3827) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostVisuPanel.java 2008-08-19 16:30:04 UTC (rev 3828) @@ -21,13 +21,14 @@ import org.fudaa.ctulu.CtuluResource; import org.fudaa.ctulu.CtuluUI; import org.fudaa.ctulu.gui.CtuluLibDialog; - +import org.fudaa.ctulu.gui.CtuluTaskOperationGUI; import org.fudaa.dodico.h2d.type.H2dVariableType; - import org.fudaa.ebli.animation.ActionAnimationTreeSelection; import org.fudaa.ebli.animation.EbliAnimatedInterface; import org.fudaa.ebli.animation.EbliAnimationSourceInterface; import org.fudaa.ebli.calque.BCalque; +import org.fudaa.ebli.calque.BCalqueLegende; +import org.fudaa.ebli.calque.BCalqueSaverInterface; import org.fudaa.ebli.calque.BGroupeCalque; import org.fudaa.ebli.calque.ZCalqueAffichageDonnees; import org.fudaa.ebli.calque.ZCalqueSondeInteraction; @@ -40,14 +41,12 @@ import org.fudaa.ebli.commun.EbliActionPaletteAbstract; import org.fudaa.ebli.commun.EbliActionSimple; import org.fudaa.ebli.commun.EbliLib; - import org.fudaa.fudaa.commun.impl.FudaaCommonImplementation; import org.fudaa.fudaa.meshviewer.MvSelectionNodeOrEltData; import org.fudaa.fudaa.meshviewer.export.MvExportFactory; import org.fudaa.fudaa.meshviewer.layer.MvFrontierLayerAbstract; import org.fudaa.fudaa.meshviewer.layer.MvGridLayerGroup; import org.fudaa.fudaa.meshviewer.profile.MvProfileAction; -import org.fudaa.fudaa.sig.layer.FSigVisuPanelController; import org.fudaa.fudaa.tr.common.Tr3DFactory; import org.fudaa.fudaa.tr.common.Tr3DInitialiser; import org.fudaa.fudaa.tr.common.TrLib; @@ -148,9 +147,67 @@ gc.putClientProperty(Action.SHORT_DESCRIPTION, TrResource.getS("Affichage des images de fond")); getArbreCalqueModel().setSelectionCalque(isoLayer_); //TODO Fred a enlever - removeCalqueLegend(); + // removeCalqueLegend(); + } + /** + * Methode qui ajoute une widget de legende de calque. + */ + public void addWidgetLegendeCalque() { + // JOptionPane.showMessageDialog(null, + // "addWidgetLegendeCalque de Trpostvisupanel"); + // recupetration de la widget legende + BCalqueLegende legend = getCqLegend(); + // -- ajout de la legende du calque dans la scene --// + this.getProjet().filleLayout_.controller_.addCalqueLegende(legend); + + // rafraichissement de la scene + this.getProjet().filleLayout_.controller_.getScene().refresh(); + + + } + + // BCalqueLegende malegende = new BCalqueLegende(); + // /** + // * Surcharge de la methode du ZebliCalquePanel Ajoute les calques + // * d'informations. + // * + // * Ajoute au format widget specialement pour prepro. + // */ + // protected BGroupeCalque addCqInfos() { + // + // // this.getProjet().filleLayout_.getScene() + // JOptionPane.showMessageDialog(null, "addCqInfo de Trpostvisupanel"); + // + // final BGroupeCalque gr = new BGroupeCalque(); + // gr.setName("gpInfo"); + // gr.setTitle(EbliLib.getS("infos")); + // final BCalqueLegende l = new BCalqueLegende(); + // l.setDestructible(false); + // l.setTitle(EbliLib.getS("L\xE9gende")); + // l.setName("cqLegende"); + // + // gr.add(malegende); + // + // // -- ajout de la legende du calque dans la scene --// + // this.getProjet().filleLayout_.controller_.addCalqueLegende(malegende); + // + // // vc_.getCalque().enPremier(gr); + // // on affiche pas la legende dans le groupe + // return gr; + // } + // + // /** + // * surhcarge de gectCqInfos afin de controller les calques envoyes. on + // envoie + // * plus de legende mais un calque vide. + // */ + // public BGroupeCalque getCqInfos() { + // + // return new BGroupeCalque(); + // } + protected EbliActionInterface addActionEvolutionFor(final boolean _rubar) { return new EvolutionAction(_rubar); } @@ -417,4 +474,63 @@ } MvExportFactory.startExport(fac, _impl, _selection); } + + /** + * duplication du trPostVisuPanel. surcharge de la duplication du + * zeblicalquePanel. + */ + public TrPostVisuPanel duplicate(){ + + final TrPostVisuPanel duplic = new TrPostVisuPanel(this.getImpl(), this.getProjet()); + // -- duplication du layer qui contient les memes proprietes --// + duplic.isoLayer_ = (TrIsoLayer) this.isoLayer_.duplicate(); + + + + // -- duplication des donnees via sauvegarde thread--// + new CtuluTaskOperationGUI(this.impl_, TrResource.getS("Enregistrement")) { + + public void act() { + + // -- sauvegarde de l etat --// + BCalqueSaverInterface savedData= getDonneesCalque().getPersistenceMng().save(getDonneesCalque(),impl_.createProgressionInterface(this)); + + // -- chargement de l etat dans le calque duplique --// + duplic.getDonneesCalque().getPersistenceMng().restore(savedData, duplic, duplic.getDonneesCalque(), + impl_.createProgressionInterface(this)); + + // -- destruction des calques doublons du duplic pour recuperer une + // bonne arborescence --// + + // BCalque[] liste = duplic.getDonneesCalque().getCalques(); + // for (int i = 0; i < liste.length; i++) { + // BCalque calque = liste[i]; + // boolean existeDeja = false; + // // --recherche si doublon --// + // for (int j = i + 1; j < liste.length; j++) { + // BCalque calque2 = liste[j]; + // if (calque == calque2) + // liste[j].setDestructible(true); + // // duplic.getDonneesCalque().detruire(liste[j]); + // duplic.detruireCalque(liste[j]); + // + // } + // + // } + + + } + }.start(); + + + + + + + + + return duplic; + } + + } \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |