X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fjexer%2FTTimer.java;h=8007153d679543d17b74fc51cb14663c262ac866;hb=HEAD;hp=2e0ed4277ce742d81b7fb070787bcfb25559f8d0;hpb=daa4106c096cd4d2b92c3cbae6491edccd25fcc4;p=fanfix.git diff --git a/src/jexer/TTimer.java b/src/jexer/TTimer.java index 2e0ed42..8007153 100644 --- a/src/jexer/TTimer.java +++ b/src/jexer/TTimer.java @@ -1,29 +1,27 @@ /* * Jexer - Java Text User Interface * - * License: LGPLv3 or later + * The MIT License (MIT) * - * This module is licensed under the GNU Lesser General Public License - * Version 3. Please see the file "COPYING" in this directory for more - * information about the GNU Lesser General Public License Version 3. + * Copyright (C) 2019 Kevin Lamonte * - * Copyright (C) 2015 Kevin Lamonte + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 3 of - * the License, or (at your option) any later version. + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, see - * http://www.gnu.org/licenses/, or write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA - * 02110-1301 USA + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. * * @author Kevin Lamonte [kevin.lamonte@gmail.com] * @version 1 @@ -35,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. @@ -52,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. @@ -63,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. @@ -81,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); - } - }