/** * Method used by the SystemIO class to get interactive user input requested by a running MIPS * program (e.g. syscall #5 to read an integer). SystemIO knows whether simulator is being run at * command line by the user, or by the GUI. If run at command line, it gets input from System.in * rather than here. * * <p>This is an overloaded method. This version, with the String parameter, is used to get input * from a popup dialog. * * @param prompt Prompt to display to the user. * @return User input. */ public String getInputString(String prompt) { String input; JOptionPane pane = new JOptionPane(prompt, JOptionPane.QUESTION_MESSAGE, JOptionPane.DEFAULT_OPTION); pane.setWantsInput(true); JDialog dialog = pane.createDialog(Globals.getGui(), "MIPS Keyboard Input"); dialog.setVisible(true); input = (String) pane.getInputValue(); this.postRunMessage(Globals.userInputAlert + input + "\n"); return input; }
/** * Will select the specified line in an editor tab. If the file is open but not current, its tab * will be made current. If the file is not open, it will be opened in a new tab and made current, * however the line will not be selected (apparent apparent problem with JEditTextArea). * * @param fileName A String containing the file path name. * @param line Line number for error message * @param column Column number for error message */ public void selectEditorTextLine(String fileName, int line, int column) { EditTabbedPane editTabbedPane = (EditTabbedPane) Globals.getGui().getMainPane().getEditTabbedPane(); EditPane editPane, currentPane = null; editPane = editTabbedPane.getEditPaneForFile(new java.io.File(fileName).getPath()); if (editPane != null) { if (editPane != editTabbedPane.getCurrentEditTab()) { editTabbedPane.setCurrentEditTab(editPane); } currentPane = editPane; } else { // file is not open. Try to open it. if (editTabbedPane.openFile(new java.io.File(fileName))) { currentPane = editTabbedPane.getCurrentEditTab(); } } // If editPane == null, it means the desired file was not open. Line selection // does not properly with the JEditTextArea editor in this situation (it works // fine for the original generic editor). So we just won't do it. DPS 9-Aug-2010 if (editPane != null && currentPane != null) { currentPane.selectLine(line, column); } }