Refactor event handling system to be much faster and more reliable

This commit is contained in:
drdev
2014-10-02 10:31:37 +00:00
parent 75adde6794
commit c6d2a9a6ed
12 changed files with 264 additions and 323 deletions

View File

@@ -21,6 +21,7 @@ import com.google.common.base.Function;
import forge.assets.FSkinProp;
import forge.assets.ISkinImage;
import forge.control.GuiTimer;
import forge.deck.CardPool;
import forge.error.BugReportDialog;
import forge.game.GameObject;
@@ -30,6 +31,7 @@ import forge.gui.CardListViewer;
import forge.gui.GuiChoose;
import forge.gui.framework.FScreen;
import forge.interfaces.IGuiBase;
import forge.interfaces.IGuiTimer;
import forge.item.PaperCard;
import forge.model.FModel;
import forge.screens.deckeditor.CDeckEditorUI;
@@ -93,6 +95,11 @@ public class GuiDesktop implements IGuiBase {
return SwingUtilities.isEventDispatchThread();
}
@Override
public IGuiTimer createGuiTimer(Runnable proc, int interval) {
return new GuiTimer(proc, interval);
}
@Override
public ISkinImage getSkinIcon(FSkinProp skinProp) {
if (skinProp == null) { return null; }

View File

@@ -0,0 +1,25 @@
package forge.control;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Timer;
import forge.interfaces.IGuiTimer;
@SuppressWarnings("serial")
public class GuiTimer extends Timer implements IGuiTimer {
public GuiTimer(final Runnable proc0, int interval0) {
super(interval0, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
proc0.run();
}
});
}
@Override
public void setInterval(int interval0) {
setDelay(interval0);
}
}