From 5bfb20e91677370cbda20717f510f570ecf27e63 Mon Sep 17 00:00:00 2001 From: Doublestrike Date: Mon, 29 Aug 2011 10:22:04 +0000 Subject: [PATCH] - Splash view/model renamed, moved to forge.view.swing folder - Small fix to decouple interface from implementation - Add dispatch thread test - Updated javadoc --- .gitattributes | 2 - src/main/java/forge/CardReader.java | 8 +- .../progress_monitor/BaseProgressMonitor.java | 12 +- .../BraidsProgressMonitor.java | 6 + .../SplashModelProgressMonitor.java | 36 ------ .../SplashViewProgressMonitor.java | 109 ------------------ 6 files changed, 22 insertions(+), 151 deletions(-) delete mode 100644 src/main/java/net/slightlymagic/braids/util/progress_monitor/SplashModelProgressMonitor.java delete mode 100644 src/main/java/net/slightlymagic/braids/util/progress_monitor/SplashViewProgressMonitor.java diff --git a/.gitattributes b/.gitattributes index 69cc9b9e7da..b7bd20a80f0 100644 --- a/.gitattributes +++ b/.gitattributes @@ -9876,8 +9876,6 @@ src/main/java/net/slightlymagic/braids/util/lambda/package-info.java svneol=nati src/main/java/net/slightlymagic/braids/util/package-info.java svneol=native#text/plain src/main/java/net/slightlymagic/braids/util/progress_monitor/BaseProgressMonitor.java svneol=native#text/plain src/main/java/net/slightlymagic/braids/util/progress_monitor/BraidsProgressMonitor.java svneol=native#text/plain -src/main/java/net/slightlymagic/braids/util/progress_monitor/SplashModelProgressMonitor.java -text -src/main/java/net/slightlymagic/braids/util/progress_monitor/SplashViewProgressMonitor.java -text src/main/java/net/slightlymagic/braids/util/progress_monitor/StderrProgressMonitor.java svneol=native#text/plain src/main/java/net/slightlymagic/braids/util/progress_monitor/package-info.java svneol=native#text/plain src/main/java/net/slightlymagic/maxmtg/Predicate.java -text diff --git a/src/main/java/forge/CardReader.java b/src/main/java/forge/CardReader.java index 5b654cf5992..a369db7e4ba 100644 --- a/src/main/java/forge/CardReader.java +++ b/src/main/java/forge/CardReader.java @@ -19,7 +19,7 @@ import java.util.zip.ZipFile; import net.slightlymagic.braids.util.UtilFunctions; import net.slightlymagic.braids.util.generator.FindNonDirectoriesSkipDotDirectoriesGenerator; import net.slightlymagic.braids.util.generator.GeneratorFunctions; -import net.slightlymagic.braids.util.progress_monitor.BaseProgressMonitor; +import net.slightlymagic.braids.util.progress_monitor.BraidsProgressMonitor; import net.slightlymagic.braids.util.progress_monitor.StderrProgressMonitor; import com.google.code.jyield.Generator; @@ -187,7 +187,7 @@ public class CardReader // Try to retrieve card loading progress monitor model. // If no progress monitor present, output results to console. - BaseProgressMonitor monitor = null; + BraidsProgressMonitor monitor = null; final FView view = Singletons.getView(); if (view != null) { monitor = view.getCardLoadingProgressMonitor(); @@ -206,7 +206,9 @@ public class CardReader findNonDirsIterable = YieldUtils.toIterable(findNonDirsGen); } - monitor.setTotalUnitsThisPhase(estimatedFilesRemaining); + if(monitor!=null) { + monitor.setTotalUnitsThisPhase(estimatedFilesRemaining); + } for (File cardTxtFile : findNonDirsIterable) { if (!cardTxtFile.getName().endsWith(CARD_FILE_DOT_EXTENSION)) { diff --git a/src/main/java/net/slightlymagic/braids/util/progress_monitor/BaseProgressMonitor.java b/src/main/java/net/slightlymagic/braids/util/progress_monitor/BaseProgressMonitor.java index 9fd913639a4..e6c80da8bac 100644 --- a/src/main/java/net/slightlymagic/braids/util/progress_monitor/BaseProgressMonitor.java +++ b/src/main/java/net/slightlymagic/braids/util/progress_monitor/BaseProgressMonitor.java @@ -31,6 +31,16 @@ public class BaseProgressMonitor implements BraidsProgressMonitor { /** * Convenience for + * BaseProgressMonitor(1, 1, 2.0f, null). + * + * @see #BaseProgressMonitor(int,long,float,float[]) + */ + public BaseProgressMonitor() { + this(1, 1L, 2.0f, null); + } + + /** + * Convenience for * BaseProgressMonitor(numPhases, 1, 2.0f, null). * * @see #BaseProgressMonitor(int,long,float,float[]) @@ -300,7 +310,7 @@ public class BaseProgressMonitor implements BraidsProgressMonitor { * Subclasses must call this immediately after updating the UI, to * preserve the integrity of the shouldUpdateUI method. */ - protected void justUpdatedUI() { + public void justUpdatedUI() { this.lastUIUpdateTime = new Date().getTime()/1000; } diff --git a/src/main/java/net/slightlymagic/braids/util/progress_monitor/BraidsProgressMonitor.java b/src/main/java/net/slightlymagic/braids/util/progress_monitor/BraidsProgressMonitor.java index 73440c98e93..2b757ae8640 100644 --- a/src/main/java/net/slightlymagic/braids/util/progress_monitor/BraidsProgressMonitor.java +++ b/src/main/java/net/slightlymagic/braids/util/progress_monitor/BraidsProgressMonitor.java @@ -112,6 +112,12 @@ public interface BraidsProgressMonitor { * even if it would otherwise be too soon to update the UI. */ public abstract boolean shouldUpdateUI(); + + /** + * Subclasses must call this immediately after updating the UI, to + * preserve the integrity of the shouldUpdateUI method. + */ + public abstract void justUpdatedUI(); /** * This is the only way to advance the phase number. diff --git a/src/main/java/net/slightlymagic/braids/util/progress_monitor/SplashModelProgressMonitor.java b/src/main/java/net/slightlymagic/braids/util/progress_monitor/SplashModelProgressMonitor.java deleted file mode 100644 index df3d4c7cbd1..00000000000 --- a/src/main/java/net/slightlymagic/braids/util/progress_monitor/SplashModelProgressMonitor.java +++ /dev/null @@ -1,36 +0,0 @@ -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/net/slightlymagic/braids/util/progress_monitor/SplashViewProgressMonitor.java b/src/main/java/net/slightlymagic/braids/util/progress_monitor/SplashViewProgressMonitor.java deleted file mode 100644 index 4f0e6efee4d..00000000000 --- a/src/main/java/net/slightlymagic/braids/util/progress_monitor/SplashViewProgressMonitor.java +++ /dev/null @@ -1,109 +0,0 @@ -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; - } -}