Package com.google.gwt.demos.progressbar.client

Source Code of com.google.gwt.demos.progressbar.client.ProgressBarDemo

/*
* Copyright 2007 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package com.google.gwt.demos.progressbar.client;

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.Grid;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.Widget;
import com.google.gwt.widgetideas.client.ProgressBar;
import com.google.gwt.widgetideas.client.ResizableWidgetCollection;

/**
* Entry point classes define <code>onModuleLoad()</code>.
*/
public class ProgressBarDemo implements EntryPoint {
  /**
   * A boolean indicating whether or not we should use custom text.
   */
  private boolean useCustomText = true;

  /**
   * The first example at the bottom of the page.
   */
  private ProgressBar exampleBar1 = new ProgressBar();

  /**
   * The second example at the bottom of the page.
   */
  private ProgressBar exampleBar2 = new ProgressBar();

  /**
   * The main progress bar at the top of the page.
   */
  private ProgressBar mainProgressBar = new ProgressBar(0.0, 2100.0, 0.0) {
    @Override
    protected String generateText(double curProgress) {
      if (useCustomText) {
        if (getPercent() >= 1.0) {
          return "File Uploaded";
        } else {
          return kb2s(curProgress) + " out of " + kb2s(getMaxProgress()) + "("
              + super.generateText(curProgress) + ") uploaded";
        }
      } else {
        return super.generateText(curProgress);
      }
    }

    /**
     * Convert kilobytes to a string
     *
     * @param kb the number kilobytes
     * @return a string representation of the filesize
     */
    private String kb2s(double kb) {
      if (kb > 1000) {
        return ((int) (kb / 1000 * 10)) / 10.0 + "Mb";
      } else {
        return ((int) kb) + "kb";
      }
    }
  };

  /**
   * A timer used for simulations.
   */
  private Timer simulationTimer = new Timer() {
    @Override
    public void run() {
      if (mainProgressBar.getPercent() >= 1.0) {
        cancel();
      } else {
        mainProgressBar.setProgress(mainProgressBar.getProgress() + 123);
        exampleBar1.setProgress(100 * mainProgressBar.getPercent());
        exampleBar2.setProgress(100 * mainProgressBar.getPercent());
      }
    }
  };

  /**
   * This is the entry point method.
   */
  public void onModuleLoad() {
    // Setup the progress bars
    exampleBar2.setTextVisible(false);
    exampleBar2.addStyleName("gwt-ProgressBar-thin");

    // Place everything in a nice looking grid
    Grid grid = new Grid(7, 3);
    grid.setBorderWidth(1);
    grid.setCellPadding(3);

    // Set the current progress
    final TextBox curBox = new TextBox();
    curBox.setText("0.0");
    grid.setWidget(0, 1, curBox);
    grid.setHTML(0, 2, "The current progress.");
    grid.setWidget(0, 0, new Button("Set Progress", new ClickListener() {
      public void onClick(Widget sender) {
        simulationTimer.cancel();
        mainProgressBar.setProgress(new Float(curBox.getText()).floatValue());
      }
    }));

    // Set the minimum progress
    final TextBox minBox = new TextBox();
    minBox.setText(mainProgressBar.getMinProgress() + "");
    grid.setWidget(1, 1, minBox);
    grid.setHTML(1, 2, "The minimum progress progress.");
    grid.setWidget(1, 0, new Button("Set Min Progress", new ClickListener() {
      public void onClick(Widget sender) {
        simulationTimer.cancel();
        mainProgressBar.setMinProgress(new Float(minBox.getText()).floatValue());
      }
    }));

    // Set the maximum progress
    final TextBox maxBox = new TextBox();
    maxBox.setText(mainProgressBar.getMaxProgress() + "");
    grid.setWidget(2, 1, maxBox);
    grid.setHTML(2, 2, "The maximum progress.");
    grid.setWidget(2, 0, new Button("Set Max Progress", new ClickListener() {
      public void onClick(Widget sender) {
        simulationTimer.cancel();
        mainProgressBar.setMaxProgress(new Float(maxBox.getText()).floatValue());
      }
    }));

    // Show or hide the text
    final HTML textVisibleLabel = new HTML("visible");
    grid.setWidget(3, 1, textVisibleLabel);
    grid.setHTML(3, 2, "Show or hide the text in the progress bar.");
    grid.setWidget(3, 0, new Button("Toggle Text", new ClickListener() {
      public void onClick(Widget sender) {
        if (mainProgressBar.isTextVisible()) {
          textVisibleLabel.setHTML("hidden");
          mainProgressBar.setTextVisible(false);
        } else {
          textVisibleLabel.setHTML("visible");
          mainProgressBar.setTextVisible(true);
        }
      }
    }));

    // Add the default text option
    final HTML defaultTextLabel = new HTML("custom");
    grid.setWidget(4, 1, defaultTextLabel);
    grid.setHTML(4, 2, "Override the format of the text with a custom"
        + "format.");
    grid.setWidget(4, 0, new Button("Toggle Custom Text", new ClickListener() {
      public void onClick(Widget sender) {
        if (useCustomText) {
          defaultTextLabel.setHTML("default");
          useCustomText = false;
          mainProgressBar.setProgress(mainProgressBar.getProgress());
        } else {
          defaultTextLabel.setHTML("custom");
          useCustomText = true;
          mainProgressBar.setProgress(mainProgressBar.getProgress());
        }
      }
    }));

    // Add static resize timer methods
    final HTML resizeCheckLabel = new HTML("enabled");
    grid.setWidget(5, 1, resizeCheckLabel);
    grid.setHTML(5, 2, "When resize checking is enabled, a Timer will "
        + "periodically check if the Widget's dimensions have changed.  If "
        + "they change, the widget will be redrawn.");
    grid.setWidget(5, 0, new Button("Toggle Resize Checking",
        new ClickListener() {
          public void onClick(Widget sender) {
            if (ResizableWidgetCollection.get().isResizeCheckingEnabled()) {
              ResizableWidgetCollection.get().setResizeCheckingEnabled(false);
              resizeCheckLabel.setHTML("disabled");

            } else {
              ResizableWidgetCollection.get().setResizeCheckingEnabled(true);
              resizeCheckLabel.setHTML("enabled");
            }
          }
        }));

    // Create a form to set width of element
    final TextBox widthBox = new TextBox();
    widthBox.setText("50%");
    grid.setWidget(6, 1, widthBox);
    grid.setHTML(6, 2, "Set the width of the widget.  Use this to see how "
        + "resize checking detects the new dimensions and redraws the widget.");
    grid.setWidget(6, 0, new Button("Set Width", new ClickListener() {
      public void onClick(Widget sender) {
        mainProgressBar.setWidth(widthBox.getText());
      }
    }));

    // Add all components to the page
    RootPanel.get().add(mainProgressBar);
    RootPanel.get().add(new HTML("<BR>"));
    RootPanel.get().add(grid);
    RootPanel.get().add(new HTML("<BR>Additional Progress Bars:<BR>"));
    RootPanel.get().add(exampleBar1);
    RootPanel.get().add(new HTML("<BR>"));
    RootPanel.get().add(exampleBar2);

    // Simulate progress over time
    simulateProgress();
  }

  /**
   * Run an example timer that shows a progression of progress over time.
   */
  private void simulateProgress() {
    simulationTimer.scheduleRepeating(200);
  }

}
TOP

Related Classes of com.google.gwt.demos.progressbar.client.ProgressBarDemo

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.