X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FStructureChooser.java;h=d6f3df1bc35cd1b019c603497ca994313f7ec49b;hb=1901363236478f0d50feda5a2f5835036ff04615;hp=e18d6af8df3aea3b563493f8637f42f297a664f7;hpb=d156987a513b1da92fd6fbf7678b4a8e7ffc8d08;p=jalview.git diff --git a/src/jalview/gui/StructureChooser.java b/src/jalview/gui/StructureChooser.java index e18d6af..d6f3df1 100644 --- a/src/jalview/gui/StructureChooser.java +++ b/src/jalview/gui/StructureChooser.java @@ -71,27 +71,25 @@ public class StructureChooser extends GStructureChooser { private static final String AUTOSUPERIMPOSE = "AUTOSUPERIMPOSE"; - private static int MAX_QLENGTH = 7820; + private static final int MAX_QLENGTH = 7820; - private SequenceI selectedSequence; + protected SequenceI selectedSequence; - private SequenceI[] selectedSequences; + public SequenceI[] selectedSequences; private IProgressIndicator progressIndicator; - private Collection discoveredStructuresSet; + protected Collection discoveredStructuresSet; - private FTSRestRequest lastPdbRequest; + protected FTSRestRequest lastPdbRequest; - private FTSRestClientI pdbRestCleint; + protected FTSRestClientI pdbRestClient; - private String selectedPdbFileName; + protected String selectedPdbFileName; - private boolean isValidPBDEntry; + protected boolean isValidPBDEntry; - private boolean cachedPDBExists; - - private static StructureViewer lastTargetedView = null; + protected boolean cachedPDBExists; public StructureChooser(SequenceI[] selectedSeqs, SequenceI selectedSeq, AlignmentPanel ap) @@ -146,21 +144,22 @@ public class StructureChooser extends GStructureChooser * structures may be added. If this list is empty then it, and the 'Add' * button, are hidden. */ - private void discoverStructureViews() + protected void discoverStructureViews() { - if (Desktop.instance != null) + if (Desktop.getInstance() != null) { targetView.removeAllItems(); - if (lastTargetedView != null && !lastTargetedView.isVisible()) + Desktop d = Desktop.getInstance(); + if (d.lastTargetedView != null && !d.lastTargetedView.isVisible()) { - lastTargetedView = null; + d.lastTargetedView = null; } int linkedViewsAt = 0; - for (StructureViewerBase view : Desktop.instance + for (StructureViewerBase view : Desktop.getInstance() .getStructureViewers(null, null)) { - StructureViewer viewHandler = (lastTargetedView != null - && lastTargetedView.sview == view) ? lastTargetedView + StructureViewer viewHandler = (d.lastTargetedView != null + && d.lastTargetedView.sview == view) ? d.lastTargetedView : StructureViewer.reconfigure(view); if (view.isLinkedWith(ap)) @@ -181,9 +180,9 @@ public class StructureChooser extends GStructureChooser if (targetView.getItemCount() > 0) { targetView.setVisible(true); - if (lastTargetedView != null) + if (d.lastTargetedView != null) { - targetView.setSelectedItem(lastTargetedView); + targetView.setSelectedItem(d.lastTargetedView); } else { @@ -217,7 +216,7 @@ public class StructureChooser extends GStructureChooser void fetchStructuresMetaData() { long startTime = System.currentTimeMillis(); - pdbRestCleint = PDBFTSRestClient.getInstance(); + pdbRestClient = PDBFTSRestClient.getInstance(); Collection wantedFields = pdbDocFieldPrefs .getStructureSummaryFields(); @@ -239,7 +238,7 @@ public class StructureChooser extends GStructureChooser FTSRestResponse resultList; try { - resultList = pdbRestCleint.executeRequest(pdbRequest); + resultList = pdbRestClient.executeRequest(pdbRequest); } catch (Exception e) { e.printStackTrace(); @@ -337,10 +336,12 @@ public class StructureChooser extends GStructureChooser } } - if (seq.getDBRefs() != null && seq.getDBRefs().length != 0) + List refs = seq.getDBRefs(); + if (refs != null && refs.size() != 0) { - for (DBRefEntry dbRef : seq.getDBRefs()) + for (int ib = 0, nb = refs.size(); ib < nb; ib++) { + DBRefEntry dbRef = refs.get(ib); if (isValidSeqName(getDBRefId(dbRef)) && queryBuilder.length() < MAX_QLENGTH) { @@ -461,7 +462,7 @@ public class StructureChooser extends GStructureChooser public void run() { long startTime = System.currentTimeMillis(); - pdbRestCleint = PDBFTSRestClient.getInstance(); + pdbRestClient = PDBFTSRestClient.getInstance(); lbl_loading.setVisible(true); Collection wantedFields = pdbDocFieldPrefs .getStructureSummaryFields(); @@ -497,7 +498,7 @@ public class StructureChooser extends GStructureChooser FTSRestResponse resultList; try { - resultList = pdbRestCleint.executeRequest(pdbRequest); + resultList = pdbRestClient.executeRequest(pdbRequest); } catch (Exception e) { e.printStackTrace(); @@ -565,6 +566,8 @@ public class StructureChooser extends GStructureChooser @Override protected void pdbFromFile_actionPerformed() { + // TODO: JAL-3048 not needed for Jalview-JS until JSmol dep and StructureChooser + // works jalview.io.JalviewFileChooser chooser = new jalview.io.JalviewFileChooser( jalview.bin.Cache.getProperty("LAST_DIRECTORY")); chooser.setFileView(new jalview.io.JalviewFileView()); @@ -870,7 +873,7 @@ public class StructureChooser extends GStructureChooser /** * structure viewer opened by this dialog, or null */ - private StructureViewer sViewer = null; + protected StructureViewer sViewer = null; public void showStructures(boolean waitUntilFinished) { @@ -991,10 +994,9 @@ public class StructureChooser extends GStructureChooser { selectedSequence = userSelectedSeq; } - PDBEntry fileEntry = new AssociatePdbFileWithSeq() + PDBEntry fileEntry = AssociatePdbFileWithSeq .associatePdbWithSeq(selectedPdbFileName, - DataSourceType.FILE, selectedSequence, true, - Desktop.instance); + DataSourceType.FILE, selectedSequence, true); sViewer = launchStructureViewer( ssm, new PDBEntry[] @@ -1032,7 +1034,7 @@ public class StructureChooser extends GStructureChooser } } - private PDBEntry getFindEntry(String id, Vector pdbEntries) + protected PDBEntry getFindEntry(String id, Vector pdbEntries) { Objects.requireNonNull(id); Objects.requireNonNull(pdbEntries); @@ -1071,7 +1073,7 @@ public class StructureChooser extends GStructureChooser * @param sequences * @return */ - private StructureViewer launchStructureViewer( + protected StructureViewer launchStructureViewer( StructureSelectionManager ssm, final PDBEntry[] pdbEntriesToView, final AlignmentPanel alignPanel, SequenceI[] sequences) @@ -1150,7 +1152,7 @@ public class StructureChooser extends GStructureChooser } setProgressBar(null, progressId); // remember the last viewer we used... - lastTargetedView = theViewer; + Desktop.getInstance().lastTargetedView = theViewer; return theViewer; } @@ -1190,19 +1192,27 @@ public class StructureChooser extends GStructureChooser && !discoveredStructuresSet.isEmpty(); } + protected int PDB_ID_MIN = 3;// or: (Jalview.isJS() ? 3 : 1); // Bob proposes this. + // Doing a search for "1" or "1c" is valuable? + // Those work but are enormously slow. + @Override protected void txt_search_ActionPerformed() { + String text = txt_search.getText().trim(); + if (text.length() >= PDB_ID_MIN) + { new Thread() { - @Override + + @Override public void run() { errorWarning.setLength(0); isValidPBDEntry = false; - if (txt_search.getText().length() > 0) + if (text.length() > 0) { - String searchTerm = txt_search.getText().toLowerCase(); + String searchTerm = text.toLowerCase(); searchTerm = searchTerm.split(":")[0]; // System.out.println(">>>>> search term : " + searchTerm); List wantedFields = new ArrayList<>(); @@ -1213,12 +1223,12 @@ public class StructureChooser extends GStructureChooser pdbRequest.setWantedFields(wantedFields); pdbRequest.setSearchTerm(searchTerm + ")"); pdbRequest.setAssociatedSequence(selectedSequence); - pdbRestCleint = PDBFTSRestClient.getInstance(); - wantedFields.add(pdbRestCleint.getPrimaryKeyColumn()); + pdbRestClient = PDBFTSRestClient.getInstance(); + wantedFields.add(pdbRestClient.getPrimaryKeyColumn()); FTSRestResponse resultList; try { - resultList = pdbRestCleint.executeRequest(pdbRequest); + resultList = pdbRestClient.executeRequest(pdbRequest); } catch (Exception e) { errorWarning.append(e.getMessage()); @@ -1237,6 +1247,7 @@ public class StructureChooser extends GStructureChooser } }.start(); } + } @Override protected void tabRefresh()