package datechooser.autorun;
import datechooser.beans.locale.LocaleUtils;
import java.beans.*;
import javax.swing.JOptionPane;
/**
* Main library class. Shows logo and then starts visual components customizer.
* @author Androsov Vadim
* @since 1.0
*/
public class Configurator implements Runnable {
private ConfigWindow configWindow = null;
/**
* Main method.
* @since 1.0
* @param args Not used.<br>
*/
public static void main(String[] args) {
Configurator instance = new Configurator();
instance.start(true);
}
/**
* Starts visual customizer after logo.
* @param showLogo Is logo required.
* @since 1.0
*/
public void start(boolean showLogo) {
LocaleUtils.reset();
Logo logo = null;
if (showLogo) {
logo = new Logo();
logo.setVisible(true);
}
Thread starter = new Thread(this);
starter.start();
while (starter.isAlive()) {
try {Thread.currentThread().sleep(1000);
} catch (InterruptedException ex) {
JOptionPane.showMessageDialog(null, ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
return;
}
}
configWindow.setVisible(true);
if (showLogo) {
logo.setVisible(false);
logo.dispose();
}
}
/**
* Allows construct components and their customizers in background while logo is
* displaying.
* @since 1.0
*/
public void run() {
try {
configWindow = new ConfigWindow();
} catch (IntrospectionException ex) {
JOptionPane.showMessageDialog(null, ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
}
}
}