package uk.co.mmscomputing.device.sane.gui; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.border.*; import uk.co.mmscomputing.device.sane.jsane; import uk.co.mmscomputing.device.sane.SaneDeviceManager; public class SaneSelectPanel extends JPanel implements ActionListener{ static private String selecttitlestr = jsane.getResource("gui.SaneSelectPanel.selecttitlestr"); static private String selectbutstr = jsane.getResource("gui.SaneSelectPanel.selectbutstr"); static private String selectframestr = jsane.getResource("gui.SaneSelectPanel.selectframestr"); static private String devicename=""; private JFrame dialog=null; private JList list; private SaneDeviceManager manager; public SaneSelectPanel(SaneDeviceManager manager,String[] devices){ this.dialog=dialog; this.manager=manager; setLayout(new BorderLayout()); list=new JList(devices); list.setMinimumSize(new Dimension(200,100)); list.setVisibleRowCount(6); list.setBorder(new TitledBorder(selecttitlestr)); add(new JScrollPane(list),BorderLayout.CENTER); JButton button=new JButton(selectbutstr); button.addActionListener(this); add(button,BorderLayout.SOUTH); if((devicename.equals(""))&&(devices.length>0)){ devicename=devices[0]; } manager.setDevice(devicename); list.setSelectedValue(devicename,true); } public void actionPerformed(ActionEvent e){ String str=(String)list.getSelectedValue(); if(str!=null){ manager.setDevice(str);} if(dialog!=null){dialog.dispose();} } public void showDialog(){ dialog=new JFrame(selectframestr); dialog.getContentPane().add(this); dialog.pack(); dialog.setLocationRelativeTo(null); dialog.setVisible(true); } }