package org.genedb.jogra.drawing;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Point;
import java.awt.Toolkit;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.WindowConstants;
/**
* Simple ProgressBar that pops up on the screen to inform the user that a long task
* is running.
* @author nds
*
*/
public class JograProgressBar extends JPanel {
private JProgressBar progressBar;
private JFrame frame;
static enum Position {
CENTRE (2,2),
TOP_LEFT (3,3);
private final int x;
private final int y;
Toolkit tk = Toolkit.getDefaultToolkit();
Dimension size = tk.getScreenSize();
Position (int xdiv, int ydiv){
this.x = ((int)size.getWidth()/xdiv)-300;
this.y = ((int)size.getHeight()/ydiv)-70;
}
public int x(){ return this.x; }
public int y(){ return this.y; }
}
/* Constructor */
public JograProgressBar(String title){
this(title,Position.CENTRE); //Default is centre
}
/* Position and start the progress bar */
public JograProgressBar(String title, Position pos ) {
progressBar = new JProgressBar();
progressBar.setIndeterminate(true);
JPanel panel = new JPanel();
panel.add(progressBar);
frame = new JFrame();
frame.setLayout(new BorderLayout());
frame.setPreferredSize(new Dimension(300,70));
frame.setTitle(title);
frame.setLocation(pos.x, pos.y);
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.add(panel);
frame.pack();
frame.setVisible(true);
}
/* Stop the progressbar */
public void stop(){
progressBar.setIndeterminate(false);
frame.setVisible(false);
frame.dispose();
}
/* Test */
public static void main(String[] args) {
JograProgressBar jpb = new JograProgressBar("Testing Progress Bar", Position.TOP_LEFT);
}
}