X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FDesktop.java;h=e7854313b261cd4792d388c609e1704a2977eba2;hb=155a17a423e980849fd4dc5f857da1a72b0010b9;hp=6b2044cbc28b7c00451206f1d422e75122eacea8;hpb=985d5f40db480896f550db914297cf948a32e963;p=jalview.git diff --git a/src/jalview/gui/Desktop.java b/src/jalview/gui/Desktop.java index 6b2044c..e785431 100644 --- a/src/jalview/gui/Desktop.java +++ b/src/jalview/gui/Desktop.java @@ -22,6 +22,7 @@ package jalview.gui; import java.awt.BorderLayout; import java.awt.Color; +import java.awt.Component; import java.awt.Dimension; import java.awt.FontMetrics; import java.awt.Graphics; @@ -91,8 +92,10 @@ import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JPopupMenu; import javax.swing.JProgressBar; +import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.JTextField; +import javax.swing.JTextPane; import javax.swing.KeyStroke; import javax.swing.SwingUtilities; import javax.swing.WindowConstants; @@ -100,6 +103,7 @@ import javax.swing.event.HyperlinkEvent; import javax.swing.event.HyperlinkEvent.EventType; import javax.swing.event.InternalFrameAdapter; import javax.swing.event.InternalFrameEvent; +import javax.swing.text.JTextComponent; import org.stackoverflowusers.file.WindowsShortcut; @@ -639,61 +643,6 @@ public class Desktop extends jalview.jbgui.GDesktop jalview.bin.Console.info("JALVIEWJS: CREATED DESKTOP"); } - cliWarning(); - } - - /** - * Warning about old or mixed command line arguments - */ - private void cliWarning() - { - Jalview j = Jalview.getInstance(); - boolean oldStyle = j.getArgParser() != null - && j.getArgParser().isOldStyle(); - boolean mixedStyle = j.getArgParser() != null - && j.getArgParser().isMixedStyle(); - - String title = MessageManager.getString("label.command_line_arguments"); - if (mixedStyle) - { - String warning = MessageManager.formatMessage( - "warning.using_mixed_command_line_arguments", - j.getArgParser().getMixedExamples()); - String quit = MessageManager.getString("action.quit"); - JvOptionPane jvp = JvOptionPane.newOptionDialog(this); - jvp.setResponseHandler(JOptionPane.YES_OPTION, () -> { - }); - jvp.showDialogOnTopAsync(this, warning, title, JOptionPane.YES_OPTION, - JOptionPane.WARNING_MESSAGE, null, new Object[] - { quit }, quit, true, null, false); - - Jalview.getInstance().exit( - "Exiting due to mixed old and new command line arguments.", - ExitCode.MIXED_CLI_ARGUMENTS); - return; - } - if (oldStyle) - { - String warning = MessageManager - .getString("warning.using_old_command_line_arguments") - + "https://www.jalview.org/help/html/features/commandline.html"; - - JTextArea jta = new JTextArea(2, 32); - // jta.setLineWrap(true); - jta.setEditable(false); - jta.setWrapStyleWord(true); - jta.setAutoscrolls(true); - jta.setText(warning); - - String ok = MessageManager.getString("label.continue"); - JvOptionPane jvp = JvOptionPane.newOptionDialog(this); - jvp.setResponseHandler(JOptionPane.YES_OPTION, () -> { - }); - jvp.showDialogOnTopAsync(this, jta, title, JOptionPane.YES_OPTION, - JOptionPane.WARNING_MESSAGE, null, new Object[] - { ok }, ok, false, null, false); - } - } /** @@ -3795,4 +3744,80 @@ public class Desktop extends jalview.jbgui.GDesktop alignFrameModalMap.remove(af); } + public void nonBlockingDialog(String title, String message, String button, + int type, boolean scrollable, boolean modal) + { + nonBlockingDialog(32, 2, title, message, null, button, type, scrollable, + false, modal); + } + + public void nonBlockingDialog(int width, int height, String title, + String message, String boxtext, String button, int type, + boolean scrollable, boolean html, boolean modal) + { + if (type < 0) + { + type = JvOptionPane.WARNING_MESSAGE; + } + JLabel jl = new JLabel(message); + + JTextComponent jtc = null; + if (html) + { + JTextPane jtp = new JTextPane(); + jtp.setContentType("text/html"); + jtp.setEditable(false); + jtp.setAutoscrolls(true); + jtp.setText(boxtext); + + jtc = jtp; + } + else + { + JTextArea jta = new JTextArea(height, width); + // jta.setLineWrap(true); + jta.setEditable(false); + jta.setWrapStyleWord(true); + jta.setAutoscrolls(true); + jta.setText(boxtext); + + jtc = jta; + } + + JScrollPane jsp = scrollable + ? new JScrollPane(jtc, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, + JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED) + : null; + + JvOptionPane jvp = JvOptionPane.newOptionDialog(this); + + JPanel jp = new JPanel(); + jp.setLayout(new BoxLayout(jp, BoxLayout.Y_AXIS)); + + if (message != null) + { + jl.setAlignmentX(Component.LEFT_ALIGNMENT); + jp.add(jl); + } + if (boxtext != null) + { + if (scrollable) + { + jsp.setAlignmentX(Component.LEFT_ALIGNMENT); + jp.add(jsp); + } + else + { + jtc.setAlignmentX(Component.LEFT_ALIGNMENT); + jp.add(jtc); + } + } + + jvp.setResponseHandler(JOptionPane.YES_OPTION, () -> { + }); + jvp.showDialogOnTopAsync(this, jp, title, JOptionPane.YES_OPTION, type, + null, new Object[] + { button }, button, modal, null, false); + } + }