001    /*
002      Copyright (C) 2002 Renaud Pawlak <renaud@aopsys.com>
003    
004      This program is free software; you can redistribute it and/or modify
005      it under the terms of the GNU Lesser General Public License as
006      published by the Free Software Foundation; either version 2 of the
007      License, or (at your option) any later version.
008    
009      This program is distributed in the hope that it will be useful,
010      but WITHOUT ANY WARRANTY; without even the implied warranty of
011      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
012      GNU Lesser General Public License for more details.
013    
014      You should have received a copy of the GNU Lesser General Public
015      License along with this program; if not, write to the Free Software
016      Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
017    */
018    
019    package org.objectweb.jac.ide.diagrams;
020    
021    import CH.ifa.draw.framework.DrawingEditor;
022    import org.objectweb.jac.ide.Class;
023    import org.objectweb.jac.ide.Diagram;
024    import org.objectweb.jac.ide.ModelElement;
025    import org.objectweb.jac.util.Log;
026    import org.objectweb.jac.aspects.gui.Utils;
027    
028    public  class InheritanceLinkCreationTool extends RelationLinkCreationTool {
029    
030       public InheritanceLinkCreationTool(DrawingEditor newDrawingEditor) {
031          super(newDrawingEditor);
032       }
033    
034       protected LinkFigure createLinkFigure() {
035          return new InheritanceLinkFigure();
036       }
037    
038       protected void createRelation(Class source, ModelElement target) {
039          Log.trace("figures","creating a new relation link between "+
040                    source+" and "+target);
041    
042          if (source != null && target != null ) {
043             org.objectweb.jac.ide.InheritanceLink rel = new org.objectweb.jac.ide.InheritanceLink();
044             rel.setStart(source);
045             rel.setEnd(target);
046             Log.trace("diagram","1. end="+rel.getEnd()+"===> substance="+target);
047             InheritanceLinkFigure linkFigure = 
048                (InheritanceLinkFigure)myConnection;
049             org.objectweb.jac.ide.LinkFigure linkFig = 
050                new org.objectweb.jac.ide.LinkFigure(rel);
051             linkFigure.setLinkFigure(linkFig);
052    
053             Log.trace("diagram","2. end="+rel.getEnd());
054    
055             source.setSuperClass((org.objectweb.jac.ide.Class)target);
056    
057             Diagram diagram = (Diagram)((DiagramView)editor()).getSubstance();
058    
059             diagram.addFigure(linkFig);
060    
061             Utils.registerObject(rel,myConnection);
062    
063             Log.trace("diagram","3. end="+rel.getEnd());
064          }
065       }
066    
067    }