package cl.jtv;


//Title:        Proyecto Turing Visual

//Version:      

//Copyright:    Copyright (c) 1998

//Author:       Marco Antonio Mora Godoy

//Company:      Your Company

//Description:  No admires, CREA!!!!...

import java.awt.*;
import java.util.*;


class Concentrador extends Maquina {

  public Concentrador(int x,int y,int c,Maquina prev,Maquina prox) {
         super(x,y,c,prev,prox);
         this.setIconValue(JTV.MyRenderer.ICONO_CONCENTRADOR);
         this.setNombre("o");
  }
  
  public void setNombre(String newNombre){
      
      nombre = newNombre;
  }

  public void accion(){
         proxima.accion();
  }
  
  

  public void dibujar(Graphics g){
      
    if(Maquina.selectedMachine!=null && this==Maquina.selectedMachine)
        g.setColor(Color.magenta);
    else if(JTV.searchedMachine!=null && this==JTV.searchedMachine)
        g.setColor(Color.pink);
    else if(Maquina.playMachine!=null && this==Maquina.playMachine)
        g.setColor(Color.red);
    else
        g.setColor(Color.black);
    
    g.fillOval(x0,y0-10,10,10);
  }
  
   public void insertMachine(Maquina newMachine,boolean leftInsert,java.util.Vector repository){
        
        return;
    }
    
    
    public void deleteMachine(java.util.Vector repository){
        
        if(this.proxima instanceof EnlaceCompuesto){
            Enumeration enlaces = ((EnlaceCompuesto)proxima).getEnlaces();
            while(enlaces.hasMoreElements()){
                Enlace enlace = (Enlace)enlaces.nextElement();
                repository.remove(enlace);
                enlace=null;
            }
        }
        java.util.Vector enlacesRemovidos = new java.util.Vector();
        for(int i=0;i<repository.size();i++)
            if((repository.get(i) instanceof Enlace) && ((Maquina)repository.get(i)).proxima==this){
                //if(!(repository.get(i) instanceof AutoEnlace)) ((Maquina)repository.get(i)).previa.setProxMaquina(null);
                    enlacesRemovidos.add(repository.get(i));
            }
        Enumeration enRem = enlacesRemovidos.elements();
        while(enRem.hasMoreElements())
            //repository.remove(enRem.nextElement());
            ((Enlace)enRem.nextElement()).deleteMachine(repository);
        this.proxima=null; 
        repository.remove(this);
        
     }
  
  
  public boolean isMouseClicked(int x,int y){
     
        //return (new java.awt.geom.Ellipse2D.Double(x0-5,y0-5,10,10)).contains(x,y);
        return (new java.awt.geom.Ellipse2D.Double(x0,y0-10,10,10)).contains(x,y);
  }
  
  public java.awt.geom.Rectangle2D getBounds(){
      
        //return (new java.awt.geom.Ellipse2D.Double(x0,y0-10,10,10)).getBounds2D();
        return new java.awt.geom.Rectangle2D.Double(x0,y0,10,20);
  }
  
  public void mover(int dx, int dy){
      
    x0+=dx;
    y0+=dy;
  }
  
  public void moverPrevia(int dx, int dy){

    return;
  }
  
  public void moverProxima(int dx, int dy){

    return;

  }
  
   public void moveRewind(){
     return;
  }
  
   public void moveForward(){
     return;
  }
  
   public void moveForward2(){
     return;
  }
  
   public void updateBounds(){
       return;
       
   }
   
   public java.awt.Rectangle getBoundRectangle() {
        return new java.awt.Rectangle(x0,y0-1,10,10);
    }    

  public String getXML() {
      
      String xml = "";
      xml+="<concentrador \n";
      xml+="    id=\""+this.idMaquina+"\"\n";
      xml+="    id-proxima=\""+(this.proxima==null?"null":Integer.toString(this.proxima.idMaquina))+"\"\n";
      xml+="    x=\""+this.x0+"\"\n";
      xml+="    y=\""+this.y0+"\"\n";
      xml+="/>\n\n";
      
      return xml;
  }
  
  public String getLatex(int maxCintas) {
      return "";
  }
  
} 