[slf4j-dev] svn commit: r988 - slf4j/trunk/slf4j-migrator/src/main/java/org/slf4j/migrator/internal

ceki at slf4j.org ceki at slf4j.org
Tue Feb 26 17:56:58 CET 2008


Author: ceki
Date: Tue Feb 26 17:56:58 2008
New Revision: 988

Modified:
   slf4j/trunk/slf4j-migrator/src/main/java/org/slf4j/migrator/internal/ProgressListenerImpl.java

Log:
- limit the number of screen updates to eliminate screen flicker

Modified: slf4j/trunk/slf4j-migrator/src/main/java/org/slf4j/migrator/internal/ProgressListenerImpl.java
==============================================================================
--- slf4j/trunk/slf4j-migrator/src/main/java/org/slf4j/migrator/internal/ProgressListenerImpl.java	(original)
+++ slf4j/trunk/slf4j-migrator/src/main/java/org/slf4j/migrator/internal/ProgressListenerImpl.java	Tue Feb 26 17:56:58 2008
@@ -32,12 +32,18 @@
 public class ProgressListenerImpl implements ProgressListener {
 
   static final int TARGET_FILE_LENGTH = 85;
+  static final int UPDATE_THRESHOLD = 100;
+  
   int addFileCount = 0;
   int scanFileCount = 0;
   int inplaceConversionCount = 0;
   final MigratorFrame frame;
 
   Abbreviator abbr;
+  
+  long lastUpdate = 0;
+  
+  
 
   public ProgressListenerImpl(File projectFolder, MigratorFrame frame) {
     this.frame = frame;
@@ -49,7 +55,19 @@
     frame.disableInput();
   }
 
+  boolean isTooSoon() {
+    long now = System.currentTimeMillis();
+    if(now-lastUpdate < UPDATE_THRESHOLD) {
+      return true;
+    } else {
+      lastUpdate = now;
+      return false;
+    }
+  }
+ 
   public void onDirectory(File file) {
+    if(isTooSoon()) return;
+      
     String abbreviatedName = getShortName(file);
     frame.otherLabel.setText("<html><p>Searching folder [" + abbreviatedName
         + "]<p>Found " + addFileCount + " java files to scan.</html>");
@@ -74,9 +92,11 @@
   }
 
   public void onFileScan(File file) {
-    String abbreviatedName = getShortName(file);
+  
     scanFileCount++;
-
+    if(isTooSoon()) return;
+    String abbreviatedName = getShortName(file);
+    
     frame.otherLabel.setText("<html><p>Scanning file [" + abbreviatedName
         + "]<p></html>");
     // File + scanFileCount + " out of "+ addFileCount+" files to scan."+



More information about the slf4j-dev mailing list