package uk.co.mmscomputing.device.sane.option;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import uk.co.mmscomputing.device.sane.*;
public class IntListPanel extends DescriptorPanel{
JComboBox[] combos=null;
public IntListPanel(IntList od){
super(od);
String[] list=new String[od.list.length];
for(int i=0;i<list.length;i++){
list[i]=Integer.toString(od.list[i]);
}
int len=od.size>>2;
JPanel p=new JPanel();
p.setLayout(new GridLayout(len,1));
combos=new JComboBox[len];
for(int i=0;i<len;i++){
p.add(createPanel(i, list));
}
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);
*/
}
private JPanel createPanel(int i, String[] list){
JComboBox combo=new JComboBox(list);
combo.setMinimumSize(new Dimension(200,100));
combo.setMaximumRowCount(5);
combo.addActionListener(this);
checkCapabilities(combo);
JPanel p=new JPanel();
p.setLayout(new BorderLayout());
p.add(combo);
combo.setSelectedItem(od.getStringValue(i));
combos[i]=combo;
return p;
}
public void actionPerformed(ActionEvent e){
JComboBox combo=(JComboBox)e.getSource();
for(int i=0;i<combos.length;i++){
if(combos[i]==combo){
String str=combo.getSelectedItem().toString();
try{
str=od.setStringValue(i,str);
combo.setSelectedItem(str);
}catch(SaneIOException sioe){
sioe.printStackTrace();
}
}
}
}
}