X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fext%2Farchaeopteryx%2FAptxFrame.java;h=fca6e49dc19658274e1af4b1f11c18747838fcf1;hb=4a3def9f59cefe629c9a33d87483283aee085928;hp=c517ed3a96230fb1cad91a066ac27ab6731ad553;hpb=163acbff0a52f00ca79bd5eec693009738d1b370;p=jalview.git diff --git a/src/jalview/ext/archaeopteryx/AptxFrame.java b/src/jalview/ext/archaeopteryx/AptxFrame.java index c517ed3..fca6e49 100644 --- a/src/jalview/ext/archaeopteryx/AptxFrame.java +++ b/src/jalview/ext/archaeopteryx/AptxFrame.java @@ -1,16 +1,20 @@ package jalview.ext.archaeopteryx; import jalview.bin.Cache; -import jalview.ext.treeviewer.ExternalTreeControlsI; -import jalview.ext.treeviewer.ExternalTreeFrame; -import jalview.ext.treeviewer.ExternalTreeI; -import jalview.ext.treeviewer.ExternalTreePanel; +import jalview.ext.treeviewer.TreeControlsI; +import jalview.ext.treeviewer.TreeFrameI; +import jalview.ext.treeviewer.TreeI; +import jalview.ext.treeviewer.TreePanelI; +import jalview.ext.treeviewer.TreeViewerBindingI; +import jalview.ext.treeviewer.TreeViewerUtils; import jalview.gui.Desktop; -import jalview.gui.EPSOptions; +import jalview.gui.LineartOptions; import jalview.io.JalviewFileChooser; import jalview.io.JalviewFileView; import jalview.util.ImageMaker; import jalview.util.MessageManager; +import jalview.util.Platform; +import jalview.util.ImageMaker.TYPE; import java.awt.Component; import java.awt.Container; @@ -22,6 +26,7 @@ import java.awt.MenuComponent; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.FileOutputStream; +import java.util.concurrent.atomic.AtomicBoolean; import javax.accessibility.AccessibleContext; import javax.swing.JLayeredPane; @@ -38,13 +43,15 @@ import org.forester.archaeopteryx.MainFrame; import org.forester.phylogeny.Phylogeny; import org.jibble.epsgraphics.EpsGraphics2D; -public class AptxFrame implements ExternalTreeFrame +public class AptxFrame implements TreeFrameI { private final MainFrame aptxFrame; - private ExternalTreePanel aptxPanel; + private TreeViewerBindingI viewBinding; - private ExternalTreeControlsI aptxControls; + private TreePanelI aptxPanel; + + private TreeControlsI aptxControls; public AptxFrame(Phylogeny tree, Configuration aptxConfig, @@ -141,28 +148,59 @@ public class AptxFrame implements ExternalTreeFrame else if (menu.getText().contains("View")) { menu.addSeparator(); + JMenuItem sortByTree = new JMenuItem("Sort alignment by tree"); JMenuItem refreshJalview = new JMenuItem( "Filter alignment to show only currently visible sequences"); + JMenuItem hideCollapsed = new JMenuItem( + "Hide sequences of collapsed nodes"); refreshJalview.setFont(menu.getFont()); + refreshJalview.addActionListener(new ActionListener() { + + @Override + public void actionPerformed(ActionEvent e) { + TreeViewerBindingI bindingManager = TreeViewerUtils + .getActiveTreeViews().get(AptxFrame.this); + bindingManager.actionPerformed(e); + } + }); + + sortByTree.addActionListener(new ActionListener() + { - menu.add(sortByTree); - menu.add(refreshJalview); + @Override + public void actionPerformed(ActionEvent e) + { + TreeViewerBindingI bindingManager = TreeViewerUtils + .getActiveTreeViews().get(AptxFrame.this); + bindingManager.sortByTree_actionPerformed(); - sortByTree.setFont(menu.getFont()); - refreshJalview.addActionListener(new ActionListener() + } + + }); + + hideCollapsed.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - // TODO Auto-generated method stub - + TreeViewerBindingI bindingManager = TreeViewerUtils + .getActiveTreeViews().get(AptxFrame.this); + bindingManager.hideCollapsedSequences_actionPerformed(); + } }); + menu.add(sortByTree); + menu.add(refreshJalview); + menu.add(hideCollapsed); + + sortByTree.setFont(menu.getFont()); + + } @@ -173,31 +211,72 @@ public class AptxFrame implements ExternalTreeFrame public void epsTree_actionPerformed(ActionEvent e) { boolean accurateText = true; + final long messageId = System.currentTimeMillis(); String renderStyle = jalview.bin.Cache.getDefault("EPS_RENDERING", "Prompt each time"); + if (Platform.isJS()) + { + renderStyle = "Text"; + } + + AtomicBoolean textSelected = new AtomicBoolean( + !"Lineart".equals(renderStyle)); // If we need to prompt, and if the GUI is visible then // Prompt for EPS rendering style if (renderStyle.equalsIgnoreCase("Prompt each time") - && !(System.getProperty("java.awt.headless") != null && System - .getProperty("java.awt.headless").equals("true"))) + && !Platform.isHeadless()) + // && !(System.getProperty("java.awt.headless") != null && System + // .getProperty("java.awt.headless").equals("true"))) { - EPSOptions eps = new EPSOptions(); - renderStyle = eps.getValue(); - - if (renderStyle == null || eps.cancelled) + LineartOptions epsOption = new LineartOptions(TYPE.EPS.getName(), + textSelected); + epsOption.setResponseAction(1, new Runnable() { - return; - } + @Override + public void run() + { + // report canceled + // setStatus(MessageManager.formatMessage( + // "status.cancelled_image_export_operation", + // TYPE.EPS.getName()), messageId); + } + }); + epsOption.setResponseAction(0, new Runnable() + { + @Override + public void run() + { + // TODO Auto-generated method stub - } + String renderStyle = epsOption.getValue(); + + if (renderStyle == null) + { + return; + } + + boolean accurateText = true; + if (renderStyle.equalsIgnoreCase("text")) + { + accurateText = false; + } + doExport(accurateText); - if (renderStyle.equalsIgnoreCase("text")) + } + + }); + epsOption.showDialog(); + } + else { - accurateText = false; + doExport(accurateText); } + } + protected void doExport(boolean accurateText) + { int width = getTreePanel().getWidth(); int height = getTreePanel().getHeight(); @@ -237,19 +316,19 @@ public class AptxFrame implements ExternalTreeFrame } } @Override - public ExternalTreePanel getTreePanel() + public TreePanelI getTreePanel() { return aptxPanel; } @Override - public ExternalTreeI getTree() + public TreeI getTree() { return aptxPanel.getTree(); } @Override - public void checkMultipleTrees() + public void enableMultipleTrees() { aptxFrame.activateSaveAllIfNeeded(); @@ -262,7 +341,7 @@ public class AptxFrame implements ExternalTreeFrame } @Override - public ExternalTreeControlsI getTreeControls() + public TreeControlsI getTreeControls() { return aptxControls; } @@ -401,4 +480,31 @@ public class AptxFrame implements ExternalTreeFrame } + @Override + public TreeViewerBindingI getViewBinding() + { + return viewBinding; + } + + @Override + public void setViewBinding(TreeViewerBindingI alignmentBinding) + { + viewBinding = alignmentBinding; + } + + + @Override + public void setMaximumSize(Dimension maximumSize) + { + aptxFrame.setMaximumSize(maximumSize); + + } + + @Override + public void setPreferredSize(Dimension preferredSize) + { + aptxFrame.setPreferredSize(preferredSize); + + } + } \ No newline at end of file