import jalview.ext.so.SequenceOntology;
import jalview.gui.AlignFrame;
import jalview.gui.Desktop;
+import jalview.gui.JvOptionPane;
import jalview.gui.PromptUserConfig;
import jalview.gui.QuitHandler;
import jalview.gui.QuitHandler.QResponse;
desktop = new Desktop();
desktop.setInBatchMode(true); // indicate we are starting up
+ mixedCliWarning();
+
try
{
JalviewTaskbar.setTaskbar(this);
cmds.processArgs();
boolean commandsSuccess = cmds.argsWereParsed();
+ cliWarning();
+
if (commandsSuccess)
{
if (headlessArg)
|| getInstance().desktop.isInBatchMode());
}
+ /**
+ * Warning about old or mixed command line arguments
+ */
+ private void mixedCliWarning()
+ {
+ Jalview j = Jalview.getInstance();
+ 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");
+
+ Desktop.instance.nonBlockingDialog(title, warning, quit,
+ JvOptionPane.WARNING_MESSAGE, false, true);
+
+ Jalview.exit(
+ "Exiting due to mixed old and new command line arguments.",
+ ExitCode.MIXED_CLI_ARGUMENTS);
+ }
+ }
+
+ private void cliWarning()
+ {
+ Jalview j = Jalview.getInstance();
+ Commands c = j.getCommands();
+ boolean oldStyle = j.getArgParser() != null
+ && j.getArgParser().isOldStyle();
+ String title = MessageManager.getString("label.command_line_arguments");
+ if (oldStyle)
+ {
+ String warning = MessageManager
+ .getString("warning.using_old_command_line_arguments")
+ + "https://www.jalview.org/help/html/features/commandline.html";
+ if (Desktop.instance != null)
+ {
+ String cont = MessageManager.getString("label.continue");
+
+ Desktop.instance.nonBlockingDialog(32, 2, title, warning, cont,
+ JvOptionPane.WARNING_MESSAGE, false, false);
+ }
+ }
+ if (j.getCommands() != null && j.getCommands().getErrors().size() > 0)
+ {
+ if (Desktop.instance != null)
+ {
+ String message = MessageManager
+ .getString("warning.the_following_errors");
+ String ok = MessageManager.getString("action.ok");
+ Desktop.instance.nonBlockingDialog(60, 16, title,
+ message + "\n" + j.getCommands().errorsToString(), ok,
+ JvOptionPane.WARNING_MESSAGE, true, true);
+ }
+ }
+ }
+
}
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.KeyStroke;
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, button, type, scrollable,
+ modal);
+ }
+
+ public void nonBlockingDialog(int width, int height, String title,
+ String message, String button, int type, boolean scrollable,
+ boolean modal)
+ {
+ if (type < 0)
+ {
+ type = JvOptionPane.WARNING_MESSAGE;
+ }
+ JTextArea jta = new JTextArea(height, width);
+ // jta.setLineWrap(true);
+ jta.setEditable(false);
+ jta.setWrapStyleWord(true);
+ jta.setAutoscrolls(true);
+ jta.setText(message);
+
+ JScrollPane jsp = scrollable
+ ? new JScrollPane(jta, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
+ JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED)
+ : null;
+
+ JvOptionPane jvp = JvOptionPane.newOptionDialog(this);
+ jvp.setResponseHandler(JOptionPane.YES_OPTION, () -> {
+ });
+ jvp.showDialogOnTopAsync(this, scrollable ? jsp : jta, title,
+ JOptionPane.YES_OPTION, type, null, new Object[]
+ { button }, button, modal, null, false);
+ }
+
}