X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FSequenceFetcher.java;h=7dcd2b905f1306f19443b2131ff0793181c4922a;hb=ef9d515865742b8a9b80371c65a201801b7f0253;hp=784474e3943ab0cec4aec4a870631fe9d2bca1b8;hpb=28c2ec20b26a85cc5634238f1261a14930550594;p=jalview.git diff --git a/src/jalview/gui/SequenceFetcher.java b/src/jalview/gui/SequenceFetcher.java index 784474e..7dcd2b9 100755 --- a/src/jalview/gui/SequenceFetcher.java +++ b/src/jalview/gui/SequenceFetcher.java @@ -21,10 +21,14 @@ package jalview.gui; import jalview.api.FeatureSettingsModelI; +import jalview.bin.Cache; import jalview.datamodel.AlignmentI; import jalview.datamodel.DBRefEntry; import jalview.datamodel.SequenceFeature; import jalview.datamodel.SequenceI; +import jalview.fts.service.pdb.PDBFTSPanel; +import jalview.fts.service.uniprot.UniprotFTSPanel; +import jalview.io.gff.SequenceOntologyI; import jalview.util.DBRefUtils; import jalview.util.MessageManager; import jalview.ws.dbsources.das.api.DasSourceRegistryI; @@ -112,6 +116,11 @@ public class SequenceFetcher extends JPanel implements Runnable int debounceTrap = 0; + public JTextArea getTextArea() + { + return textArea; + } + /** * Blocking method that initialises and returns the shared instance of the * SequenceFetcher client @@ -156,9 +165,9 @@ public class SequenceFetcher extends JPanel implements Runnable } } if (sfetch == null - || dasRegistry != jalview.bin.Cache.getDasSourceRegistry() - || lastDasSourceRegistry != (jalview.bin.Cache - .getDasSourceRegistry().getDasRegistryURL() + jalview.bin.Cache + || dasRegistry != Cache.getDasSourceRegistry() + || lastDasSourceRegistry != (Cache.getDasSourceRegistry() + .getDasRegistryURL() + Cache .getDasSourceRegistry().getLocalSourceString()) .hashCode()) { @@ -173,7 +182,7 @@ public class SequenceFetcher extends JPanel implements Runnable .getString("status.init_sequence_database_fetchers"), Thread.currentThread().hashCode()); } - dasRegistry = jalview.bin.Cache.getDasSourceRegistry(); + dasRegistry = Cache.getDasSourceRegistry(); dasRegistry.refreshSources(); jalview.ws.SequenceFetcher sf = new jalview.ws.SequenceFetcher(); @@ -365,15 +374,22 @@ public class SequenceFetcher extends JPanel implements Runnable { debounceTrap++; String currentSelection = database.getSelectedItem(); - if (!currentSelection.equalsIgnoreCase("pdb")) - { - otherSourceAction(); - } + if (currentSelection.equalsIgnoreCase("pdb") && (database.action == KeyEvent.VK_ENTER || ((debounceTrap % 2) == 0))) { pdbSourceAction(); } + // else if (currentSelection.equalsIgnoreCase("uniprot") + // && (database.action == KeyEvent.VK_ENTER || ((debounceTrap % 2) == + // 0))) + // { + // uniprotSourceAction(); + // } + else + { + otherSourceAction(); + } database.action = -1; } }); @@ -397,10 +413,16 @@ public class SequenceFetcher extends JPanel implements Runnable private void pdbSourceAction() { databaseButt.setText(database.getSelectedItem()); - new PDBSearchPanel(this); + new PDBFTSPanel(this); frame.dispose(); } + private void uniprotSourceAction() + { + databaseButt.setText(database.getSelectedItem()); + new UniprotFTSPanel(this); + frame.dispose(); + } private void otherSourceAction() { try @@ -552,7 +574,7 @@ public class SequenceFetcher extends JPanel implements Runnable proxy.getDbName() }), Thread.currentThread() .hashCode()); isAliSource = proxy.isAlignmentSource(); - if (proxy.getAccessionSeparator() == null) + if (proxy.getMaximumQueryCount() == 1) { while (en.hasNext()) { @@ -592,7 +614,8 @@ public class SequenceFetcher extends JPanel implements Runnable } } catch (Exception e) { - jalview.bin.Cache.log.info("Error retrieving " + item + Cache.log.info( + "Error retrieving " + item + " from " + proxy.getDbName(), e); nextfetch.add(item); } @@ -833,8 +856,13 @@ public class SequenceFetcher extends JPanel implements Runnable if (preferredFeatureColours != null) { - af.viewport.applyFeaturesStyle(preferredFeatureColours); + af.getViewport().applyFeaturesStyle(preferredFeatureColours); + } + if (Cache.getDefault("HIDE_INTRONS", true)) + { + hideIntronsIfPresent(af); } + Desktop.addInternalFrame(af, title, AlignFrame.DEFAULT_WIDTH, AlignFrame.DEFAULT_HEIGHT); @@ -843,7 +871,7 @@ public class SequenceFetcher extends JPanel implements Runnable try { - af.setMaximum(jalview.bin.Cache.getDefault("SHOW_FULLSCREEN", + af.setMaximum(Cache.getDefault("SHOW_FULLSCREEN", false)); } catch (Exception ex) { @@ -857,6 +885,25 @@ public class SequenceFetcher extends JPanel implements Runnable return al; } + /** + * Hide columns not containing 'exon' features, provided there are exon + * features on the alignment + * + * @param af + */ + public void hideIntronsIfPresent(AlignFrame af) + { + boolean hasExons = af.avc.markColumnsContainingFeatures(false, false, + false, + SequenceOntologyI.EXON); + if (hasExons) + { + af.avc.markColumnsContainingFeatures(true, false, true, + SequenceOntologyI.EXON); + af.getViewport().hideSelectedColumns(); + } + } + void showErrorMessage(final String error) { resetDialog();