Package org.analyse.merise.mcd.composant

Source Code of org.analyse.merise.mcd.composant.MCDLien

/*
* 02/28/2002 - 22:19:42
*
* MCDLien - Copyright (C) 2002 Dreux Loic dreuxl@free.fr
*
*
*  Modifications
*  -------------
*  Date : 2009 janvier 22
*  @auteur : Bruno Dabo <bruno.dabo@lywoonsoftware.com>
* This program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation; either version 2 of the License, or any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
*
* You should have received a copy of the GNU General Public License along with
* this program; if not, write to the Free Software Foundation, Inc., 59 Temple
* Place - Suite 330, Boston, MA 02111-1307, USA.
*/

package org.analyse.merise.mcd.composant;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.Line2D;
import org.analyse.core.util.Constantes ;
import org.analyse.core.gui.zgraph.ZElement;
import org.analyse.core.gui.zgraph.ZLien;

public class MCDLien extends ZLien
{
    /** Cardinalité minimale : soit "0" ou "1" */
    private String cardMin;

    /** Cardinalité maximale : soit "1" ou "N" */
    private String cardMax;

    public MCDLien()
    {
        super();
        cardMin = "0";
        cardMax = "N";
    }

    /**
     * Lie l'objet passé en parametre. Le MCDAssociation est toujours l'élément
     * 0 et Le MCDObjet est toujours l'élément 1.
     */
    public void setElement(ZElement elem, String index)
    {
        super.setElement(elem, index);

        if (elem != null) {
            MCDObjet obj = (MCDObjet) elem;
            obj.addLink(this);
        }

        if (elem1 instanceof MCDObjet && elem2 instanceof MCDAssociation)
            inverseZElements();
    }

    public MCDObjet getMCDObjet(String  index)
    {
        return (MCDObjet) (getElement(index));
    }

    /**
     * méthode appelée avant la suppression d'un lien.
     */
    public void clearElement()
    {
        MCDObjet obj;
        obj = getMCDObjet ( Constantes.MCDENTITE1 );

        if (obj != null)
            obj.delLink(this);

        obj = getMCDObjet( Constantes.MCDENTITE2 );
        if (obj != null)
            obj.delLink(this);
    }

    /**
     * Affichage de l'objet.
     */
    public void paint(Graphics g)
    {
        updateLocation();
        Graphics2D g2d = (Graphics2D) g;
        Line2D l = new Line2D.Double(x1, y1, x2, y2);

        g2d.setColor(Color.black);
        g2d.draw(l);

        if (Math.abs(x1 - x2) > Math.abs(y1 - y2))
            g2d.drawString(cardMin + ", " + cardMax, (x1 + x2) / 2,
                    (y1 + y2 + 25) / 2);
        else
            g2d.drawString(cardMin + ", " + cardMax, (x1 + x2 + 10) / 2,
                    (y1 + y2) / 2);
    }

    /** @return la cardinalité minimale */
    public String getCardMin()
    {
        return cardMin;
    }

    /** @return la cardinalité maximale */
    public String getCardMax()
    {
        return cardMax;
    }

    /** Modifie la cardinalité minimale. */
    public void setCardMin(String cardMin)
    {
        this.cardMin = cardMin;
        notifyZLien();
    }

    /** Modifie la cardinalité maximale. */
    public void setCardMax(String cardMax)
    {
        this.cardMax = cardMax;
        notifyZLien();
    }

    public String toString()
    {
        return "MCDLien, " + info();
    }
}
TOP

Related Classes of org.analyse.merise.mcd.composant.MCDLien

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.