package com.itmill.toolkit.terminal.gwt.client.ui;\r
\r
import java.util.ArrayList;\r
+import java.util.Date;\r
import java.util.EventObject;\r
import java.util.Iterator;\r
\r
fade();\r
}\r
};\r
- delay.scheduleRepeating(delayMsec);\r
+ delay.schedule(delayMsec);\r
} else if (delayMsec == 0) {\r
fade();\r
}\r
public void fade() {\r
DOM.removeEventPreview(this);\r
cancelDelay();\r
+ final int msec = fadeMsec / (startOpacity / 5);\r
fader = new Timer() {\r
+ long timestamp = 0;\r
int opacity = startOpacity;\r
\r
public void run() {\r
- opacity -= 5;\r
+ double adjust = (timestamp == 0 ? 1\r
+ : (new Date().getTime() - timestamp) / msec);\r
+ opacity -= adjust * 5d;\r
setOpacity(getElement(), opacity);\r
if (opacity <= 0) {\r
cancel();\r
}\r
\r
}\r
+ timestamp = new Date().getTime();\r
}\r
};\r
- final int msec = fadeMsec / (startOpacity / 5);\r
fader.scheduleRepeating(msec);\r
}\r
\r