import jalview.api.FeatureSettingsControllerI;
import jalview.api.SplitContainerI;
import jalview.api.ViewStyleI;
-import jalview.api.analysis.ScoreModelI;
+import jalview.api.analysis.SimilarityParamsI;
import jalview.bin.Cache;
import jalview.bin.Jalview;
import jalview.commands.CommandI;
import jalview.datamodel.AlignmentOrder;
import jalview.datamodel.AlignmentView;
import jalview.datamodel.ColumnSelection;
+import jalview.datamodel.HiddenColumns;
import jalview.datamodel.HiddenSequences;
import jalview.datamodel.PDBEntry;
import jalview.datamodel.SeqCigar;
import jalview.io.FileFormatI;
import jalview.io.FileFormats;
import jalview.io.FileLoader;
+import jalview.io.FileParse;
import jalview.io.FormatAdapter;
import jalview.io.HtmlSvgOutput;
import jalview.io.IdentifyFile;
import jalview.io.JalviewFileView;
import jalview.io.JnetAnnotationMaker;
import jalview.io.NewickFile;
+import jalview.io.ScoreMatrixFile;
import jalview.io.TCoffeeScoreFile;
+import jalview.io.vcf.VCFLoader;
import jalview.jbgui.GAlignFrame;
import jalview.schemes.ColourSchemeI;
import jalview.schemes.ColourSchemes;
import jalview.schemes.ResidueColourScheme;
-import jalview.schemes.ResidueProperties;
import jalview.schemes.TCoffeeColourScheme;
import jalview.util.MessageManager;
import jalview.viewmodel.AlignmentViewport;
+import jalview.viewmodel.ViewportRanges;
import jalview.ws.DBRefFetcher;
import jalview.ws.DBRefFetcher.FetchFinishedListenerI;
import jalview.ws.jws1.Discoverer;
public AlignViewControllerI avc;
- List<AlignmentPanel> alignPanels = new ArrayList<AlignmentPanel>();
+ List<AlignmentPanel> alignPanels = new ArrayList<>();
/**
* Last format used to load or save alignments in this window
* @param height
* height of frame.
*/
- public AlignFrame(AlignmentI al, ColumnSelection hiddenColumns,
- int width, int height)
+ public AlignFrame(AlignmentI al, HiddenColumns hiddenColumns, int width,
+ int height)
{
this(al, hiddenColumns, width, height, null);
}
* @param sequenceSetId
* (may be null)
*/
- public AlignFrame(AlignmentI al, ColumnSelection hiddenColumns,
- int width, int height, String sequenceSetId)
+ public AlignFrame(AlignmentI al, HiddenColumns hiddenColumns, int width,
+ int height, String sequenceSetId)
{
this(al, hiddenColumns, width, height, sequenceSetId, null);
}
* @param viewId
* (may be null)
*/
- public AlignFrame(AlignmentI al, ColumnSelection hiddenColumns,
- int width, int height, String sequenceSetId, String viewId)
+ public AlignFrame(AlignmentI al, HiddenColumns hiddenColumns, int width,
+ int height, String sequenceSetId, String viewId)
{
setSize(width, height);
}
public AlignFrame(AlignmentI al, SequenceI[] hiddenSeqs,
- ColumnSelection hiddenColumns, int width, int height)
+ HiddenColumns hiddenColumns, int width, int height)
{
setSize(width, height);
setMenusFromViewport(viewport);
buildSortByAnnotationScoresMenu();
- buildTreeMenu();
+ calculateTree.addActionListener(new ActionListener()
+ {
+
+ @Override
+ public void actionPerformed(ActionEvent e)
+ {
+ openTreePcaDialog();
+ }
+ });
buildColourMenu();
if (Desktop.desktop != null)
addKeyListener();
- final List<AlignmentPanel> selviews = new ArrayList<AlignmentPanel>();
- final List<AlignmentPanel> origview = new ArrayList<AlignmentPanel>();
+ final List<AlignmentPanel> selviews = new ArrayList<>();
+ final List<AlignmentPanel> origview = new ArrayList<>();
final String menuLabel = MessageManager
.getString("label.copy_format_from");
ViewSelectionMenu vsel = new ViewSelectionMenu(menuLabel,
origview.clear();
origview.add(alignPanel);
// make an array of all alignment panels except for this one
- List<AlignmentPanel> aps = new ArrayList<AlignmentPanel>(
+ List<AlignmentPanel> aps = new ArrayList<>(
Arrays.asList(Desktop.getAlignmentPanels(null)));
aps.remove(AlignFrame.this.alignPanel);
return aps.toArray(new AlignmentPanel[aps.size()]);
public void keyPressed(KeyEvent evt)
{
if (viewport.cursorMode
- && ((evt.getKeyCode() >= KeyEvent.VK_0 && evt.getKeyCode() <= KeyEvent.VK_9) || (evt
- .getKeyCode() >= KeyEvent.VK_NUMPAD0 && evt
- .getKeyCode() <= KeyEvent.VK_NUMPAD9))
+ && ((evt.getKeyCode() >= KeyEvent.VK_0
+ && evt.getKeyCode() <= KeyEvent.VK_9)
+ || (evt.getKeyCode() >= KeyEvent.VK_NUMPAD0
+ && evt.getKeyCode() <= KeyEvent.VK_NUMPAD9))
&& Character.isDigit(evt.getKeyChar()))
{
alignPanel.getSeqPanel().numberPressed(evt.getKeyChar());
case KeyEvent.VK_LEFT:
if (evt.isAltDown() || !viewport.cursorMode)
{
- slideSequences(false, alignPanel.getSeqPanel().getKeyboardNo1());
+ slideSequences(false,
+ alignPanel.getSeqPanel().getKeyboardNo1());
}
else
{
case KeyEvent.VK_SPACE:
if (viewport.cursorMode)
{
- alignPanel.getSeqPanel().insertGapAtCursor(
- evt.isControlDown() || evt.isShiftDown()
- || evt.isAltDown());
+ alignPanel.getSeqPanel().insertGapAtCursor(evt.isControlDown()
+ || evt.isShiftDown() || evt.isAltDown());
}
break;
}
else
{
- alignPanel.getSeqPanel().deleteGapAtCursor(
- evt.isControlDown() || evt.isShiftDown()
- || evt.isAltDown());
+ alignPanel.getSeqPanel().deleteGapAtCursor(evt.isControlDown()
+ || evt.isShiftDown() || evt.isAltDown());
}
break;
case KeyEvent.VK_F2:
viewport.cursorMode = !viewport.cursorMode;
- statusBar.setText(MessageManager.formatMessage(
- "label.keyboard_editing_mode",
- new String[] { (viewport.cursorMode ? "on" : "off") }));
+ statusBar.setText(MessageManager
+ .formatMessage("label.keyboard_editing_mode", new String[]
+ { (viewport.cursorMode ? "on" : "off") }));
if (viewport.cursorMode)
{
- alignPanel.getSeqPanel().seqCanvas.cursorX = viewport
+ ViewportRanges ranges = viewport.getRanges();
+ alignPanel.getSeqPanel().seqCanvas.cursorX = ranges
.getStartRes();
- alignPanel.getSeqPanel().seqCanvas.cursorY = viewport
+ alignPanel.getSeqPanel().seqCanvas.cursorY = ranges
.getStartSeq();
}
alignPanel.getSeqPanel().seqCanvas.repaint();
break;
}
case KeyEvent.VK_PAGE_UP:
- if (viewport.getWrapAlignment())
- {
- alignPanel.scrollUp(true);
- }
- else
- {
- alignPanel.setScrollValues(viewport.getStartRes(),
- 2 * viewport.getStartSeq() - viewport.getEndSeq());
- }
+ viewport.getRanges().pageUp();
break;
case KeyEvent.VK_PAGE_DOWN:
- if (viewport.getWrapAlignment())
- {
- alignPanel.scrollUp(false);
- }
- else
- {
- alignPanel.setScrollValues(viewport.getStartRes(),
- viewport.getEndSeq());
- }
+ viewport.getRanges().pageDown();
break;
}
}
case KeyEvent.VK_LEFT:
if (evt.isAltDown() || !viewport.cursorMode)
{
- viewport.firePropertyChange("alignment", null, viewport
- .getAlignment().getSequences());
+ viewport.firePropertyChange("alignment", null,
+ viewport.getAlignment().getSequences());
}
break;
case KeyEvent.VK_RIGHT:
if (evt.isAltDown() || !viewport.cursorMode)
{
- viewport.firePropertyChange("alignment", null, viewport
- .getAlignment().getSequences());
+ viewport.firePropertyChange("alignment", null,
+ viewport.getAlignment().getSequences());
}
break;
}
@Override
public void run()
{
- System.err
- .println("Rebuild WS Menu for service change");
+ System.err.println(
+ "Rebuild WS Menu for service change");
BuildWebServiceMenu();
}
AlignmentI al = getViewport().getAlignment();
boolean nucleotide = al.isNucleotide();
+ loadVcf.setVisible(nucleotide);
showTranslation.setVisible(nucleotide);
showReverse.setVisible(nucleotide);
showReverseComplement.setVisible(nucleotide);
conservationMenuItem.setEnabled(!nucleotide);
- modifyConservation.setEnabled(!nucleotide
- && conservationMenuItem.isSelected());
+ modifyConservation
+ .setEnabled(!nucleotide && conservationMenuItem.isSelected());
showGroupConservation.setEnabled(!nucleotide);
- showComplementMenuItem.setText(nucleotide ? MessageManager
- .getString("label.protein") : MessageManager
- .getString("label.nucleotide"));
+ showComplementMenuItem
+ .setText(nucleotide ? MessageManager.getString("label.protein")
+ : MessageManager.getString("label.nucleotide"));
}
/**
Desktop.instance.closeAssociatedWindows();
FileLoader loader = new FileLoader();
- DataSourceType protocol = fileName.startsWith("http:") ? DataSourceType.URL
+ DataSourceType protocol = fileName.startsWith("http:")
+ ? DataSourceType.URL
: DataSourceType.FILE;
loader.LoadFile(viewport, fileName, protocol, currentFileFormat);
}
Rectangle bounds = this.getBounds();
FileLoader loader = new FileLoader();
- DataSourceType protocol = fileName.startsWith("http:") ? DataSourceType.URL
+ DataSourceType protocol = fileName.startsWith("http:")
+ ? DataSourceType.URL
: DataSourceType.FILE;
AlignFrame newframe = loader.LoadFileWaitTillLoaded(fileName,
protocol, currentFileFormat);
@Override
public void addFromText_actionPerformed(ActionEvent e)
{
- Desktop.instance.inputTextboxMenuItem_actionPerformed(viewport
- .getAlignPanel());
+ Desktop.instance
+ .inputTextboxMenuItem_actionPerformed(viewport.getAlignPanel());
}
@Override
@Override
public void saveAs_actionPerformed(ActionEvent e)
{
- String format = currentFileFormat == null ? null : currentFileFormat
- .getName();
- JalviewFileChooser chooser = JalviewFileChooser.forWrite(
- Cache.getProperty("LAST_DIRECTORY"), format);
+ String format = currentFileFormat == null ? null
+ : currentFileFormat.getName();
+ JalviewFileChooser chooser = JalviewFileChooser
+ .forWrite(Cache.getProperty("LAST_DIRECTORY"), format);
chooser.setFileView(new JalviewFileView());
- chooser.setDialogTitle(MessageManager
- .getString("label.save_alignment_to_file"));
+ chooser.setDialogTitle(
+ MessageManager.getString("label.save_alignment_to_file"));
chooser.setToolTipText(MessageManager.getString("action.save"));
int value = chooser.showSaveDialog(this);
currentFileFormat = chooser.getSelectedFormat();
while (currentFileFormat == null)
{
- JvOptionPane
- .showInternalMessageDialog(
- Desktop.desktop,
- MessageManager
- .getString("label.select_file_format_before_saving"),
- MessageManager
- .getString("label.file_format_not_specified"),
- JvOptionPane.WARNING_MESSAGE);
+ JvOptionPane.showInternalMessageDialog(Desktop.desktop,
+ MessageManager.getString(
+ "label.select_file_format_before_saving"),
+ MessageManager.getString("label.file_format_not_specified"),
+ JvOptionPane.WARNING_MESSAGE);
currentFileFormat = chooser.getSelectedFormat();
value = chooser.showSaveDialog(this);
if (value != JalviewFileChooser.APPROVE_OPTION)
if (shortName.indexOf(java.io.File.separatorChar) > -1)
{
- shortName = shortName.substring(shortName
- .lastIndexOf(java.io.File.separatorChar) + 1);
+ shortName = shortName.substring(
+ shortName.lastIndexOf(java.io.File.separatorChar) + 1);
}
success = new Jalview2XML().saveAlignment(this, file, shortName);
statusBar.setText(MessageManager.formatMessage(
- "label.successfully_saved_to_file_in_format", new Object[] {
- fileName, format }));
+ "label.successfully_saved_to_file_in_format", new Object[]
+ { fileName, format }));
}
else
}
FormatAdapter f = new FormatAdapter(alignPanel,
exportData.getSettings());
- String output = f.formatSequences(
- format,
- exportData.getAlignment(), // class cast exceptions will
+ String output = f.formatSequences(format, exportData.getAlignment(), // class
+ // cast
+ // exceptions
+ // will
// occur in the distant future
exportData.getOmitHidden(), exportData.getStartEndPostions(),
f.getCacheSuffixDefault(format),
- viewport.getColumnSelection());
+ viewport.getAlignment().getHiddenColumns());
if (output == null)
{
out.close();
this.setTitle(file);
statusBar.setText(MessageManager.formatMessage(
- "label.successfully_saved_to_file_in_format",
- new Object[] { fileName, format.getName() }));
+ "label.successfully_saved_to_file_in_format", new Object[]
+ { fileName, format.getName() }));
} catch (Exception ex)
{
success = false;
if (!success)
{
JvOptionPane.showInternalMessageDialog(this, MessageManager
- .formatMessage("label.couldnt_save_file",
- new Object[] { fileName }), MessageManager
- .getString("label.error_saving_file"),
+ .formatMessage("label.couldnt_save_file", new Object[]
+ { fileName }),
+ MessageManager.getString("label.error_saving_file"),
JvOptionPane.WARNING_MESSAGE);
}
@Override
protected void outputText_actionPerformed(ActionEvent e)
{
- FileFormatI fileFormat = FileFormats.getInstance().forName(
- e.getActionCommand());
+ FileFormatI fileFormat = FileFormats.getInstance()
+ .forName(e.getActionCommand());
AlignmentExportData exportData = getAlignmentForExport(fileFormat,
viewport, null);
if (exportData.getSettings().isCancelled())
.formatSequences(format, exportData.getAlignment(),
exportData.getOmitHidden(),
exportData.getStartEndPostions(),
- viewport.getColumnSelection()));
- Desktop.addInternalFrame(cap, MessageManager.formatMessage(
- "label.alignment_output_command",
- new Object[] { e.getActionCommand() }), 600, 500);
+ viewport.getAlignment().getHiddenColumns()));
+ 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);
+ new OOMWarning("Outputting alignment as " + e.getActionCommand(),
+ oom);
cap.dispose();
}
{
alignmentToExport = viewport.getAlignment();
}
- alignmentStartEnd = alignmentToExport
- .getVisibleStartAndEndIndex(viewport.getColumnSelection()
- .getHiddenColumns());
+ alignmentStartEnd = viewport.getAlignment().getHiddenColumns()
+ .getVisibleStartAndEndIndex(alignmentToExport.getWidth());
AlignmentExportData ed = new AlignmentExportData(alignmentToExport,
omitHidden, alignmentStartEnd, settings);
return ed;
@Override
public void exportFeatures_actionPerformed(ActionEvent e)
{
- new AnnotationExporter().exportFeatures(alignPanel);
+ new AnnotationExporter(alignPanel).exportFeatures();
}
@Override
public void exportAnnotations_actionPerformed(ActionEvent e)
{
- new AnnotationExporter().exportAnnotations(alignPanel);
+ new AnnotationExporter(alignPanel).exportAnnotations();
}
@Override
JalviewFileChooser chooser = new JalviewFileChooser(
jalview.bin.Cache.getProperty("LAST_DIRECTORY"));
chooser.setFileView(new JalviewFileView());
- chooser.setDialogTitle(MessageManager
- .getString("label.load_jalview_annotations"));
- chooser.setToolTipText(MessageManager
- .getString("label.load_jalview_annotations"));
+ chooser.setDialogTitle(
+ MessageManager.getString("label.load_jalview_annotations"));
+ chooser.setToolTipText(
+ MessageManager.getString("label.load_jalview_annotations"));
int value = chooser.showOpenDialog(null);
{
undoMenuItem.setEnabled(true);
CommandI command = viewport.getHistoryList().peek();
- undoMenuItem.setText(MessageManager.formatMessage(
- "label.undo_command",
- new Object[] { command.getDescription() }));
+ undoMenuItem.setText(MessageManager
+ .formatMessage("label.undo_command", new Object[]
+ { command.getDescription() }));
}
else
{
redoMenuItem.setEnabled(true);
CommandI command = viewport.getRedoList().peek();
- redoMenuItem.setText(MessageManager.formatMessage(
- "label.redo_command",
- new Object[] { command.getDescription() }));
+ redoMenuItem.setText(MessageManager
+ .formatMessage("label.redo_command", new Object[]
+ { command.getDescription() }));
}
else
{
{
if (originalSource != viewport)
{
- Cache.log
- .warn("Implementation worry: mismatch of viewport origin for undo");
+ Cache.log.warn(
+ "Implementation worry: mismatch of viewport origin for undo");
}
originalSource.updateHiddenColumns();
// originalSource.hasHiddenColumns = (viewport.getColumnSelection() !=
// && viewport.getColumnSelection().getHiddenColumns() != null &&
// viewport.getColumnSelection()
// .getHiddenColumns().size() > 0);
- originalSource.firePropertyChange("alignment", null, originalSource
- .getAlignment().getSequences());
+ originalSource.firePropertyChange("alignment", null,
+ originalSource.getAlignment().getSequences());
}
}
if (originalSource != viewport)
{
- Cache.log
- .warn("Implementation worry: mismatch of viewport origin for redo");
+ Cache.log.warn(
+ "Implementation worry: mismatch of viewport origin for redo");
}
originalSource.updateHiddenColumns();
// originalSource.hasHiddenColumns = (viewport.getColumnSelection() !=
// && viewport.getColumnSelection().getHiddenColumns() != null &&
// viewport.getColumnSelection()
// .getHiddenColumns().size() > 0);
- originalSource.firePropertyChange("alignment", null, originalSource
- .getAlignment().getSequences());
+ originalSource.firePropertyChange("alignment", null,
+ originalSource.getAlignment().getSequences());
}
}
{
EditCommand editCommand = (EditCommand) command;
al = editCommand.getAlignment();
- List<Component> comps = PaintRefresher.components.get(viewport
- .getSequenceSetId());
+ List<Component> comps = PaintRefresher.components
+ .get(viewport.getSequenceSetId());
for (Component comp : comps)
{
}
viewport.getAlignment().moveSelectedSequencesByOne(sg,
viewport.getHiddenRepSequences(), up);
- alignPanel.paintAlignment(true);
+ alignPanel.paintAlignment(true, false);
}
synchronized void slideSequences(boolean right, int size)
{
- List<SequenceI> sg = new ArrayList<SequenceI>();
+ List<SequenceI> sg = new ArrayList<>();
if (viewport.cursorMode)
{
- sg.add(viewport.getAlignment().getSequenceAt(
- alignPanel.getSeqPanel().seqCanvas.cursorY));
+ sg.add(viewport.getAlignment()
+ .getSequenceAt(alignPanel.getSeqPanel().seqCanvas.cursorY));
}
else if (viewport.getSelectionGroup() != null
&& viewport.getSelectionGroup().getSize() != viewport
.getAlignment().getHeight())
{
- sg = viewport.getSelectionGroup().getSequences(
- viewport.getHiddenRepSequences());
+ sg = viewport.getSelectionGroup()
+ .getSequences(viewport.getHiddenRepSequences());
}
if (sg.size() < 1)
return;
}
- List<SequenceI> invertGroup = new ArrayList<SequenceI>();
+ List<SequenceI> invertGroup = new ArrayList<>();
for (SequenceI seq : viewport.getAlignment().getSequences())
{
SlideSequencesCommand ssc;
if (right)
{
- ssc = new SlideSequencesCommand("Slide Sequences", seqs2, seqs1,
- size, viewport.getGapCharacter());
+ ssc = new SlideSequencesCommand("Slide Sequences", seqs2, seqs1, size,
+ viewport.getGapCharacter());
}
else
{
- ssc = new SlideSequencesCommand("Slide Sequences", seqs1, seqs2,
- size, viewport.getGapCharacter());
+ ssc = new SlideSequencesCommand("Slide Sequences", seqs1, seqs2, size,
+ viewport.getGapCharacter());
}
int groupAdjustment = 0;
if (!inSplitFrame && historyList != null && historyList.size() > 0
&& historyList.peek() instanceof SlideSequencesCommand)
{
- appendHistoryItem = ssc
- .appendSlideCommand((SlideSequencesCommand) historyList
- .peek());
+ appendHistoryItem = ssc.appendSlideCommand(
+ (SlideSequencesCommand) historyList.peek());
}
if (!appendHistoryItem)
@Override
protected void copy_actionPerformed(ActionEvent e)
{
- System.gc();
if (viewport.getSelectionGroup() == null)
{
return;
Toolkit.getDefaultToolkit().getSystemClipboard()
.setContents(new StringSelection(""), null);
- Toolkit.getDefaultToolkit().getSystemClipboard()
- .setContents(ss, Desktop.instance);
+ Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss,
+ Desktop.instance);
} catch (OutOfMemoryError er)
{
new OOMWarning("copying region", er);
return;
}
- ArrayList<int[]> hiddenColumns = null;
+ HiddenColumns hiddenColumns = null;
if (viewport.hasHiddenColumns())
{
- hiddenColumns = new ArrayList<int[]>();
- int hiddenOffset = viewport.getSelectionGroup().getStartRes(), hiddenCutoff = viewport
- .getSelectionGroup().getEndRes();
- for (int[] region : viewport.getColumnSelection().getHiddenColumns())
- {
- if (region[0] >= hiddenOffset && region[1] <= hiddenCutoff)
- {
- hiddenColumns.add(new int[] { region[0] - hiddenOffset,
- region[1] - hiddenOffset });
- }
- }
+ int hiddenOffset = viewport.getSelectionGroup().getStartRes();
+ int hiddenCutoff = viewport.getSelectionGroup().getEndRes();
+
+ // create new HiddenColumns object with copy of hidden regions
+ // between startRes and endRes, offset by startRes
+ hiddenColumns = new HiddenColumns(
+ viewport.getAlignment().getHiddenColumns(), hiddenOffset,
+ hiddenCutoff, hiddenOffset);
}
Desktop.jalviewClipboard = new Object[] { seqs,
viewport.getAlignment().getDataset(), hiddenColumns };
statusBar.setText(MessageManager.formatMessage(
- "label.copied_sequences_to_clipboard", new Object[] { Integer
- .valueOf(seqs.length).toString() }));
+ "label.copied_sequences_to_clipboard", new Object[]
+ { Integer.valueOf(seqs.length).toString() }));
}
/**
}
int alwidth = 0;
- ArrayList<Integer> newGraphGroups = new ArrayList<Integer>();
+ ArrayList<Integer> newGraphGroups = new ArrayList<>();
int fgroup = -1;
if (newAlignment)
{
// copy and derive new dataset sequence
sequences[i] = sequences[i].deriveSequence();
- alignment.getDataset().addSequence(
- sequences[i].getDatasetSequence());
+ alignment.getDataset()
+ .addSequence(sequences[i].getDatasetSequence());
// TODO: avoid creation of duplicate dataset sequences with a
// 'contains' method using SequenceI.equals()/SequenceI.contains()
}
annotationAdded = true;
if (alann[i].sequenceRef == null && !alann[i].autoCalculated)
{
- AlignmentAnnotation newann = new AlignmentAnnotation(alann[i]);
+ AlignmentAnnotation newann = new AlignmentAnnotation(
+ alann[i]);
if (newann.graphGroup > -1)
{
if (newGraphGroups.size() <= newann.graphGroup
|| newGraphGroups.get(newann.graphGroup) == null)
{
- for (int q = newGraphGroups.size(); q <= newann.graphGroup; q++)
+ for (int q = newGraphGroups
+ .size(); q <= newann.graphGroup; q++)
{
newGraphGroups.add(q, null);
}
- newGraphGroups.set(newann.graphGroup, new Integer(
- ++fgroup));
+ newGraphGroups.set(newann.graphGroup,
+ new Integer(++fgroup));
}
newann.graphGroup = newGraphGroups.get(newann.graphGroup)
.intValue();
//
addHistoryItem(new EditCommand(
MessageManager.getString("label.add_sequences"),
- Action.PASTE, sequences, 0, alignment.getWidth(), alignment));
+ Action.PASTE, sequences, 0, alignment.getWidth(),
+ alignment));
}
// Add any annotations attached to sequences
for (int i = 0; i < sequences.length; i++)
if (newGraphGroups.size() <= newann.graphGroup
|| newGraphGroups.get(newann.graphGroup) == null)
{
- for (int q = newGraphGroups.size(); q <= newann.graphGroup; q++)
+ for (int q = newGraphGroups
+ .size(); q <= newann.graphGroup; q++)
{
newGraphGroups.add(q, null);
}
- newGraphGroups.set(newann.graphGroup, new Integer(
- ++fgroup));
+ newGraphGroups.set(newann.graphGroup,
+ new Integer(++fgroup));
}
newann.graphGroup = newGraphGroups.get(newann.graphGroup)
.intValue();
// was
// duplicated
// earlier
- alignment
- .setAnnotationIndex(sequences[i].getAnnotation()[a], a);
+ alignment.setAnnotationIndex(sequences[i].getAnnotation()[a],
+ a);
}
}
}
{
// propagate alignment changed.
- viewport.setEndSeq(alignment.getHeight());
+ viewport.getRanges().setEndSeq(alignment.getHeight());
if (annotationAdded)
{
// Duplicate sequence annotation in all views.
if (Desktop.jalviewClipboard != null
&& Desktop.jalviewClipboard[2] != null)
{
- List<int[]> hc = (List<int[]>) Desktop.jalviewClipboard[2];
- for (int[] region : hc)
- {
- af.viewport.hideColumns(region[0], region[1]);
- }
+ HiddenColumns hc = (HiddenColumns) Desktop.jalviewClipboard[2];
+ af.viewport.setHiddenColumns(hc);
}
// >>>This is a fix for the moment, until a better solution is
// found!!<<<
af.alignPanel.getSeqPanel().seqCanvas.getFeatureRenderer()
- .transferSettings(
- alignPanel.getSeqPanel().seqCanvas
- .getFeatureRenderer());
+ .transferSettings(alignPanel.getSeqPanel().seqCanvas
+ .getFeatureRenderer());
// TODO: maintain provenance of an alignment, rather than just make the
// title a concatenation of operations.
{
try
{
- AlignmentI alignment = AlignmentUtils.expandContext(getViewport()
- .getAlignment(), -1);
+ AlignmentI alignment = AlignmentUtils
+ .expandContext(getViewport().getAlignment(), -1);
AlignFrame af = new AlignFrame(alignment, DEFAULT_WIDTH,
DEFAULT_HEIGHT);
String newtitle = new String("Flanking alignment");
if (Desktop.jalviewClipboard != null
&& Desktop.jalviewClipboard[2] != null)
{
- List<int[]> hc = (List<int[]>) Desktop.jalviewClipboard[2];
- for (int region[] : hc)
- {
- af.viewport.hideColumns(region[0], region[1]);
- }
+ HiddenColumns hc = (HiddenColumns) Desktop.jalviewClipboard[2];
+ af.viewport.setHiddenColumns(hc);
}
// >>>This is a fix for the moment, until a better solution is
// found!!<<<
af.alignPanel.getSeqPanel().seqCanvas.getFeatureRenderer()
- .transferSettings(
- alignPanel.getSeqPanel().seqCanvas
- .getFeatureRenderer());
+ .transferSettings(alignPanel.getSeqPanel().seqCanvas
+ .getFeatureRenderer());
// TODO: maintain provenance of an alignment, rather than just make the
// title a concatenation of operations.
*/
if (sg.getSize() == viewport.getAlignment().getHeight())
{
- boolean isEntireAlignWidth = (((sg.getEndRes() - sg.getStartRes()) + 1) == viewport
- .getAlignment().getWidth()) ? true : false;
+ boolean isEntireAlignWidth = (((sg.getEndRes() - sg.getStartRes())
+ + 1) == viewport.getAlignment().getWidth()) ? true : false;
if (isEntireAlignWidth)
{
int confirm = JvOptionPane.showConfirmDialog(this,
viewport.sendSelection();
viewport.getAlignment().deleteGroup(sg);
- viewport.firePropertyChange("alignment", null, viewport.getAlignment()
- .getSequences());
+ viewport.firePropertyChange("alignment", null,
+ viewport.getAlignment().getSequences());
if (viewport.getAlignment().getHeight() < 1)
{
try
{
PaintRefresher.Refresh(this, viewport.getSequenceSetId());
alignPanel.updateAnnotation();
- alignPanel.paintAlignment(true);
+ alignPanel.paintAlignment(true, true);
}
}
// JAL-2034 - should delegate to
// alignPanel to decide if overview needs
// updating.
- alignPanel.paintAlignment(false);
+ alignPanel.paintAlignment(false, false);
PaintRefresher.Refresh(alignPanel, viewport.getSequenceSetId());
}
viewport.setSelectionGroup(null);
viewport.getColumnSelection().clear();
viewport.setSelectionGroup(null);
- alignPanel.getSeqPanel().seqCanvas.highlightSearchResults(null);
alignPanel.getIdPanel().getIdCanvas().searchResults = null;
// JAL-2034 - should delegate to
// alignPanel to decide if overview needs
// updating.
- alignPanel.paintAlignment(false);
+ alignPanel.paintAlignment(false, false);
PaintRefresher.Refresh(alignPanel, viewport.getSequenceSetId());
viewport.sendSelection();
}
// alignPanel to decide if overview needs
// updating.
- alignPanel.paintAlignment(true);
+ alignPanel.paintAlignment(true, false);
PaintRefresher.Refresh(alignPanel, viewport.getSequenceSetId());
viewport.sendSelection();
}
public void invertColSel_actionPerformed(ActionEvent e)
{
viewport.invertColumnSelection();
- alignPanel.paintAlignment(true);
+ alignPanel.paintAlignment(true, false);
viewport.sendSelection();
}
SequenceI[] seqs;
if (viewport.getSelectionGroup() != null)
{
- seqs = viewport.getSelectionGroup().getSequencesAsArray(
- viewport.getHiddenRepSequences());
+ seqs = viewport.getSelectionGroup()
+ .getSequencesAsArray(viewport.getHiddenRepSequences());
}
else
{
{
trimRegion = new TrimRegionCommand("Remove Left", true, seqs,
column, viewport.getAlignment());
- viewport.setStartRes(0);
+ viewport.getRanges().setStartRes(0);
}
else
{
column, viewport.getAlignment());
}
- statusBar.setText(MessageManager.formatMessage(
- "label.removed_columns",
- new String[] { Integer.valueOf(trimRegion.getSize())
- .toString() }));
+ statusBar.setText(MessageManager
+ .formatMessage("label.removed_columns", new String[]
+ { Integer.valueOf(trimRegion.getSize()).toString() }));
addHistoryItem(trimRegion);
}
}
- viewport.firePropertyChange("alignment", null, viewport
- .getAlignment().getSequences());
+ viewport.firePropertyChange("alignment", null,
+ viewport.getAlignment().getSequences());
}
}
SequenceI[] seqs;
if (viewport.getSelectionGroup() != null)
{
- seqs = viewport.getSelectionGroup().getSequencesAsArray(
- viewport.getHiddenRepSequences());
+ seqs = viewport.getSelectionGroup()
+ .getSequencesAsArray(viewport.getHiddenRepSequences());
start = viewport.getSelectionGroup().getStartRes();
end = viewport.getSelectionGroup().getEndRes();
}
addHistoryItem(removeGapCols);
- statusBar.setText(MessageManager.formatMessage(
- "label.removed_empty_columns",
- new Object[] { Integer.valueOf(removeGapCols.getSize())
- .toString() }));
+ statusBar.setText(MessageManager
+ .formatMessage("label.removed_empty_columns", new Object[]
+ { Integer.valueOf(removeGapCols.getSize()).toString() }));
// This is to maintain viewport position on first residue
// of first sequence
SequenceI seq = viewport.getAlignment().getSequenceAt(0);
- int startRes = seq.findPosition(viewport.getStartRes());
+ ViewportRanges ranges = viewport.getRanges();
+ int startRes = seq.findPosition(ranges.getStartRes());
// ShiftList shifts;
// viewport.getAlignment().removeGaps(shifts=new ShiftList());
// edit.alColumnChanges=shifts.getInverse();
// if (viewport.hasHiddenColumns)
// viewport.getColumnSelection().compensateForEdits(shifts);
- viewport.setStartRes(seq.findIndex(startRes) - 1);
- viewport.firePropertyChange("alignment", null, viewport.getAlignment()
- .getSequences());
+ ranges.setStartRes(seq.findIndex(startRes) - 1);
+ viewport.firePropertyChange("alignment", null,
+ viewport.getAlignment().getSequences());
}
SequenceI[] seqs;
if (viewport.getSelectionGroup() != null)
{
- seqs = viewport.getSelectionGroup().getSequencesAsArray(
- viewport.getHiddenRepSequences());
+ seqs = viewport.getSelectionGroup()
+ .getSequencesAsArray(viewport.getHiddenRepSequences());
start = viewport.getSelectionGroup().getStartRes();
end = viewport.getSelectionGroup().getEndRes();
}
// This is to maintain viewport position on first residue
// of first sequence
SequenceI seq = viewport.getAlignment().getSequenceAt(0);
- int startRes = seq.findPosition(viewport.getStartRes());
+ int startRes = seq.findPosition(viewport.getRanges().getStartRes());
addHistoryItem(new RemoveGapsCommand("Remove Gaps", seqs, start, end,
viewport.getAlignment()));
- viewport.setStartRes(seq.findIndex(startRes) - 1);
+ viewport.getRanges().setStartRes(seq.findIndex(startRes) - 1);
- viewport.firePropertyChange("alignment", null, viewport.getAlignment()
- .getSequences());
+ viewport.firePropertyChange("alignment", null,
+ viewport.getAlignment().getSequences());
}
public void padGapsMenuitem_actionPerformed(ActionEvent e)
{
viewport.setPadGaps(padGapsMenuitem.isSelected());
- viewport.firePropertyChange("alignment", null, viewport.getAlignment()
- .getSequences());
+ viewport.firePropertyChange("alignment", null,
+ viewport.getAlignment().getSequences());
}
/**
/*
* Create a new AlignmentPanel (with its own, new Viewport)
*/
- AlignmentPanel newap = new Jalview2XML().copyAlignPanel(alignPanel,
- true);
+ AlignmentPanel newap = new Jalview2XML().copyAlignPanel(alignPanel);
if (!copyAnnotation)
{
/*
*/
newap.av.replaceMappings(viewport.getAlignment());
+ /*
+ * start up cDNA consensus (if applicable) now mappings are in place
+ */
+ if (newap.av.initComplementConsensus())
+ {
+ newap.refresh(true); // adjust layout of annotations
+ }
+
newap.av.viewName = getNewViewName(viewTitle);
addAlignmentPanel(newap, true);
}
String newViewName = viewTitle + ((addFirstIndex) ? " " + index : "");
- List<Component> comps = PaintRefresher.components.get(viewport
- .getSequenceSetId());
+ List<Component> comps = PaintRefresher.components
+ .get(viewport.getSequenceSetId());
List<String> existingNames = getExistingViewNames(comps);
*/
protected List<String> getExistingViewNames(List<Component> comps)
{
- List<String> existingNames = new ArrayList<String>();
+ List<String> existingNames = new ArrayList<>();
for (Component comp : comps)
{
if (comp instanceof AlignmentPanel)
alignPanel.getIdPanel().getIdCanvas()
.setPreferredSize(alignPanel.calculateIdWidth());
- alignPanel.paintAlignment(true);
+ alignPanel.paintAlignment(true, false);
}
@Override
public void idRightAlign_actionPerformed(ActionEvent e)
{
viewport.setRightAlignIds(idRightAlign.isSelected());
- alignPanel.paintAlignment(true);
+ alignPanel.paintAlignment(false, false);
}
@Override
public void centreColumnLabels_actionPerformed(ActionEvent e)
{
viewport.setCentreColumnLabels(centreColumnLabelsMenuItem.getState());
- alignPanel.paintAlignment(true);
+ alignPanel.paintAlignment(false, false);
}
/*
protected void colourTextMenuItem_actionPerformed(ActionEvent e)
{
viewport.setColourText(colourTextMenuItem.isSelected());
- alignPanel.paintAlignment(true);
+ alignPanel.paintAlignment(false, false);
}
/**
public void showAllColumns_actionPerformed(ActionEvent e)
{
viewport.showAllHiddenColumns();
- repaint();
+ alignPanel.paintAlignment(true, true);
viewport.sendSelection();
}
public void hideSelSequences_actionPerformed(ActionEvent e)
{
viewport.hideAllSelectedSeqs();
- // alignPanel.paintAlignment(true);
}
/**
// Hide everything by the current selection - this is a hack - we do the
// invert and then hide
// first check that there will be visible columns after the invert.
- if (viewport.hasSelectedColumns()
- || (sg != null && sg.getSize() > 0 && sg.getStartRes() <= sg
- .getEndRes()))
+ if (viewport.hasSelectedColumns() || (sg != null && sg.getSize() > 0
+ && sg.getStartRes() <= sg.getEndRes()))
{
// now invert the sequence set, if required - empty selection implies
// that no hiding is required.
viewport.expandColSelection(sg, false);
viewport.hideAllSelectedSeqs();
viewport.hideSelectedColumns();
- alignPanel.paintAlignment(true);
+ alignPanel.paintAlignment(true, true);
viewport.sendSelection();
}
{
viewport.showAllHiddenColumns();
viewport.showAllHiddenSeqs();
- alignPanel.paintAlignment(true);
+ alignPanel.paintAlignment(true, true);
viewport.sendSelection();
}
public void hideSelColumns_actionPerformed(ActionEvent e)
{
viewport.hideSelectedColumns();
- alignPanel.paintAlignment(true);
+ alignPanel.paintAlignment(true, true);
viewport.sendSelection();
}
protected void scaleAbove_actionPerformed(ActionEvent e)
{
viewport.setScaleAboveWrapped(scaleAbove.isSelected());
- alignPanel.paintAlignment(true);
+ // TODO: do we actually need to update overview for scale above change ?
+ alignPanel.paintAlignment(true, false);
}
/**
protected void scaleLeft_actionPerformed(ActionEvent e)
{
viewport.setScaleLeftWrapped(scaleLeft.isSelected());
- alignPanel.paintAlignment(true);
+ alignPanel.paintAlignment(true, false);
}
/**
protected void scaleRight_actionPerformed(ActionEvent e)
{
viewport.setScaleRightWrapped(scaleRight.isSelected());
- alignPanel.paintAlignment(true);
+ alignPanel.paintAlignment(true, false);
}
/**
public void viewBoxesMenuItem_actionPerformed(ActionEvent e)
{
viewport.setShowBoxes(viewBoxesMenuItem.isSelected());
- alignPanel.paintAlignment(true);
+ alignPanel.paintAlignment(false, false);
}
/**
public void viewTextMenuItem_actionPerformed(ActionEvent e)
{
viewport.setShowText(viewTextMenuItem.isSelected());
- alignPanel.paintAlignment(true);
+ alignPanel.paintAlignment(false, false);
}
/**
protected void renderGapsMenuItem_actionPerformed(ActionEvent e)
{
viewport.setRenderGaps(renderGapsMenuItem.isSelected());
- alignPanel.paintAlignment(true);
+ alignPanel.paintAlignment(false, false);
}
public FeatureSettings featureSettings;
public void showSeqFeatures_actionPerformed(ActionEvent evt)
{
viewport.setShowSequenceFeatures(showSeqFeatures.isSelected());
- alignPanel.paintAlignment(true);
- if (alignPanel.getOverviewPanel() != null)
- {
- alignPanel.getOverviewPanel().updateOverviewImage();
- }
+ alignPanel.paintAlignment(true, true);
}
/**
editPane.setEditable(false);
StringBuffer contents = new AlignmentProperties(viewport.getAlignment())
.formatAsHtml();
- editPane.setText(MessageManager.formatMessage("label.html_content",
- new Object[] { contents.toString() }));
+ editPane.setText(
+ MessageManager.formatMessage("label.html_content", new Object[]
+ { contents.toString() }));
JInternalFrame frame = new JInternalFrame();
frame.getContentPane().add(new JScrollPane(editPane));
- Desktop.addInternalFrame(frame, MessageManager.formatMessage(
- "label.alignment_properties", new Object[] { getTitle() }),
- 500, 400);
+ Desktop.addInternalFrame(frame, MessageManager
+ .formatMessage("label.alignment_properties", new Object[]
+ { getTitle() }), 500, 400);
}
/**
}
JInternalFrame frame = new JInternalFrame();
- OverviewPanel overview = new OverviewPanel(alignPanel);
+ final OverviewPanel overview = new OverviewPanel(alignPanel);
frame.setContentPane(overview);
- Desktop.addInternalFrame(frame, MessageManager.formatMessage(
- "label.overview_params", new Object[] { this.getTitle() }),
- frame.getWidth(), frame.getHeight());
+ Desktop.addInternalFrame(frame, MessageManager
+ .formatMessage("label.overview_params", new Object[]
+ { this.getTitle() }), true, frame.getWidth(), frame.getHeight(),
+ true, true);
frame.pack();
frame.setLayer(JLayeredPane.PALETTE_LAYER);
- frame.addInternalFrameListener(new javax.swing.event.InternalFrameAdapter()
+ frame.addInternalFrameListener(
+ new javax.swing.event.InternalFrameAdapter()
+ {
+ @Override
+ public void internalFrameClosed(
+ javax.swing.event.InternalFrameEvent evt)
+ {
+ overview.dispose();
+ alignPanel.setOverviewPanel(null);
+ };
+ });
+ if (getKeyListeners().length > 0)
{
- @Override
- public void internalFrameClosed(
- javax.swing.event.InternalFrameEvent evt)
- {
- alignPanel.setOverviewPanel(null);
- };
- });
+ frame.addKeyListener(getKeyListeners()[0]);
+ }
alignPanel.setOverviewPanel(overview);
}
* 'User Defined' opens a panel to configure or load a
* user-defined colour scheme
*/
- if (ResidueColourScheme.USER_DEFINED.equals(name))
+ if (ResidueColourScheme.USER_DEFINED_MENU.equals(name))
{
- new UserDefinedColours(alignPanel, null);
+ new UserDefinedColours(alignPanel);
return;
}
* otherwise set the chosen colour scheme (or null for 'None')
*/
ColourSchemeI cs = ColourSchemes.getInstance().getColourScheme(name,
+ viewport,
viewport.getAlignment(), viewport.getHiddenRepSequences());
changeColour(cs);
}
public void changeColour(ColourSchemeI cs)
{
// TODO: pull up to controller method
- if (cs != null)
- {
- ColourMenuHelper.setColourSelected(colourMenu, cs.getSchemeName());
- }
+ ColourMenuHelper.setColourSelected(colourMenu, cs);
viewport.setGlobalColourScheme(cs);
- alignPanel.paintAlignment(true);
+ alignPanel.paintAlignment(true, true);
}
/**
@Override
protected void modifyPID_actionPerformed()
{
- SliderPanel.setPIDSliderSource(alignPanel,
- viewport.getResidueShading(), alignPanel.getViewName());
+ SliderPanel.setPIDSliderSource(alignPanel, viewport.getResidueShading(),
+ alignPanel.getViewName());
SliderPanel.showPIDSlider();
}
public void sortPairwiseMenuItem_actionPerformed(ActionEvent e)
{
SequenceI[] oldOrder = viewport.getAlignment().getSequencesArray();
- AlignmentSorter.sortByPID(viewport.getAlignment(), viewport
- .getAlignment().getSequenceAt(0), null);
+ AlignmentSorter.sortByPID(viewport.getAlignment(),
+ viewport.getAlignment().getSequenceAt(0));
addHistoryItem(new OrderCommand("Pairwise Sort", oldOrder,
viewport.getAlignment()));
- alignPanel.paintAlignment(true);
+ alignPanel.paintAlignment(true, false);
}
/**
{
SequenceI[] oldOrder = viewport.getAlignment().getSequencesArray();
AlignmentSorter.sortByID(viewport.getAlignment());
- addHistoryItem(new OrderCommand("ID Sort", oldOrder,
- viewport.getAlignment()));
- alignPanel.paintAlignment(true);
+ addHistoryItem(
+ new OrderCommand("ID Sort", oldOrder, viewport.getAlignment()));
+ alignPanel.paintAlignment(true, false);
}
/**
AlignmentSorter.sortByLength(viewport.getAlignment());
addHistoryItem(new OrderCommand("Length Sort", oldOrder,
viewport.getAlignment()));
- alignPanel.paintAlignment(true);
+ alignPanel.paintAlignment(true, false);
}
/**
addHistoryItem(new OrderCommand("Group Sort", oldOrder,
viewport.getAlignment()));
- alignPanel.paintAlignment(true);
+ alignPanel.paintAlignment(true, false);
}
/**
if ((viewport.getSelectionGroup() == null)
|| (viewport.getSelectionGroup().getSize() < 2))
{
- JvOptionPane.showInternalMessageDialog(this, MessageManager
- .getString("label.you_must_select_least_two_sequences"),
+ JvOptionPane.showInternalMessageDialog(this,
+ MessageManager.getString(
+ "label.you_must_select_least_two_sequences"),
MessageManager.getString("label.invalid_selection"),
JvOptionPane.WARNING_MESSAGE);
}
}
}
- /**
- * DOCUMENT ME!
- *
- * @param e
- * DOCUMENT ME!
- */
- @Override
- public void PCAMenuItem_actionPerformed(ActionEvent e)
- {
- if (((viewport.getSelectionGroup() != null)
- && (viewport.getSelectionGroup().getSize() < 4) && (viewport
- .getSelectionGroup().getSize() > 0))
- || (viewport.getAlignment().getHeight() < 4))
- {
- JvOptionPane
- .showInternalMessageDialog(
- this,
- MessageManager
- .getString("label.principal_component_analysis_must_take_least_four_input_sequences"),
- MessageManager
- .getString("label.sequence_selection_insufficient"),
- JvOptionPane.WARNING_MESSAGE);
-
- return;
- }
-
- new PCAPanel(alignPanel);
- }
-
@Override
public void autoCalculate_actionPerformed(ActionEvent e)
{
viewport.autoCalculateConsensus = autoCalculate.isSelected();
if (viewport.autoCalculateConsensus)
{
- viewport.firePropertyChange("alignment", null, viewport
- .getAlignment().getSequences());
+ viewport.firePropertyChange("alignment", null,
+ viewport.getAlignment().getSequences());
}
}
}
/**
- * DOCUMENT ME!
- *
- * @param e
- * DOCUMENT ME!
- */
- @Override
- public void averageDistanceTreeMenuItem_actionPerformed(ActionEvent e)
- {
- newTreePanel("AV", "PID", "Average distance tree using PID");
- }
-
- /**
- * DOCUMENT ME!
- *
- * @param e
- * DOCUMENT ME!
- */
- @Override
- public void neighbourTreeMenuItem_actionPerformed(ActionEvent e)
- {
- newTreePanel("NJ", "PID", "Neighbour joining tree using PID");
- }
-
- /**
- * DOCUMENT ME!
- *
- * @param e
- * DOCUMENT ME!
- */
- @Override
- protected void njTreeBlosumMenuItem_actionPerformed(ActionEvent e)
- {
- newTreePanel("NJ", "BL", "Neighbour joining tree using BLOSUM62");
- }
-
- /**
- * DOCUMENT ME!
- *
- * @param e
- * DOCUMENT ME!
- */
- @Override
- protected void avTreeBlosumMenuItem_actionPerformed(ActionEvent e)
- {
- newTreePanel("AV", "BL", "Average distance tree using BLOSUM62");
- }
-
- /**
- * DOCUMENT ME!
+ * Constructs a tree panel and adds it to the desktop
*
* @param type
- * DOCUMENT ME!
- * @param pwType
- * DOCUMENT ME!
- * @param title
- * DOCUMENT ME!
+ * tree type (NJ or AV)
+ * @param modelName
+ * name of score model used to compute the tree
+ * @param options
+ * parameters for the distance or similarity calculation
*/
- void newTreePanel(String type, String pwType, String title)
+ void newTreePanel(String type, String modelName,
+ SimilarityParamsI options)
{
+ String frameTitle = "";
TreePanel tp;
+ boolean onSelection = false;
if (viewport.getSelectionGroup() != null
&& viewport.getSelectionGroup().getSize() > 0)
{
- if (viewport.getSelectionGroup().getSize() < 3)
- {
- JvOptionPane
- .showMessageDialog(
- Desktop.desktop,
- MessageManager
- .getString("label.you_need_more_two_sequences_selected_build_tree"),
- MessageManager
- .getString("label.not_enough_sequences"),
- JvOptionPane.WARNING_MESSAGE);
- return;
- }
-
SequenceGroup sg = viewport.getSelectionGroup();
/* Decide if the selection is a column region */
{
if (_s.getLength() < sg.getEndRes())
{
- JvOptionPane
- .showMessageDialog(
- Desktop.desktop,
- MessageManager
- .getString("label.selected_region_to_tree_may_only_contain_residues_or_gaps"),
- MessageManager
- .getString("label.sequences_selection_not_aligned"),
- JvOptionPane.WARNING_MESSAGE);
+ JvOptionPane.showMessageDialog(Desktop.desktop,
+ MessageManager.getString(
+ "label.selected_region_to_tree_may_only_contain_residues_or_gaps"),
+ MessageManager.getString(
+ "label.sequences_selection_not_aligned"),
+ JvOptionPane.WARNING_MESSAGE);
return;
}
}
-
- title = title + " on region";
- tp = new TreePanel(alignPanel, type, pwType);
+ onSelection = true;
}
else
{
- // are the visible sequences aligned?
- if (!viewport.getAlignment().isAligned(false))
- {
- JvOptionPane
- .showMessageDialog(
- Desktop.desktop,
- MessageManager
- .getString("label.sequences_must_be_aligned_before_creating_tree"),
- MessageManager
- .getString("label.sequences_not_aligned"),
- JvOptionPane.WARNING_MESSAGE);
-
- return;
- }
-
if (viewport.getAlignment().getHeight() < 2)
{
return;
}
-
- tp = new TreePanel(alignPanel, type, pwType);
}
- title += " from ";
+ tp = new TreePanel(alignPanel, type, modelName, options);
+ frameTitle = tp.getPanelTitle() + (onSelection ? " on region" : "");
+
+ frameTitle += " from ";
if (viewport.viewName != null)
{
- title += viewport.viewName + " of ";
+ frameTitle += viewport.viewName + " of ";
}
- title += this.title;
+ frameTitle += this.title;
- Desktop.addInternalFrame(tp, title, 600, 500);
+ Desktop.addInternalFrame(tp, frameTitle, 600, 500);
}
/**
public void addSortByOrderMenuItem(String title,
final AlignmentOrder order)
{
- final JMenuItem item = new JMenuItem(MessageManager.formatMessage(
- "action.by_title_param", new Object[] { title }));
+ final JMenuItem item = new JMenuItem(MessageManager
+ .formatMessage("action.by_title_param", new Object[]
+ { title }));
sort.add(item);
item.addActionListener(new java.awt.event.ActionListener()
{
// pointers
AlignmentSorter.sortBy(viewport.getAlignment(), order);
- addHistoryItem(new OrderCommand(order.getName(), oldOrder, viewport
- .getAlignment()));
+ addHistoryItem(new OrderCommand(order.getName(), oldOrder,
+ viewport.getAlignment()));
- alignPanel.paintAlignment(true);
+ alignPanel.paintAlignment(true, false);
}
});
}
viewport.getAlignment());// ,viewport.getSelectionGroup());
addHistoryItem(new OrderCommand("Sort by " + scoreLabel, oldOrder,
viewport.getAlignment()));
- alignPanel.paintAlignment(true);
+ alignPanel.paintAlignment(true, false);
}
});
}
return;
}
- if (viewport.getAlignment().getAlignmentAnnotation().hashCode() != _annotationScoreVectorHash)
+ if (viewport.getAlignment().getAlignmentAnnotation()
+ .hashCode() != _annotationScoreVectorHash)
{
sortByAnnotScore.removeAll();
// almost certainly a quicker way to do this - but we keep it simple
* call. Listeners are added to remove the menu item when the treePanel is
* closed, and adjust the tree leaf to sequence mapping when the alignment is
* modified.
- *
- * @param treePanel
- * Displayed tree window.
- * @param title
- * SortBy menu item title.
*/
@Override
- public void buildTreeMenu()
+ public void buildTreeSortMenu()
{
- calculateTree.removeAll();
- // build the calculate menu
-
- for (final String type : new String[] { "NJ", "AV" })
- {
- String treecalcnm = MessageManager.getString("label.tree_calc_"
- + type.toLowerCase());
- for (final String pwtype : ResidueProperties.scoreMatrices.keySet())
- {
- JMenuItem tm = new JMenuItem();
- ScoreModelI sm = ResidueProperties.scoreMatrices.get(pwtype);
- if (sm.isDNA() == viewport.getAlignment().isNucleotide()
- || sm.isProtein() == !viewport.getAlignment()
- .isNucleotide())
- {
- String smn = MessageManager.getStringOrReturn(
- "label.score_model_", sm.getName());
- final String title = MessageManager.formatMessage(
- "label.treecalc_title", treecalcnm, smn);
- tm.setText(title);//
- tm.addActionListener(new java.awt.event.ActionListener()
- {
- @Override
- public void actionPerformed(ActionEvent e)
- {
- newTreePanel(type, pwtype, title);
- }
- });
- calculateTree.add(tm);
- }
-
- }
- }
sortByTreeMenu.removeAll();
- List<Component> comps = PaintRefresher.components.get(viewport
- .getSequenceSetId());
- List<TreePanel> treePanels = new ArrayList<TreePanel>();
+ List<Component> comps = PaintRefresher.components
+ .get(viewport.getSequenceSetId());
+ List<TreePanel> treePanels = new ArrayList<>();
for (Component comp : comps)
{
if (comp instanceof TreePanel)
addHistoryItem(new OrderCommand(undoname, oldOrder,
viewport.getAlignment()));
}
- alignPanel.paintAlignment(true);
+ alignPanel.paintAlignment(true, false);
return true;
}
JalviewFileChooser chooser = new JalviewFileChooser(
jalview.bin.Cache.getProperty("LAST_DIRECTORY"));
chooser.setFileView(new JalviewFileView());
- chooser.setDialogTitle(MessageManager
- .getString("label.select_newick_like_tree_file"));
- chooser.setToolTipText(MessageManager.getString("label.load_tree_file"));
+ chooser.setDialogTitle(
+ MessageManager.getString("label.select_newick_like_tree_file"));
+ chooser.setToolTipText(
+ MessageManager.getString("label.load_tree_file"));
int value = chooser.showOpenDialog(null);
if (value == JalviewFileChooser.APPROVE_OPTION)
{
- String choice = chooser.getSelectedFile().getPath();
- jalview.bin.Cache.setProperty("LAST_DIRECTORY", choice);
- jalview.io.NewickFile fin = null;
+ String filePath = chooser.getSelectedFile().getPath();
+ Cache.setProperty("LAST_DIRECTORY", filePath);
+ NewickFile fin = null;
try
{
- fin = new NewickFile(choice, DataSourceType.FILE);
- viewport.setCurrentTree(ShowNewickTree(fin, choice).getTree());
+ fin = new NewickFile(filePath, DataSourceType.FILE);
+ viewport.setCurrentTree(showNewickTree(fin, filePath).getTree());
} catch (Exception ex)
{
- JvOptionPane
- .showMessageDialog(
- Desktop.desktop,
- ex.getMessage(),
- MessageManager
- .getString("label.problem_reading_tree_file"),
- JvOptionPane.WARNING_MESSAGE);
+ JvOptionPane.showMessageDialog(Desktop.desktop, ex.getMessage(),
+ MessageManager.getString("label.problem_reading_tree_file"),
+ JvOptionPane.WARNING_MESSAGE);
ex.printStackTrace();
}
if (fin != null && fin.hasWarningMessage())
{
- JvOptionPane.showMessageDialog(Desktop.desktop, fin
- .getWarningMessage(), MessageManager
- .getString("label.possible_problem_with_tree_file"),
+ JvOptionPane.showMessageDialog(Desktop.desktop,
+ fin.getWarningMessage(),
+ MessageManager
+ .getString("label.possible_problem_with_tree_file"),
JvOptionPane.WARNING_MESSAGE);
}
}
}
- public TreePanel ShowNewickTree(NewickFile nf, String title)
- {
- return ShowNewickTree(nf, title, 600, 500, 4, 5);
- }
-
- public TreePanel ShowNewickTree(NewickFile nf, String title,
- AlignmentView input)
+ public TreePanel showNewickTree(NewickFile nf, String treeTitle)
{
- return ShowNewickTree(nf, title, input, 600, 500, 4, 5);
+ return showNewickTree(nf, treeTitle, 600, 500, 4, 5);
}
- public TreePanel ShowNewickTree(NewickFile nf, String title, int w,
+ public TreePanel showNewickTree(NewickFile nf, String treeTitle, int w,
int h, int x, int y)
{
- return ShowNewickTree(nf, title, null, w, h, x, y);
+ return showNewickTree(nf, treeTitle, null, w, h, x, y);
}
/**
- * Add a treeviewer for the tree extracted from a newick file object to the
+ * Add a treeviewer for the tree extracted from a Newick file object to the
* current alignment view
*
* @param nf
* position
* @return TreePanel handle
*/
- public TreePanel ShowNewickTree(NewickFile nf, String title,
+ public TreePanel showNewickTree(NewickFile nf, String treeTitle,
AlignmentView input, int w, int h, int x, int y)
{
TreePanel tp = null;
if (nf.getTree() != null)
{
- tp = new TreePanel(alignPanel, "FromFile", title, nf, input);
+ tp = new TreePanel(alignPanel, nf, treeTitle, input);
tp.setSize(w, h);
tp.setLocation(x, y);
}
- Desktop.addInternalFrame(tp, title, w, h);
+ Desktop.addInternalFrame(tp, treeTitle, w, h);
}
} catch (Exception ex)
{
@Override
public void run()
{
- final List<JMenuItem> legacyItems = new ArrayList<JMenuItem>();
+ final List<JMenuItem> legacyItems = new ArrayList<>();
try
{
// System.err.println("Building ws menu again "
// TODO: group services by location as well as function and/or
// introduce
// object broker mechanism.
- final Vector<JMenu> wsmenu = new Vector<JMenu>();
+ final Vector<JMenu> wsmenu = new Vector<>();
final IProgressIndicator af = me;
/*
}
} catch (Exception e)
{
- Cache.log
- .debug("Exception during web service menu building process.",
- e);
+ Cache.log.debug(
+ "Exception during web service menu building process.",
+ e);
}
}
});
@Override
public void actionPerformed(ActionEvent e)
{
- showProductsFor(af.viewport.getSequenceSelection(), dna, source);
+ showProductsFor(af.viewport.getSequenceSelection(), dna,
+ source);
}
});
showProducts.add(xtype);
showProducts.setEnabled(showp);
} catch (Exception e)
{
- Cache.log
- .warn("canShowProducts threw an exception - please report to help@jalview.org",
- e);
+ Cache.log.warn(
+ "canShowProducts threw an exception - please report to help@jalview.org",
+ e);
return false;
}
return showp;
* @param source
* the database to show cross-references for
*/
- protected void showProductsFor(final SequenceI[] sel,
- final boolean _odna, final String source)
+ protected void showProductsFor(final SequenceI[] sel, final boolean _odna,
+ final String source)
{
- new Thread(CrossRefAction.showProductsFor(sel, _odna, source, this))
+ new Thread(CrossRefAction.getHandlerFor(sel, _odna, source, this))
.start();
}
{
jalview.bin.Cache.log.error(
"Exception during translation. Please report this !", ex);
- final String msg = MessageManager
- .getString("label.error_when_translating_sequences_submit_bug_report");
+ final String msg = MessageManager.getString(
+ "label.error_when_translating_sequences_submit_bug_report");
final String errorTitle = MessageManager
.getString("label.implementation_error")
+ MessageManager.getString("label.translation_failed");
}
if (al == null || al.getHeight() == 0)
{
- final String msg = MessageManager
- .getString("label.select_at_least_three_bases_in_at_least_one_sequence_to_cDNA_translation");
+ final String msg = MessageManager.getString(
+ "label.select_at_least_three_bases_in_at_least_one_sequence_to_cDNA_translation");
final String errorTitle = MessageManager
.getString("label.translation_failed");
JvOptionPane.showMessageDialog(Desktop.desktop, msg, errorTitle,
{
AlignFrame af = new AlignFrame(al, DEFAULT_WIDTH, DEFAULT_HEIGHT);
af.setFileFormat(this.currentFileFormat);
- final String newTitle = MessageManager.formatMessage(
- "label.translation_of_params",
- new Object[] { this.getTitle() });
+ final String newTitle = MessageManager
+ .formatMessage("label.translation_of_params", new Object[]
+ { this.getTitle() });
af.setTitle(newTitle);
if (Cache.getDefault(Preferences.ENABLE_SPLIT_FRAME, true))
{
// Java's Transferable for native dnd
evt.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE);
Transferable t = evt.getTransferable();
- List<String> files = new ArrayList<String>();
- List<DataSourceType> protocols = new ArrayList<DataSourceType>();
+ final AlignFrame thisaf = this;
+ final List<String> files = new ArrayList<>();
+ List<DataSourceType> protocols = new ArrayList<>();
try
{
}
if (files != null)
{
- try
+ new Thread(new Runnable()
{
- // check to see if any of these files have names matching sequences in
- // the alignment
- SequenceIdMatcher idm = new SequenceIdMatcher(viewport
- .getAlignment().getSequencesArray());
- /**
- * Object[] { String,SequenceI}
- */
- ArrayList<Object[]> filesmatched = new ArrayList<Object[]>();
- ArrayList<String> filesnotmatched = new ArrayList<String>();
- for (int i = 0; i < files.size(); i++)
+ @Override
+ public void run()
{
- String file = files.get(i).toString();
- String pdbfn = "";
- DataSourceType protocol = FormatAdapter.checkProtocol(file);
- if (protocol == DataSourceType.FILE)
- {
- File fl = new File(file);
- pdbfn = fl.getName();
- }
- else if (protocol == DataSourceType.URL)
- {
- URL url = new URL(file);
- pdbfn = url.getFile();
- }
- if (pdbfn.length() > 0)
+ try
{
- // attempt to find a match in the alignment
- SequenceI[] mtch = idm.findAllIdMatches(pdbfn);
- int l = 0, c = pdbfn.indexOf(".");
- while (mtch == null && c != -1)
+ // check to see if any of these files have names matching sequences
+ // in
+ // the alignment
+ SequenceIdMatcher idm = new SequenceIdMatcher(
+ viewport.getAlignment().getSequencesArray());
+ /**
+ * Object[] { String,SequenceI}
+ */
+ ArrayList<Object[]> filesmatched = new ArrayList<>();
+ ArrayList<String> filesnotmatched = new ArrayList<>();
+ for (int i = 0; i < files.size(); i++)
{
- do
+ String file = files.get(i).toString();
+ String pdbfn = "";
+ DataSourceType protocol = FormatAdapter.checkProtocol(file);
+ if (protocol == DataSourceType.FILE)
{
- l = c;
- } while ((c = pdbfn.indexOf(".", l)) > l);
- if (l > -1)
+ File fl = new File(file);
+ pdbfn = fl.getName();
+ }
+ else if (protocol == DataSourceType.URL)
{
- pdbfn = pdbfn.substring(0, l);
+ URL url = new URL(file);
+ pdbfn = url.getFile();
+ }
+ if (pdbfn.length() > 0)
+ {
+ // attempt to find a match in the alignment
+ SequenceI[] mtch = idm.findAllIdMatches(pdbfn);
+ int l = 0, c = pdbfn.indexOf(".");
+ while (mtch == null && c != -1)
+ {
+ do
+ {
+ l = c;
+ } while ((c = pdbfn.indexOf(".", l)) > l);
+ if (l > -1)
+ {
+ pdbfn = pdbfn.substring(0, l);
+ }
+ mtch = idm.findAllIdMatches(pdbfn);
+ }
+ if (mtch != null)
+ {
+ FileFormatI type = null;
+ try
+ {
+ type = new IdentifyFile().identify(file, protocol);
+ } catch (Exception ex)
+ {
+ type = null;
+ }
+ if (type != null && type.isStructureFile())
+ {
+ filesmatched.add(new Object[] { file, protocol, mtch });
+ continue;
+ }
+ }
+ // File wasn't named like one of the sequences or wasn't a PDB
+ // file.
+ filesnotmatched.add(file);
}
- mtch = idm.findAllIdMatches(pdbfn);
}
- if (mtch != null)
+ int assocfiles = 0;
+ if (filesmatched.size() > 0)
{
- FileFormatI type = null;
- try
+ boolean autoAssociate = Cache.getDefault("AUTOASSOCIATE_PDBANDSEQS", false);
+ if (!autoAssociate)
{
- type = new IdentifyFile().identify(file, protocol);
- } catch (Exception ex)
+ String msg = MessageManager.formatMessage(
+ "label.automatically_associate_structure_files_with_sequences_same_name",
+ new Object[]
+ { Integer.valueOf(filesmatched.size())
+ .toString() });
+ String ttl = MessageManager.getString(
+ "label.automatically_associate_structure_files_by_name");
+ int choice = JvOptionPane.showConfirmDialog(thisaf, msg,
+ ttl, JvOptionPane.YES_NO_OPTION);
+ autoAssociate = choice == JvOptionPane.YES_OPTION;
+ }
+ if (autoAssociate)
{
- type = null;
+ for (Object[] fm : filesmatched)
+ {
+ // try and associate
+ // TODO: may want to set a standard ID naming formalism for
+ // associating PDB files which have no IDs.
+ for (SequenceI toassoc : (SequenceI[]) fm[2])
+ {
+ PDBEntry pe = new AssociatePdbFileWithSeq()
+ .associatePdbWithSeq((String) fm[0],
+ (DataSourceType) fm[1], toassoc, false,
+ Desktop.instance);
+ if (pe != null)
+ {
+ System.err.println("Associated file : "
+ + ((String) fm[0]) + " with "
+ + toassoc.getDisplayId(true));
+ assocfiles++;
+ }
+ }
+ // TODO: do we need to update overview ? only if features are
+ // shown I guess
+ alignPanel.paintAlignment(true, false);
+ }
}
- if (type != null && type.isStructureFile())
+ else
{
- filesmatched.add(new Object[] { file, protocol, mtch });
- continue;
+ /*
+ * add declined structures as sequences
+ */
+ for (Object[] o : filesmatched)
+ {
+ filesnotmatched.add((String) o[0]);
+ }
}
}
- // File wasn't named like one of the sequences or wasn't a PDB file.
- filesnotmatched.add(file);
- }
- }
- int assocfiles = 0;
- if (filesmatched.size() > 0)
- {
- if (Cache.getDefault("AUTOASSOCIATE_PDBANDSEQS", false)
- || JvOptionPane
- .showConfirmDialog(
- this,
- MessageManager
- .formatMessage(
- "label.automatically_associate_structure_files_with_sequences_same_name",
- new Object[] { Integer
- .valueOf(
- filesmatched
- .size())
- .toString() }),
- MessageManager
- .getString("label.automatically_associate_structure_files_by_name"),
- JvOptionPane.YES_NO_OPTION) == JvOptionPane.YES_OPTION)
-
- {
- for (Object[] fm : filesmatched)
+ if (filesnotmatched.size() > 0)
{
- // try and associate
- // TODO: may want to set a standard ID naming formalism for
- // associating PDB files which have no IDs.
- for (SequenceI toassoc : (SequenceI[]) fm[2])
+ if (assocfiles > 0 && (Cache.getDefault(
+ "AUTOASSOCIATE_PDBANDSEQS_IGNOREOTHERS", false)
+ || JvOptionPane.showConfirmDialog(thisaf,
+ "<html>" + MessageManager.formatMessage(
+ "label.ignore_unmatched_dropped_files_info",
+ new Object[]
+ { Integer.valueOf(
+ filesnotmatched.size())
+ .toString() })
+ + "</html>",
+ MessageManager.getString(
+ "label.ignore_unmatched_dropped_files"),
+ JvOptionPane.YES_NO_OPTION) == JvOptionPane.YES_OPTION))
{
- PDBEntry pe = new AssociatePdbFileWithSeq()
- .associatePdbWithSeq((String) fm[0],
- (DataSourceType) fm[1], toassoc, false,
- Desktop.instance);
- if (pe != null)
- {
- System.err.println("Associated file : "
- + ((String) fm[0]) + " with "
- + toassoc.getDisplayId(true));
- assocfiles++;
- }
+ return;
+ }
+ for (String fn : filesnotmatched)
+ {
+ loadJalviewDataFile(fn, null, null, null);
}
- alignPanel.paintAlignment(true);
+
}
- }
- }
- if (filesnotmatched.size() > 0)
- {
- if (assocfiles > 0
- && (Cache.getDefault(
- "AUTOASSOCIATE_PDBANDSEQS_IGNOREOTHERS", false) || JvOptionPane
- .showConfirmDialog(
- this,
- "<html>"
- + MessageManager
- .formatMessage(
- "label.ignore_unmatched_dropped_files_info",
- new Object[] { Integer
- .valueOf(
- filesnotmatched
- .size())
- .toString() })
- + "</html>",
- MessageManager
- .getString("label.ignore_unmatched_dropped_files"),
- JvOptionPane.YES_NO_OPTION) == JvOptionPane.YES_OPTION))
- {
- return;
- }
- for (String fn : filesnotmatched)
+ } catch (Exception ex)
{
- loadJalviewDataFile(fn, null, null, null);
+ ex.printStackTrace();
}
-
}
- } catch (Exception ex)
- {
- ex.printStackTrace();
- }
+ }).start();
}
}
/**
- * Attempt to load a "dropped" file or URL string: First by testing whether
- * it's an Annotation file, then a JNet file, and finally a features file. If
- * all are false then the user may have dropped an alignment file onto this
- * AlignFrame.
+ * Attempt to load a "dropped" file or URL string, by testing in turn for
+ * <ul>
+ * <li>an Annotation file</li>
+ * <li>a JNet file</li>
+ * <li>a features file</li>
+ * <li>else try to interpret as an alignment file</li>
+ * </ul>
*
* @param file
* either a filename or a URL string.
// if the file isn't identified, or not positively identified as some
// other filetype (PFAM is default unidentified alignment file type) then
// try to parse as annotation.
- boolean isAnnotation = (format == null || FileFormat.Pfam
- .equals(format)) ? new AnnotationFile()
- .annotateAlignmentView(viewport, file, sourceType) : false;
+ boolean isAnnotation = (format == null
+ || FileFormat.Pfam.equals(format))
+ ? new AnnotationFile().annotateAlignmentView(viewport,
+ file, sourceType)
+ : false;
if (!isAnnotation)
{
if (tcf.annotateAlignment(viewport.getAlignment(), true))
{
buildColourMenu();
- changeColour(new TCoffeeColourScheme(viewport.getAlignment()));
+ changeColour(
+ new TCoffeeColourScheme(viewport.getAlignment()));
isAnnotation = true;
- statusBar
- .setText(MessageManager
- .getString("label.successfully_pasted_tcoffee_scores_to_alignment"));
+ statusBar.setText(MessageManager.getString(
+ "label.successfully_pasted_tcoffee_scores_to_alignment"));
}
else
{
// some problem - if no warning its probable that the ID matching
// process didn't work
- JvOptionPane
- .showMessageDialog(
- Desktop.desktop,
- tcf.getWarningMessage() == null ? MessageManager
- .getString("label.check_file_matches_sequence_ids_alignment")
- : tcf.getWarningMessage(),
- MessageManager
- .getString("label.problem_reading_tcoffee_score_file"),
- JvOptionPane.WARNING_MESSAGE);
+ JvOptionPane.showMessageDialog(Desktop.desktop,
+ tcf.getWarningMessage() == null
+ ? MessageManager.getString(
+ "label.check_file_matches_sequence_ids_alignment")
+ : tcf.getWarningMessage(),
+ MessageManager.getString(
+ "label.problem_reading_tcoffee_score_file"),
+ JvOptionPane.WARNING_MESSAGE);
}
}
else
}
} catch (Exception x)
{
- Cache.log
- .debug("Exception when processing data source as T-COFFEE score file",
- x);
+ Cache.log.debug(
+ "Exception when processing data source as T-COFFEE score file",
+ x);
tcf = null;
}
if (tcf == null)
{
format = new IdentifyFile().identify(file, sourceType);
}
- if (FileFormat.Jnet.equals(format))
+ if (FileFormat.ScoreMatrix == format)
+ {
+ ScoreMatrixFile sm = new ScoreMatrixFile(
+ new FileParse(file, sourceType));
+ sm.parse();
+ // todo: i18n this message
+ statusBar.setText(MessageManager.formatMessage(
+ "label.successfully_loaded_matrix",
+ sm.getMatrixName()));
+ }
+ else if (FileFormat.Jnet.equals(format))
{
JPredFile predictions = new JPredFile(file, sourceType);
new JnetAnnotationMaker();
JnetAnnotationMaker.add_annotation(predictions,
viewport.getAlignment(), 0, false);
- SequenceI repseq = viewport.getAlignment().getSequenceAt(0);
- viewport.getAlignment().setSeqrep(repseq);
- ColumnSelection cs = new ColumnSelection();
- cs.hideInsertionsFor(repseq);
- viewport.setColumnSelection(cs);
+ viewport.getAlignment().setupJPredAlignment();
isAnnotation = true;
}
// else if (IdentifyFile.FeaturesFile.equals(format))
{
if (parseFeaturesFile(file, sourceType))
{
- alignPanel.paintAlignment(true);
+ alignPanel.paintAlignment(true, true);
}
}
else
alignPanel.adjustAnnotationHeight();
viewport.updateSequenceIdColours();
buildSortByAnnotationScoresMenu();
- alignPanel.paintAlignment(true);
+ alignPanel.paintAlignment(true, true);
}
} catch (Exception ex)
{
}
new OOMWarning(
"loading data "
- + (sourceType != null ? (sourceType == DataSourceType.PASTE ? "from clipboard."
- : "using " + sourceType + " from " + file)
+ + (sourceType != null
+ ? (sourceType == DataSourceType.PASTE
+ ? "from clipboard."
+ : "using " + sourceType + " from "
+ + file)
: ".")
- + (format != null ? "(parsing as '" + format
- + "' file)" : ""), oom, Desktop.desktop);
+ + (format != null
+ ? "(parsing as '" + format + "' file)"
+ : ""),
+ oom, Desktop.desktop);
}
}
final AlignViewportI peer = viewport.getCodingComplement();
if (peer != null)
{
- AlignFrame linkedAlignFrame = ((AlignViewport) peer).getAlignPanel().alignFrame;
+ AlignFrame linkedAlignFrame = ((AlignViewport) peer)
+ .getAlignPanel().alignFrame;
if (linkedAlignFrame.tabbedPane.getTabCount() > index)
{
linkedAlignFrame.tabbedPane.setSelectedIndex(index);
// here
final JMenu rfetch = new JMenu(
MessageManager.getString("action.fetch_db_references"));
- rfetch.setToolTipText(MessageManager
- .getString("label.retrieve_parse_sequence_database_records_alignment_or_selected_sequences"));
+ rfetch.setToolTipText(MessageManager.getString(
+ "label.retrieve_parse_sequence_database_records_alignment_or_selected_sequences"));
webService.add(rfetch);
final JCheckBoxMenuItem trimrs = new JCheckBoxMenuItem(
MessageManager.getString("option.trim_retrieved_seqs"));
- trimrs.setToolTipText(MessageManager
- .getString("label.trim_retrieved_sequences"));
- trimrs.setSelected(Cache.getDefault("TRIM_FETCHED_DATASET_SEQS", true));
+ trimrs.setToolTipText(
+ MessageManager.getString("label.trim_retrieved_sequences"));
+ trimrs.setSelected(
+ Cache.getDefault(DBRefFetcher.TRIM_RETRIEVED_SEQUENCES, true));
trimrs.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
trimrs.setSelected(trimrs.isSelected());
- Cache.setProperty("TRIM_FETCHED_DATASET_SEQS",
+ Cache.setProperty(DBRefFetcher.TRIM_RETRIEVED_SEQUENCES,
Boolean.valueOf(trimrs.isSelected()).toString());
};
});
rfetch.add(trimrs);
JMenuItem fetchr = new JMenuItem(
MessageManager.getString("label.standard_databases"));
- fetchr.setToolTipText(MessageManager
- .getString("label.fetch_embl_uniprot"));
+ fetchr.setToolTipText(
+ MessageManager.getString("label.fetch_embl_uniprot"));
fetchr.addActionListener(new ActionListener()
{
{
boolean isNucleotide = alignPanel.alignFrame.getViewport()
.getAlignment().isNucleotide();
- DBRefFetcher dbRefFetcher = new DBRefFetcher(alignPanel.av
- .getSequenceSelection(), alignPanel.alignFrame, null,
+ DBRefFetcher dbRefFetcher = new DBRefFetcher(
+ alignPanel.av.getSequenceSelection(),
+ alignPanel.alignFrame, null,
alignPanel.alignFrame.featureSettings, isNucleotide);
dbRefFetcher.addListener(new FetchFinishedListenerI()
{
});
fetchr.setToolTipText(JvSwingUtils.wrapTooltip(true,
MessageManager.formatMessage(
- "label.fetch_retrieve_from",
- new Object[] { src.getDbName() })));
+ "label.fetch_retrieve_from", new Object[]
+ { src.getDbName() })));
dfetch.add(fetchr);
comp++;
}
.toArray(new DbSourceProxy[0]);
// fetch all entry
DbSourceProxy src = otherdb.get(0);
- fetchr = new JMenuItem(MessageManager.formatMessage(
- "label.fetch_all_param",
- new Object[] { src.getDbSource() }));
+ fetchr = new JMenuItem(MessageManager
+ .formatMessage("label.fetch_all_param", new Object[]
+ { src.getDbSource() }));
fetchr.addActionListener(new ActionListener()
{
@Override
fetchr.setToolTipText(JvSwingUtils.wrapTooltip(true,
MessageManager.formatMessage(
"label.fetch_retrieve_from_all_sources",
- new Object[] {
- Integer.valueOf(otherdb.size())
- .toString(), src.getDbSource(),
- src.getDbName() })));
+ new Object[]
+ { Integer.valueOf(otherdb.size())
+ .toString(),
+ src.getDbSource(), src.getDbName() })));
dfetch.add(fetchr);
comp++;
// and then build the rest of the individual menus
ifetch = new JMenu(MessageManager.formatMessage(
- "label.source_from_db_source",
- new Object[] { src.getDbSource() }));
+ "label.source_from_db_source", new Object[]
+ { src.getDbSource() }));
icomp = 0;
String imname = null;
int i = 0;
for (DbSourceProxy sproxy : otherdb)
{
String dbname = sproxy.getDbName();
- String sname = dbname.length() > 5 ? dbname.substring(0,
- 5) + "..." : dbname;
- String msname = dbname.length() > 10 ? dbname.substring(
- 0, 10) + "..." : dbname;
+ String sname = dbname.length() > 5
+ ? dbname.substring(0, 5) + "..."
+ : dbname;
+ String msname = dbname.length() > 10
+ ? dbname.substring(0, 10) + "..."
+ : dbname;
if (imname == null)
{
- imname = MessageManager.formatMessage(
- "label.from_msname", new Object[] { sname });
+ imname = MessageManager
+ .formatMessage("label.from_msname", new Object[]
+ { sname });
}
fetchr = new JMenuItem(msname);
final DbSourceProxy[] dassrc = { sproxy };
}
});
- fetchr.setToolTipText("<html>"
- + MessageManager.formatMessage(
+ fetchr.setToolTipText(
+ "<html>" + MessageManager.formatMessage(
"label.fetch_retrieve_from", new Object[]
{ dbname }));
ifetch.add(fetchr);
protected void showUnconservedMenuItem_actionPerformed(ActionEvent e)
{
viewport.setShowUnconserved(showNonconservedMenuItem.getState());
- alignPanel.paintAlignment(true);
+ alignPanel.paintAlignment(false, false);
}
/*
{
PaintRefresher.Refresh(this, viewport.getSequenceSetId());
alignPanel.updateAnnotation();
- alignPanel.paintAlignment(true);
+ alignPanel.paintAlignment(true,
+ viewport.needToUpdateStructureViews());
}
}
viewport.getAlignment().setSeqrep(null);
PaintRefresher.Refresh(this, viewport.getSequenceSetId());
alignPanel.updateAnnotation();
- alignPanel.paintAlignment(true);
+ alignPanel.paintAlignment(true, true);
}
}
{
if (avc.createGroup())
{
+ if (applyAutoAnnotationSettings.isSelected())
+ {
+ alignPanel.updateAnnotation(true, false);
+ }
alignPanel.alignmentChanged();
}
}
*/
public void setDisplayedView(AlignmentPanel alignmentPanel)
{
- if (!viewport.getSequenceSetId().equals(
- alignmentPanel.av.getSequenceSetId()))
+ if (!viewport.getSequenceSetId()
+ .equals(alignmentPanel.av.getSequenceSetId()))
{
- throw new Error(
- MessageManager
- .getString("error.implementation_error_cannot_show_view_alignment_frame"));
+ throw new Error(MessageManager.getString(
+ "error.implementation_error_cannot_show_view_alignment_frame"));
}
- if (tabbedPane != null
- && tabbedPane.getTabCount() > 0
- && alignPanels.indexOf(alignmentPanel) != tabbedPane
- .getSelectedIndex())
+ if (tabbedPane != null && tabbedPane.getTabCount() > 0 && alignPanels
+ .indexOf(alignmentPanel) != tabbedPane.getSelectedIndex())
{
tabbedPane.setSelectedIndex(alignPanels.indexOf(alignmentPanel));
}
this.alignPanel.av.setSortAnnotationsBy(getAnnotationSortOrder());
this.alignPanel.av
.setShowAutocalculatedAbove(isShowAutoCalculatedAbove());
- alignPanel.paintAlignment(true);
+ alignPanel.paintAlignment(false, false);
}
/**
{
return;
}
- List<SequenceI> cdnaSeqs = new ArrayList<SequenceI>();
+ List<SequenceI> cdnaSeqs = new ArrayList<>();
for (SequenceI aaSeq : alignment.getSequences())
{
for (AlignedCodonFrame acf : mappings)
// show a warning dialog no mapped cDNA
return;
}
- AlignmentI cdna = new Alignment(cdnaSeqs.toArray(new SequenceI[cdnaSeqs
- .size()]));
+ AlignmentI cdna = new Alignment(
+ cdnaSeqs.toArray(new SequenceI[cdnaSeqs.size()]));
GAlignFrame alignFrame = new AlignFrame(cdna, AlignFrame.DEFAULT_WIDTH,
AlignFrame.DEFAULT_HEIGHT);
cdna.alignAs(alignment);
String newtitle = "cDNA " + MessageManager.getString("label.for") + " "
+ this.title;
- Desktop.addInternalFrame(alignFrame, newtitle,
- AlignFrame.DEFAULT_WIDTH, AlignFrame.DEFAULT_HEIGHT);
+ Desktop.addInternalFrame(alignFrame, newtitle, AlignFrame.DEFAULT_WIDTH,
+ AlignFrame.DEFAULT_HEIGHT);
}
/**
al = dna.reverseCdna(complement);
viewport.addAlignment(al, "");
addHistoryItem(new EditCommand(
- MessageManager.getString("label.add_sequences"),
- Action.PASTE, al.getSequencesArray(), 0, al.getWidth(),
+ MessageManager.getString("label.add_sequences"), Action.PASTE,
+ al.getSequencesArray(), 0, al.getWidth(),
viewport.getAlignment()));
} catch (Exception ex)
{
} catch (Exception ex)
{
System.err.println((ex.toString()));
- JvOptionPane
- .showInternalMessageDialog(Desktop.desktop, MessageManager
- .getString("label.couldnt_run_groovy_script"),
- MessageManager
- .getString("label.groovy_support_failed"),
- JvOptionPane.ERROR_MESSAGE);
+ JvOptionPane.showInternalMessageDialog(Desktop.desktop,
+ MessageManager.getString("label.couldnt_run_groovy_script"),
+ MessageManager.getString("label.groovy_support_failed"),
+ JvOptionPane.ERROR_MESSAGE);
}
}
else
{
// include key modifier check in case user selects from menu
avc.markHighlightedColumns(
- (actionEvent.getModifiers() & ActionEvent.ALT_MASK) != 0,
- true,
- (actionEvent.getModifiers() & (ActionEvent.META_MASK | ActionEvent.CTRL_MASK)) != 0);
+ (actionEvent.getModifiers() & ActionEvent.ALT_MASK) != 0, true,
+ (actionEvent.getModifiers() & (ActionEvent.META_MASK
+ | ActionEvent.CTRL_MASK)) != 0);
}
/**
colourMenu.add(textColour);
colourMenu.addSeparator();
- ColourMenuHelper.addMenuItems(colourMenu, this,
- viewport.getAlignment(), false);
+ ColourMenuHelper.addMenuItems(colourMenu, this, viewport.getAlignment(),
+ false);
colourMenu.addSeparator();
colourMenu.add(conservationMenuItem);
colourMenu.add(annotationColour);
ColourSchemeI colourScheme = viewport.getGlobalColourScheme();
- String schemeName = colourScheme == null ? null : colourScheme
- .getSchemeName();
+ ColourMenuHelper.setColourSelected(colourMenu, colourScheme);
+ }
+
+ /**
+ * Open a dialog (if not already open) that allows the user to select and
+ * calculate PCA or Tree analysis
+ */
+ protected void openTreePcaDialog()
+ {
+ if (alignPanel.getCalculationDialog() == null)
+ {
+ new CalculationChooser(AlignFrame.this);
+ }
+ }
+
+ @Override
+ protected void loadVcf_actionPerformed()
+ {
+ JalviewFileChooser chooser = new JalviewFileChooser(
+ Cache.getProperty("LAST_DIRECTORY"));
+ chooser.setFileView(new JalviewFileView());
+ chooser.setDialogTitle(MessageManager.getString("label.load_vcf_file"));
+ chooser.setToolTipText(MessageManager.getString("label.load_vcf_file"));
+
+ int value = chooser.showOpenDialog(null);
+
+ if (value == JalviewFileChooser.APPROVE_OPTION)
+ {
+ String choice = chooser.getSelectedFile().getPath();
+ Cache.setProperty("LAST_DIRECTORY", choice);
+ SequenceI[] seqs = viewport.getAlignment().getSequencesArray();
+ new VCFLoader(choice).loadVCF(seqs, this);
+ }
- ColourMenuHelper.setColourSelected(colourMenu, schemeName);
}
}