/* Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille * * ludovic.apvrille AT enst.fr * * This software is a computer program whose purpose is to allow the * edition of TURTLE analysis, design and deployment diagrams, to * allow the generation of RT-LOTOS or Java code from this diagram, * and at last to allow the analysis of formal validation traces * obtained from external tools, e.g. RTL from LAAS-CNRS and CADP * from INRIA Rhone-Alpes. * * This software is governed by the CeCILL license under French law and * abiding by the rules of distribution of free software. You can use, * modify and/ or redistribute the software under the terms of the CeCILL * license as circulated by CEA, CNRS and INRIA at the following URL * "http://www.cecill.info". * * As a counterpart to the access to the source code and rights to copy, * modify and redistribute granted by the license, users are provided only * with a limited warranty and the software's author, the holder of the * economic rights, and the successive licensors have only limited * liability. * * In this respect, the user's attention is drawn to the risks associated * with loading, using, modifying and/or developing or reproducing the * software by the user in light of its specific status of free software, * that may mean that it is complicated to manipulate, and that also * therefore means that it is reserved for developers and experienced * professionals having in-depth computer knowledge. Users are therefore * encouraged to load and test the software's suitability as regards their * requirements in conditions enabling the security of their systems and/or * data to be ensured and, more generally, to use and operate it in the * same conditions as regards security. * * The fact that you are presently reading this means that you have had * knowledge of the CeCILL license and that you accept its terms. */ package ui.procsd; import ui.MainGUI; import ui.TToolBar; import java.util.Vector; public class ProActiveCompSpecificationCSDPanel extends ProactiveCSDPanel{ /* * the component in the main diagram that is designed in this panel */ public ProActiveCompSpecificationCSDPanel(MainGUI mgui, TToolBar _ttb, String name) { super(mgui, _ttb); this.setName(name); } /* * returns the component disigned within this diagram */ public ProCSDComponent getProCSDComponent() { for (int k=0;k<componentList.size();k++) { if (componentList.get(k) instanceof ProCSDComponent) return (ProCSDComponent)componentList.get(k); } return null; } /* * Creates the blackBox corresponding to the component given as parameter * the black box contains: * - copies of the ports of comp with their interfaces * - copies of the attributes of comp */ public ProCSDComponent createBlackBoxComp(ProCSDComponent comp) { ProCSDComponent designComp=new ProCSDComponent(comp.getX(),comp.getY(),comp.getMinHeight(),comp.getMaxHeight(),comp.getMinWidth(),comp.getMaxHeight(),false,null,this); designComp.setWidth(comp.getWidth()); designComp.setHeight(comp.getHeight()); designComp.setValue(comp.getValue()+"Design"); Vector<ProCSDPort> ports=comp.getPortsList(); for (int k=0;k<ports.size();k++) { ProCSDPort p=ports.get(k); ProCSDPort newPort=null; if (p instanceof ProCSDInPort) newPort=new ProCSDInPort(p.getX(),p.getY(),p.getMinHeight(),p.getMaxHeight(),p.getMinWidth(),p.getMaxWidth(),false,designComp,this); else if (p instanceof ProCSDOutPort) newPort=new ProCSDOutPort(p.getX(),p.getY(),p.getMinHeight(),p.getMaxHeight(),p.getMinWidth(),p.getMaxWidth(),false,designComp,this); if (newPort!=null) { newPort.setValue(p.getValue()); //newPort is a part of the designComponent //p is the part of an instance comp //p will have the portCode of newPort p.setPortCode(newPort.getPortCode()); designComp.addSwallowedTGComponent(newPort,newPort.getX(),newPort.getY()); ProCSDInterface pI=p.getMyInterface(); if (pI!=null) { //ProCSDInterface newInterface = new ProCSDInterface(pI.getX(),pI.getY(),pI.getMinHeight(),pI.getMaxHeight(),pI.getMinWidth(),pI.getMaxWidth(),false,null,this); //newInterface.setValue(pI.getValue()); //newInterface.setManda(pI.isMandatory()); //newInterface.setMessages(pI.getMyMessages()); // ProCSDInterface newInterface=new ProCSDInterface(pI,this); // this.addBuiltComponent(newInterface); // newPort.connectInterface(newInterface); //TGConnectingPoint point1=newPort.getTGConnectingPointAtIndex(0); //TGConnectingPoint point2=newInterface.getTGConnectingPointAtIndex(0); //TGConnectorPortInterface connector=new TGConnectorPortInterface(0,0,0,0,0,0,false,null,this,point1,point2,new Vector()); //this.addBuiltComponent(connector); }//if interface !=null }//if newPort!=null } designComp.setAttributes(comp.getMyAttributes()); this.addBuiltComponent(designComp); return designComp; } }