/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/*
* LoadingDialog.java
*
* Created on Jul 12, 2011, 7:57:56 PM
*/
package com.github.couchapptakeout.ui;
import com.github.couchapptakeout.events.ExitApplicationMessage;
import com.github.couchapptakeout.events.LoadingMessage;
import org.bushe.swing.event.EventBus;
import org.bushe.swing.event.EventSubscriber;
/**
*
* @author ryan
*/
public class LoadingDialog extends javax.swing.JDialog {
/** Creates new form LoadingDialog */
public LoadingDialog(java.awt.Frame parent, boolean modal) {
super(parent, modal);
initComponents();
EventBus.subscribeStrongly(LoadingMessage.class, new EventSubscriber<LoadingMessage>() {
@Override
public void onEvent(LoadingMessage t) {
// only update if stepnum > 0
if (t.getStepNum() > 0) {
stepProgressBar.setMinimum(1);
stepProgressBar.setMaximum(t.getTotalSteps());
stepProgressBar.setValue(t.getStepNum());
stepProgressBar.setString(t.getStepName());
}
if (t.getStatusTotal() == 0) {
statusProgressBar.setIndeterminate(true);
} else {
statusProgressBar.setIndeterminate(false);
statusProgressBar.setMinimum(1);
statusProgressBar.setMaximum(t.getStatusTotal());
statusProgressBar.setValue(t.getStatusProgress());
}
statusLabel.setText(t.getStepDesc());
}
});
}
public void setAppName(String appName) {
this.appNameLabel.setText(appName);
}
/** 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.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
statusProgressBar = new javax.swing.JProgressBar();
statusLabel = new javax.swing.JLabel();
cancelButton = new javax.swing.JButton();
stepProgressBar = new javax.swing.JProgressBar();
jPanel1 = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
appNameLabel = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
statusProgressBar.setIndeterminate(true);
statusLabel.setText("Starting...");
cancelButton.setText("Cancel");
cancelButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cancelButtonActionPerformed(evt);
}
});
stepProgressBar.setString("");
stepProgressBar.setStringPainted(true);
jPanel1.setBackground(new java.awt.Color(255, 255, 255));
jLabel1.setFont(new java.awt.Font("Lucida Grande", 0, 18)); // NOI18N
jLabel1.setText("Installing");
appNameLabel.setFont(new java.awt.Font("Lucida Grande", 0, 18)); // NOI18N
appNameLabel.setText("App Name");
org.jdesktop.layout.GroupLayout jPanel1Layout = new org.jdesktop.layout.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jPanel1Layout.createSequentialGroup()
.add(33, 33, 33)
.add(jLabel1)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(appNameLabel)
.addContainerGap(368, Short.MAX_VALUE))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.add(jPanel1Layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
.add(jLabel1)
.add(appNameLabel))
.addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.addContainerGap(475, Short.MAX_VALUE)
.add(cancelButton)
.addContainerGap())
.add(layout.createSequentialGroup()
.addContainerGap(49, Short.MAX_VALUE)
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING, false)
.add(org.jdesktop.layout.GroupLayout.LEADING, statusProgressBar, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.add(org.jdesktop.layout.GroupLayout.LEADING, stepProgressBar, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 502, Short.MAX_VALUE)
.add(statusLabel, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 469, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
.add(27, 27, 27))
.add(jPanel1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(layout.createSequentialGroup()
.add(jPanel1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.add(41, 41, 41)
.add(stepProgressBar, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED)
.add(statusProgressBar, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
.add(statusLabel)
.addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 25, Short.MAX_VALUE)
.add(cancelButton)
.addContainerGap())
);
pack();
}// </editor-fold>//GEN-END:initComponents
private void cancelButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancelButtonActionPerformed
// TODO add your handling code here:
EventBus.publish(new ExitApplicationMessage());
}//GEN-LAST:event_cancelButtonActionPerformed
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
LoadingDialog dialog = new LoadingDialog(new javax.swing.JFrame(), true);
dialog.addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent e) {
System.exit(0);
}
});
dialog.setVisible(true);
}
});
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JLabel appNameLabel;
private javax.swing.JButton cancelButton;
private javax.swing.JLabel jLabel1;
private javax.swing.JPanel jPanel1;
private javax.swing.JLabel statusLabel;
private javax.swing.JProgressBar statusProgressBar;
private javax.swing.JProgressBar stepProgressBar;
// End of variables declaration//GEN-END:variables
}