|
What this is
Other links
The source code
/*
* Sun Public License Notice
*
* The contents of this file are subject to the Sun Public License
* Version 1.0 (the "License"). You may not use this file except in
* compliance with the License. A copy of the License is available at
* http://www.sun.com/
*
* The Original Code is NetBeans. The Initial Developer of the Original
* Code is Sun Microsystems, Inc. Portions Copyright 1997-2000 Sun
* Microsystems, Inc. All Rights Reserved.
*/
/*
* ProgressObject.java
*
* Created on May 30, 2001, 11:30 AM
*/
package org.netbeans.modules.j2ee.deployment.impl.ui;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.*;
import javax.swing.*;
import org.openide.*;
import org.openide.util.*;
import org.openide.windows.TopComponent;
import javax.enterprise.deploy.spi.status.*;
/**
*
* @author Pete Eakle
* @author Joe Warzecha
* @author George Finklang
* @author Jeri Lockhart
*/
public class ProgressUI extends JPanel {
private boolean changeFontSize;
private boolean wasCancelled;
private String dlgTitle;
private String desc;
private Object lockObj;
private boolean modal;
private static boolean autoClose = true;
private WindowAdapter windowListener;
// Use frame instead of dialog if non-modal, to get window controls (minimize, maximize)
private Dialog dialog;
private JFrame frame;
/** Creates new form ProgressObject */
public ProgressUI() {
this (true);
}
public ProgressUI(boolean modal) {
initComponents ();
changeFontSize = true;
wasCancelled = false;
this.modal = modal;
lockObj = new Object();
}
public ProgressUI(Component parent) {
this (true);
}
public ProgressUI(Component parent, boolean modal) {
this (modal);
}
public void addNotify () {
super.addNotify ();
if (changeFontSize) {
Font f = taskTitle.getFont ();
taskTitle.setFont (new Font (f.getName (), Font.BOLD,
f.getSize () + 2));
changeFontSize = false;
validate ();
}
msgText.setText (" "); //NOI18N
errorText.setText (" "); //NOI18N
autoCloseCheck.setSelected(autoClose);
autoCloseCheck.setMnemonic(NbBundle.getMessage(ProgressUI.class, "LBL_Close_When_Finished_Mnemonic").charAt(0));
autoCloseCheck.getAccessibleContext().setAccessibleDescription(
NbBundle.getMessage(ProgressUI.class, "ACSD_Close_When_Finished"));
}
/**
* Use this to set an explicit title on the progress window before calling startTask()
*
* @param s A title for the window. If you do not specify an explicit title, the default
* title "Progress Monitor" will be used.
*
*/
public void setTitle (String s) {
dlgTitle = s;
if (frame == null) return;
SwingUtilities.invokeLater (new Runnable () {
public void run () {
frame.setTitle(dlgTitle);
}
});
}
/**
* Use this method to set the accessible description for the
* displayed Progress UI dialog or frame.
*
* @param s The accessible description for the dialog or frame.
* If no accessible description is set, the default
* accessible description of "Progress Monitor" will
* be used.
*/
public void setAccessibleDescription (String s) {
desc = s;
}
/**
* must call this next, after instantiation
*/
public void startTask (final String msg, final int max) {
if (wasCancelled) {
return;
}
if (dlgTitle == null) {
dlgTitle = NbBundle.getMessage (ProgressUI.class, "LBL_Progress");
}
start(msg, max);
}
private void start(final String msg, final int max) {
final String title = NbBundle.getMessage (ProgressUI.class, "LBL_Progress");
if (this.modal) {
if (dialog != null) {
clearUI(msg, max);
return;
}
ActionListener listener = new ActionListener () {
public void actionPerformed (ActionEvent evt) {
Object o = evt.getSource ();
if (o == NotifyDescriptor.CANCEL_OPTION) {
wasCancelled = true;
}
}
};
if (desc == null) {
getAccessibleContext().setAccessibleDescription(title);
} else {
getAccessibleContext().setAccessibleDescription(desc);
}
final DialogDescriptor dd =
new DialogDescriptor (this, dlgTitle , modal, listener) {
public int getOptionsAlign () {
return -1;
}
};
Object [] options = new Object [] { NotifyDescriptor.CLOSED_OPTION };
dd.setOptions (options);
dd.setClosingOptions (options);
dialog = DialogDisplayer.getDefault().createDialog(dd);
SwingUtilities.invokeLater (new Runnable () {
public void run () {
myMonitor.setMaximum (max);
myMonitor.setValue (0);
taskTitle.setText (msg);
dialog.setVisible (true);
}
});
}
else { // Non-modal -- use JFrame
if (frame != null) {
clearUI(msg, max);
return;
}
final JPanel thisPanel = this;
frame = new JFrame(dlgTitle );
SwingUtilities.invokeLater (new Runnable () {
public void run () {
myMonitor.setMaximum (max);
myMonitor.setValue (0);
taskTitle.setText (msg);
frame.getContentPane().add(thisPanel);
frame.getAccessibleContext().setAccessibleDescription(
desc != null ? desc
: NbBundle.getMessage(ProgressUI.class, "ACSD_Progress_Monitor"));
frame.setBounds(Utilities.findCenterBounds(frame.getSize()));
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
});
}
}
private void clearUI(final String msg, final int max) {
SwingUtilities.invokeLater (new Runnable () {
public void run () {
myMonitor.setMaximum (max);
myMonitor.setValue (0);
errorText.setText (" "); //NOI18N
msgText.setText (" "); //NOI18N
taskTitle.setText (msg);
}
});
}
public void addError (final String msg) {
SwingUtilities.invokeLater (new Runnable () {
public void run () {
errorText.setText (msg);
}
});
}
public void addMessage (final String msg) {
SwingUtilities.invokeLater (new Runnable () {
public void run () {
msgText.setText (msg);
}
});
}
public void recordWork (final int value) {
SwingUtilities.invokeLater (new Runnable () {
public void run () {
myMonitor.setValue (value);
// System.out.println("ProgressUI: recordWork() value = " + myMonitor.getValue()+ " , max = " + myMonitor.getMaximum());
if ((myMonitor.getValue() >= myMonitor.getMaximum()) && autoClose) {
finished();
}
}
});
}
public boolean checkCancelled () {
return wasCancelled;
}
public boolean isCompleted() {
return true;
}
public void finished () {
finished(true);
}
public void finished (boolean checkAutoclose) {
if (checkAutoclose && !autoClose) {
return;
}
if (this.modal) {
if (dialog == null) {
return;
}
}
else {
if (frame == null) {
return;
}
}
disposeUI();
}
private void disposeUI() {
SwingUtilities.invokeLater (new Runnable () {
public void run () {
synchronized (lockObj) {
if ((dialog != null) && (modal)) {
dialog.hide();
dialog.dispose ();
dialog = null;
} else if (frame != null) {
frame.hide();
frame.dispose ();
frame = null;
}
}
}
});
}
//BEGIN_NOI18N
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
private void initComponents() {//GEN-BEGIN:initComponents
java.awt.GridBagConstraints gridBagConstraints;
taskTitle = new javax.swing.JLabel();
msgText = new javax.swing.JLabel();
myMonitor = new javax.swing.JProgressBar();
errorText = new javax.swing.JLabel();
autoCloseCheck = new javax.swing.JCheckBox();
setLayout(new java.awt.GridBagLayout());
taskTitle.setText(" ");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0;
gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.insets = new java.awt.Insets(12, 12, 6, 12);
add(taskTitle, gridBagConstraints);
msgText.setText(" ");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 1;
gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(12, 24, 6, 24);
add(msgText, gridBagConstraints);
myMonitor.setMinimumSize(new java.awt.Dimension(400, 30));
myMonitor.setPreferredSize(new java.awt.Dimension(400, 30));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 2;
gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.weightx = 1.0;
gridBagConstraints.insets = new java.awt.Insets(0, 24, 12, 24);
add(myMonitor, gridBagConstraints);
errorText.setForeground(java.awt.Color.red);
errorText.setText(" ");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 3;
gridBagConstraints.gridwidth = java.awt.GridBagConstraints.REMAINDER;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.weighty = 1.0;
gridBagConstraints.insets = new java.awt.Insets(0, 24, 12, 24);
add(errorText, gridBagConstraints);
autoCloseCheck.setText(java.util.ResourceBundle.getBundle("org/netbeans/modules/j2ee/deployment/impl/ui/Bundle").getString("LBL_Close_When_Finished"));
autoCloseCheck.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
autoCloseCheckActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 4;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(0, 24, 12, 24);
add(autoCloseCheck, gridBagConstraints);
}//GEN-END:initComponents
private void autoCloseCheckActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_autoCloseCheckActionPerformed
// Add your handling code here:
autoClose = autoCloseCheck.isSelected();
}//GEN-LAST:event_autoCloseCheckActionPerformed
//END_NOI18N
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JCheckBox autoCloseCheck;
private javax.swing.JLabel taskTitle;
private javax.swing.JProgressBar myMonitor;
private javax.swing.JLabel errorText;
private javax.swing.JLabel msgText;
// End of variables declaration//GEN-END:variables
}
|
| ... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.