/** * Sets whether the dialog box monitors MBT Status events. When true, the dialog box registers * itself as a listener for MBT Status events and displays them as they arrive. When false, the * dialog box is not a registered listener and does not display status events. In both cases, * calls to setNote() or setProgress() continue to update the dialog. * * @param onOff true if status is monitored */ public void setStatusMonitored(final boolean onOff) { if (onOff == this.statusMonitored) { return; // No change } if (onOff == true) { Status.addStatusListener(this); } else { Status.removeStatusListener(this); } this.statusMonitored = onOff; }
/** * Initialize the dialog box, creating it's GUI components and setting their initial values. * * @param title the dialog's title * @param message the general message */ protected void initialize(final String title, final String message_) { String message = message_; // // Configure the window. // if (title == null) { this.setTitle("Progress"); } else { this.setTitle(title); } this.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); // // Add an empty border around the dialog, and use a border // layout. Prevent resizing. // this.setResizable(false); final Container pane = this.getContentPane(); final JPanel content = new JPanel(); content.setLayout(new BorderLayout()); content.setBorder(new EmptyBorder(10, 10, 10, 10)); pane.add(content); // // Add the general message. // if (message == null) { message = ""; } this.messageLabel = new JLabel(message); final Font font = this.messageLabel.getFont(); final Font boldFont = font.deriveFont(Font.BOLD); this.messageLabel.setFont(boldFont); content.add(this.messageLabel, BorderLayout.NORTH); // // Add the note, initially empty. // this.noteLabel = new JLabel(" "); content.add(this.noteLabel, BorderLayout.CENTER); // // Add the progress bar. // this.progressBar = new JProgressBar(SwingConstants.HORIZONTAL, 0, 100); this.progressBar.setBorderPainted(true); this.progressBar.setStringPainted(false); this.progressBar.setValue(0); final Dimension d = new Dimension(300, 20); this.progressBar.setMinimumSize(d); this.progressBar.setPreferredSize(d); content.add(this.progressBar, BorderLayout.SOUTH); // // Pack and size the dialog. // this.pack(); this.validate(); // // Listen to status events. // Status.addStatusListener(this); }