From 766236ee541381c4dac102992d6fa47fb1b79b38 Mon Sep 17 00:00:00 2001 From: jendave Date: Mon, 29 Aug 2011 18:46:17 +0000 Subject: [PATCH] move from Braids directory --- .gitattributes | 2 + .../swing/SplashModelProgressMonitor.java | 36 ++++++ .../view/swing/SplashViewProgressMonitor.java | 109 ++++++++++++++++++ 3 files changed, 147 insertions(+) create mode 100644 src/main/java/forge/view/swing/SplashModelProgressMonitor.java create mode 100644 src/main/java/forge/view/swing/SplashViewProgressMonitor.java diff --git a/.gitattributes b/.gitattributes index 7866683ccfd..b8739bdc587 100644 --- a/.gitattributes +++ b/.gitattributes @@ -9849,6 +9849,8 @@ src/main/java/forge/view/swing/ApplicationView.java svneol=native#text/plain src/main/java/forge/view/swing/Main.java svneol=native#text/plain src/main/java/forge/view/swing/OldGuiNewGame.java svneol=native#text/plain src/main/java/forge/view/swing/SplashFrame.java -text +src/main/java/forge/view/swing/SplashModelProgressMonitor.java -text +src/main/java/forge/view/swing/SplashViewProgressMonitor.java -text src/main/java/forge/view/swing/package-info.java svneol=native#text/plain src/main/java/forge/view/swing/util/ProgressBarBase.java -text src/main/java/forge/view/swing/util/ProgressBarEmbedded.java -text diff --git a/src/main/java/forge/view/swing/SplashModelProgressMonitor.java b/src/main/java/forge/view/swing/SplashModelProgressMonitor.java new file mode 100644 index 00000000000..df3d4c7cbd1 --- /dev/null +++ b/src/main/java/forge/view/swing/SplashModelProgressMonitor.java @@ -0,0 +1,36 @@ +package net.slightlymagic.braids.util.progress_monitor; + +/** + * TODO: Write javadoc for this type. + * + */ +public class SplashModelProgressMonitor extends BaseProgressMonitor { + + private SplashViewProgressMonitor currentView = null; + + /** + * TODO: Write javadoc for Constructor. + * @param numPhases + */ + public SplashModelProgressMonitor(int numPhases) { + super(numPhases); + } + + @Override + /** + * @see net.slightlymagic.braids.util.progress_monitor.BaseProgressMonitor#incrementUnitsCompletedThisPhase(long) + */ + public void incrementUnitsCompletedThisPhase(long numUnits) { + super.incrementUnitsCompletedThisPhase(numUnits); + getCurrentView().incrementProgressBar(); + } + + public void setCurrentView(SplashViewProgressMonitor neoView) { + currentView = neoView; + } + + public SplashViewProgressMonitor getCurrentView() { + return currentView; + } + +} diff --git a/src/main/java/forge/view/swing/SplashViewProgressMonitor.java b/src/main/java/forge/view/swing/SplashViewProgressMonitor.java new file mode 100644 index 00000000000..4f0e6efee4d --- /dev/null +++ b/src/main/java/forge/view/swing/SplashViewProgressMonitor.java @@ -0,0 +1,109 @@ +package net.slightlymagic.braids.util.progress_monitor; + +import javax.swing.JProgressBar; +import javax.swing.SwingUtilities; + +/** + * Swing component view, to be used with BaseProgressMonitor. + * + */ +@SuppressWarnings("serial") +public class SplashViewProgressMonitor extends JProgressBar { + private BaseProgressMonitor currentModel; + private double completed; + private double total; + + public SplashViewProgressMonitor() { + super(); + setString(""); + setStringPainted(true); + } + + public final void incrementProgressBar() { + // Update bar "stripe" + SwingUtilities.invokeLater(new Runnable() { + public void run() { + stripeUpdate(); + } + }); + + // Update bar message + // Note: shouldUpdateUI() severely retards motion + // of the preloader, so is temporarily disabled. + //if (getCurrentModel().shouldUpdateUI()) { + if ((getCurrentModel().getNumPhases() > 1)) { + displayUpdate( + "Phase " + getCurrentModel().getCurrentPhase() + ". " + //+ getUnitsCompletedSoFarThisPhase() + " units processed. " + //+ "Overall: " + getTotalPercentCompleteAsString() + "% complete, " + + "Overall ETA in " + getCurrentModel().getRelativeETAAsString() + "." + ); + } + else { + displayUpdate( + //"Overall: " + + getCurrentModel().getUnitsCompletedSoFarThisPhase() + " units processed; " + //+ "(" + getTotalPercentCompleteAsString() + "%); " + + "ETA in " + getCurrentModel().getRelativeETAAsString() + "." + ); + } + // getCurrentModel().justUpdatedUI(); + //} + + + if (getCurrentModel().getCurrentPhase() == getCurrentModel().getNumPhases() + && getCurrentModel().getUnitsCompletedSoFarThisPhase() >= getCurrentModel().getTotalUnitsThisPhase()) + { + displayUpdate("Done! Firing up the GUI..."); + } + } + + /** + * Shows the message inside the progress dialog; does not always work on + * all platforms. + * + * @param message the message to display + */ + public final void displayUpdate(final String message) { + final Runnable proc = new Runnable() { + public void run() { + setString(message); + getCurrentModel().justUpdatedUI(); + } + }; + + if (SwingUtilities.isEventDispatchThread()) { + proc.run(); + } + else { + SwingUtilities.invokeLater(proc); + } + } + + /** + * Moves the stripe inside the progress dialog. + * + */ + public final void stripeUpdate() { + completed = getCurrentModel().getUnitsCompletedSoFarThisPhase(); + total = getCurrentModel().getTotalUnitsThisPhase(); + + setValue((int)Math.round((int)completed/total*100)); + } + + /** + * Resets the stripe inside the progress dialog back to zero. + * + */ + public final void stripeReset() { + setValue(0); + } + + public void setCurrentModel(BaseProgressMonitor neoModel) { + currentModel = neoModel; + } + + public BaseProgressMonitor getCurrentModel() { + return currentModel; + } +}