/**
 * @author (A.Hermes) 
 * @version (2003, dec)
 */

import java.awt.*;
import javax.swing.*;

public class Regelzeiger extends JFrame 
{
        private int width = 200, height = 80;
        private int row = 1;
        private String[] array;
        private Regel rule;
    private Container c;
    private JPanel canvas;
    private boolean start;
    private int nummer=89;
    
    
        public Regelzeiger()
        {
                super("cellulular automation");
                setBounds(200,10,width,height);
                c = getContentPane();
                canvas = new JPanel();
                c.add(canvas);
                setVisible(true);
                rule = new Regel(89);
        }
   
        public void paint (Graphics g) 
        {
           setTitle("Regel: "+nummer);
           if(rule !=null){
            if (row == 1 || start) {
              Dimension size = getSize();
              g.setColor(getBackground());
              g.fillRect(0,0,size.width, size.height);
              g.setColor(Color.black);
             canvas.setPreferredSize(new Dimension(width,height));
       }
       start=false;
          
        zeigeRegel(g, rule);
       
      } 
        }
     
     
     public void zeigeRegel(int nummer){
       this.nummer = nummer;
       rule.waehleRegel(nummer); 
       repaint();   
     }
     
    private void zeigeRegel(Graphics g, Regel rule){      
             String[] muster = rule.liesMuster();
             byte[] ersetzung = rule.liesErsetzungen(); 
             int stelle=0;
             for (int anz=0; anz < muster.length; anz++){
              for (int k = 0; k < 3; k++){
                g.drawRect(5*(2+4*stelle+k),5*2+30,5,5);
                if (muster[anz].charAt(k) == '1'){
                  g.fillRect(5*(2+4*stelle+k),5*2+30,5,5);  
                } 
            }// for k
            g.drawRect(5*(2+4*stelle+1),5*3+32,5,5);  
            if (ersetzung[anz] == 1){
                  g.fillRect(5*(2+4*stelle+1),5*3+32,5,5);  
                } 
                stelle++;
        }
    }
}