3 import jalview.gui.Desktop;
4 import jalview.util.MessageManager;
5 import jalview.ws.uimodel.PDBSearchOptionListModel;
6 import jalview.ws.uimodel.PDBSummaryListModel;
8 import java.awt.BorderLayout;
9 import java.awt.Dimension;
10 import java.awt.event.ActionEvent;
11 import java.awt.event.ActionListener;
13 import javax.swing.JButton;
14 import javax.swing.JComboBox;
15 import javax.swing.JFrame;
16 import javax.swing.JInternalFrame;
17 import javax.swing.JList;
18 import javax.swing.JPanel;
19 import javax.swing.JScrollPane;
20 import javax.swing.JTextField;
21 import javax.swing.ListSelectionModel;
22 import javax.swing.event.DocumentEvent;
23 import javax.swing.event.DocumentListener;
25 @SuppressWarnings("serial")
26 public abstract class GEBIFetchPanel extends JPanel
28 protected String frameTitle = "PDB Sequence Fetcher";
30 protected JInternalFrame mainFrame = new JInternalFrame(frameTitle);
32 protected JComboBox<PDBSearchOptionListModel> searchFeild = new JComboBox<PDBSearchOptionListModel>();
34 protected JButton ok = new JButton();
36 protected JButton back = new JButton();
38 protected JButton cancel = new JButton();
40 protected JTextField search = new JTextField(20);
42 protected JList<PDBSummaryListModel> jListSearchResult = new JList<PDBSummaryListModel>();
44 protected JScrollPane searchResultScroller = new JScrollPane(
47 private JPanel actionPanel = new JPanel();
49 private JPanel resultPanel = new JPanel();
51 private JPanel inputPanel = new JPanel();
53 private BorderLayout mainLayout = new BorderLayout();
56 public GEBIFetchPanel()
61 mainFrame.invalidate();
69 private void jbInit() throws Exception
71 back.setFont(new java.awt.Font("Verdana", 0, 12));
72 back.setText(MessageManager.getString("action.back"));
73 back.addActionListener(new java.awt.event.ActionListener()
75 public void actionPerformed(ActionEvent e)
77 backActionPerformed();
80 ok.setFont(new java.awt.Font("Verdana", 0, 12));
81 ok.setText(MessageManager.getString("action.ok"));
82 ok.addActionListener(new java.awt.event.ActionListener()
84 public void actionPerformed(ActionEvent e)
89 cancel.setFont(new java.awt.Font("Verdana", 0, 12));
90 cancel.setText(MessageManager.getString("action.cancel"));
91 cancel.addActionListener(new java.awt.event.ActionListener()
93 public void actionPerformed(ActionEvent e)
95 cancelActionPerformed();
98 actionPanel.add(back);
100 actionPanel.add(cancel);
103 .setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
104 jListSearchResult.setLayoutOrientation(JList.VERTICAL);
105 jListSearchResult.setVisibleRowCount(-1);
106 searchResultScroller.setPreferredSize(new Dimension(500, 300));
108 .setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
109 resultPanel.add(searchResultScroller);
111 searchFeild.setFont(new java.awt.Font("Verdana", 0, 12));
112 searchFeild.addActionListener(new ActionListener()
115 public void actionPerformed(ActionEvent e)
117 searchStringAction();
121 PDBSearchOptionListModel.populateCombo(searchFeild);
123 search.setFont(new java.awt.Font("Verdana", 0, 12));
124 search.getDocument().addDocumentListener(new DocumentListener()
127 public void insertUpdate(DocumentEvent e)
129 searchStringAction();
133 public void removeUpdate(DocumentEvent e)
135 searchStringAction();
139 public void changedUpdate(DocumentEvent e)
141 searchStringAction();
145 inputPanel.add(searchFeild);
146 inputPanel.add(search);
149 this.setLayout(mainLayout);
150 this.add(inputPanel, java.awt.BorderLayout.NORTH);
151 this.add(resultPanel, java.awt.BorderLayout.CENTER);
152 this.add(actionPanel, java.awt.BorderLayout.SOUTH);
153 mainFrame.setVisible(true);
154 mainFrame.setContentPane(this);
155 mainFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
156 Desktop.addInternalFrame(mainFrame, frameTitle, 800, 400);
159 public abstract void searchStringAction();
161 public abstract void okActionPerformed();
163 public abstract void backActionPerformed();
165 public abstract void cancelActionPerformed();