package eu.irreality.age.swing.newloader.download;
import java.awt.Dimension;
import javax.swing.JProgressBar;
import javax.swing.SwingUtilities;
import eu.irreality.age.i18n.UIMessages;
import eu.irreality.age.swing.newloader.GameEntry;
public class DownloadProgressKeeper implements ProgressKeepingDelegate
{
private boolean downloaded;
private boolean downloadInProgress;
private double progress;
String progressString;
private GameEntry theGameEntry;
private JProgressBar jpb = new JProgressBar(0,100);
public DownloadProgressKeeper ( GameEntry theGameEntry )
{
this.theGameEntry = theGameEntry;
downloaded = theGameEntry.isDownloaded();
jpb.setStringPainted(true);
int preferredHeight = jpb.getPreferredSize() != null ? jpb.getPreferredSize().height : 50;
jpb.setPreferredSize( new Dimension(300,preferredHeight) );
SwingUtilities.invokeLater( new Runnable()
{
public void run()
{
if ( downloaded )
{
jpb.setValue(100);
jpb.setString( UIMessages.getInstance().getMessage("gameloader.game.available") );
}
else
{
jpb.setValue(0);
jpb.setString( UIMessages.getInstance().getMessage("gameloader.game.not.downloaded") );
}
}
}
);
}
public JProgressBar getBar()
{
return jpb;
}
public void progressUpdate( double progress , String progressString )
{
this.progress = progress;
this.progressString = progressString;
SwingUtilities.invokeLater( new Runnable()
{
public void run()
{
jpb.setValue( (int)Math.round(DownloadProgressKeeper.this.progress*100) );
jpb.setString(DownloadProgressKeeper.this.progressString + " (" + ((int)Math.round(DownloadProgressKeeper.this.progress*100)) + "%)");
}
});
}
}