FileFormatI format = null;
DataSourceType protocol = null;
FileLoader fileLoader = new FileLoader(!headless);
- Vector<String> getFeatures = null; // vector of das source nicknames to
- // fetch
- // features from
- // loading is done.
+
String groovyscript = null; // script to execute after all loading is
// completed one way or another
// extract groovy argument and execute if necessary
// TODO - load PDB structure(s) to alignment JAL-629
// (associate with identical sequence in alignment, or a specified
// sequence)
-
- getFeatures = checkDasArguments(aparser);
- if (af != null && getFeatures != null)
- {
- FeatureFetcher ff = startFeatureFetching(getFeatures);
- if (ff != null)
- {
- while (!ff.allFinished() || af.operationInProgress())
- {
- // wait around until fetching is finished.
- try
- {
- Thread.sleep(100);
- } catch (Exception e)
- {
-
- }
- }
- }
- getFeatures = null; // have retrieved features - forget them now.
- }
if (groovyscript != null)
{
// Execute the groovy script after we've done all the rendering stuff
startUpAlframe = fileLoader.LoadFileWaitTillLoaded(file, protocol,
format);
- getFeatures = checkDasArguments(aparser);
// extract groovy arguments before anything else.
}
- // If the user has specified features to be retrieved,
- // or a groovy script to be executed, do them if they
- // haven't been done already
- // fetch features for the default alignment
- if (getFeatures != null)
- {
- if (startUpAlframe != null)
- {
- startFeatureFetching(getFeatures);
- }
- }
+
// Once all other stuff is done, execute any groovy scripts (in order)
if (groovyscript != null)
{
}
}
- /**
- * Check commandline for any das server definitions or any fetchfrom switches
- *
- * @return vector of DAS source nicknames to retrieve from
- */
- private static Vector<String> checkDasArguments(ArgsParser aparser)
- {
- Vector<String> source = null;
- String data;
- String locsources = Cache.getProperty(Cache.DAS_LOCAL_SOURCE);
- while ((data = aparser.getValue("dasserver", true)) != null)
- {
- String nickname = null;
- String url = null;
- int pos = data.indexOf('=');
- // determine capabilities
- if (pos > 0)
- {
- nickname = data.substring(0, pos);
- }
- url = data.substring(pos + 1);
- if (url != null && (url.startsWith("http:")
- || url.startsWith("sequence:http:")))
- {
- if (nickname == null)
- {
- nickname = url;
- }
- if (locsources == null)
- {
- locsources = "";
- }
- else
- {
- locsources += "\t";
- }
- locsources = locsources + nickname + "|" + url;
- System.err.println(
- "NOTE! dasserver parameter not yet really supported (got args of "
- + nickname + "|" + url);
- if (source == null)
- {
- source = new Vector<>();
- }
- source.addElement(nickname);
- }
- System.out.println(
- "CMD [-dasserver " + data + "] executed successfully!");
- } // loop until no more server entries are found.
- if (locsources != null && locsources.indexOf('|') > -1)
- {
- Cache.log.debug("Setting local source list in properties file to:\n"
- + locsources);
- Cache.setProperty(Cache.DAS_LOCAL_SOURCE, locsources);
- }
- while ((data = aparser.getValue("fetchfrom", true)) != null)
- {
- System.out.println("adding source '" + data + "'");
- if (source == null)
- {
- source = new Vector<>();
- }
- source.addElement(data);
- }
- return source;
- }
-
- /**
- * start a feature fetcher for every alignment frame
- *
- * @param dasSources
- */
- private FeatureFetcher startFeatureFetching(
- final Vector<String> dasSources)
- {
- FeatureFetcher ff = new FeatureFetcher();
- AlignFrame afs[] = Desktop.getAlignFrames();
- if (afs == null || afs.length == 0)
- {
- return null;
- }
- for (int i = 0; i < afs.length; i++)
- {
- ff.addFetcher(afs[i], dasSources);
- }
- return ff;
- }
-
public static boolean isHeadlessMode()
{
String isheadless = System.getProperty("java.awt.headless");
+++ /dev/null
-/*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
- *
- * This file is part of Jalview.
- *
- * Jalview is free software: you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation, either version 3
- * of the License, or (at your option) any later version.
- *
- * Jalview is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
- * The Jalview Authors are detailed in the 'AUTHORS' file.
- */
-package jalview.jbgui;
-
-import jalview.util.MessageManager;
-
-import java.awt.BorderLayout;
-import java.awt.Dimension;
-import java.awt.FlowLayout;
-import java.awt.Font;
-import java.awt.GridBagConstraints;
-import java.awt.GridBagLayout;
-import java.awt.Insets;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-
-import javax.swing.BorderFactory;
-import javax.swing.JButton;
-import javax.swing.JEditorPane;
-import javax.swing.JLabel;
-import javax.swing.JList;
-import javax.swing.JPanel;
-import javax.swing.JProgressBar;
-import javax.swing.JScrollPane;
-import javax.swing.JTable;
-import javax.swing.JTextField;
-import javax.swing.SwingConstants;
-import javax.swing.border.TitledBorder;
-import javax.swing.event.HyperlinkEvent;
-import javax.swing.event.HyperlinkListener;
-
-public class GDasSourceBrowser extends JPanel
-{
- public GDasSourceBrowser()
- {
- try
- {
- jbInit();
- } catch (Exception ex)
- {
- ex.printStackTrace();
- }
- }
-
- private void jbInit() throws Exception
- {
- this.setLayout(gridBagLayout1);
- refresh.setText(
- MessageManager.getString("label.refresh_available_sources"));
- refresh.addActionListener(new ActionListener()
- {
- public void actionPerformed(ActionEvent e)
- {
- refresh_actionPerformed(e);
- }
- });
- progressBar.setPreferredSize(new Dimension(450, 20));
- progressBar.setString("");
- scrollPane.setBorder(titledBorder1);
- scrollPane.setBorder(BorderFactory.createEtchedBorder());
- fullDetailsScrollpane.setBorder(BorderFactory.createEtchedBorder());
- fullDetails.addHyperlinkListener(new HyperlinkListener()
- {
- public void hyperlinkUpdate(HyperlinkEvent e)
- {
- fullDetails_hyperlinkUpdate(e);
- }
- });
- fullDetails.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
- fullDetails.setEditable(false);
- registryLabel.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
- registryLabel.setHorizontalAlignment(SwingConstants.TRAILING);
- registryLabel.setText(MessageManager.getString("label.use_registry"));
- addLocal.setText(MessageManager.getString("label.add_local_source"));
- addLocal.addActionListener(new ActionListener()
- {
- public void actionPerformed(ActionEvent e)
- {
- amendLocal(true);
- }
- });
- jPanel1.setLayout(flowLayout1);
- jPanel1.setMinimumSize(new Dimension(596, 30));
- jPanel1.setPreferredSize(new Dimension(596, 30));
- jScrollPane2.setBorder(titledBorder3);
- jScrollPane3.setBorder(titledBorder4);
- jScrollPane4.setBorder(titledBorder5);
- titledBorder2
- .setTitleFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
- titledBorder3
- .setTitleFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
- titledBorder4
- .setTitleFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
- filter1.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
- filter2.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
- filter3.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
- table.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
- reset.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
- reset.setMargin(new Insets(2, 2, 2, 2));
- reset.setText(MessageManager.getString("action.reset"));
- reset.addActionListener(new ActionListener()
- {
- public void actionPerformed(ActionEvent e)
- {
- reset_actionPerformed(e);
- }
- });
- jPanel2.setLayout(borderLayout1);
- borderLayout1.setHgap(5);
- registryURL.setFont(new java.awt.Font("Verdana", Font.PLAIN, 10));
- scrollPane.getViewport().add(table);
- fullDetailsScrollpane.getViewport().add(fullDetails);
- jScrollPane3.getViewport().add(filter2);
- jScrollPane4.getViewport().add(filter3);
- jPanel1.add(refresh, null);
- jPanel1.add(addLocal, null);
- jPanel1.add(progressBar, null);
- jScrollPane2.getViewport().add(filter1);
- this.add(jPanel1, new GridBagConstraints(0, 3, 3, 1, 1.0, 1.0,
- GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
- new Insets(0, 0, 0, 0), 0, 0));
- this.add(fullDetailsScrollpane,
- new GridBagConstraints(1, 0, 2, 1, 1.0, 1.0,
- GridBagConstraints.CENTER, GridBagConstraints.BOTH,
- new Insets(3, 0, 0, 3), 240, 130));
- this.add(scrollPane,
- new GridBagConstraints(0, 0, 1, 1, 1.0, 1.0,
- GridBagConstraints.CENTER, GridBagConstraints.BOTH,
- new Insets(3, 2, 0, 0), 150, 130));
- jPanel2.add(registryLabel, java.awt.BorderLayout.WEST);
- jPanel2.add(registryURL, java.awt.BorderLayout.CENTER);
- jPanel2.add(reset, java.awt.BorderLayout.EAST);
- this.add(jPanel2, new GridBagConstraints(0, 2, 3, 1, 0.0, 0.0,
- GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL,
- new Insets(5, 10, 0, 10), 339, 0));
- this.add(jScrollPane2,
- new GridBagConstraints(0, 1, 1, 1, 1.0, 1.0,
- GridBagConstraints.CENTER, GridBagConstraints.BOTH,
- new Insets(0, 0, 0, 60), 80, 60));
- this.add(jScrollPane4,
- new GridBagConstraints(2, 1, 1, 1, 1.0, 1.0,
- GridBagConstraints.CENTER, GridBagConstraints.BOTH,
- new Insets(0, -80, 0, 0), 80, 60));
- this.add(jScrollPane3,
- new GridBagConstraints(1, 1, 1, 1, 1.0, 1.0,
- GridBagConstraints.CENTER, GridBagConstraints.BOTH,
- new Insets(0, -60, 0, 80), 80, 60));
- }
-
- protected JTable table = new JTable();
-
- protected JEditorPane fullDetails = new JEditorPane("text/html", "");
-
- TitledBorder titledBorder1 = new TitledBorder(
- MessageManager.getString("label.available_das_sources"));
-
- protected JButton refresh = new JButton();
-
- protected JProgressBar progressBar = new JProgressBar();
-
- protected JScrollPane scrollPane = new JScrollPane();
-
- TitledBorder titledBorder2 = new TitledBorder(
- MessageManager.getString("label.full_details"));
-
- protected JScrollPane fullDetailsScrollpane = new JScrollPane();
-
- protected JList filter1 = new JList();
-
- protected JList filter2 = new JList();
-
- protected JList filter3 = new JList();
-
- JScrollPane jScrollPane2 = new JScrollPane();
-
- JScrollPane jScrollPane3 = new JScrollPane();
-
- JScrollPane jScrollPane4 = new JScrollPane();
-
- protected JTextField registryURL = new JTextField();
-
- protected JLabel registryLabel = new JLabel();
-
- protected JButton addLocal = new JButton();
-
- JPanel jPanel1 = new JPanel();
-
- FlowLayout flowLayout1 = new FlowLayout();
-
- GridBagLayout gridBagLayout1 = new GridBagLayout();
-
- TitledBorder titledBorder3 = new TitledBorder(
- MessageManager.getString("label.authority") + ":");
-
- TitledBorder titledBorder4 = new TitledBorder(
- MessageManager.getString("label.type") + ":");
-
- TitledBorder titledBorder5 = new TitledBorder(
- MessageManager.getString("label.label") + ":");
-
- JButton reset = new JButton();
-
- JPanel jPanel2 = new JPanel();
-
- BorderLayout borderLayout1 = new BorderLayout();
-
- public void refresh_actionPerformed(ActionEvent e)
- {
-
- }
-
- public void fullDetails_hyperlinkUpdate(HyperlinkEvent e)
- {
- try
- {
-
- if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED)
- {
- jalview.util.BrowserLauncher.openURL(e.getURL().toString());
- }
- } catch (Exception ex)
- {
- System.out.println(e.getURL());
- ex.printStackTrace();
- }
- }
-
- public void amendLocal(boolean newSource)
- {
-
- }
-
- public void reset_actionPerformed(ActionEvent e)
- {
-
- }
-
-}
/*
* lookup from lower-case form of a name to its canonical (standardised) form
*/
- private static Map<String, String> canonicalSourceNameLookup = new HashMap<String, String>();
+ private static Map<String, String> canonicalSourceNameLookup = new HashMap<>();
- private static Map<String, String> dasCoordinateSystemsLookup = new HashMap<String, String>();
static
{
canonicalSourceNameLookup.get(k));
}
- dasCoordinateSystemsLookup.put("pdbresnum", DBRefSource.PDB);
- dasCoordinateSystemsLookup.put("uniprot", DBRefSource.UNIPROT);
- dasCoordinateSystemsLookup.put("embl", DBRefSource.EMBL);
- // dasCoordinateSystemsLookup.put("embl", DBRefSource.EMBLCDS);
}
/**
{
return dbrefs;
}
- HashSet<String> srcs = new HashSet<String>();
+ HashSet<String> srcs = new HashSet<>();
for (String src : sources)
{
srcs.add(src.toUpperCase());
}
- List<DBRefEntry> res = new ArrayList<DBRefEntry>();
+ List<DBRefEntry> res = new ArrayList<>();
for (DBRefEntry dbr : dbrefs)
{
String source = getCanonicalName(dbr.getSource());
}
/**
- * isDasCoordinateSystem
- *
- * @param string
- * String
- * @param dBRefEntry
- * DBRefEntry
- * @return boolean true if Source DBRefEntry is compatible with DAS
- * CoordinateSystem name
- */
-
- public static boolean isDasCoordinateSystem(String string,
- DBRefEntry dBRefEntry)
- {
- if (string == null || dBRefEntry == null)
- {
- return false;
- }
- String coordsys = dasCoordinateSystemsLookup.get(string.toLowerCase());
- return coordsys == null ? false
- : coordsys.equals(dBRefEntry.getSource());
- }
-
- /**
* look up source in an internal list of database reference sources and return
* the canonical jalview name for the source, or the original string if it has
* no canonical form.
static List<DBRefEntry> searchRefs(DBRefEntry[] refs, DBRefEntry entry,
DbRefComp comparator)
{
- List<DBRefEntry> rfs = new ArrayList<DBRefEntry>();
+ List<DBRefEntry> rfs = new ArrayList<>();
if (refs == null || entry == null)
{
return rfs;
public static List<DBRefEntry> searchRefsForSource(DBRefEntry[] dbRefs,
String source)
{
- List<DBRefEntry> matches = new ArrayList<DBRefEntry>();
+ List<DBRefEntry> matches = new ArrayList<>();
if (dbRefs != null && source != null)
{
for (DBRefEntry dbref : dbRefs)
// nothing to do
return;
}
- List<DBRefEntry> selfs = new ArrayList<DBRefEntry>();
+ List<DBRefEntry> selfs = new ArrayList<>();
{
DBRefEntry[] selfArray = selectDbRefs(!sequence.isProtein(),
sequence.getDBRefs());
selfs.remove(p);
}
}
- List<DBRefEntry> toPromote = new ArrayList<DBRefEntry>();
+ List<DBRefEntry> toPromote = new ArrayList<>();
for (DBRefEntry p : pr)
{
- List<String> promType = new ArrayList<String>();
+ List<String> promType = new ArrayList<>();
if (sequence.isProtein())
{
switch (getCanonicalName(p.getSource()))