import java.awt.BorderLayout;
import java.awt.Color;
+import java.awt.Component;
import java.awt.Dimension;
import java.awt.FontMetrics;
import java.awt.Graphics;
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;
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;
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);
- }
-
}
/**
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);
+ }
+
}