/*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2)
- * Copyright (C) 2014 The Jalview Authors
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
*
* This file is part of Jalview.
*
*/
package jalview.gui;
-import jalview.datamodel.Alignment;
+import jalview.api.FeatureSettingsModelI;
import jalview.datamodel.AlignmentI;
import jalview.datamodel.DBRefEntry;
-import jalview.datamodel.DBRefSource;
import jalview.datamodel.SequenceFeature;
import jalview.datamodel.SequenceI;
-import jalview.io.FormatAdapter;
-import jalview.io.IdentifyFile;
import jalview.util.DBRefUtils;
import jalview.util.MessageManager;
import jalview.ws.dbsources.das.api.DasSourceRegistryI;
import javax.swing.SwingConstants;
import javax.swing.tree.DefaultMutableTreeNode;
-import com.stevesoft.pat.Regex;
-
public class SequenceFetcher extends JPanel implements Runnable
{
JLabel dbeg = new JLabel();
private static Thread initingThread = null;
int debounceTrap = 0;
+
/**
* Blocking method that initialises and returns the shared instance of the
* SequenceFetcher client
{
if (guiWindow != null)
{
- guiWindow.setProgressBar(
- MessageManager.getString("status.waiting_sequence_database_fetchers_init"),
- Thread.currentThread().hashCode());
+ guiWindow
+ .setProgressBar(
+ MessageManager
+ .getString("status.waiting_sequence_database_fetchers_init"),
+ Thread.currentThread().hashCode());
}
// initting happening on another thread - so wait around to see if it
// finishes.
}
if (guiWindow != null)
{
- guiWindow.setProgressBar(
- MessageManager.getString("status.waiting_sequence_database_fetchers_init"),
- Thread.currentThread().hashCode());
+ guiWindow
+ .setProgressBar(
+ MessageManager
+ .getString("status.waiting_sequence_database_fetchers_init"),
+ Thread.currentThread().hashCode());
}
}
if (sfetch == null
*/
if (guiWindow != null)
{
- guiWindow.setProgressBar(MessageManager.getString("status.init_sequence_database_fetchers"),
+ guiWindow.setProgressBar(MessageManager
+ .getString("status.init_sequence_database_fetchers"),
Thread.currentThread().hashCode());
}
dasRegistry = jalview.bin.Cache.getDasSourceRegistry();
jalview.ws.SequenceFetcher sf = new jalview.ws.SequenceFetcher();
if (guiWindow != null)
{
- guiWindow.setProgressBar(MessageManager.getString("status.init_sequence_database_fetchers"),
- Thread.currentThread().hashCode());
+ guiWindow.setProgressBar(null, Thread.currentThread().hashCode());
}
lastDasSourceRegistry = (dasRegistry.getDasRegistryURL() + dasRegistry
.getLocalSourceString()).hashCode();
return sfetch;
}
+ private IProgressIndicator progressIndicator;
+
public SequenceFetcher(IProgressIndicator guiIndic)
{
- final IProgressIndicator guiWindow = guiIndic;
+ this.progressIndicator = guiIndic;
final SequenceFetcher us = this;
// launch initialiser thread
Thread sf = new Thread(new Runnable()
@Override
public void run()
{
- if (getSequenceFetcherSingleton(guiWindow) != null)
+ if (getSequenceFetcherSingleton(progressIndicator) != null)
{
- us.initGui(guiWindow);
+ us.initGui(progressIndicator);
}
else
{
JOptionPane
.showInternalMessageDialog(
Desktop.desktop,
- MessageManager.getString("warn.couldnt_create_sequence_fetcher_client"),
- MessageManager.getString("label.couldnt_create_sequence_fetcher"),
+ MessageManager
+ .getString("warn.couldnt_create_sequence_fetcher_client"),
+ MessageManager
+ .getString("label.couldnt_create_sequence_fetcher"),
JOptionPane.ERROR_MESSAGE);
}
});
private String getFrameTitle()
{
- return ((alignFrame == null) ? MessageManager.getString("label.new_sequence_fetcher") : MessageManager.getString("label.additional_sequence_fetcher"));
+ return ((alignFrame == null) ? MessageManager
+ .getString("label.new_sequence_fetcher") : MessageManager
+ .getString("label.additional_sequence_fetcher"));
}
private void jbInit() throws Exception
{
debounceTrap++;
String currentSelection = database.getSelectedItem();
-
if (!currentSelection.equalsIgnoreCase("pdb"))
{
- otherSourceAction();
+ otherSourceAction();
}
- if (currentSelection.equalsIgnoreCase("pdb") && ((debounceTrap % 2) == 0))
+ if (currentSelection.equalsIgnoreCase("pdb")
+ && (database.action == KeyEvent.VK_ENTER || ((debounceTrap % 2) == 0)))
{
pdbSourceAction();
}
-
+ database.action = -1;
}
});
+
dbeg.setText("");
jPanel2.add(databaseButt, java.awt.BorderLayout.NORTH);
jPanel2.add(dbeg, java.awt.BorderLayout.CENTER);
private void pdbSourceAction()
{
databaseButt.setText(database.getSelectedItem());
- new EBIFetchPanel(this);
+ new PDBSearchPanel(this);
frame.dispose();
}
: ""));
String eq = database.getExampleQueries();
dbeg.setText(MessageManager.formatMessage(
- "label.example_query_param", new String[]
- { eq }));
+ "label.example_query_param", new String[] { eq }));
boolean enablePunct = !(eq != null && eq.indexOf(",") > -1);
for (DbSourceProxy dbs : database.getSelectedSources())
{
jPanel3.repaint();
}
-
-
public void close_actionPerformed(ActionEvent e)
{
try
resetDialog();
return;
}
+ // TODO: Refactor to GUI independent code and write tests.
// indicate if successive sources should be merged into one alignment.
boolean addToLast = false;
ArrayList<String> aresultq = new ArrayList<String>(), presultTitle = new ArrayList<String>();
.split(";"));
Iterator<String> en = Arrays.asList(new String[0]).iterator();
int nqueries = qries.length;
+
+ FeatureSettingsModelI preferredFeatureColours = null;
while (proxies.hasNext() && (en.hasNext() || nextfetch.size() > 0))
{
if (!en.hasNext() && nextfetch.size() > 0)
try
{
// update status
- guiWindow.setProgressBar(MessageManager.formatMessage("status.fetching_sequence_queries_from", new String[]{Integer.valueOf(nqueries).toString(),proxy.getDbName()}), Thread
- .currentThread().hashCode());
- isAliSource = proxy.isA(DBRefSource.ALIGNMENTDB);
+ guiWindow
+ .setProgressBar(MessageManager.formatMessage(
+ "status.fetching_sequence_queries_from",
+ new String[] {
+ Integer.valueOf(nqueries).toString(),
+ proxy.getDbName() }), Thread.currentThread()
+ .hashCode());
+ isAliSource = proxy.isAlignmentSource();
if (proxy.getAccessionSeparator() == null)
{
while (en.hasNext())
DBRefEntry dbr = new DBRefEntry(), found[] = null;
dbr.setSource(proxy.getDbSource());
dbr.setVersion(null);
- if (proxy.getAccessionValidator() != null)
- {
- Regex vgr = proxy.getAccessionValidator();
- vgr.search(q);
- if (vgr.numSubs() > 0)
- {
- dbr.setAccessionId(vgr.stringMatched(1));
- }
- else
- {
- dbr.setAccessionId(vgr.stringMatched());
- }
- }
- else
- {
- dbr.setAccessionId(q);
- }
+ String accId = proxy.getAccessionIdFromQuery(q);
+ dbr.setAccessionId(accId);
boolean rfound = false;
for (int r = 0; r < rs.length; r++)
{
- if (rs[r] != null
- && (found = DBRefUtils.searchRefs(
- rs[r].getDBRef(), dbr)) != null
- && found.length > 0)
+ if (rs[r] != null)
{
- rfound = true;
- rs[r] = null;
- continue;
+ found = DBRefUtils.searchRefs(rs[r].getDBRefs(), accId);
+ if (found != null && found.length > 0)
+ {
+ rfound = true;
+ rs[r] = null;
+ }
}
}
if (!rfound)
// Stack results ready for opening in alignment windows
if (aresult != null && aresult.size() > 0)
{
+ FeatureSettingsModelI proxyColourScheme = proxy
+ .getFeatureColourScheme();
+ if (proxyColourScheme != null)
+ {
+ preferredFeatureColours = proxyColourScheme;
+ }
+
AlignmentI ar = null;
if (isAliSource)
{
presultTitle.add(titl);
}
}
- guiWindow.setProgressBar(MessageManager.getString("status.finshed_querying"), Thread.currentThread()
+ guiWindow.setProgressBar(MessageManager
+ .getString("status.finshed_querying"), Thread.currentThread()
.hashCode());
}
- guiWindow.setProgressBar((presult.size() > 0) ? MessageManager.getString("status.parsing_results")
- : MessageManager.getString("status.processing"), Thread.currentThread().hashCode());
+ guiWindow.setProgressBar(
+ (presult.size() > 0) ? MessageManager
+ .getString("status.parsing_results") : MessageManager
+ .getString("status.processing"), Thread.currentThread()
+ .hashCode());
// process results
while (presult.size() > 0)
{
- parseResult(presult.remove(0), presultTitle.remove(0), null);
+ parseResult(presult.remove(0), presultTitle.remove(0), null,
+ preferredFeatureColours);
}
// only remove visual delay after we finished parsing.
guiWindow.setProgressBar(null, Thread.currentThread().hashCode());
resetDialog();
}
- AlignmentI parseResult(String result, String title)
- {
- String format = new IdentifyFile().Identify(result, "Paste");
- Alignment sequences = null;
- if (FormatAdapter.isValidFormat(format))
- {
- sequences = null;
- try
- {
- sequences = new FormatAdapter().readFile(result.toString(),
- "Paste", format);
- } catch (Exception ex)
- {
- }
-
- if (sequences != null)
- {
- return parseResult(sequences, title, format);
- }
- }
- else
- {
- showErrorMessage("Error retrieving " + textArea.getText() + " from "
- + database.getSelectedItem());
- }
-
- return null;
- }
-
/**
*
* @return a standard title for any results retrieved using the currently
}
AlignmentI parseResult(AlignmentI al, String title,
- String currentFileFormat)
+ String currentFileFormat,
+ FeatureSettingsModelI preferredFeatureColours)
{
if (al != null && al.getHeight() > 0)
{
+ if (title == null)
+ {
+ title = getDefaultRetrievalTitle();
+ }
if (alignFrame == null)
{
AlignFrame af = new AlignFrame(al, AlignFrame.DEFAULT_WIDTH,
// Alignments?
}
- if (title == null)
- {
- title = getDefaultRetrievalTitle();
- }
SequenceFeature[] sfs = null;
List<SequenceI> alsqs;
synchronized (alsqs = al.getSequences())
}
}
+
+ if (preferredFeatureColours != null)
+ {
+ af.viewport.applyFeaturesStyle(preferredFeatureColours);
+ }
Desktop.addInternalFrame(af, title, AlignFrame.DEFAULT_WIDTH,
AlignFrame.DEFAULT_HEIGHT);
}
else
{
- for (int i = 0; i < al.getHeight(); i++)
- {
- alignFrame.viewport.getAlignment().addSequence(
- al.getSequenceAt(i)); // this
- // also
- // creates
- // dataset
- // sequence
- // entries
- }
- alignFrame.viewport.setEndSeq(alignFrame.viewport.getAlignment()
- .getHeight());
- alignFrame.viewport.getAlignment().getWidth();
- alignFrame.viewport.firePropertyChange("alignment", null,
- alignFrame.viewport.getAlignment().getSequences());
+ alignFrame.viewport.addAlignment(al, title);
}
}
return al;
}
});
}
+
+ public IProgressIndicator getProgressIndicator()
+ {
+ return progressIndicator;
+ }
+
+ public void setProgressIndicator(IProgressIndicator progressIndicator)
+ {
+ this.progressIndicator = progressIndicator;
+ }
}