X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fjexer%2FTTimer.java;h=8007153d679543d17b74fc51cb14663c262ac866;hb=HEAD;hp=622d89cb1df74a14ba2e846367b8f31fe19eeb8b;hpb=e16dda65585466c8987bd1efd718431450a96605;p=fanfix.git diff --git a/src/jexer/TTimer.java b/src/jexer/TTimer.java index 622d89c..8007153 100644 --- a/src/jexer/TTimer.java +++ b/src/jexer/TTimer.java @@ -3,7 +3,7 @@ * * The MIT License (MIT) * - * Copyright (C) 2016 Kevin Lamonte + * Copyright (C) 2019 Kevin Lamonte * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -33,7 +33,11 @@ import java.util.Date; /** * TTimer implements a simple timer. */ -public final class TTimer { +public class TTimer { + + // ------------------------------------------------------------------------ + // Variables -------------------------------------------------------------- + // ------------------------------------------------------------------------ /** * If true, re-schedule after every tick. Note package private access. @@ -50,6 +54,36 @@ public final class TTimer { */ private Date nextTick; + /** + * The action to perfom on a tick. + */ + private TAction action; + + // ------------------------------------------------------------------------ + // Constructors ----------------------------------------------------------- + // ------------------------------------------------------------------------ + + /** + * Package private constructor. + * + * @param duration number of milliseconds to wait between ticks + * @param recurring if true, re-schedule this timer after every tick + * @param action to perform on next tick + */ + TTimer(final long duration, final boolean recurring, final TAction action) { + + this.recurring = recurring; + this.duration = duration; + this.action = action; + + Date now = new Date(); + nextTick = new Date(now.getTime() + duration); + } + + // ------------------------------------------------------------------------ + // TTimer ----------------------------------------------------------------- + // ------------------------------------------------------------------------ + /** * Get the next time this timer needs to be ticked. Note package private * access. @@ -61,9 +95,13 @@ public final class TTimer { } /** - * The action to perfom on a tick. + * Set the recurring flag. + * + * @param recurring if true, re-schedule this timer after every tick */ - private TAction action; + public void setRecurring(final boolean recurring) { + this.recurring = recurring; + } /** * Tick this timer. Note package private access. @@ -79,21 +117,4 @@ public final class TTimer { } } - /** - * Package private constructor. - * - * @param duration number of milliseconds to wait between ticks - * @param recurring if true, re-schedule this timer after every tick - * @param action to perform on next tick - */ - TTimer(final long duration, final boolean recurring, final TAction action) { - - this.recurring = recurring; - this.duration = duration; - this.action = action; - - Date now = new Date(); - nextTick = new Date(now.getTime() + duration); - } - }