package uk.co.mmscomputing.device.sane.option;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import javax.swing.text.*;
import javax.swing.event.*;

import uk.co.mmscomputing.device.sane.*;

public class IntPanel extends DescriptorPanel implements DocumentListener{

  JTextField[] tfs=null;

  public IntPanel(IntDesc od){
    super(od);

    JPanel p=new JPanel();
    tfs=new JTextField[od.size>>2];
    for(int i=0;i<tfs.length;i++){
      JTextField tf=new JTextField(10);    
//      Document td=tf.getDocument();
//      td.addDocumentListener(this);
//      td.putProperty("key",key);

      tf.setHorizontalAlignment(SwingConstants.RIGHT);
      tf.addActionListener(this);
      checkCapabilities(tf);
      tf.setText(od.getStringValue(i));
      p.add(tf);
      tfs[i]=tf;
    }
    addValuePanel(new JScrollPane(p));

/*
    String valstr="Value";
    if(od.unit!=0){ valstr+=" in ["+SANE_UNIT[od.unit]+"]";}
    p.setBorder(new TitledBorder(valstr));
    add(new JScrollPane(p),BorderLayout.NORTH);
*/
  }

  public void changedUpdate(DocumentEvent de){
/*
    try{
      Document d=de.getDocument();
//      d.getProperty("map");
//      String key=(String)d.getProperty("key");
      String value=d.getText(d.getStartPosition().getOffset(),d.getEndPosition().getOffset()).trim();
//System.out.println("9\b"+value);
    }catch(Exception e){
      System.out.println("9\b"+e.getMessage());
    }
*/
  }

  public void insertUpdate(DocumentEvent e){
  }

  public void removeUpdate(DocumentEvent e){
  }

  public void actionPerformed(ActionEvent e){
    JTextField tf=(JTextField)e.getSource();
    for(int i=0;i<tfs.length;i++){
      if(tfs[i]==tf){
        try{
          tf.setText(od.setStringValue(i,tf.getText()));
        }catch(SaneIOException sioe){
          sioe.printStackTrace();
        }
      }
    }
  }
}

