Package com.google.gwt.visualization.client

Source Code of com.google.gwt.visualization.client.AbstractDataTable

/*
* Copyright 2008 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.visualization.client;

import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.core.client.JsArrayInteger;
import com.google.gwt.core.client.JsArrayNumber;
import com.google.gwt.visualization.client.TimeOfDay.BadTimeException;

import java.util.Date;

/**
* This class implements the common methods of DataTable and DataView.
*
* @see <a
*      href="http://code.google.com/apis/visualization/documentation/reference.html#DataTable">
*      DataTable API Reference</a>
*/
public class AbstractDataTable extends JavaScriptObject {

  /**
   * The type of a column.
   */
  public enum ColumnType {
    BOOLEAN, DATE, DATETIME, NUMBER, STRING, TIMEOFDAY;

    /**
     * Get a ColumnType enum value from the String representation.
     *
     * @param parameter A String corresponding to a ColumnType enum value.
     * @return a ColumnType enum value corresponding to the given String.
     */
    static ColumnType getColumnTypeFromString(String parameter) {
      return ColumnType.valueOf(parameter.toUpperCase());
    }

    /**
     * Get the String representation of the ColumnType.
     *
     * @return the String representation of the ColumnType.
     */
    String getParameter() {
      return name().toLowerCase();
    }
  }

  protected AbstractDataTable() {
  }

  public final native String getColumnId(int columnIndex) /*-{
    return this.getColumnId(columnIndex);
  }-*/;

  public final native String getColumnLabel(int columnIndex) /*-{
    return this.getColumnLabel(columnIndex);
  }-*/;

  public final native String getColumnPattern(int columnIndex) /*-{
    return this.getColumnPattern(columnIndex);
  }-*/;

  public final native Range getColumnRange(int columnIndex) /*-{
    return this.getColumnRange(columnIndex);
  }-*/;

  public final ColumnType getColumnType(int columnIndex) {
    return ColumnType.getColumnTypeFromString(getColumnTypeAsString(columnIndex));
  }

  public final native String getFormattedValue(int rowIndex, int columnIndex) /*-{
    return this.getFormattedValue(rowIndex, columnIndex);
  }-*/;

  public final native int getNumberOfColumns() /*-{
    return this.getNumberOfColumns();
  }-*/;

  public final native int getNumberOfRows() /*-{
    return this.getNumberOfRows();
  }-*/;

  public final native String getProperty(int rowIndex, int columnIndex,
      String name) /*-{
    return this.getProperty(rowIndex, columnIndex, name);
  }-*/;

  public final native boolean getValueBoolean(int rowIndex, int columnIndex) /*-{
    return this.getValue(rowIndex, columnIndex);
  }-*/;

  public final Date getValueDate(int rowIndex, int columnIndex) {
    JsArrayNumber timevalue = getValueTimevalue(rowIndex, columnIndex);
    if (timevalue.length() == 0) {
      return null;
    } else {
      return new Date((long) timevalue.get(0));
    }
  }

  public final native double getValueDouble(int rowIndex, int columnIndex) /*-{
    return this.getValue(rowIndex, columnIndex);
  }-*/;

  public final native int getValueInt(int rowIndex, int columnIndex) /*-{
    return this.getValue(rowIndex, columnIndex);
  }-*/;

  public final native String getValueString(int rowIndex, int columnIndex) /*-{
    return this.getValue(rowIndex, columnIndex);
  }-*/;

  public final TimeOfDay getValueTimeOfDay(int rowIndex, int columnIndex) {
    TimeOfDay result = new TimeOfDay();
    JsArrayInteger jsArray = getValueArrayInteger(rowIndex, columnIndex);
    try {
      result.setHour(jsArray.get(0));
      result.setMinute(jsArray.get(1));
      result.setSecond(jsArray.get(2));
      result.setMillisecond(jsArray.get(3));
    } catch (BadTimeException e) {
      // this should never happen, because setValue should catch an invalid
      // time of day
      throw new RuntimeException("Invalid time of day.");
    }
    return result;
  }

  /**
   * Check if the value in a cell is null.  Helpful for columns with primitive
   * types such as number and boolean.
   *
   * @param rowIndex The index of the row.
   * @param columnIndex The index of the column.
   * @return <code>true</code> if the value in the cell at rowIndex,
   * columnIndex is null, otherwise <code>false</code>.
   */
  public final native boolean isValueNull(int rowIndex, int columnIndex) /*-{
    return this.getValue(rowIndex, columnIndex) == null;
  }-*/;

  private native String getColumnTypeAsString(int columnIndex)/*-{
    return this.getColumnType(columnIndex);
  }-*/;

  private native JsArrayInteger getValueArrayInteger(int rowIndex,
      int columnIndex) /*-{
    return this.getValue(rowIndex, columnIndex);
  }-*/;

  /**
   * Private jsni to access date value which may be null.
   *
   * @param rowIndex The row.
   * @param columnIndex The column.
   * @return An array with 1 or 0 elements. 1 element indicates a non-null
   *         value, and 0 elements indicates a null value. This is a jsni hack.
   *         Can't return double because the return type may be null. Can't
   *         return Double because the behavior of trying to autobox a jsni
   *         "number" is undefined.
   */
  private native JsArrayNumber getValueTimevalue(int rowIndex, int columnIndex) /*-{
    var value = this.getValue(rowIndex, columnIndex);
    if (value == null) {
      return [];
    } else {
      return [value.getTime()];
    }
  }-*/;
TOP

Related Classes of com.google.gwt.visualization.client.AbstractDataTable

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.