From: <had...@us...> - 2008-09-18 13:02:24
|
Revision: 3950 http://fudaa.svn.sourceforge.net/fudaa/?rev=3950&view=rev Author: hadouxad Date: 2008-09-18 20:02:30 +0000 (Thu, 18 Sep 2008) Log Message: ----------- - correction de la plupart des bugs restant de la fiche de retour de recette - modifs des copier/couper/coller duplicate et change de scene: fonctionne ok - correction bug mise a jour du tree du graphe. fonctionne ok - fonctionnalit?\195?\169 comparaison de projet g?\195?\169n?\195?\168re une widget qui contient le visupanel fusion Modified Paths: -------------- branches/Prepro-0.92-SNAPSHOT/ctulu/src/com/memoire/bu/BuDialogChoice.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/EbliWidgetActionDuplicate.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetControllerCalque.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/graphe/EbliWidgetControllerGraphe.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/common/tr_en.fr_txt branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostActionChangeSceneForWidget.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostActionChooseAndCreateCalque.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostActionFusionCalques.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 branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostSourceComparatorBuilder.java Modified: branches/Prepro-0.92-SNAPSHOT/ctulu/src/com/memoire/bu/BuDialogChoice.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ctulu/src/com/memoire/bu/BuDialogChoice.java 2008-09-17 20:01:07 UTC (rev 3949) +++ branches/Prepro-0.92-SNAPSHOT/ctulu/src/com/memoire/bu/BuDialogChoice.java 2008-09-18 20:02:30 UTC (rev 3950) @@ -27,6 +27,8 @@ protected BuButton btValider_; protected BuButton btAnnuler_; protected BuComboBox chValeur_; + + protected BuLabelMultiLine lbValeur_; protected BuLabelMultiLine lbCommentaire_; @@ -79,6 +81,10 @@ content_.add(pnb,BuBorderLayout.SOUTH); } + public BuComboBox getChValeur() { + return chValeur_; + } + public JComponent getComponent() { chValeur_=new BuComboBox(); 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-09-17 20:01:07 UTC (rev 3949) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliNodeDefault.java 2008-09-18 20:02:30 UTC (rev 3950) @@ -13,6 +13,8 @@ EbliWidget nodeWidget_; + + public String getTitle() { return title; } Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliScene.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliScene.java 2008-09-17 20:01:07 UTC (rev 3949) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliScene.java 2008-09-18 20:02:30 UTC (rev 3950) @@ -203,10 +203,12 @@ protected Widget attachNodeWidget(EbliNode node) { // -- creation de la widget ici --// - if (node.getWidget() == null) + // if (node.getWidget() == null) // -- on ne cree la widget que sis necessaire node.setWidget(node.getCreator().create(this)); - + // else + // node.getWidget().setScene(this); + // // -- remplissage des proprietes node.getWidget().setPreferredLocation(node.getPreferedLocation()); if (node.getPreferedSize() != null) node.getWidget().setPreferredSize(node.getPreferedSize()); Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetActionDuplicate.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetActionDuplicate.java 2008-09-17 20:01:07 UTC (rev 3949) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetActionDuplicate.java 2008-09-18 20:02:30 UTC (rev 3950) @@ -79,6 +79,8 @@ // -- ajout du node dans la scene --// sceneDestination_.addNode(node); + node.getWidget().getController().postActionDuplication(currentNode, node); + node.getWidget().getController().setDescription(currentNode.getWidget().getController().getDescription()); // -- ajout du noeud --// listeNouveauxNodes.add(node); Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetControllerCalque.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetControllerCalque.java 2008-09-17 20:01:07 UTC (rev 3949) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/calque/EbliWidgetControllerCalque.java 2008-09-18 20:02:30 UTC (rev 3950) @@ -353,7 +353,7 @@ // pour activer l'action chooserT.setSelected(true); combo = (BSelecteurListComboBox) chooserT.buildContentPane(); - chooserT.updateBeforeShow(); + chooserT.updateBeforeShow(); combo.setMaximumSize(combo.getPreferredSize()); combo.setMinimumSize(combo.getPreferredSize()); Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/graphe/EbliWidgetControllerGraphe.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/graphe/EbliWidgetControllerGraphe.java 2008-09-17 20:01:07 UTC (rev 3949) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/graphe/EbliWidgetControllerGraphe.java 2008-09-18 20:02:30 UTC (rev 3950) @@ -1,5 +1,6 @@ package org.fudaa.ebli.visuallibrary.graphe; +import java.awt.BorderLayout; import java.awt.Point; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; @@ -10,8 +11,8 @@ import javax.swing.JLabel; import javax.swing.JMenu; import javax.swing.JMenuItem; +import javax.swing.JPanel; import javax.swing.JPopupMenu; -import javax.swing.JScrollPane; import org.fudaa.ctulu.CtuluCommandContainer; import org.fudaa.ctulu.CtuluResource; @@ -57,7 +58,8 @@ BuMenuBar menuGraphe_ ; - JScrollPane panelTreeGraphe_ ; + // JScrollPane panelTreeGraphe_; + JPanel panelTreeGraphe_; BuToolBar toolbarGraphe_ ; @@ -71,7 +73,7 @@ widgetGraphe_ = widget_; labelTrace_ = (JLabel) CtuluLibSwing.findChildByName(getGraphePanel(), "lbTools"); - getGraphePanel().remove(labelTrace_); + // getGraphePanel().remove(labelTrace_); addActionSpecifiques(); } @@ -329,14 +331,27 @@ if (panelTreeGraphe_ == null) { - EGTree tree = new EGTree(); - tree.setExpandsSelectedPaths(true); + // EGTree tree = new EGTree(); + // tree.setExpandsSelectedPaths(true); + // tree.setActions(new EGSpecificActions(getGraphe())); + // EGGrapheTreeModel treeModel = (EGGrapheTreeModel) + // getGraphe().getModel(); + // tree.setModel(treeModel); + // tree.setSelectionModel(treeModel.getSelectionModel()); + // panelTreeGraphe_ = new JScrollPane(tree); + + + EGTree tree = new EGTree(); + // tree.setExpandsSelectedPaths(true); tree.setActions(new EGSpecificActions(getGraphe())); EGGrapheTreeModel treeModel = (EGGrapheTreeModel) getGraphe().getModel(); tree.setModel(treeModel); tree.setSelectionModel(treeModel.getSelectionModel()); - panelTreeGraphe_ = new JScrollPane(tree); + panelTreeGraphe_ = new JPanel(new BorderLayout()); + panelTreeGraphe_.add(tree); + + } return panelTreeGraphe_; Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostActionChangeSceneForWidget.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostActionChangeSceneForWidget.java 2008-09-17 20:01:07 UTC (rev 3949) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostActionChangeSceneForWidget.java 2008-09-18 20:02:30 UTC (rev 3950) @@ -6,7 +6,6 @@ import java.util.Set; import org.fudaa.ctulu.CtuluResource; -import org.fudaa.ctulu.gui.CtuluDialogPanel; import org.fudaa.ctulu.gui.CtuluLibSwing; import org.fudaa.ebli.ressource.EbliResource; import org.fudaa.ebli.visuallibrary.EbliNode; @@ -14,10 +13,7 @@ import org.fudaa.ebli.visuallibrary.actions.CommandeChangeWidgetScene; import org.fudaa.ebli.visuallibrary.actions.EbliWidgetActionSimple; import org.fudaa.fudaa.tr.common.TrLib; -import org.fudaa.fudaa.tr.common.TrResource; -import com.memoire.bu.BuDialogChoice; - /** * Creation de l action cahngement de sscene pruo le widget qui g\xE8re le multi-layout. Chooser qui demande la fille * layout puis autre chooser qui demande l'onglet. Si la fille est unique pas de chooser idem pour l onglet de la fille @@ -66,9 +62,17 @@ scene_.refresh(); + + String previousDescr = ""; + if (currentNode.getWidget() != null) + previousDescr = currentNode.getWidget().getController().getDescription(); + // -- ajout du node dans la scene destination --// sceneDestination.addNode(currentNode); + if (previousDescr != null) + currentNode.getWidget().getController().setDescription(previousDescr); + // -- rafraichissement de la scene --// sceneDestination.refresh(); Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostActionChooseAndCreateCalque.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostActionChooseAndCreateCalque.java 2008-09-17 20:01:07 UTC (rev 3949) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostActionChooseAndCreateCalque.java 2008-09-18 20:02:30 UTC (rev 3950) @@ -1,7 +1,6 @@ package org.fudaa.fudaa.tr.post; import java.awt.event.ActionEvent; -import java.util.Iterator; import org.fudaa.ebli.ressource.EbliResource; import org.fudaa.ebli.visuallibrary.EbliNode; @@ -9,8 +8,6 @@ import org.fudaa.ebli.visuallibrary.calque.CalqueLegendeWidgetAdapter; import org.fudaa.fudaa.tr.common.TrResource; -import com.memoire.bu.BuDialogChoice; -import com.memoire.bu.BuDialogError; import com.memoire.bu.BuResource; /** @@ -42,70 +39,27 @@ } - /** - * Methode qui formatte les donnees de la liste. - * - * @return - */ - String[] formattageDonnees() { - String[] listeSimul = new String[projet_.listeSrc_.size()]; - int cpt = 0; - for (Iterator<TrPostSource> it = projet_.listeSrc_.iterator(); it.hasNext();) { - - TrPostSource src = it.next(); - - - // --ajout dans la liste des titres --// - listeSimul[cpt++] = projet_.formatInfoSource(src); - } - - return listeSimul; - } + public void actionPerformed(ActionEvent _evt) { - - // -- recuperation de la liste des src sous forme de liste --// - String[] values = formattageDonnees(); - // -- ouverture du chooser --// - BuDialogChoice chooser = new BuDialogChoice(projet_.impl_.getApp(), projet_.impl_.getInformationsSoftware(), - TrResource.getS("Cr\xE9ation d'un calque"), TrResource.getS("S\xE9lectionnez le jeux de donn\xE9es "), values); - - int response = chooser.activate(); - - if (response == 0) { - - int indiceSOURCESelect = chooser.getSelectedIndex(); - - if (indiceSOURCESelect >= projet_.listeSrc_.size()) { - new BuDialogError(projet_.impl_.getApp(), projet_.impl_.getInformationsSoftware(), - TrResource - .getS("La source s\xE9lecionn\xE9e n'existe pas")).activate(); - return; - } - - - - - // -- TRES IMPORTANT: on cree le calque en precisant l indice de la SOURCE + TrPostSource srcChoisie = projet_.getChooserMultiSources(-1); + if (srcChoisie == null) { + projet_.impl_.error(TrResource.getS(TrResource.getS("Aucune source choisie"))); + return; + } + // -- TRES IMPORTANT: on cree le calque en precisant l indice de la SOURCE // SELECTIONNEE --// CalqueLegendeWidgetAdapter legendeCalque = new CalqueLegendeWidgetAdapter(getScene(), null); - TrPostVisuPanel pnVisu = new TrPostVisuPanel(projet_.getImpl(), projet_, legendeCalque, projet_ - .getSource(indiceSOURCESelect)); + TrPostVisuPanel pnVisu = new TrPostVisuPanel(projet_.getImpl(), projet_, legendeCalque, srcChoisie); EbliNode node = controller_.addCalque(TrResource.getS("Calque"), pnVisu.getLocation(), pnVisu .getPreferredSize(), pnVisu, legendeCalque); - - // -- ajout de l INFO de la source utilis\xE9e --// - node.getWidget().getController().setDescription("Source: " + values[indiceSOURCESelect]); - - - - - } - } + node.getWidget().getController().setDescription("Source: " + projet_.formatInfoSource(srcChoisie)); + } + } Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostActionFusionCalques.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostActionFusionCalques.java 2008-09-17 20:01:07 UTC (rev 3949) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostActionFusionCalques.java 2008-09-18 20:02:30 UTC (rev 3950) @@ -358,16 +358,13 @@ // -- remplisage combo --// remplirCombo(); - dialog_ = new BuDialogMessage(projet_.impl_.getApp(), projet_.impl_.getInformationsSoftware(), TrResource - .getS("Fusion avec un autre graphe ")); + dialog_ = new BuDialogMessage(projet_.impl_.getApp(), projet_.impl_.getInformationsSoftware(), TrResource.getS("Fusion avec un autre graphe ")); if (content_ == null) content_ = constructPanel(); - dialog_.setContentPane(content_); dialog_.setSize(400, 250); - dialog_.setModal(true); - + dialog_.setTitle(TrResource.getS("Fusion avec un autre graphe ")); // dialog_.setLocation(widgetGraphe_.getLocation()); dialog_.activate(); } 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-17 20:01:07 UTC (rev 3949) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostLayoutFille.java 2008-09-18 20:02:30 UTC (rev 3950) @@ -362,6 +362,8 @@ EbliNode nouveauNode = node.duplicate(null); getScene().addNode(nouveauNode); + + nouveauNode.getWidget().getController().setDescription(node.getWidget().getController().getDescription()); newNodes.add(nouveauNode); // -- duplication des map de property graphique de la widget --// node.getWidget().setPropGraphique(node.getWidget().duplicateGraphicalProperties()); @@ -388,8 +390,17 @@ for (Iterator<EbliNode> it = projet_.nodesCutted.iterator(); it.hasNext();) { EbliNode node = it.next(); // --ajout du node --// - + FuLog.warning("je dois cut/coller " + node.getTitle()); + + String previousDescr=""; + if(node.getWidget()!=null) + previousDescr = node.getWidget().getController().getDescription(); + getScene().addNode(node); + + if (previousDescr != null) + node.getWidget().getController().setDescription(previousDescr); + } // --creation de la commande undo/redo --// if (projet_.nodesCutted != null && projet_.nodesCutted.size() != 0) getScene().getCmdMng().addCmd( @@ -451,7 +462,7 @@ // -- etape 2: rechargement de la toolbar specifique dans this --// changeToolbar(node.getWidget().getController()); - setTitle(previousTitleFrame + " " + node.getWidget().getController().getDescription()); + setTitle(previousTitleFrame + " " + node.getWidget().getController().getDescription(), false); } else if (node.getCreator() instanceof EbliWidgetCreatorGraphe) { FuLog.warning("change tree GRAPHE"); // -- etape 1: ajout du tree dans fudaaImplementation --// @@ -461,7 +472,7 @@ changeToolbarSpecifiqueGraphe(node.getWidget().getController(), (EbliWidgetCreatorGraphe) node.getCreator()); - setTitle(previousTitleFrame + " " + node.getWidget().getController().getDescription()); + setTitle(previousTitleFrame + " " + node.getWidget().getController().getDescription(), false); } else { // -- etape 1: on fout eventuellement le tree des layouts --// changeTreeScene(); @@ -474,13 +485,23 @@ + boolean ecrasePrevious_=true; - @Override public void setTitle(String _title) { super.setTitle(_title); + if (ecrasePrevious_) previousTitleFrame = title; + else + ecrasePrevious_ = true; } + public void setTitle(String _title, boolean ecrasePrevious) { + ecrasePrevious_ = ecrasePrevious; + this.setTitle(_title); + + + } + public Dimension getDefaultImageDimension() { return getScene().getDefaultImageDimension(); } 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-09-17 20:01:07 UTC (rev 3949) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostProjet.java 2008-09-18 20:02:30 UTC (rev 3950) @@ -93,6 +93,7 @@ import com.db4o.ext.Db4oException; import com.memoire.bu.BuBorderLayout; import com.memoire.bu.BuButton; +import com.memoire.bu.BuDialogChoice; import com.memoire.bu.BuDialogMessage; import com.memoire.bu.BuGlassPaneStop; import com.memoire.bu.BuHorizontalLayout; @@ -262,7 +263,7 @@ } - + transient TrPostFille fille_; /** @@ -271,10 +272,10 @@ */ // protected transient TrPostLayoutFille filleLayout_; - + ArrayList<TrPostLayoutFille> listeFillesLayout = new ArrayList<TrPostLayoutFille>(); - + /** * liste des noeuds pour gerer le cut/copy/paste avec en + le undo/redo */ @@ -282,7 +283,7 @@ Set<EbliNode> nodesCopyied = null; // liste des noeuuds coupes Set<EbliNode> nodesCutted = null; - + /** *ajout une fillelayout a la liste des frame layout * @@ -290,7 +291,7 @@ */ public void addFillesLayout(TrPostLayoutFille _fille) { listeFillesLayout.add(_fille); - + // -- ajout dans le menu post d'un onglet de la fenetre --// // if (listeFillesLayout.size() > 1) { // //-- ajout du separator des filles layout --// @@ -319,24 +320,24 @@ // sinon retourne la premier frame return listeFillesLayout.get(0); } - - + + transient BuInternalFrame frVariables_; - + /** * internalframe qui gere les multiProjets */ public TrPostProjetsManagerFille filleProjetctManager_; - + /** * Le menu du post qui contient tout les sous menus des projets */ BuMenu menuPost_; BuMenu menuLayout_ = new BuMenu(TrResource.getS("Layout"), "LAYOUTMANAGER");; List<BuMenu> listeMenuProjets_; - + List<ArrayList<BuMenuItem>> listeSousMenuProjets_; - + /** * Observable custom reserv\xE9 aux modifs apport\xE9es a la liste des src. * @@ -352,25 +353,25 @@ this.setChanged(); super.notifyObservers(arg); } - + } - + private observableSupport observable; - + public observableSupport getObservable() { - if (observable == null) + if (observable == null) observable = new observableSupport(); - return observable; + return observable; } - + public void notifyObservers() { // getObservable().setChanged(); getObservable().notifyObservers(); } - - + + int idx_; transient int idxFilleG_; @@ -388,7 +389,7 @@ * liste des sources pour le multiProjet. */ transient ArrayList<TrPostSource> listeSrc_ = new ArrayList<TrPostSource>(); - + transient TimeContentUpdater timeUpdater_; /** @@ -397,18 +398,18 @@ public TrPostProjet(final TrPostSource _src) { src_ = _src; src_.addVariableListener(new VariableListener()); - + // -- ajout de la source de base dans la liste de sources --// ajouterSource(_src); - - + + // -- creation de la frame de gestion multi projet --// filleProjetctManager_ = new TrPostProjetsManagerFille(this); - - + + } - - + + public TrPostProjet(final TrPostSource _src, final TrPostCommonImplementation _impl) { this(_src); impl_ = _impl; @@ -422,22 +423,23 @@ * @param _src */ public void ajouterSource(TrPostSource _src) { - if (!isSourceLoaded(_src.getFile().getAbsolutePath())) { + + if (_src.getFile() == null || !isSourceLoaded(_src.getFile().getAbsolutePath())) { listeSrc_.add(_src); - - + + // -- ajout du menu correspondant uniquement a partir de la 2eme --// if (listeSrc_.size() > 1) - construitMenuPostSpecifiqueSource(_src); - + construitMenuPostSpecifiqueSource(_src); + } else { // -- messqge d erreur: le fichier est deja ouvert --// new BuDialogMessage(impl_.getApp(), impl_.getInformationsSoftware(), - "Le fichier.").activate(); + "Le fichier est deja ouvert.").activate(); } - + } /** @@ -455,13 +457,13 @@ if (src.getFile().getAbsolutePath().equals(_file)) return src; } - + return null; } - - - + + + /** * indique si il existe une source portant le nom du fichier en param. * @@ -475,7 +477,7 @@ return true; } - + /** * methode qui change la source courante et retourne true si la source existe * bien, false sinon @@ -490,8 +492,8 @@ return true; } - + /** * Methode de suppression de la source * @@ -500,42 +502,41 @@ * effectuee. */ public boolean removeSource(TrPostSource src, int n) { - + if (isSourceLoaded(src.getFile().getAbsolutePath())) { - listeSrc_.remove(src); - - // --recuperation du menu simul --// + listeSrc_.remove(src); + + // --recuperation du menu simul --// BuMenu menuSimul = listeMenuProjets_.get(n); - - // --on retire les menus correspondants --// + + // --on retire les menus correspondants --// for (int i = 0; i < listeSousMenuProjets_.get(n).size(); i++) { BuMenuItem item = listeSousMenuProjets_.get(n).get(i); menuSimul.remove(item); } - + // -- on retire le menuSimul de la liste --// menuPost_.remove(menuSimul); - + // -- on retire de la liste des menus le menusimul et la liste des sous // menus --// listeMenuProjets_.remove(n); listeSousMenuProjets_.remove(n); - + // -- mise a jour de la barre des menus --// impl_.getMainMenuBar().revalidate(); - - return true; + + return true; } else { // -- messqge d erreur: le fichier est deja ouvert --// new BuDialogMessage(impl_.getApp(), impl_.getInformationsSoftware(), - "Impossible de supprimer ce fichier de la liste.") - .activate(); + "Impossible de supprimer ce fichier de la liste.").activate(); return false; } - + } - + /** * methode qui formatte les infos de la source * @@ -546,8 +547,10 @@ // --ajout dans la liste des titres --// return formatName(_src.getTitle()) + " | Fichier: " + formatFichier(_src.getFile()); } - + public String formatFichier(File file) { + if (file == null) + return ""; String nomFichier = file.getAbsolutePath(); // int position = nomFichier.lastIndexOf(File.separator) + 1; // if (position != -1) { @@ -569,7 +572,7 @@ */ public String formatName(String title) { // --suppression des trop long espaces du titre --// - + title = title.replaceAll(" ", ""); return title; @@ -582,49 +585,56 @@ * @param _src */ public void construitMenuPostSpecifiqueSource(TrPostSource _src){ - + BuMenu menuSimul = new BuMenu((listeSrc_.size()) + ". " + formatFichier(_src.getFile()), "SIMULATION" + (listeSrc_.size())); - + // -- ajout du menu au menu post --// menuPost_.add(menuSimul); - + // -- sauvegarde d une trace du menu dans la liste pour une suppression // ulterieure --// listeMenuProjets_.add(menuSimul); - + ArrayList<BuMenuItem> listSousMenus = new ArrayList<BuMenuItem>(); - - final BuIcon ic = BuResource.BU.getIcon("aucun"); - - listSousMenus.add(menuSimul.addMenuItem(TrResource.getS("Extrema..."), "COMPUTE_EXTREMA", ic, TrPostProjet.this)); - listSousMenus.add(menuSimul.addMenuItem(CtuluLib.getS("Editer les variables..."), "VARIABLES", ic, TrPostProjet.this)); - menuSimul.addSeparator(); - listSousMenus.add( menuSimul.addMenuItem(TrResource.getS("Palettes de couleurs"), "PALETTE_DEFAULT", ic, TrPostProjet.this)); - listSousMenus.add( menuSimul.addMenuItem(TrResource.getS("Formater/modifier les pas de temps..."), "TIME_FORMAT", ic, + + final BuIcon ic = BuResource.BU.getIcon("aucun"); + + listSousMenus.add(menuSimul.addMenuItem(TrResource.getS("Extrema..."), "COMPUTE_EXTREMA", ic, TrPostProjet.this)); + listSousMenus.add(menuSimul.addMenuItem(CtuluLib.getS("Editer les variables..."), "VARIABLES", ic, TrPostProjet.this)); - menuSimul.addSeparator(); + listSousMenus.add(menuSimul.addMenuItem(TrResource.getS("Palettes de couleurs"), "PALETTE_DEFAULT", ic, + TrPostProjet.this)); + listSousMenus.add(menuSimul.addMenuItem(TrResource.getS("Formater/modifier les pas de temps..."), "TIME_FORMAT", + ic, + TrPostProjet.this)); + + menuSimul.addSeparator(); listSousMenus.add( menuSimul.addMenuItem(TrResource.getS("Comparer..."), "COMPARE", ic, TrPostProjet.this)); listSousMenus.get(listSousMenus.size()-1).setToolTipText(TrResource.getS("Comparer les r\xE9sultats avec ceux d'un autre projet")); listSousMenus.add(menuSimul.addMenuItem(TrResource.getS("Projeter..."), "PROJECT", ic, TrPostProjet.this)); listSousMenus.get(listSousMenus.size()-1).setToolTipText(TrResource.getS("Projeter les r\xE9sultats sur un maillage diff\xE9rent")); - if (src_ != null && src_.isInspectable()) { - menuSimul.addSeparator(); - listSousMenus.add( menuSimul.addMenuItem(TrResource.getS("Rafra\xEEchir les r\xE9sultats"), "MAJ_DATA", ic, TrPostProjet.this)); - listSousMenus.get(listSousMenus.size()-1).setToolTipText(TrResource.getS("Les fichiers de r\xE9sultats seront relus")); - listSousMenus.add(menuSimul.addMenuItem(TrResource.getS("Rafra\xEEchir automatiquement"), "MAJ_DATA_ALWAYS", ic, TrPostProjet.this)); - listSousMenus.get(listSousMenus.size()-1).setToolTipText(TrResource.getS("Les fichiers sont surveill\xE9s p\xE9riodiquement")); - menuSimul.addSeparator(); - listSousMenus.add(menuSimul.addMenuItem(TrResource.getS("Exporter"), "EXPORTDATA", TrPostProjet.this)); - - // -- ajout de la sous liste de menus pour la garder en memoire --// + if (src_ != null && src_.isInspectable()) { + menuSimul.addSeparator(); + listSousMenus.add(menuSimul.addMenuItem(TrResource.getS("Rafra\xEEchir les r\xE9sultats"), "MAJ_DATA", ic, + TrPostProjet.this)); + listSousMenus.get(listSousMenus.size() - 1).setToolTipText( + TrResource.getS("Les fichiers de r\xE9sultats seront relus")); + listSousMenus.add(menuSimul.addMenuItem(TrResource.getS("Rafra\xEEchir automatiquement"), "MAJ_DATA_ALWAYS", ic, + TrPostProjet.this)); + listSousMenus.get(listSousMenus.size() - 1).setToolTipText( + TrResource.getS("Les fichiers sont surveill\xE9s p\xE9riodiquement")); + menuSimul.addSeparator(); + listSousMenus.add(menuSimul.addMenuItem(TrResource.getS("Exporter"), "EXPORTDATA", TrPostProjet.this)); + + // -- ajout de la sous liste de menus pour la garder en memoire --// listeSousMenuProjets_.add(listSousMenus); - -} + + } } - - + + /** * Construit le menu Layout. Cette methode doit etre appelee une seule fois */ @@ -632,10 +642,10 @@ //filleLayout_.controller_.construitMenuMultiScenes(impl_.getMainMenuBar()); final BuMenuBar menubar = impl_.getMainMenuBar(); // -- creation du menu principal des scenes a cote de post --// - + menuLayout_.addMenuItem(TrResource.getS(("Ajouter une nouvelle fen\xEAtre")), "AJOUTFRAME", CtuluResource.CTULU .getIcon("crystal_ajouter"), getSelectedFilleLayout().controller_); - /* + /* * * menu.addMenuItem(TrResource.getS(("Ajouter un layout dans la vue")), * "AJOUTLAYOUT", CtuluResource.CTULU .getIcon("crystal_ajouter"), @@ -651,70 +661,68 @@ // listeFillesLayout.size(), "FILLELAYOUT" // + (listeFillesLayout.size() - 1), null, this); // - + menubar.add(menuLayout_, 2); - + } - + /** * Creation par defaut du menu post de l interface. Cette methdoe est appelee * une seule dfois au moment de la creation de l impl. */ public void setMenuPost() { final BuMenuBar menubar = impl_.getMainMenuBar(); - - - menuPost_ = new BuMenu(TrResource.getS("Post"), "POST"); - menuPost_.setIcon(null); - menuPost_.setName("mnPost"); - - addSpecificItemInMainMenu(menuPost_); - menubar.add(menuPost_, 2); - - - //-- ajout de l action de gestion des simus dans post --// - BuMenuItem item=new BuMenuItem("Gestion Multi-projets"); - item.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - // -- affichage de la fenetre de gestion multi projet --// + menuPost_ = new BuMenu(TrResource.getS("Post"), "POST"); + menuPost_.setIcon(null); + menuPost_.setName("mnPost"); + + addSpecificItemInMainMenu(menuPost_); + menubar.add(menuPost_, 2); + + // -- ajout de l action de gestion des simus dans post --// + BuMenuItem item = new BuMenuItem("Gestion Multi-projets"); + item.addActionListener(new ActionListener() { + + public void actionPerformed(ActionEvent e) { + // -- affichage de la fenetre de gestion multi projet --// + if (!filleProjetctManager_.isVisible()) { filleProjetctManager_.setSize(filleProjetctManager_.getSize().width, filleProjetctManager_.getSize().height / 2); - - impl_.addInternalFrame(filleProjetctManager_); - } - - - } - }); - - menuPost_.add(item); - menuPost_.addSeparator(TrResource.getS("Vue 2D")); - //-- ajout de l action de creation du calque --// + impl_.addInternalFrame(filleProjetctManager_); + } + + } + + }); + + menuPost_.add(item); + menuPost_.addSeparator(TrResource.getS("Vue 2D")); + // -- ajout de l action de creation du calque --// // menuPost_.add(new TrPostActionChooseAndCreateCalque(this)); - menuPost_.addMenuItem(TrResource.getS("Vue 2D"), "VIEW_2D", BuResource.BU.getIcon("aucun"), TrPostProjet.this); - menuPost_.addSeparator("Liste des projets"); - // -- init de la liste des menus --// + menuPost_.addMenuItem(TrResource.getS("Vue 2D"), "VIEW_2D", BuResource.BU.getIcon("aucun"), TrPostProjet.this); + menuPost_.addSeparator("Liste des projets"); + // -- init de la liste des menus --// listeMenuProjets_ = new ArrayList<BuMenu>(); - - + + listeSousMenuProjets_ = new ArrayList<ArrayList<BuMenuItem>>(); - // -- construction par defaut du premier menu de simulation --// + // -- construction par defaut du premier menu de simulation --// construitMenuPostSpecifiqueSource(getSource(0)); - - + + } - - + + private void showError(final CtuluUI _ui, final File _dbFile, final String _err) { String mess = TrResource.getS("Les sauvegardes ne seront pas effectu\xE9es") - + CtuluLibString.LINE_SEP + + CtuluLibString.LINE_SEP + TrResource.getS("Le fichier de sauvegarde {0} n'est pas accessible:", (_dbFile == null ? "?" : _dbFile .getName())) + (_err == null ? CtuluLibString.EMPTY_STRING : (CtuluLibString.LINE_SEP + _err)); _ui.warn(FudaaSaveLib.getActionSaveTitle(), mess, false); @@ -937,7 +945,7 @@ // trPostProjet.fille_ = compFille; // trPostProjet.filleLayout_ = compFille; addFillesLayout(compFille); - + BuLib.invokeLater(new Runnable() { public void run() { @@ -993,7 +1001,7 @@ // Pour EDF: ajout directement dans la scene du graphe sans passe par une // frame d edition addEbliNode(new EGFillePanel(graphe), calque); - + } /** @@ -1007,23 +1015,23 @@ nodeG.setCreator(new EbliWidgetCreatorGraphe(pn)); nodeG.setTitle("Graphe " + idxFilleG_++); nodeG.setPreferedSize(new Dimension(600, 400)); - + nodeG.setPreferedLocation(new Point(20, 20)); BuLib.invokeLater(new Runnable() { public void run() { - + // Ajout du node dans la scene getSelectedFilleLayout().addNode(nodeG); pn.getGraphe().restore(); - + nodeG.getWidget().getController().setDescription(formatInfoSource(calque.getSourceCalque())); - + } }); - - + + getSelectedFilleLayout().getScene().refresh(); } @@ -1048,28 +1056,28 @@ * Methode qui parametre la frame layout ainsi que le menu associe. */ protected void decoreFilleVisu() { - + // -- realisation idem pour fillelayout --// getSelectedFilleLayout().setFrameIcon(EbliResource.EBLI.getToolIcon("lissage")); - + getSelectedFilleLayout().setClosable(true); getSelectedFilleLayout().setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); - // -- creation du menu POST de base --// + // -- creation du menu POST de base --// setMenuPost(); - + // -- a decommenter pour activer les menus des fillelayout setMenuLayout(); - + } protected Runnable getRunnableForVisu(final Runnable _other) { return new Runnable() { public void run() { - + // -- ajout de la frame layout impl_.addInternalFrame(getSelectedFilleLayout()); @@ -1119,71 +1127,73 @@ if ("VIEW_2D".equals(commandeBrute) ) { activeFille(getSelectedFilleLayout()); return; - } else if (commandeBrute.startsWith("FILLELAYOUT")) { - FuLog.warning("OKAAAAAAAAYYYYYYYYYy"); + } else if (commandeBrute.startsWith("FILLELAYOUT")) { + // -- recuperation de l'indice --// String number = commandeBrute.substring(commandeBrute.lastIndexOf('T') + 1); int indiceFenetre = Integer.parseInt(number); // -- ajout de la fenetre correspondante --// // addFillesLayout(listeFillesLayout.get(indiceFenetre)); activeFille(listeFillesLayout.get(indiceFenetre)); - return; + return; } - else { - // -- gestion des actions en fonction de la simul choisie --// - int indiceSimulation = 0; - - for (int i = 0; i < listeSousMenuProjets_.size(); i++) { + else { + // -- gestion des actions en fonction de la simul choisie --// + int indiceSimulation = 0; - // --recuperation de la liste des sousmenu de la simulation i --// - ArrayList<BuMenuItem> listeSousMenus = listeSousMenuProjets_.get(i); - - indiceSimulation = i; - - // -- on recherche si l action provient d un des fils --// - for (int j = 0; j < listeSousMenus.size(); j++) { - BuMenuItem item = listeSousMenus.get(j); - - //-- on essaie de matcher a la fois la commande et l objet pour savoir si c est le bon --// - // -- si une clause du if est v\xE9rifi\xE9 alors on gere la simulation i --// - if ("COMPUTE_EXTREMA".equals(commandeBrute) && item == _event.getSource()) { - - FuLog.warning("je fais partie de la simulation " + indiceSimulation); - showExtremum(indiceSimulation); - } else if ("PALETTE_DEFAULT".equals(commandeBrute) && item == _event.getSource()) { - updatePaletteMin(); - } else if ("TIME_FORMAT".equals(commandeBrute) && item == _event.getSource()) { - TrPostTimeFmtPanel.updateTimeStepFmt(this, getImpl().getFrame()); - } else if ("VARIABLES".equals(commandeBrute) && item == _event.getSource()) { - activeVarFrame(); - } else if ("EXPORTDATA".equals(commandeBrute) && item == _event.getSource()) { - TrPostVisuPanel.startExport(getImpl(), getSource(indiceSimulation), null); - } else if ("COMPARE".equals(commandeBrute) && item == _event.getSource()) { - compareWith(); - } else if ("PROJECT".equals(commandeBrute) && item == _event.getSource()) { - projectOn(); - } else if ("IMPORTER_RESULTS".equals(commandeBrute) && item == _event.getSource()) { - importerVars(); - } else if ("MAJ_DATA_ALWAYS".equals(commandeBrute) && item == _event.getSource()) { - if (src_.isInspected()) { return; } - new TrPostInspector(this).start(); - } else if ("MAJ_DATA".equals(commandeBrute) && item == _event.getSource()) { - final TrPostInspectorReader watcher = getSource(indiceSimulation).createWatcher(this, false); - if (watcher != null) { - watcher.read(); - watcher.close(); - } - } - - - + for (int i = 0; i < listeSousMenuProjets_.size(); i++) { + + // --recuperation de la liste des sousmenu de la simulation i --// + ArrayList<BuMenuItem> listeSousMenus = listeSousMenuProjets_.get(i); + + indiceSimulation = i; + + // -- on recherche si l action provient d un des fils --// + for (int j = 0; j < listeSousMenus.size(); j++) { + BuMenuItem item = listeSousMenus.get(j); + + // -- on essaie de matcher a la fois la commande et l objet pour + // savoir si c est le bon --// + // -- si une clause du if est v\xE9rifi\xE9 alors on gere la simulation i + // --// + if ("COMPUTE_EXTREMA".equals(commandeBrute) && item == _event.getSource()) { + + FuLog.warning("je fais partie de la simulation " + indiceSimulation); + showExtremum(indiceSimulation); + } else if ("PALETTE_DEFAULT".equals(commandeBrute) && item == _event.getSource()) { + updatePaletteMin(); + } else if ("TIME_FORMAT".equals(commandeBrute) && item == _event.getSource()) { + TrPostTimeFmtPanel.updateTimeStepFmt(this, getImpl().getFrame()); + } else if ("VARIABLES".equals(commandeBrute) && item == _event.getSource()) { + activeVarFrame(); + } else if ("EXPORTDATA".equals(commandeBrute) && item == _event.getSource()) { + TrPostVisuPanel.startExport(getImpl(), getSource(indiceSimulation), null); + } else if ("COMPARE".equals(commandeBrute) && item == _event.getSource()) { + compareWith(getSource(indiceSimulation)); + } else if ("PROJECT".equals(commandeBrute) && item == _event.getSource()) { + projectOn(); + } else if ("IMPORTER_RESULTS".equals(commandeBrute) && item == _event.getSource()) { + importerVars(); + } else if ("MAJ_DATA_ALWAYS".equals(commandeBrute) && item == _event.getSource()) { + if (src_.isInspected()) { + return; + } + new TrPostInspector(this).start(); + } else if ("MAJ_DATA".equals(commandeBrute) && item == _event.getSource()) { + final TrPostInspectorReader watcher = getSource(indiceSimulation).createWatcher(this, false); + if (watcher != null) { + watcher.read(); + watcher.close(); + } + } + + } + } - } - } - - -// if ("VIEW_2D".equals(commandeBrute)) { + + + // if ("VIEW_2D".equals(commandeBrute)) { // activeFille(); // } else if ("COMPUTE_EXTREMA".equals(commandeBrute)) { // showExtremum(0); @@ -1211,9 +1221,9 @@ // watcher.close(); // } // } - - - + + + } public void activate(final File _f) {} @@ -1243,23 +1253,23 @@ addFillesLayout(filleLayout); // -- creation d une instance de la legende du calque --// CalqueLegendeWidgetAdapter legendeCalque = new CalqueLegendeWidgetAdapter(filleLayout.getScene(), null); - + final TrPostVisuPanel pnVisu = buildVisuPanel(filleLayout.getScene(), legendeCalque); -// legendeCalque.setModelTreeCalque(pnVisu.getArbreCalqueModel()); + // legendeCalque.setModelTreeCalque(pnVisu.getArbreCalqueModel()); // fille_ = new TrPostFille(pnVisu); // --creation de l internalframe layout --// - + // -- ajout du visuPanel au layout --// Point location= pnVisu.getLocation(); location.x+=10; location.y+=10; - + EbliNode node = filleLayout.addCalque("Calque", location, pnVisu.getPreferredSize(), pnVisu, legendeCalque); // -- ajout de l INFO de la source utilis\xE9e --// - + // -- decoration de la fille layout --// decoreFilleVisu(); @@ -1269,7 +1279,7 @@ // -- construction des actions sans passer par la frame fille --// filleLayout.getVisuPanel().getController().buildActions(); - + final Runnable other = FudaaSaveLib.restoreMainFille(impl_, getSaveFile(), getOldSaveFile(), fille_, getStateReceiver()); @@ -1286,7 +1296,7 @@ if (frVariables_ == null) { frVariables_ = new TrPostDataCreationPanel(TrPostProjet.this, new CtuluCommandManager(), impl_) - .createInternalFrame(); + .createInternalFrame(); frVariables_.pack(); impl_.addInternalFrame(frVariables_); TrLib.initFrameDimensionWithPref(frVariables_, impl_.getMainPanel().getDesktop().getSize()); @@ -1327,7 +1337,7 @@ public void changedMainFrameState() { getImpl().getFrame().setTitle( "Post " + CtuluLibString.ESPACE + FuLib.reducedPath(src_.getFile().getAbsolutePath()) - + (isModified() ? " *" : CtuluLibString.EMPTY_STRING)); + + (isModified() ? " *" : CtuluLibString.EMPTY_STRING)); } /** @@ -1366,20 +1376,102 @@ } - public void compareWith() { + + /** + * Methode qui formatte les donnees de la liste. + * + * @return + */ + String[] formattageDonnees() { + return this.formattageDonnees(false); + } + + String[] formattageDonnees(boolean proposeNewDAtaFirst) { + + String[] listeSimul; + int cpt = 0; + if (proposeNewDAtaFirst) { + listeSimul = new String[listeSrc_.size() + 1]; + listeSimul[cpt++] = TrResource.getS("Ajouter un nouveau projet"); + } + else + listeSimul = new String[listeSrc_.size()]; + + for (Iterator<TrPostSource> it = listeSrc_.iterator(); it.hasNext();) { + + TrPostSource src = it.next(); + + // --ajout dans la liste des titres --// + listeSimul[cpt++] = formatInfoSource(src); + } + + return listeSimul; + } + + /** + * retourne un chooser avec tous les multi sources et un bouton pour ajouter + * un nouveau projet. + * + * @return + */ + public TrPostSource getChooserMultiSources(int indiceChoix) { + + BuDialogChoice dialog = null; + // -- recuperation de la liste des src sous forme de liste --// + String[] values = formattageDonnees(true); + + // --construction graphique --// + dialog = new BuDialogChoice(impl_.getApp(), impl_.getInformationsSoftware(), + TrResource.getS("S\xE9lection du projet"), TrResource.getS("S\xE9lectionnez le jeux de donn\xE9es "), values); + dialog.setSize(400, 250); + // -- on indice au choix +1 car on a le choix creation au debut --// + if (indiceChoix != -1) + dialog.getChValeur().setSelectedIndex(indiceChoix + 1); + dialog.setModal(true); + // dialog.setTitle(TrResource.getS("Choix du projet")); + if (dialog.activate() == 0) { + int reponse = dialog.getSelectedIndex(); + + if (reponse == -1) + impl_.error(TrResource.getS("Il faut choisir un projet")); + else if (reponse == 0) { + // -- ouverture d un nouveau projet --// + new TrPostActionOpenSrc(this).actionPerformed(null); + // -- on retourne le dernier projet ouvert --// + // return getSource(listeSrc_.size() - 1); + impl_.message(TrResource.getS("Projet charg\xE9, il est d\xE9sormais disponible")); + return getChooserMultiSources(listeSrc_.size() - 1); + + } else { + return getSource(reponse - 1); + } + } + + return null; + } + + + /** + * Ouvre une interface permettant de comparer 2 source entre elles. + */ + public void compareWith(final TrPostSource sourceSelectionnee) { final CtuluTaskDelegate task = getImpl().createTask(TrPostSourceComparatorBuilder.getComparaisonTitle()); final ProgressionInterface prog = task.getStateReceiver(); final Runnable r = new Runnable() { public void run() { - final TrPostSource toProject = TrPostSourceActivator.activeSourceAction(getImpl().ouvrirFileChooser( - TrResource.getS("Fichier post"), null), getImpl(), prog); + + // final TrPostSource toProject = + // TrPostSourceActivator.activeSourceAction(getImpl().ouvrirFileChooser( + // TrResource.getS("Fichier post"), null), getImpl(), prog); + final TrPostSource toProject = getChooserMultiSources(-1); if (toProject != null) { BuLib.invokeLater(new Runnable() { public void run() { - TrPostSourceComparatorBuilder.activeComparaison(getSource(), toProject, EfLib.isDiffQuick(src_.getGrid(), - toProject.getGrid()), getImpl()); + TrPostSourceComparatorBuilder.activeComparaison(sourceSelectionnee, toProject, EfLib.isDiffQuick(src_ + .getGrid(), + toProject.getGrid()), TrPostProjet.this); } }); } @@ -1432,7 +1524,7 @@ * @return la source courante utilisee */ public TrPostSource getSource() { - + return src_; } @@ -1448,7 +1540,7 @@ else return null; } - + public FudaaCourbeTimeListModel getTimeModel() { return getSource().getNewTimeListModel(); } @@ -1534,7 +1626,7 @@ public void projectOn() { final FudaaLib.OpenResult open = FudaaGuiLib.openFile(getImpl(), TrFileFormatManager.getAllGridFormat(), MvResource .getS("Ouverture fichier de maillage"), TrFileFormatManager.getDefaultGridFormat(getImpl().getLauncher() - .getCurrentPrefHydId())); + .getCurrentPrefHydId())); if (open == null) { return; } final CtuluTaskDelegate task = getImpl().createTask(TrPostSourceComparatorBuilder.getComparaisonTitle()); final ProgressionInterface prog = task.getStateReceiver(); @@ -1597,8 +1689,8 @@ } } - - + + /** * Cree une nouvelle fenetre dans le post contenant son jeu de layouts */ @@ -1610,6 +1702,6 @@ addFillesLayout(newLayoutFille); impl_.addInternalFrame(newLayoutFille); } - - + + } \ No newline at end of file Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostSourceComparatorBuilder.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostSourceComparatorBuilder.java 2008-09-17 20:01:07 UTC (rev 3949) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostSourceComparatorBuilder.java 2008-09-18 20:02:30 UTC (rev 3950) @@ -7,35 +7,28 @@ */ package org.fudaa.fudaa.tr.post; +import java.awt.Point; import java.io.File; import java.util.List; -import java.util.Map; import javax.swing.ListModel; -import javax.swing.WindowConstants; -import javax.swing.event.InternalFrameAdapter; -import javax.swing.event.InternalFrameEvent; -import org.geotools.util.WeakValueHashMap; - -import com.memoire.bu.BuLib; - import org.fudaa.ctulu.CtuluLibFile; import org.fudaa.ctulu.CtuluLibString; import org.fudaa.ctulu.CtuluTaskDelegate; import org.fudaa.ctulu.ProgressionInterface; import org.fudaa.ctulu.gui.CtuluDialog; - import org.fudaa.dodico.ef.EfGridInterface; import org.fudaa.dodico.h2d.type.H2dVariableType; -import org.fudaa.ebli.calque.BCalqueLegende; - +import org.fudaa.ebli.visuallibrary.calque.CalqueLegendeWidgetAdapter; import org.fudaa.fudaa.fdico.FDicoLib; import org.fudaa.fudaa.meshviewer.MvResource; import org.fudaa.fudaa.meshviewer.layer.MvGridLayerGroup; -import org.fudaa.fudaa.ressource.FudaaResource; import org.fudaa.fudaa.tr.common.TrResource; +import org.geotools.util.WeakValueHashMap; +import com.memoire.bu.BuLib; + /** * Classe utilitaire pour construire des sources issues d'une comparaison. * @@ -189,18 +182,20 @@ } protected static void activeComparaison(final TrPostSource _src, final TrPostSource _toProject, - final String _quickDiff, final TrPostCommonImplementation _impl) { + final String _quickDiff, final TrPostProjet projet) { + + final TrPostCommonImplementation impl = projet.getImpl(); final TrPostProjectCompPanel pn = new TrPostProjectCompPanel(_src.getGrid(), _toProject.getGrid(), _quickDiff, - _impl); + impl); pn.addComparePanel(); final TrPostProjetCompTimeStepPanel timeStep = new TrPostProjetCompTimeStepPanel(_src, _toProject); pn.add(timeStep.getPn()); - final CtuluDialog dial = pn.createDialog(_impl.getFrame()); + final CtuluDialog dial = pn.createDialog(impl.getFrame()); pn.setParent(dial); dial.setTitle(FDicoLib.getS("Comparaison avec {0}", _toProject.getTitle())); if (dial.afficheAndIsOk()) { - final CtuluTaskDelegate task = _impl.createTask(TrPostSourceComparatorBuilder.getComparaisonTitle()); + final CtuluTaskDelegate task = impl.createTask(TrPostSourceComparatorBuilder.getComparaisonTitle()); final ProgressionInterface prog = task.getStateReceiver(); // true si le fichier src contient des donn\xE9es zfn d\xE9finies sur les noeuds final boolean mustCreateSrcForZfn = _src.isRubar() && _toProject.isRubar() @@ -209,41 +204,49 @@ boolean mustChangeTime = timeStep.useOneTimeStepImported(); int selectedTimeStep = timeStep.getImportedTimeStepToUse(); // la projection - final TrPostSource proj = createSrcForSelectedTime(_toProject, _impl, mustChangeTime, selectedTimeStep); + final TrPostSource proj = createSrcForSelectedTime(_toProject, impl, mustChangeTime, selectedTimeStep); final TrPostSource toProjectZfn = mustCreateSrcForZfn ? createSrcForSelectedTime(new TrPostSourceRubarZFN( - (TrPostSourceRubar) _toProject), _impl, mustChangeTime, selectedTimeStep) : null; + (TrPostSourceRubar) _toProject), impl, mustChangeTime, selectedTimeStep) : null; mustChangeTime = timeStep.useOneTimeStepSrc(); selectedTimeStep = timeStep.getSrcTimeStepToUse(); // la source - final TrPostSource src = createSrcForSelectedTime(_src, _impl, mustChangeTime, selectedTimeStep); + final TrPostSource src = createSrcForSelectedTime(_src, impl, mustChangeTime, selectedTimeStep); final TrPostSource srcZfn = mustCreateSrcForZfn ? createSrcForSelectedTime(new TrPostSourceRubarZFN( - (TrPostSourceRubar) _src), _impl, mustChangeTime, selectedTimeStep) : null; + (TrPostSourceRubar) _src), impl, mustChangeTime, selectedTimeStep) : null; final Runnable r = new Runnable() { public void run() { final boolean isOnImpGrid = pn.isCompareOnImportedGrid(); final TrPostSourceComparator comparaison = createSrcComparator(src, proj, pn.isGridEquals(), isOnImpGrid, pn - .isCompareOnImportedTime(), _impl, prog); + .isCompareOnImportedTime(), impl, prog); comparaison.setInv(pn.isInv()); TrPostSourceComparator comparaisonZfn = null; if (srcZfn != null && toProjectZfn != null) { comparaisonZfn = createSrcComparator(srcZfn, toProjectZfn, pn.isGridEquals(), isOnImpGrid, pn - .isCompareOnImportedTime(), _impl, prog); + .isCompareOnImportedTime(), impl, prog); comparaisonZfn.setInv(pn.isInv()); } - final TrPostProjet trPostProjet = new TrPostProjet(comparaison, _impl); - final TrPostVisuPanel pnVisu = new TrPostVisuPanel(_impl, trPostProjet, comparaison.getFlecheListModel() - .getSize() == 0,new BCalqueLegende()); - final TrPostFille compFille = new TrPostFille(pnVisu); - compFille.addInternalFrameListener(new InternalFrameAdapter() { - public void internalFrameClosed(InternalFrameEvent _e) { - comparaison.close(); - _toProject.close(); - } - }); + final TrPostProjet trPostProjet = new TrPostProjet(comparaison, impl); + + //-- creation de la legende --// + final CalqueLegendeWidgetAdapter legendeCalque = new CalqueLegendeWidgetAdapter(projet.getSelectedFilleLayout().getScene(), null); + + final TrPostVisuPanel pnVisu = new TrPostVisuPanel(impl, trPostProjet, comparaison.getFlecheListModel() + .getSize() == 0,legendeCalque); + + + + // final TrPostFille compFille = new TrPostFille(pnVisu); + // compFille.addInternalFrameListener(new InternalFrameAdapter() { + // public void internalFrameClosed(InternalFrameEvent _e) { + // comparaison.close(); + // _toProject.close(); + // } + // }); + if (isOnImpGrid) { pnVisu.getGridGroup().setTitle(MvResource.getS("Maillage import\xE9")); } @@ -262,16 +265,23 @@ trIsoLayerDefault.monter(); } - compFille.setTitle(TrPostSourceComparatorBuilder.getComparaisonTitle()); - compFille.setClosable(true); - compFille.setFrameIcon(FudaaResource.FUDAA.getToolIcon("diff")); - compFille.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); +// compFille.setTitle(TrPostSourceComparatorBuilder.getComparaisonTitle()); +// compFille.setClosable(true); +// compFille.setFrameIcon(FudaaResource.FUDAA.getToolIcon("diff")); +// compFille.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); - trPostProjet.fille_ = compFille; + // trPostProjet.fille_ = compFille; BuLib.invokeLater(new Runnable() { public void run() { - _impl.addInternalFrame(compFille); + // _impl.addInternalFrame(compFille); + // -- ajout de la comparaison en tant que widget --// + Point location = pnVisu.getLocation(); + location.x += 10; + location.y += 10; + projet.getSelectedFilleLayout().addCalque(TrPostSourceComparatorBuilder.getComparaisonTitle(), location, + pnVisu.getPreferredSize(), pnVisu, legendeCalque); + pnVisu.restaurer(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |