package jalview.gui; import jalview.jbgui.GEBIFetchPanel; import jalview.ws.dbsources.PDBRestClient; import jalview.ws.uimodel.PDBSearchOptionListModel; import jalview.ws.uimodel.PDBSearchResultPojo; import jalview.ws.uimodel.PDBSummaryListModel; import javax.swing.DefaultListModel; import javax.swing.SwingUtilities; @SuppressWarnings("serial") public class EBIFetchPanel extends GEBIFetchPanel { private SequenceFetcher seqFetcher; public EBIFetchPanel() { } public EBIFetchPanel(SequenceFetcher seqFetcher) { this(); this.seqFetcher = seqFetcher; } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { new EBIFetchPanel(); } }); } @Override public void searchStringAction() { jListSearchResult.setModel(new DefaultListModel()); mainFrame.setTitle("PDB Sequence Fetcher"); if (search.getText().trim().length() > 0) { long startTime = System.currentTimeMillis(); PDBSearchResultPojo resultList = new PDBRestClient().searchResult( ((PDBSearchOptionListModel) searchFeild.getSelectedItem()).getCode(), search.getText()); if (resultList.getSearchSummary() != null) { jListSearchResult.setModel(resultList.getSearchSummary()); } long endTime = System.currentTimeMillis(); mainFrame.setTitle("PDB Sequence Fetcher - " + resultList.getItemFound() + " results (" + (endTime - startTime) + " milli secs)"); } } @Override public void okActionPerformed() { processPDBResponseData(); } @Override public void backActionPerformed() { System.out.println("back! pressed!"); } @Override public void cancelActionPerformed() { mainFrame.dispose(); } private void processPDBResponseData() { mainFrame.dispose(); StringBuilder selectedIds = new StringBuilder(); for (PDBSummaryListModel dataSelected : jListSearchResult .getSelectedValuesList()) { selectedIds.append(";").append(dataSelected.getPdbId()); } String ids = selectedIds.deleteCharAt(0).toString(); seqFetcher.textArea.setText(ids); Thread worker = new Thread(seqFetcher); // Thread worker = new Thread(this); worker.start(); } // @Override // public void run() // { // for (PDBSummaryListModel sum : jListSearchResult // .getSelectedValuesList()) // { // System.out.println("you selected ------------> " + sum.getPdbId()); // } // seqFetcher.guiWindow.setProgressBar(MessageManager // .getString("status.processing"), Thread.currentThread() // .hashCode()); // try // { // Thread.sleep(1000 * 2); // } catch (InterruptedException e) // { // e.printStackTrace(); // } // seqFetcher.guiWindow.setProgressBar(null, Thread.currentThread() // .hashCode()); // } }