tourplaner/src/tourplaner/ui/ProgressBar.java

67 lines
1.9 KiB
Java

package tourplaner.ui;
import tourplaner.business.ConfigHelper;
import javax.imageio.ImageIO;
import javax.swing.*;
import javax.swing.border.TitledBorder;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
public class ProgressBar {
private int status;
private JFrame frame;
private JProgressBar progressBar;
public ProgressBar(String title){
this.frame = new JFrame(title);
File pathToFile = new File(ConfigHelper.getIniString(ConfigHelper.getStandartConfig(), "start", "logo"));
try {
BufferedImage image = ImageIO.read(pathToFile);
this.frame.setIconImage(image);
} catch (IOException e) {
e.printStackTrace();
}
this.frame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
Container content = this.frame.getContentPane();
this.progressBar = new JProgressBar();
this.progressBar.setValue(0);
this.progressBar.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
this.progressBar.setStringPainted(true);
TitledBorder border = BorderFactory.createTitledBorder("Laden....");
this.progressBar.setBorder(border);
content.add(this.progressBar, BorderLayout.NORTH);
this.frame.setSize(300, 100);
this.frame.setVisible(true);
}
public void addProgress(int add){
this.status += add;
this.progressBar.setValue(this.status);
closeOnFinish();
}
private void closeOnFinish(){
if(this.status >= 100){
closeProgress();
}
}
public void setProgress(int set){
this.status = set;
closeOnFinish();
}
public void closeProgress(){
this.frame.setVisible(false);
}
public int getProgressSize(int todo, int maxLevel){
int steps = (progressBar.getValue() - maxLevel) / todo;
if(steps < 0) steps = steps*-1;
return steps;
}
}