From: <had...@us...> - 2008-09-03 18:39:29
|
Revision: 3878 http://fudaa.svn.sourceforge.net/fudaa/?rev=3878&view=rev Author: hadouxad Date: 2008-09-03 18:39:34 +0000 (Wed, 03 Sep 2008) Log Message: ----------- - g?\195?\169rer les multi scene - g?\195?\169rer les permutations de scene, ajout, suppression - r?\195?\169aliser un menu sp?\195?\169cifique a cot?\195?\169 de 'post' pour g?\195?\169rer la scene: contient un menuitem par liste puis a la fin les onglets d'ajout et suppression - g?\195?\169rer une combo de choix des scene:ajout?\195?\169 dans le panel de droite - creation des operations de bases: - ajout - suppression - changement de layout - possibilit?\195?\169 de creer des widget dans n importe quel layout - possibilit?\195?\169 de switcher de layout - gestion des menus des layout Modified Paths: -------------- 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 Removed Paths: ------------- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrpostComboMultiScenes.java 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-09-03 17:07:03 UTC (rev 3877) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostLayoutFille.java 2008-09-03 18:39:34 UTC (rev 3878) @@ -204,7 +204,7 @@ right.add(conteneurTree_, BorderLayout.CENTER); - + conteneurTree_.add(controller_.getComboMultiScenes(), BorderLayout.NORTH); if (controller_ != null) { Set<EbliNode> noeudContenus = (Set<EbliNode>) controller_.getSceneCourante().getObjects(); @@ -497,7 +497,7 @@ /** * Met a jour le tree a droite si ni un graphe ni un calque n est selectionn\xE9. */ - private synchronized void changeTreeScene() { + public synchronized void changeTreeScene() { conteneurTree_.remove(panelTreeModifiable_); panelTreeModifiable_ = new JScrollPane(getScene().getController().getOverviewComponent()); @@ -567,7 +567,7 @@ this.revalidate(); } - private synchronized void changeToolbarScene() { + public synchronized void changeToolbarScene() { // nettoyage de la toolbar this.remove(toolBarModifiable_); this.remove(menuModifiable_); 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-09-03 17:07:03 UTC (rev 3877) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostLayoutPanelController.java 2008-09-03 18:39:34 UTC (rev 3878) @@ -3,6 +3,7 @@ import java.awt.Dimension; import java.awt.Point; import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -14,6 +15,7 @@ import javax.swing.JScrollPane; import org.fudaa.ctulu.CtuluCommandManager; +import org.fudaa.ctulu.CtuluResource; import org.fudaa.ebli.calque.BCalqueLegende; import org.fudaa.ebli.calque.ZEbliCalquesPanel; import org.fudaa.ebli.commun.EbliActionAbstract; @@ -47,11 +49,17 @@ import org.fudaa.ebli.visuallibrary.creator.ShapeCreatorEllipse; import org.fudaa.ebli.visuallibrary.creator.ShapeCreatorFleche; import org.fudaa.ebli.visuallibrary.creator.ShapeCreatorRectangle; +import org.fudaa.fudaa.tr.common.TrResource; import com.memoire.bu.BuBorderLayout; import com.memoire.bu.BuComboBox; import com.memoire.bu.BuDesktop; +import com.memoire.bu.BuDialogConfirmation; +import com.memoire.bu.BuDialogError; +import com.memoire.bu.BuDialogMessage; import com.memoire.bu.BuMenu; +import com.memoire.bu.BuMenuBar; +import com.memoire.bu.BuMenuItem; import com.memoire.bu.BuPanel; import com.memoire.bu.BuResource; import com.memoire.bu.BuSeparator; @@ -62,7 +70,7 @@ * @author Adrien Hadoux * */ -public class TrPostLayoutPanelController { +public class TrPostLayoutPanelController implements ActionListener { JPanel pn_; @@ -76,13 +84,19 @@ /** * combobox qui gere le multiscene */ - BuComboBox comboMultiScenes_; + BuComboBox comboMultiScenes_ = new BuComboBox();; + + JScrollPane conteneurSceneView_; + /** * Liste qui contient l'ensemble des scenes. */ ArrayList<EbliScene> listeScenes_ = new ArrayList<EbliScene>(); + BuMenu menuScenes_ = new BuMenu(TrResource.getS("Liste des Layouts"), "LISTELAYOUT"); + ArrayList<BuMenuItem> listeMenusScenes_ = new ArrayList<BuMenuItem>(); + List<EbliActionAbstract> actions; TrPostProjet projet_; @@ -95,31 +109,82 @@ TrPostLayoutPanelController(EbliScene _scene, TrPostProjet _projet) { // treeModel_ = _scene.getTreeModel(); sceneCourante_ = _scene; - listeScenes_.add(_scene); + addScene(_scene); _scene.setCmdMng(new CtuluCommandManager()); projet_ = _projet; - comboMultiScenes_ = new BuComboBox(); + comboMultiScenes_.addActionListener(this); + construitMenuMultiScenes(_projet.impl_.getMainMenuBar()); + + } + public void construitMenuMultiScenes(BuMenuBar _bar) { + + // -- creation du menu principal des scenes a cote de post --// + BuMenu menu = new BuMenu(TrResource.getS("Layout"), "LAYOUTMANAGER"); + menu.addMenuItem(TrResource.getS(("Ajouter un layout")), "AJOUTLAYOUT", CtuluResource.CTULU + .getIcon("crystal_ajouter"), + this); + menu.addMenuItem(TrResource.getS(("Retirer un layout")), "RETIRELAYOUT", CtuluResource.CTULU + .getIcon("crystal_enlever"), this); + menu.addSeparator("Layouts"); + menu.addSubMenu(menuScenes_, true); + + // ajout a cote de menu post + _bar.add(menu, 3); + + } + public void addScene(EbliScene _scene){ listeScenes_.add(_scene); + + // -- ajout dans la combo --// + comboMultiScenes_.addItem("Layout " + listeScenes_.size()); + + // -- ajout dans le menu la scene --// + listeMenusScenes_.add(menuScenes_.addMenuItem(TrResource.getS(("Layout ")) + listeScenes_.size(), "LAYOUT" + + (listeScenes_.size() - 1), null, this)); + } public int getNbScene() { return listeScenes_.size(); } - public boolean removeScene(EbliScene _scene) { - return listeScenes_.remove(_scene); + public boolean removeScene(EbliScene _scene,int index) { + listeScenes_.remove(_scene); + + comboMultiScenes_.removeItemAt(index); + + menuScenes_.remove(listeMenusScenes_.get(index)); + menuScenes_.validate(); + listeMenusScenes_.remove(index); + + if (_scene == sceneCourante_) { + + sceneCourante_ = getScene(0); + } + + return true; } - public void changeScene(EbliScene _scene) { + /** + * Methode qui met a jour l affichage avec la nouvelle scene + * + * @param _scene + */ + public void changeScene(EbliScene _scene, int index) { sceneCourante_ = _scene; + + comboMultiScenes_.setSelectedIndex(index); + + majVue(); + } public EbliScene getScene(int i) { @@ -131,6 +196,10 @@ return sceneCourante_; } + public BuComboBox getComboMultiScenes() { + return comboMultiScenes_; + } + /** * Methode specialisee dans l ajout d un ndoe de type calque a la scene. * @@ -444,13 +513,19 @@ return actions; } + /** + * affichage de la scene. + * + * @return + */ public JPanel getPanel() { if (pn_ == null) { // -- creation du conteneur de base qui contient tout --// pn_ = new BuPanel(new BuBorderLayout()); // ajout de la scene au centre - pn_.add(new JScrollPane(getSceneCourante().createView()), BuBorderLayout.CENTER); + conteneurSceneView_ = new JScrollPane(getSceneCourante().createView()); + pn_.add(conteneurSceneView_, BuBorderLayout.CENTER); // // -- construction de la barre des commandes de base --// // content.add(buildToolBar(), BuBorderLayout.NORTH); @@ -458,6 +533,82 @@ return pn_; } + + /** + * methode qui met a jour la vue de la scene + */ + public void majVue() { + pn_.remove(conteneurSceneView_); + conteneurSceneView_ = new JScrollPane(getSceneCourante().createView()); + pn_.add(conteneurSceneView_, BuBorderLayout.CENTER); + conteneurSceneView_.revalidate(); + + pn_.revalidate(); + // -- met a jour les arbres et toolbar --// + projet_.filleLayout_.changeTreeScene(); + projet_.filleLayout_.changeToolbarScene(); + + + } + + + + public void actionPerformed(ActionEvent _e) { + + if(_e.getSource()==this.comboMultiScenes_){ + + //-- recuperation de la scene selectionnee --// + int indiceScene=comboMultiScenes_.getSelectedIndex(); + + //-- on change la scene --// + changeScene(getScene(indiceScene), indiceScene); + } else { + + final String commandeBrute = _e.getActionCommand(); + + if (commandeBrute.equals("AJOUTLAYOUT")) { + + // -- on ajoute une nouvelle scene + addScene(new EbliScene()); + + new BuDialogMessage(projet_.impl_.getApp(), projet_.impl_.getInformationsSoftware(), TrResource + .getS("Layout correctement ajout\xE9.")).activate(); + + } else if (commandeBrute.equals("RETIRELAYOUT")) { + + if (getNbScene() == 1) { + new BuDialogError(projet_.impl_.getApp(), projet_.impl_.getInformationsSoftware(), TrResource + .getS("Vous ne pouvez supprimer l'unique layout du projet.")).activate(); + return; + } + + int indiceScene = comboMultiScenes_.getSelectedIndex(); + + int confirmation = new BuDialogConfirmation( + projet_.impl_.getApp(), + projet_.impl_.getInformationsSoftware(), + TrResource.getS("\xCAtes-vous sur de vouloir retirer \n le layout ") + comboMultiScenes_.getSelectedItem() + " du projet?") + .activate(); + + if (confirmation == 0) { + removeScene(getScene(indiceScene), indiceScene); + } + + } else + + if (commandeBrute.startsWith("LAYOUT")) { + + //-- recuperation de l'indice --// + String number = commandeBrute.substring(commandeBrute.lastIndexOf('T') + 1); + int indiceScene = Integer.parseInt(number); + + // -- on change la scene --// + changeScene(getScene(indiceScene), indiceScene); + } + + } + } + } Deleted: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrpostComboMultiScenes.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrpostComboMultiScenes.java 2008-09-03 17:07:03 UTC (rev 3877) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrpostComboMultiScenes.java 2008-09-03 18:39:34 UTC (rev 3878) @@ -1,20 +0,0 @@ -package org.fudaa.fudaa.tr.post; - -import javax.swing.DefaultComboBoxModel; - -public class TrpostComboMultiScenes extends DefaultComboBoxModel { - - TrPostLayoutPanelController controller_; - - - public Object getElementAt(int _index) { - return controller_.getScene(_index); - } - - public int getSize() { - - return controller_.getNbScene(); - } - - -} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |