action.save_as = Save as
action.save = Save
action.cancel_fetch = Cancel Fetch
-action.save_omit_hidden_columns = Save / Omit Hidden Columns
+action.save_omit_hidden_columns = Save / Omit Hidden Regions
action.change_font = Change Font
action.change_font_tree_panel = Change Font (Tree Panel)
action.colour = Colour
label.example_param = Example: {0}
label.select_file_format_before_saving = You must select a file format before saving!
label.file_format_not_specified = File format not specified
-label.alignment_contains_hidden_columns = The Alignment contains hidden columns.\nDo you want to save only the visible alignment?
+label.alignment_contains_hidden_columns = The Alignment contains hidden regions (hidden sequences/columns).\nDo you want to save only the visible alignment?
label.couldnt_save_file = Couldn't save file: {0}
label.error_saving_file = Error Saving File
label.remove_from_default_list = Remove from default list?
*/
package jalview.api;
+import java.util.List;
+
import jalview.commands.CommandI;
import jalview.schemes.ColourSchemeI;
void setMenusForViewport();
void changeColour(ColourSchemeI cs);
+
+ void hideColumns(List<int[]> colsToHide);
+
+ void syncHiddenSequences();
}
*/
package jalview.appletgui;
+import java.awt.BorderLayout;
+import java.awt.Canvas;
+import java.awt.CheckboxMenuItem;
+import java.awt.Color;
+import java.awt.Font;
+import java.awt.FontMetrics;
+import java.awt.Frame;
+import java.awt.Graphics;
+import java.awt.Label;
+import java.awt.Menu;
+import java.awt.MenuBar;
+import java.awt.MenuItem;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.FocusEvent;
+import java.awt.event.FocusListener;
+import java.awt.event.ItemEvent;
+import java.awt.event.ItemListener;
+import java.awt.event.KeyEvent;
+import java.awt.event.KeyListener;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+import java.io.IOException;
+import java.net.URL;
+import java.net.URLEncoder;
+import java.util.Arrays;
+import java.util.Deque;
+import java.util.HashMap;
+import java.util.Hashtable;
+import java.util.List;
+import java.util.Map;
+import java.util.StringTokenizer;
+import java.util.Vector;
+
import jalview.analysis.AlignmentSorter;
import jalview.analysis.AnnotationSorter.SequenceAnnotationOrder;
import jalview.api.AlignViewControllerGuiI;
import jalview.util.MessageManager;
import jalview.viewmodel.AlignmentViewport;
-import java.awt.BorderLayout;
-import java.awt.Canvas;
-import java.awt.CheckboxMenuItem;
-import java.awt.Color;
-import java.awt.Font;
-import java.awt.FontMetrics;
-import java.awt.Frame;
-import java.awt.Graphics;
-import java.awt.Label;
-import java.awt.Menu;
-import java.awt.MenuBar;
-import java.awt.MenuItem;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.awt.event.FocusEvent;
-import java.awt.event.FocusListener;
-import java.awt.event.ItemEvent;
-import java.awt.event.ItemListener;
-import java.awt.event.KeyEvent;
-import java.awt.event.KeyListener;
-import java.awt.event.WindowAdapter;
-import java.awt.event.WindowEvent;
-import java.io.IOException;
-import java.net.URL;
-import java.net.URLEncoder;
-import java.util.Arrays;
-import java.util.Deque;
-import java.util.HashMap;
-import java.util.Hashtable;
-import java.util.List;
-import java.util.Map;
-import java.util.StringTokenizer;
-import java.util.Vector;
-
public class AlignFrame extends EmbmenuFrame implements ActionListener,
ItemListener, KeyListener, AlignViewControllerGuiI
{
public void setShowSeqFeatures(boolean b)
{
// showSeqFeatures.setSelected(b);
- viewport.setShowSequenceFeatures(b);
+ // viewport.setShowSequenceFeatures(b);
}
// setMenusFromViewport(viewport);
}
+
+ @Override
+ public void hideColumns(List<int[]> colsToHide)
+ {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void syncHiddenSequences()
+ {
+ // TODO Auto-generated method stub
+
+ }
}
desktop.checkForNews();
}
- BioJsHTMLOutput bjs = new BioJsHTMLOutput(null, null);
- bjs.updateBioJS();
+ BioJsHTMLOutput.updateBioJS();
String file = null, protocol = null, format = null, data = null;
jalview.io.FileLoader fileLoader = new jalview.io.FileLoader();
index++;
}
}
+ Alignment fAlignmt = new Alignment(seq);
+ fAlignmt.annotations = alignment.getAlignmentAnnotation();
+ fAlignmt.alignmentProperties = alignment.getProperties();
+ fAlignmt.groups = alignment.getGroups();
+ fAlignmt.hasRNAStructure = alignment.hasRNAStructure();
- return new Alignment(seq);
+ return fAlignmt;
}
public boolean isHidden(SequenceI seq)
RNA rna;
+ private boolean hidden;
+
/**
* This annotation is displayed below the alignment but the positions are tied
* to the residues of this sequence
return result;
}
+ @Override
+ public boolean isHidden()
+ {
+ return this.hidden;
+ }
+
+ @Override
+ public void setHidden(Boolean hidden)
+ {
+ this.hidden = hidden;
+ }
+
}
*/
public List<int[]> getInsertions();
+ /**
+ *
+ * @return returns true if the sequence is hidden
+ */
+ public boolean isHidden();
+
+ /**
+ *
+ * @param hidden
+ * visibility status of the sequence
+ */
+ public void setHidden(Boolean hidden);
+
}
*/
package jalview.gui;
+import java.awt.BorderLayout;
+import java.awt.Component;
+import java.awt.Rectangle;
+import java.awt.Toolkit;
+import java.awt.datatransfer.Clipboard;
+import java.awt.datatransfer.DataFlavor;
+import java.awt.datatransfer.StringSelection;
+import java.awt.datatransfer.Transferable;
+import java.awt.dnd.DnDConstants;
+import java.awt.dnd.DropTargetDragEvent;
+import java.awt.dnd.DropTargetDropEvent;
+import java.awt.dnd.DropTargetEvent;
+import java.awt.dnd.DropTargetListener;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.ItemEvent;
+import java.awt.event.ItemListener;
+import java.awt.event.KeyAdapter;
+import java.awt.event.KeyEvent;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.awt.print.PageFormat;
+import java.awt.print.PrinterJob;
+import java.beans.PropertyChangeEvent;
+import java.io.File;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Deque;
+import java.util.Enumeration;
+import java.util.Hashtable;
+import java.util.List;
+import java.util.Set;
+import java.util.Vector;
+
+import javax.swing.JCheckBoxMenuItem;
+import javax.swing.JEditorPane;
+import javax.swing.JInternalFrame;
+import javax.swing.JLayeredPane;
+import javax.swing.JMenu;
+import javax.swing.JMenuItem;
+import javax.swing.JOptionPane;
+import javax.swing.JRadioButtonMenuItem;
+import javax.swing.JScrollPane;
+import javax.swing.SwingUtilities;
+
import jalview.analysis.AAFrequency;
import jalview.analysis.AlignmentSorter;
import jalview.analysis.AlignmentUtils;
import jalview.datamodel.AlignmentOrder;
import jalview.datamodel.AlignmentView;
import jalview.datamodel.ColumnSelection;
+import jalview.datamodel.HiddenSequences;
import jalview.datamodel.PDBEntry;
import jalview.datamodel.SeqCigar;
import jalview.datamodel.Sequence;
import jalview.ws.jws2.jabaws2.Jws2Instance;
import jalview.ws.seqfetcher.DbSourceProxy;
-import java.awt.BorderLayout;
-import java.awt.Component;
-import java.awt.Rectangle;
-import java.awt.Toolkit;
-import java.awt.datatransfer.Clipboard;
-import java.awt.datatransfer.DataFlavor;
-import java.awt.datatransfer.StringSelection;
-import java.awt.datatransfer.Transferable;
-import java.awt.dnd.DnDConstants;
-import java.awt.dnd.DropTargetDragEvent;
-import java.awt.dnd.DropTargetDropEvent;
-import java.awt.dnd.DropTargetEvent;
-import java.awt.dnd.DropTargetListener;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.awt.event.ItemEvent;
-import java.awt.event.ItemListener;
-import java.awt.event.KeyAdapter;
-import java.awt.event.KeyEvent;
-import java.awt.event.MouseAdapter;
-import java.awt.event.MouseEvent;
-import java.awt.print.PageFormat;
-import java.awt.print.PrinterJob;
-import java.beans.PropertyChangeEvent;
-import java.io.File;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Deque;
-import java.util.Enumeration;
-import java.util.Hashtable;
-import java.util.List;
-import java.util.Set;
-import java.util.Vector;
-
-import javax.swing.JCheckBoxMenuItem;
-import javax.swing.JEditorPane;
-import javax.swing.JInternalFrame;
-import javax.swing.JLayeredPane;
-import javax.swing.JMenu;
-import javax.swing.JMenuItem;
-import javax.swing.JOptionPane;
-import javax.swing.JRadioButtonMenuItem;
-import javax.swing.JScrollPane;
-import javax.swing.SwingUtilities;
-
/**
* DOCUMENT ME!
*
return false;
}
- String[] omitHidden = null;
-
- if (viewport.hasHiddenColumns())
- {
- int reply = JOptionPane
- .showInternalConfirmDialog(
- Desktop.desktop,
- MessageManager
- .getString("label.alignment_contains_hidden_columns"),
- MessageManager
- .getString("action.save_omit_hidden_columns"),
- JOptionPane.YES_NO_OPTION,
- JOptionPane.QUESTION_MESSAGE);
-
- if (reply == JOptionPane.YES_OPTION)
- {
- omitHidden = viewport.getViewAsString(false);
- }
- }
- FeatureRenderer fr = new FeatureRenderer(this.alignPanel);
- viewport.setFeatureRenderer(fr);
+ ExportData exportData = getAlignmentForExport();
FormatAdapter f = new FormatAdapter(viewport);
String output = f.formatSequences(format,
- viewport.getAlignment(), // class cast exceptions will
+ exportData.getAlignment(), // class cast exceptions will
// occur in the distant future
- omitHidden, f.getCacheSuffixDefault(format),
+ exportData.getOmitHidden(), f.getCacheSuffixDefault(format),
viewport.getColumnSelection());
if (output == null)
return success;
}
+
private void warningMessage(String warning, String title)
{
if (new jalview.util.Platform().isHeadless())
@Override
protected void outputText_actionPerformed(ActionEvent e)
{
+
+ ExportData exportData = getAlignmentForExport();
+ CutAndPasteTransfer cap = new CutAndPasteTransfer();
+ cap.setForInput(null);
+
+ try
+ {
+ cap.setText(new FormatAdapter(viewport).formatSequences(
+ e.getActionCommand(),
+ exportData.getAlignment(),
+ exportData.getOmitHidden(),
+ viewport.getColumnSelection()));
+ Desktop.addInternalFrame(cap, MessageManager.formatMessage(
+ "label.alignment_output_command", new Object[]
+ { e.getActionCommand() }), 600, 500);
+ } catch (OutOfMemoryError oom)
+ {
+ new OOMWarning("Outputting alignment as " + e.getActionCommand(), oom);
+ cap.dispose();
+ }
+
+ }
+
+ public ExportData getAlignmentForExport()
+ {
+ AlignmentI alignmentToExport = null;
String[] omitHidden = null;
FeatureRenderer fr = new FeatureRenderer(this.alignPanel);
viewport.setFeatureRenderer(fr);
- if (viewport.hasHiddenColumns())
+ HiddenSequences hiddenSeqs = viewport.getAlignment()
+ .getHiddenSequences();
+ if (viewport.hasHiddenColumns() || hiddenSeqs.getSize() > 0)
{
int reply = JOptionPane
.showInternalConfirmDialog(
{
omitHidden = viewport.getViewAsString(false);
}
+ else
+ {
+ alignmentToExport = viewport.getAlignment().getHiddenSequences()
+ .getFullAlignment();
+ }
}
-
- CutAndPasteTransfer cap = new CutAndPasteTransfer();
- cap.setForInput(null);
-
- try
+ if (alignmentToExport == null)
{
- cap.setText(new FormatAdapter(viewport).formatSequences(
- e.getActionCommand(),
- viewport.getAlignment(), omitHidden,
- viewport.getColumnSelection()));
- Desktop.addInternalFrame(cap, MessageManager.formatMessage(
- "label.alignment_output_command", new Object[]
- { e.getActionCommand() }), 600, 500);
- } catch (OutOfMemoryError oom)
- {
- new OOMWarning("Outputting alignment as " + e.getActionCommand(), oom);
- cap.dispose();
+ alignmentToExport = viewport.getAlignment();
}
-
+ return new ExportData(alignmentToExport, omitHidden);
}
/**
sf.setComplementVisible(this, show);
}
}
+
+ public class ExportData
+ {
+ private AlignmentI alignment;
+
+ private String[] omitHidden;
+
+ public ExportData(AlignmentI align, String[] ommit)
+ {
+ this.alignment = align;
+ this.omitHidden = ommit;
+ System.out.println();
+ }
+
+ public AlignmentI getAlignment()
+ {
+ return alignment;
+ }
+
+ public void setAlignment(AlignmentI alignment)
+ {
+ this.alignment = alignment;
+ }
+
+ public String[] getOmitHidden()
+ {
+ return omitHidden;
+ }
+
+ public void setOmitHidden(String[] omitHidden)
+ {
+ this.omitHidden = omitHidden;
+ }
+ }
+
+ @Override
+ public void hideColumns(List<int[]> colsToHide)
+ {
+ for (int[] colRange : colsToHide)
+ {
+ viewport.hideColumns(colRange[0], colRange[1]);
+ }
+
+ }
+
+ @Override
+ public void syncHiddenSequences()
+ {
+ AlignmentI al = viewport.getAlignment();
+ HiddenSequences hiddenSeqs = al.getHiddenSequences();
+ for (SequenceI seq : al.getSequencesArray())
+ {
+ if (seq.isHidden())
+ {
+ hiddenSeqs.hideSequence(seq);
+ }
+ }
+ }
}
class PrintThread extends Thread
if (source instanceof HtmlFile)
{
- ((HtmlFile) source).applySettingsToAlignFrame(af);
+ ((HtmlFile) source).applySettingsToAlignmentView(af);
}
else if (source instanceof JSONFile)
{
- ((JSONFile) source).applySettingsToAlignFrame(af);
+ ((JSONFile) source).applySettingsToAlignmentView(af);
}
*/
package jalview.io;
+import java.io.File;
+import java.io.InputStream;
+import java.util.List;
+
import jalview.api.AlignViewportI;
import jalview.datamodel.Alignment;
import jalview.datamodel.AlignmentAnnotation;
import jalview.datamodel.SequenceGroup;
import jalview.util.MessageManager;
-import java.io.File;
-import java.io.InputStream;
-import java.util.List;
-
/**
* A low level class for alignment and feature IO with alignment formatting
* methods used by both applet and application for generating flat alignment
{
al.addGroup(sg);
}
+
return al;
}
else if (format.equals(HtmlFile.FILE_DESC))
return sb.toString();
}
- public void refreshBioJSVersionsInfo(String dirName)
+ public static void refreshBioJSVersionsInfo(String dirName)
throws URISyntaxException
{
File directory = new File(BJS_TEMPLATES_LOCAL_DIRECTORY);
setBioJsMSAVersions(versionFileMap);
}
- public void updateBioJS()
+ public static void updateBioJS()
{
Thread updateThread = new Thread()
{
}
- public void syncUpdates(String localDir, BioJSRepositoryPojo repo)
+ public static void syncUpdates(String localDir, BioJSRepositoryPojo repo)
{
for (BioJSReleasePojo bjsRelease : repo.getReleases())
{
}
if (source instanceof HtmlFile)
{
- ((HtmlFile) source).applySettingsToAlignFrame(alignFrame);
+ ((HtmlFile) source).applySettingsToAlignmentView(alignFrame);
}
else if (source instanceof JSONFile)
{
- ((JSONFile) source).applySettingsToAlignFrame(alignFrame);
+ ((JSONFile) source).applySettingsToAlignmentView(alignFrame);
}
if (raiseGUI)
package jalview.io;
-import jalview.api.AlignViewControllerGuiI;
-import jalview.schemes.ColourSchemeI;
-
import java.io.IOException;
+import java.util.List;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
+import jalview.api.AlignViewControllerGuiI;
+import jalview.schemes.ColourSchemeI;
+
public class HtmlFile extends AlignFile
{
public static final String FILE_EXT = "html";
private boolean showSeqFeatures;
+ private List<int[]> hiddenColumns;
+
public HtmlFile()
{
super();
String alignmentJsonString = content.val();
JSONFile jsonFile = new JSONFile().parse(alignmentJsonString);
- seqs = jsonFile.getSeqs();
- seqGroups = jsonFile.getSeqGroups();
- annotations = jsonFile.getAnnotations();
- showSeqFeatures = jsonFile.isShowSeqFeatures();
- colourScheme = jsonFile.getColourScheme();
+ this.seqs = jsonFile.getSeqs();
+ this.seqGroups = jsonFile.getSeqGroups();
+ this.annotations = jsonFile.getAnnotations();
+ this.showSeqFeatures = jsonFile.isShowSeqFeatures();
+ this.colourScheme = jsonFile.getColourScheme();
+ this.hiddenColumns = jsonFile.getHiddenColumns();
} catch (Exception e)
{
e.printStackTrace();
}
}
- public void applySettingsToAlignFrame(AlignViewControllerGuiI af)
+ public void applySettingsToAlignmentView(AlignViewControllerGuiI avc)
{
- af.setShowSeqFeatures(isShowSeqFeatures());
- af.changeColour(getColourScheme());
- af.setMenusForViewport();
+ avc.setShowSeqFeatures(isShowSeqFeatures());
+ avc.changeColour(getColourScheme());
+ avc.setMenusForViewport();
+ avc.hideColumns(hiddenColumns);
+ avc.syncHiddenSequences();
}
-
@Override
public String print()
{
package jalview.io;
+import java.awt.Color;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Hashtable;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Vector;
+
+import org.json.simple.JSONArray;
+import org.json.simple.JSONObject;
+import org.json.simple.parser.JSONParser;
+
import jalview.api.AlignViewControllerGuiI;
import jalview.api.AlignViewportI;
import jalview.api.FeatureRenderer;
import jalview.schemes.ColourSchemeI;
import jalview.schemes.ColourSchemeProperty;
-import java.awt.Color;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Vector;
-
-import org.json.simple.JSONArray;
-import org.json.simple.JSONObject;
-import org.json.simple.parser.JSONParser;
-
public class JSONFile extends AlignFile
{
private ColourSchemeI colourScheme;
private JSONExportSettings jsonExportSettings;
+ private List<int[]> hiddenColumns;
+
+ private List<String> hiddenSeqRefs;
+
public JSONFile()
{
super();
name.append(seq.getName()).append("/").append(seq.getStart())
.append("-").append(seq.getEnd());
SequencePojo jsonSeqPojo = new SequencePojo();
- jsonSeqPojo.setId(seq.getName() + "_" + seq.hashCode());
+ jsonSeqPojo.setId(String.valueOf(seq.hashCode()));
jsonSeqPojo.setOrder(++count);
jsonSeqPojo.setEnd(seq.getEnd());
jsonSeqPojo.setStart(seq.getStart());
seqGrpPojo.setShowNonconserved(seqGrp.getShowNonconserved());
for (SequenceI seq : seqGrp.getSequences())
{
- seqGrpPojo.getSeqsHash().add(
- seq.getName() + "_" + seq.hashCode());
+ seqGrpPojo.getSeqsHash().add(String.valueOf(seq.hashCode()));
}
jsonAlignmentPojo.getSeqGroups().add(seqGrpPojo);
}
&& displayedFeatures.isVisible(sf.getType()))
{
SequenceFeaturesPojo jsonFeature = new SequenceFeaturesPojo(
- seq.getName() + "_" + seq.hashCode());
+ String.valueOf(seq.hashCode()));
String featureColour = (fr == null) ? null : jalview.util.Format
.getHexString(fr
.findFeatureColour(Color.white, seq,
"showSeqFeatures").toString());
setColourScheme(getJalviewColorScheme(jsColourScheme));
setShowSeqFeatures(showFeatures);
+ parseHiddenSeqRefsAsList(jvSettingsJsonObj);
+ parseHiddenCols(jvSettingsJsonObj);
}
seqMap = new Hashtable<String, Sequence>();
int end = Integer.valueOf(sequence.get("end").toString());
Sequence seq = new Sequence(sequenceName, sequcenceString, start,
end);
+ if (hiddenSeqRefs.contains(seqUniqueId))
+ {
+ seq.setHidden(true);
+ }
seqs.add(seq);
seqMap.put(seqUniqueId, seq);
}
return this;
}
+ public void parseHiddenSeqRefsAsList(JSONObject jvSettingsJson)
+ {
+ hiddenSeqRefs = new ArrayList<String>();
+ String hiddenSeqs = (String) jvSettingsJson.get("hiddenSeqs");
+ if(hiddenSeqs != null && !hiddenSeqs.isEmpty()){
+ String[] seqRefs = hiddenSeqs.split(";");
+ for(String seqRef : seqRefs){
+ hiddenSeqRefs.add(seqRef);
+ }
+ }
+ }
+
+ public void parseHiddenCols(JSONObject jvSettingsJson)
+ {
+ hiddenColumns = new ArrayList<int[]>();
+ String hiddenCols = (String) jvSettingsJson.get("hiddenCols");
+ if(hiddenCols != null && !hiddenCols.isEmpty()){
+ String[] rangeStrings = hiddenCols.split(";");
+ for(String rangeString : rangeStrings){
+ String[] range = rangeString.split("-");
+ hiddenColumns.add(new int[]
+ { Integer.valueOf(range[0]), Integer.valueOf(range[1]) });
+ }
+ }
+ }
@SuppressWarnings("unchecked")
private void parseFeatures(JSONArray jsonSeqFeatures)
return jalviewColor;
}
- public void applySettingsToAlignFrame(AlignViewControllerGuiI af)
+ public void applySettingsToAlignmentView(AlignViewControllerGuiI avc)
{
- af.setShowSeqFeatures(isShowSeqFeatures());
- af.changeColour(getColourScheme());
- af.setMenusForViewport();
+ avc.setShowSeqFeatures(isShowSeqFeatures());
+ avc.changeColour(getColourScheme());
+ avc.setMenusForViewport();
+ avc.hideColumns(hiddenColumns);
+ avc.syncHiddenSequences();
}
public String getGlobalColorScheme()
return annotations;
}
+ public List<int[]> getHiddenColumns()
+ {
+ return hiddenColumns;
+ }
+
public class JSONExportSettings
{
private boolean exportSequence;
@Test
public void getJalviewAlignmentAsJsonString()
{
- BioJsHTMLOutput bioJsHtmlOutput = new BioJsHTMLOutput(null, null);
String bjsTemplate = null;
try
{
- bioJsHtmlOutput.updateBioJS();
+ BioJsHTMLOutput.updateBioJS();
try
{
// allow the update some three seconds to complete before getting latest
@Test(expected = NullPointerException.class)
public void expectedNullPointerException()
{
- BioJsHTMLOutput bjs = new BioJsHTMLOutput(null, null);
try
{
- bjs.refreshBioJSVersionsInfo(null);
+ BioJsHTMLOutput.refreshBioJSVersionsInfo(null);
} catch (URISyntaxException e)
{
Assert.fail("Expception occured while testing!");
@Test
public void getBioJsMSAVersions()
{
- BioJsHTMLOutput bjs = new BioJsHTMLOutput(null, null);
TreeMap<String, File> versions = null;
try
{
- bjs.refreshBioJSVersionsInfo(BioJsHTMLOutput.BJS_TEMPLATES_LOCAL_DIRECTORY);
+ BioJsHTMLOutput
+ .refreshBioJSVersionsInfo(BioJsHTMLOutput.BJS_TEMPLATES_LOCAL_DIRECTORY);
versions = BioJsHTMLOutput.getBioJsMSAVersions();
} catch (URISyntaxException e)
{