package uk.co.mmscomputing.device.sane.gui; import java.io.*; import javax.swing.*; import java.awt.*; import java.awt.event.*; import javax.swing.event.*; import javax.swing.border.*; import uk.co.mmscomputing.device.sane.*; import uk.co.mmscomputing.device.sane.gui.*; import uk.co.mmscomputing.device.sane.option.DescriptorPanel; public class SaneNoDocsPanel extends JPanel implements SaneConstants, ActionListener, ChangeListener{ static private String adfmodestr = jsane.getResource("gui.SaneSpecialPanel.adfmodestr"); static private String adfmodedescstr = jsane.getResource("gui.SaneNoDocsPanel.adfmodedescstr"); protected SaneDevice scanner; protected JCheckBox cb; public SaneNoDocsPanel(SaneDevice scanner){ this.scanner=scanner; setLayout(new BorderLayout()); cb=new JCheckBox(adfmodestr,scanner.getADFMode()); cb.addActionListener(this); JPanel p=new JPanel(); p.setLayout(new BorderLayout()); p.add(cb,BorderLayout.CENTER); p.setBorder(new TitledBorder(DescriptorPanel.valstr)); add(p,BorderLayout.NORTH); add(newDescriptionPanel(adfmodedescstr),BorderLayout.CENTER); } public void paint(Graphics gc){ cb.setSelected(scanner.getADFMode()); super.paint(gc); } private JComponent newDescriptionPanel(String desc){ JTextArea ta=new JTextArea(desc); ta.setLineWrap(true); ta.setWrapStyleWord(true); JScrollPane sp=new JScrollPane(ta); JPanel p=new JPanel(); p.setLayout(new BorderLayout()); p.setBorder(new TitledBorder(DescriptorPanel.descstr)); p.add(sp); return p; } public void actionPerformed(ActionEvent e){ JCheckBox cb=(JCheckBox)e.getSource(); boolean waitForStatusNoDocs=cb.isSelected(); // System.err.println(getClass().getName()+":\n\twaitForStatusNoDocs "+waitForStatusNoDocs); scanner.setADFMode(waitForStatusNoDocs); } public void stateChanged(ChangeEvent e){} }