X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FPDBSearchPanel.java;h=bb754132e2860f3b0aebb479029fedc83a187c79;hb=fd235cc7542d6e308e054a8a76580a6c511ae631;hp=7aa0bb35eefe2efad5da5ce2ef3a9fbe39869fe6;hpb=a17368a2ea84c23fc5e65b8ea3c08086926758e4;p=jalview.git diff --git a/src/jalview/gui/PDBSearchPanel.java b/src/jalview/gui/PDBSearchPanel.java index 7aa0bb3..bb75413 100644 --- a/src/jalview/gui/PDBSearchPanel.java +++ b/src/jalview/gui/PDBSearchPanel.java @@ -22,20 +22,19 @@ package jalview.gui; import jalview.jbgui.GPDBSearchPanel; +import jalview.jbgui.PDBDocFieldPreferences; import jalview.util.MessageManager; import jalview.ws.dbsources.PDBRestClient; import jalview.ws.dbsources.PDBRestClient.PDBDocField; import jalview.ws.uimodel.PDBRestRequest; import jalview.ws.uimodel.PDBRestResponse; -import jalview.ws.uimodel.PDBRestResponse.PDBResponseSummary; import java.util.ArrayList; +import java.util.Collection; import java.util.Collections; import java.util.Comparator; import java.util.List; -import javax.swing.DefaultListModel; - @SuppressWarnings("serial") public class PDBSearchPanel extends GPDBSearchPanel { @@ -43,6 +42,8 @@ public class PDBSearchPanel extends GPDBSearchPanel private IProgressIndicator progressIdicator; + private Collection wantedFields; + public PDBSearchPanel(SequenceFetcher seqFetcher) { this.seqFetcher = seqFetcher; @@ -51,11 +52,13 @@ public class PDBSearchPanel extends GPDBSearchPanel } + /** + * Action performed when an input is detected on txt_search field. + */ @Override public void txt_search_ActionPerformed() { boolean allowEmptySequence = false; - lst_searchResult.setModel(new DefaultListModel()); mainFrame.setTitle(MessageManager .getString("label.pdb_sequence_getcher")); if (txt_search.getText().trim().length() > 0) @@ -65,14 +68,8 @@ public class PDBSearchPanel extends GPDBSearchPanel String searchTarget = ((PDBDocField) cmb_searchTarget .getSelectedItem()).getCode(); - List wantedFields = new ArrayList(); - wantedFields.add(PDBDocField.MOLECULE_TYPE); - wantedFields.add(PDBDocField.PDB_ID); - // wantedFields.add(PDBDocField.GENUS); - wantedFields.add(PDBDocField.GENE_NAME); - wantedFields.add(PDBDocField.TITLE); - // wantedFields.add(PDBDocField.RESOLUTION); - // wantedFields.add(PDBDocField.EXPERIMENTAL_METHOD); + wantedFields = PDBDocFieldPreferences + .getSearchSummaryFields(); PDBRestRequest request = new PDBRestRequest(); request.setAllowEmptySeq(allowEmptySequence); @@ -85,8 +82,8 @@ public class PDBSearchPanel extends GPDBSearchPanel PDBRestResponse resultList = pdbRestCleint.executeRequest(request); if (resultList.getSearchSummary() != null) { - lst_searchResult.setModel(PDBRestResponse - .getListModel(resultList.getSearchSummary())); + tbl_summary.setModel(PDBRestResponse.getTableModel(request, + resultList.getSearchSummary())); } long endTime = System.currentTimeMillis(); @@ -125,11 +122,15 @@ public class PDBSearchPanel extends GPDBSearchPanel { mainFrame.dispose(); StringBuilder selectedIds = new StringBuilder(); - for (PDBResponseSummary dataSelected : lst_searchResult - .getSelectedValuesList()) + int pdbIdCol = PDBRestClient.getPDBIdColumIndex(wantedFields, false); + int[] selectedRows = tbl_summary.getSelectedRows(); + for (int summaryRow : selectedRows) { - selectedIds.append(";").append(dataSelected.getPdbId()); + String pdbIdStr = tbl_summary.getValueAt(summaryRow, pdbIdCol) + .toString(); + selectedIds.append(";").append(pdbIdStr); } + String ids = selectedIds.deleteCharAt(0).toString(); seqFetcher.textArea.setText(ids); Thread worker = new Thread(seqFetcher);