Package freenet.client.dynamics

Source Code of freenet.client.dynamics.TimeIncrementer

package freenet.client.dynamics;

import com.google.gwt.dom.client.Element;
import com.google.gwt.dom.client.NodeList;
import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.ui.RootPanel;

import freenet.client.tools.TimeUtil;

/** This class increments/decrements the time counters in the page. */
public class TimeIncrementer implements IDynamic {

  @Override
  public void start() {
    // Starts a timer at a frequency of 1/sec
    new Timer() {
      @Override
      public void run() {
        // Cycle through all 'span' elements
        NodeList<Element> list = RootPanel.getBodyElement().getElementsByTagName("span");
        for (int i = 0; i < list.getLength(); i++) {
          Element e = list.getItem(i);
          String classAttr = e.getAttribute("class");
          // Checks if the element's class indicates that it needs to be incremented
          if (classAttr != null && (classAttr.compareTo("needsIncrement") == 0 || classAttr.compareTo("needsDecrement") == 0)) {
            Element inputElement = e.getElementsByTagName("input").getItem(0);
            // Reads the current time value from the hidden input
            int current = Integer.parseInt(inputElement.getAttribute("value"));
            if (classAttr.compareTo("needsIncrement") == 0) {
              // Increments the current timer
              current += 1000;
            } else if (current > 1000) {
              // Decrements only if it stays positive
              current -= 1000;
            }
            // Writes back to the hidden input
            inputElement.setAttribute("value", "" + current);
            // Changes the shown value
            e.getElementsByTagName("span").getItem(1).setInnerText(TimeUtil.formatTime(current, 2));
          }
        }
      }
    }.scheduleRepeating(1000);
  }

}
TOP

Related Classes of freenet.client.dynamics.TimeIncrementer

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.