Back to index

wims  3.65+svn20090927
SymbolLayout.java
Go to the documentation of this file.
00001 /*
00002 $Id: SymbolLayout.java,v 1.3 2003/02/18 11:48:47 sander Exp $
00003 */
00004 
00005 
00006 /*
00007 Copyright (C) 2001-2002 Mainline Project (I3S - ESSI - CNRS -UNSA)
00008 
00009 This library is free software; you can redistribute it and/or
00010 modify it under the terms of the GNU Lesser General Public
00011 License as published by the Free Software Foundation; either
00012 version 2.1 of the License, or (at your option) any later version.
00013 
00014 This library is distributed in the hope that it will be useful,
00015 but WITHOUT ANY WARRANTY; without even the implied warranty of
00016 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00017 Lesser General Public License for more details.
00018 
00019 You should have received a copy of the GNU Lesser General Public
00020 License along with this library; if not, write to the Free Software
00021 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00022 
00023 For further information on the GNU Lesser General Public License,
00024 see: http://www.gnu.org/copyleft/lesser.html
00025 For further information on this library, contact: mainline@essi.fr
00026 */
00027 
00028 
00029 package fr.ove.openmath.jome.ctrlview.bidim;
00030 
00031 import java.awt.*;
00032 import fr.ove.openmath.jome.ctrlview.bidim.DisplayLayout;
00033 import fr.ove.openmath.jome.ctrlview.bidim.Display;
00034 import fr.ove.openmath.jome.ctrlview.bidim.StringDisplay;
00035 import fr.ove.openmath.jome.ctrlview.bidim.selection.events.SelectionEvent;
00036 import fr.ove.openmath.jome.model.*;
00037 
00044 public class SymbolLayout extends DisplayLayout {
00048     public void validateSelection() {
00049         Display display = displayToLay;
00050         if (display.getParent() instanceof Display) {
00051             display = (Display) display.getParent();
00052             FormulaTreeStructure fts = (FormulaTreeStructure) display.getListener();
00053             if (fts.getFather() != null)
00054                 ((DisplayLayout) display.getLayout()).validateSelection();
00055         }
00056 
00057         // On met à jour l'affichage.
00058         display.repaint();
00059     }
00060     
00065     public void validateDeselection(Display display) {
00066         Display father = displayToLay;
00067         
00068         if (father.isSelected()) {
00069             father.setNotSelected();
00070             // On enlève le display père de la liste des display sélectionnés.
00071             SelectionEvent selEvt = new SelectionEvent(father);
00072             selEvt.setAction(SelectionEvent.REMOVE, father);
00073             father.fireSelectionEvent(selEvt);
00074             
00075             if (father.getParent() instanceof Display) {
00076                 father = (Display) father.getParent();
00077                 FormulaTreeStructure fts = (FormulaTreeStructure) father.getListener();
00078                 if (fts.getFather() != null)
00079                     ((DisplayLayout) father.getLayout()).validateDeselection(displayToLay);
00080             }
00081         }
00082     }
00083 
00088     public Dimension computeAttributes() {
00089         Displayable symbol = ((SymbolDisplay) displayToLay).getSymbol();
00090         symbol.setGraphicContext(displayToLay.getGraphicContext());
00091         Dimension dim = symbol.getPreferredSize();
00092 
00093         displayToLay.setSize(dim);
00094         displayToLay.setAscent(symbol.getAscent());
00095         displayToLay.setDescent(symbol.getDescent());
00096         displayToLay.setComputeAttributes(false);
00097         
00098         return dim;
00099     }
00100   
00104     public void rebuildDisplay() {
00105         // En fait, celui là ne sera jamais reconstruit.
00106     }
00107    
00108     // #################################################
00109     // ### Implémentation des différentes interfaces ###
00110     // #################################################
00111 
00112     // ***************************************************
00113     // *** Implémentation de l'interface LayoutManager ***
00114 
00115     /*
00116      * Lays out the container in the specified panel.
00117      * @param parent the component which needs to be laid out.
00118      */
00119      public void layoutContainer(Container parent) {
00120      }
00121 
00122     // *** Fin de l'interface LayoutManager ***
00123     // ****************************************
00124 
00125 }