X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fext%2Farchaeopteryx%2FAptxFrame.java;h=fca6e49dc19658274e1af4b1f11c18747838fcf1;hb=4a3def9f59cefe629c9a33d87483283aee085928;hp=e050425c65ec92e250c80bef571d1d8c773c0a2c;hpb=1ed59c45c2e0b89d51de637a381247db23c7a027;p=jalview.git diff --git a/src/jalview/ext/archaeopteryx/AptxFrame.java b/src/jalview/ext/archaeopteryx/AptxFrame.java index e050425..fca6e49 100644 --- a/src/jalview/ext/archaeopteryx/AptxFrame.java +++ b/src/jalview/ext/archaeopteryx/AptxFrame.java @@ -5,12 +5,16 @@ 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; @@ -42,6 +47,8 @@ public class AptxFrame implements TreeFrameI { private final MainFrame aptxFrame; + private TreeViewerBindingI viewBinding; + private TreePanelI aptxPanel; private TreeControlsI aptxControls; @@ -141,18 +148,58 @@ public class AptxFrame implements TreeFrameI 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() + { + + @Override + public void actionPerformed(ActionEvent e) + { + TreeViewerBindingI bindingManager = TreeViewerUtils + .getActiveTreeViews().get(AptxFrame.this); + bindingManager.sortByTree_actionPerformed(); + + } + + }); + + hideCollapsed.addActionListener(new ActionListener() + { + + @Override + public void actionPerformed(ActionEvent e) + { + TreeViewerBindingI bindingManager = TreeViewerUtils + .getActiveTreeViews().get(AptxFrame.this); + bindingManager.hideCollapsedSequences_actionPerformed(); + + } + + }); menu.add(sortByTree); menu.add(refreshJalview); + menu.add(hideCollapsed); sortByTree.setFont(menu.getFont()); - refreshJalview - .addActionListener(AptxInit.getAllAptxFrames().get(this)); + } @@ -164,31 +211,72 @@ public class AptxFrame implements TreeFrameI 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(); @@ -240,7 +328,7 @@ public class AptxFrame implements TreeFrameI } @Override - public void checkMultipleTrees() + public void enableMultipleTrees() { aptxFrame.activateSaveAllIfNeeded(); @@ -392,4 +480,31 @@ public class AptxFrame implements TreeFrameI } + @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