X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FAlignFrame.java;h=764b19243978e099b3edea3f3188debb77fd2aa7;hb=1e0a944431b347efefe067fdecb6f28fe4c187a8;hp=85b6767f8c53e37c4f2034950ca5ea0e4916f893;hpb=2e2e6d269fbaa505151fe777374f41111f2910d5;p=jalview.git diff --git a/src/jalview/gui/AlignFrame.java b/src/jalview/gui/AlignFrame.java index 85b6767..764b192 100644 --- a/src/jalview/gui/AlignFrame.java +++ b/src/jalview/gui/AlignFrame.java @@ -20,52 +20,6 @@ */ package jalview.gui; -import java.awt.BorderLayout; -import java.awt.Component; -import java.awt.Rectangle; -import java.awt.Toolkit; -import java.awt.datatransfer.Clipboard; -import java.awt.datatransfer.DataFlavor; -import java.awt.datatransfer.StringSelection; -import java.awt.datatransfer.Transferable; -import java.awt.dnd.DnDConstants; -import java.awt.dnd.DropTargetDragEvent; -import java.awt.dnd.DropTargetDropEvent; -import java.awt.dnd.DropTargetEvent; -import java.awt.dnd.DropTargetListener; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.awt.event.ItemEvent; -import java.awt.event.ItemListener; -import java.awt.event.KeyAdapter; -import java.awt.event.KeyEvent; -import java.awt.event.MouseAdapter; -import java.awt.event.MouseEvent; -import java.awt.print.PageFormat; -import java.awt.print.PrinterJob; -import java.beans.PropertyChangeEvent; -import java.io.File; -import java.net.URL; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Deque; -import java.util.Enumeration; -import java.util.Hashtable; -import java.util.List; -import java.util.Set; -import java.util.Vector; - -import javax.swing.JCheckBoxMenuItem; -import javax.swing.JEditorPane; -import javax.swing.JInternalFrame; -import javax.swing.JLayeredPane; -import javax.swing.JMenu; -import javax.swing.JMenuItem; -import javax.swing.JOptionPane; -import javax.swing.JRadioButtonMenuItem; -import javax.swing.JScrollPane; -import javax.swing.SwingUtilities; - import jalview.analysis.AAFrequency; import jalview.analysis.AlignmentSorter; import jalview.analysis.AlignmentUtils; @@ -74,11 +28,11 @@ import jalview.analysis.CrossRef; import jalview.analysis.Dna; import jalview.analysis.ParseProperties; import jalview.analysis.SequenceIdMatcher; -import jalview.api.AlignExportSettingI; import jalview.api.AlignViewControllerGuiI; import jalview.api.AlignViewControllerI; import jalview.api.AlignViewportI; import jalview.api.AlignmentViewPanel; +import jalview.api.FeatureSettingsControllerI; import jalview.api.SplitContainerI; import jalview.api.ViewStyleI; import jalview.api.analysis.ScoreModelI; @@ -108,7 +62,6 @@ import jalview.gui.ViewSelectionMenu.ViewSetProvider; import jalview.io.AlignmentProperties; import jalview.io.AnnotationFile; import jalview.io.BioJsHTMLOutput; -import jalview.io.FeaturesFile; import jalview.io.FileLoader; import jalview.io.FormatAdapter; import jalview.io.HtmlSvgOutput; @@ -145,6 +98,52 @@ import jalview.ws.jws2.Jws2Discoverer; import jalview.ws.jws2.jabaws2.Jws2Instance; import jalview.ws.seqfetcher.DbSourceProxy; +import java.awt.BorderLayout; +import java.awt.Component; +import java.awt.Rectangle; +import java.awt.Toolkit; +import java.awt.datatransfer.Clipboard; +import java.awt.datatransfer.DataFlavor; +import java.awt.datatransfer.StringSelection; +import java.awt.datatransfer.Transferable; +import java.awt.dnd.DnDConstants; +import java.awt.dnd.DropTargetDragEvent; +import java.awt.dnd.DropTargetDropEvent; +import java.awt.dnd.DropTargetEvent; +import java.awt.dnd.DropTargetListener; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.ItemEvent; +import java.awt.event.ItemListener; +import java.awt.event.KeyAdapter; +import java.awt.event.KeyEvent; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.awt.print.PageFormat; +import java.awt.print.PrinterJob; +import java.beans.PropertyChangeEvent; +import java.io.File; +import java.net.URL; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Deque; +import java.util.Enumeration; +import java.util.Hashtable; +import java.util.List; +import java.util.Set; +import java.util.Vector; + +import javax.swing.JCheckBoxMenuItem; +import javax.swing.JEditorPane; +import javax.swing.JInternalFrame; +import javax.swing.JLayeredPane; +import javax.swing.JMenu; +import javax.swing.JMenuItem; +import javax.swing.JOptionPane; +import javax.swing.JRadioButtonMenuItem; +import javax.swing.JScrollPane; +import javax.swing.SwingUtilities; + /** * DOCUMENT ME! * @@ -306,7 +305,6 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, if (hiddenSeqs != null && hiddenSeqs.length > 0) { viewport.hideSequence(hiddenSeqs); - viewport.setHasHiddenRows(true); } alignPanel = new AlignmentPanel(this, viewport); addAlignmentPanel(alignPanel, true); @@ -1142,7 +1140,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, } ExportData exportData = getAlignmentForExport(format); - FormatAdapter f = new FormatAdapter(viewport); + FormatAdapter f = new FormatAdapter(alignPanel); String output = f.formatSequences(format, exportData.getAlignment(), // class cast exceptions will // occur in the distant future @@ -1223,7 +1221,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, cap.setForInput(null); try { - cap.setText(new FormatAdapter(viewport).formatSequences( + cap.setText(new FormatAdapter(alignPanel, exportData.getSettings()) + .formatSequences( e.getActionCommand(), exportData.getAlignment(), exportData.getOmitHidden(), exportData.getStartEndPostions(), @@ -1244,8 +1243,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, AlignmentI alignmentToExport = null; String[] omitHidden = null; int[] alignmentStartEnd = new int[2]; - FeatureRenderer fr = new FeatureRenderer(this.alignPanel); - viewport.setFeatureRenderer(fr); + HiddenSequences hiddenSeqs = viewport.getAlignment() .getHiddenSequences(); @@ -1255,9 +1253,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, { 0, alignmentToExport.getWidth() - 1 }; boolean hasHiddenSeqs = hiddenSeqs.getSize() > 0; - AlignExportSettingI settings = new AlignExportSettings(hasHiddenSeqs, + AlignExportSettings settings = new AlignExportSettings(hasHiddenSeqs, viewport.hasHiddenColumns(), exportFomat); - viewport.setExportSettings(settings); settings.isExportAnnotations(); if (viewport.hasHiddenColumns() && !settings.isExportHiddenColumns()) @@ -1355,8 +1352,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, @Override public void bioJSMenuItem_actionPerformed(ActionEvent e) { - BioJsHTMLOutput bjs = new BioJsHTMLOutput(alignPanel, - alignPanel.getSeqPanel().seqCanvas.getFeatureRenderer()); + BioJsHTMLOutput bjs = new BioJsHTMLOutput(alignPanel); bjs.exportJalviewAlignmentAsBioJsHtmlFile(); } public void createImageMap(File file, String image) @@ -3153,6 +3149,12 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, public FeatureSettings featureSettings; @Override + public FeatureSettingsControllerI getFeatureSettingsUI() + { + return featureSettings; + } + + @Override public void featureSettings_actionPerformed(ActionEvent e) { if (featureSettings != null) @@ -5002,41 +5004,29 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, * contents or path to retrieve file * @param type * access mode of file (see jalview.io.AlignFile) - * @return true if features file was parsed corectly. + * @return true if features file was parsed correctly. */ public boolean parseFeaturesFile(String file, String type) { - boolean featuresFile = false; - try - { - featuresFile = new FeaturesFile(file, type).parse(viewport - .getAlignment().getDataset(), alignPanel.getSeqPanel().seqCanvas - .getFeatureRenderer().getFeatureColours(), false, - jalview.bin.Cache.getDefault("RELAXEDSEQIDMATCHING", false)); - } catch (Exception ex) - { - ex.printStackTrace(); - } + return avc.parseFeaturesFile(file, type, + jalview.bin.Cache.getDefault("RELAXEDSEQIDMATCHING", false)); + + } - if (featuresFile) + @Override + public void refreshFeatureUI(boolean enableIfNecessary) + { + // note - currently this is only still here rather than in the controller + // because of the featureSettings hard reference that is yet to be + // abstracted + if (enableIfNecessary) { viewport.setShowSequenceFeatures(true); showSeqFeatures.setSelected(true); - if (alignPanel.getSeqPanel().seqCanvas.fr != null) - { - // update the min/max ranges where necessary - alignPanel.getSeqPanel().seqCanvas.fr.findAllFeatures(true); - } - if (featureSettings != null) - { - featureSettings.setTableData(); - } - alignPanel.paintAlignment(true); } - return featuresFile; - } + } @Override public void dragEnter(DropTargetDragEvent evt) { @@ -6088,10 +6078,10 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, private int[] startEnd; - private AlignExportSettingI settings; + private AlignExportSettings settings; public ExportData(AlignmentI align, String[] ommit, int[] startEnd, - AlignExportSettingI settings) + AlignExportSettings settings) { this.alignment = align; this.omitHidden = ommit; @@ -6129,12 +6119,12 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, this.startEnd = startEnd; } - public AlignExportSettingI getSettings() + public AlignExportSettings getSettings() { return settings; } - public void setSettings(AlignExportSettingI settings) + public void setSettings(AlignExportSettings settings) { this.settings = settings; }