X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fappletgui%2FAlignFrame.java;h=e01c4c917511544bc4bebd56c8146c86d26df156;hb=17e77c3f2949a0729322b4a8d907f3f34b6a9914;hp=1510a14e6c2bfcda582e27ff8b53b97ed787b01c;hpb=70f9c4700f20a8fa57ed7eb974277d8bad0723c2;p=jalview.git diff --git a/src/jalview/appletgui/AlignFrame.java b/src/jalview/appletgui/AlignFrame.java index 1510a14..e01c4c9 100644 --- a/src/jalview/appletgui/AlignFrame.java +++ b/src/jalview/appletgui/AlignFrame.java @@ -1,6 +1,6 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) - * Copyright (C) $$Year-Rel$$ The Jalview Authors + * Jalview - A Sequence Alignment Editor and Viewer (Version 2.9) + * Copyright (C) 2015 The Jalview Authors * * This file is part of Jalview. * @@ -20,46 +20,13 @@ */ 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.api.AlignViewControllerI; import jalview.api.AlignViewportI; import jalview.api.FeatureRenderer; +import jalview.api.FeatureSettingsControllerI; import jalview.api.SequenceStructureBinding; import jalview.bin.JalviewLite; import jalview.commands.CommandI; @@ -93,7 +60,6 @@ import jalview.schemes.NucleotideColourScheme; import jalview.schemes.PIDColourScheme; import jalview.schemes.PurinePyrimidineColourScheme; import jalview.schemes.RNAHelicesColourChooser; -import jalview.schemes.RNAInteractionColourScheme; import jalview.schemes.StrandColourScheme; import jalview.schemes.TCoffeeColourScheme; import jalview.schemes.TaylorColourScheme; @@ -105,6 +71,42 @@ import jalview.util.MappingUtils; 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; + +import org.jmol.viewer.Viewer; + public class AlignFrame extends EmbmenuFrame implements ActionListener, ItemListener, KeyListener, AlignViewControllerGuiI { @@ -137,8 +139,8 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, * @param title * @param embedded */ - public AlignFrame(AlignmentI al, JalviewLite applet, - String title, boolean embedded) + public AlignFrame(AlignmentI al, JalviewLite applet, String title, + boolean embedded) { this(al, applet, title, embedded, true); } @@ -153,8 +155,8 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, * @param embedded * @param addToDisplay */ - public AlignFrame(AlignmentI al, JalviewLite applet, - String title, boolean embedded, boolean addToDisplay) + public AlignFrame(AlignmentI al, JalviewLite applet, String title, + boolean embedded, boolean addToDisplay) { this(al, null, null, applet, title, embedded, addToDisplay); } @@ -209,7 +211,6 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, if (hiddenSeqs != null && hiddenSeqs.length > 0) { viewport.hideSequence(hiddenSeqs); - viewport.setHasHiddenRows(true); } if (columnSelection != null) { @@ -364,11 +365,11 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, boolean featuresFile = false; try { - featuresFile = new jalview.io.FeaturesFile(file, type) - .parse(viewport.getAlignment(), alignPanel.seqPanel.seqCanvas - .getFeatureRenderer().getFeatureColours(), featureLinks, - true, viewport.applet.getDefaultParameter( - "relaxedidmatch", false)); + featuresFile = new jalview.io.FeaturesFile(file, type).parse(viewport + .getAlignment(), alignPanel.seqPanel.seqCanvas + .getFeatureRenderer().getFeatureColours(), featureLinks, + true, viewport.applet.getDefaultParameter("relaxedidmatch", + false)); } catch (Exception ex) { ex.printStackTrace(); @@ -551,8 +552,8 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, case KeyEvent.VK_F2: viewport.cursorMode = !viewport.cursorMode; statusBar.setText(MessageManager.formatMessage( - "label.keyboard_editing_mode", new String[] - { (viewport.cursorMode ? "on" : "off") })); + "label.keyboard_editing_mode", + new String[] { (viewport.cursorMode ? "on" : "off") })); if (viewport.cursorMode) { alignPanel.seqPanel.seqCanvas.cursorX = viewport.startRes; @@ -925,9 +926,11 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, { boolean visible = (aa.sequenceRef == null ? showForAlignment : showForSequences); - aa.visible = visible; + aa.visible = visible; } - alignPanel.validateAnnotationDimensions(false); + alignPanel.validateAnnotationDimensions(true); + validate(); + repaint(); } private void setAnnotationSortOrder(SequenceAnnotationOrder order) @@ -966,6 +969,8 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, @Override public void actionPerformed(ActionEvent evt) { + viewport.applet.currentAlignFrame = this; + Object source = evt.getSource(); if (source == inputText) @@ -1174,8 +1179,8 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, Frame frame = new Frame(); frame.add(cap); jalview.bin.JalviewLite.addFrame(frame, MessageManager.formatMessage( - "label.alignment_properties", new String[] - { getTitle() }), 400, 250); + "label.alignment_properties", new String[] { getTitle() }), + 400, 250); } else if (source == overviewMenuItem) { @@ -1226,10 +1231,10 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, { changeColour(new PurinePyrimidineColourScheme()); } - else if (source == RNAInteractionColour) - { - changeColour(new RNAInteractionColourScheme()); - } + // else if (source == RNAInteractionColour) + // { + // changeColour(new RNAInteractionColourScheme()); + // } else if (source == RNAHelixColour) { new RNAHelicesColourChooser(viewport, alignPanel); @@ -1336,13 +1341,11 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, Frame frame = new Frame(); frame.add(cap); jalview.bin.JalviewLite.addFrame(frame, MessageManager.formatMessage( - "label.alignment_output_command", new Object[] - { e.getActionCommand() }), 600, 500); + "label.alignment_output_command", + new Object[] { e.getActionCommand() }), 600, 500); FeatureRenderer fr = this.alignPanel.cloneFeatureRenderer(); - viewport.setFeatureRenderer(fr); - viewport.setIncludeHiddenRegion(false); - cap.setText(new AppletFormatAdapter(viewport).formatSequences( + cap.setText(new AppletFormatAdapter(alignPanel).formatSequences( e.getActionCommand(), viewport.getAlignment(), viewport.getShowJVSuffix())); } @@ -1378,13 +1381,13 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, return annotation; } - private Map getDisplayedFeatureCols() + private Map getDisplayedFeatureCols() { if (alignPanel.getFeatureRenderer() != null - && viewport.getFeaturesDisplayed()!= null) + && viewport.getFeaturesDisplayed() != null) { return alignPanel.getFeatureRenderer().getDisplayedFeatureCols(); - + } return null; } @@ -1567,8 +1570,8 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, undoMenuItem.setEnabled(true); CommandI command = viewport.getHistoryList().peek(); undoMenuItem.setLabel(MessageManager.formatMessage( - "label.undo_command", new Object[] - { command.getDescription() })); + "label.undo_command", + new Object[] { command.getDescription() })); } else { @@ -1582,8 +1585,8 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, CommandI command = viewport.getRedoList().peek(); redoMenuItem.setLabel(MessageManager.formatMessage( - "label.redo_command", new Object[] - { command.getDescription() })); + "label.redo_command", + new Object[] { command.getDescription() })); } else { @@ -1878,8 +1881,8 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, int hiddenOffset = viewport.getSelectionGroup().getStartRes(); for (int[] region : viewport.getColumnSelection().getHiddenColumns()) { - copiedHiddenColumns.addElement(new int[] - { region[0] - hiddenOffset, region[1] - hiddenOffset }); + copiedHiddenColumns.addElement(new int[] { + region[0] - hiddenOffset, region[1] - hiddenOffset }); } } else @@ -1976,14 +1979,17 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, if (newAlignment) { - String newtitle = MessageManager.getString("label.copied_sequences"); - if (getTitle().startsWith(MessageManager.getString("label.copied_sequences"))) + String newtitle = MessageManager + .getString("label.copied_sequences"); + if (getTitle().startsWith( + MessageManager.getString("label.copied_sequences"))) { newtitle = getTitle(); } else { - newtitle = newtitle.concat(MessageManager.formatMessage("label.from_msname", new String[]{getTitle()})); + newtitle = newtitle.concat(MessageManager.formatMessage( + "label.from_msname", new String[] { getTitle() })); } AlignFrame af = new AlignFrame(new Alignment(newSeqs), viewport.applet, newtitle, false); @@ -2273,8 +2279,9 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, } statusBar.setText(MessageManager.formatMessage( - "label.removed_columns", new String[] - { Integer.valueOf(trimRegion.getSize()).toString() })); + "label.removed_columns", + new String[] { Integer.valueOf(trimRegion.getSize()) + .toString() })); addHistoryItem(trimRegion); for (SequenceGroup sg : viewport.getAlignment().getGroups()) @@ -2315,8 +2322,9 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, addHistoryItem(removeGapCols); statusBar.setText(MessageManager.formatMessage( - "label.removed_empty_columns", new String[] - { Integer.valueOf(removeGapCols.getSize()).toString() })); + "label.removed_empty_columns", + new String[] { Integer.valueOf(removeGapCols.getSize()) + .toString() })); // This is to maintain viewport position on first residue // of first sequence @@ -2498,7 +2506,7 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, if (alignPanel != null && (fr = alignPanel.getFeatureRenderer()) != null) { - + fr.setGroupVisibility(Arrays.asList(groups), state); alignPanel.seqPanel.seqCanvas.repaint(); if (alignPanel.overviewPanel != null) @@ -2549,8 +2557,8 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, frame.add(overview); // +50 must allow for applet frame window jalview.bin.JalviewLite.addFrame(frame, MessageManager.formatMessage( - "label.overview_params", new String[] - { this.getTitle() }), overview.getPreferredSize().width, + "label.overview_params", new String[] { this.getTitle() }), + overview.getPreferredSize().width, overview.getPreferredSize().height + 50); frame.pack(); @@ -2573,7 +2581,6 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, public void changeColour(ColourSchemeI cs) { - int threshold = 0; if (cs != null) { @@ -2596,15 +2603,6 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, } viewport.setGlobalColourScheme(cs); - if (alignPanel.getOverviewPanel() != null) - { - alignPanel.getOverviewPanel().updateOverviewImage(); - } - - jalview.structure.StructureSelectionManager - .getStructureSelectionManager(viewport.applet) - .sequenceColoursChanged(alignPanel); - alignPanel.paintAlignment(true); } @@ -2836,8 +2834,8 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, // addHistoryItem(new HistoryItem("Sort", viewport.alignment, // HistoryItem.SORT)); addHistoryItem(new OrderCommand(MessageManager.formatMessage( - "label.order_by_params", new String[] - { title }), oldOrder, viewport.getAlignment())); + "label.order_by_params", new String[] { title }), oldOrder, + viewport.getAlignment())); alignPanel.paintAlignment(true); } @@ -2934,12 +2932,12 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, // lite and application g.setFont(new Font("Helvetica", Font.BOLD, 14)); g.drawString(MessageManager.formatMessage( - "label.jalviewLite_release", new String[] - { version }), x, y += fh); + "label.jalviewLite_release", new String[] { version }), x, + y += fh); g.setFont(new Font("Helvetica", Font.BOLD, 12)); g.drawString(MessageManager.formatMessage( - "label.jaview_build_date", new String[] - { builddate }), x, y += fh); + "label.jaview_build_date", new String[] { builddate }), x, + y += fh); g.setFont(new Font("Helvetica", Font.PLAIN, 12)); g.drawString(MessageManager.getString("label.jalview_authors_1"), x, y += fh * 1.5); @@ -3000,10 +2998,10 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, MessageManager.getString("label.load_features_annotations")); MenuItem outputFeatures = new MenuItem( - MessageManager.getString("label.export_features").concat("...")); + MessageManager.getString("label.export_features")); MenuItem outputAnnotations = new MenuItem( - MessageManager.getString("label.export_annotations").concat("...")); + MessageManager.getString("label.export_annotations")); MenuItem closeMenuItem = new MenuItem( MessageManager.getString("action.close")); @@ -3069,7 +3067,7 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, MenuItem purinePyrimidineColour = new MenuItem(); - MenuItem RNAInteractionColour = new MenuItem(); + // MenuItem RNAInteractionColour = new MenuItem(); MenuItem RNAHelixColour = new MenuItem(); @@ -3252,8 +3250,8 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, removeAllGapsMenuItem.setLabel(MessageManager .getString("action.remove_all_gaps")); removeAllGapsMenuItem.addActionListener(this); - removeRedundancyMenuItem.setLabel(MessageManager.getString( - "action.remove_redundancy").concat("...")); + removeRedundancyMenuItem.setLabel(MessageManager + .getString("action.remove_redundancy")); removeRedundancyMenuItem.addActionListener(this); /* @@ -3277,7 +3275,8 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, grpsFromSelection.addActionListener(this); createGroup.setLabel(MessageManager.getString("action.create_group")); unGroup.setLabel(MessageManager.getString("action.remove_group")); - annotationColumnSelection.setLabel("Select by Annotation"); + annotationColumnSelection.setLabel(MessageManager + .getString("action.select_by_annotation")); annotationColumnSelection.addActionListener(this); /* @@ -3307,7 +3306,7 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, hideAllSelection.addActionListener(this); showAllHidden.addActionListener(this); featureSettings.setLabel(MessageManager - .getString("label.feature_settings")); + .getString("action.feature_settings")); featureSettings.addActionListener(this); sequenceFeatures.setLabel(MessageManager .getString("label.show_sequence_features")); @@ -3439,9 +3438,9 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, purinePyrimidineColour.setLabel(MessageManager .getString("label.purine_pyrimidine")); purinePyrimidineColour.addActionListener(this); - RNAInteractionColour.setLabel(MessageManager - .getString("label.rna_interaction")); - RNAInteractionColour.addActionListener(this); + // RNAInteractionColour.setLabel(MessageManager + // .getString("label.rna_interaction")); + // RNAInteractionColour.addActionListener(this); RNAHelixColour.setLabel(MessageManager .getString("action.by_rna_helixes")); RNAHelixColour.addActionListener(this); @@ -3804,8 +3803,7 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, add(statusBar, BorderLayout.SOUTH); add(alignPanel, BorderLayout.CENTER); // and register with the applet so it can pass external API calls to us - jalview.bin.JalviewLite.addFrame(this, this.getTitle(), - frameWidth, + jalview.bin.JalviewLite.addFrame(this, this.getTitle(), frameWidth, frameHeight); } } @@ -3872,10 +3870,10 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, public SequenceStructureBinding addStructureViewInstance( Object jmolviewer, String[] sequenceIds) { - org.jmol.api.JmolViewer viewer = null; + Viewer viewer = null; try { - viewer = (org.jmol.api.JmolViewer) jmolviewer; + viewer = (Viewer) jmolviewer; } catch (ClassCastException ex) { System.err.println("Unsupported viewer object :" @@ -3921,8 +3919,7 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, // TODO: search for a jmv that involves viewer if (jmv == null) { // create a new viewer/jalview binding. - jmv = new ExtJmol(viewer, alignPanel, new SequenceI[][] - { seqs }); + jmv = new ExtJmol(viewer, alignPanel, new SequenceI[][] { seqs }); } return jmv; @@ -3948,7 +3945,7 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, boolean needtoadd = false; if (toaddpdb != null) { - Vector pdbe = toaddpdb.getPDBId(); + Vector pdbe = toaddpdb.getAllPDBEntries(); PDBEntry pdbentry = null; if (pdbe != null && pdbe.size() > 0) { @@ -4005,8 +4002,8 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, { if (seqs[i] != null) { - sequences.addElement(new Object[] - { seqs[i], (chains != null) ? chains[i] : null }); + sequences.addElement(new Object[] { seqs[i], + (chains != null) ? chains[i] : null }); } } seqs = new SequenceI[sequences.size()]; @@ -4019,8 +4016,7 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, chains[i] = (String) oj[1]; } } - return new Object[] - { seqs, chains }; + return new Object[] { seqs, chains }; } @@ -4207,4 +4203,37 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener, { this.splitFrame = sf; } + + // may not need this + @Override + public void setShowSeqFeatures(boolean b) + { + // showSeqFeatures.setSelected(b); + viewport.setShowSequenceFeatures(b); + + } + + @Override + public void setMenusForViewport() + { + // setMenusFromViewport(viewport); + + } + + @Override + public void refreshFeatureUI(boolean enableIfNecessary) + { + if (enableIfNecessary) + { + sequenceFeatures.setState(true); + alignPanel.av.setShowSequenceFeatures(true); + } + } + + @Override + public FeatureSettingsControllerI getFeatureSettingsUI() + { + return alignPanel.av.featureSettings; + } + }