All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jppf.ui.monitoring.charts.MeterChartHandler Maven / Gradle / Ivy

There is a newer version: 6.3-alpha
Show newest version
/*
 * JPPF.
 * Copyright (C) 2005-2015 JPPF Team.
 * http://www.jppf.org
 *
 * 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 org.jppf.ui.monitoring.charts;

import static org.jppf.utils.ReflectionHelper.*;

import java.awt.Color;
import java.util.Map;

import org.jppf.ui.monitoring.charts.config.ChartConfiguration;
import org.jppf.ui.monitoring.data.*;

/**
 * Instances of this class are used to create and update 3D pie charts.
 * @author Laurent Cohen
 * @since 5.0
 */
public class MeterChartHandler implements ChartHandler {
  /**
   * The stats formatter that provides the data.
   */
  protected StatsHandler statsHandler = null;

  /**
   * Initialize this chart handler with a specified stats formatter.
   * @param statsHandler the stats formatter that provides the data.
   */
  public MeterChartHandler(final StatsHandler statsHandler) {
    this.statsHandler = statsHandler;
  }

  /**
   * Create a plot XY chart based on a chart configuration.
   * @param config holds the configuration parameters for the chart created, modified by this method.
   * @return a ChartConfiguration instance.
   */
  @Override
  public ChartConfiguration createChart(final ChartConfiguration config) {
    if ((config.fields == null) || (config.fields.length <= 0)) return config;
    Object[] charts = new Object[config.fields.length];
    config.chart = charts;
    Object[] plots = new Object[config.fields.length];
    Class plotClass = getClass0("org.jfree.chart.plot.MeterPlot");
    for (int i=0; i[] paramTypes = {String.class, getClass0("org.jfree.chart.plot.Plot")};
      charts[i] = invokeConstructor(getClass0("org.jfree.chart.JFreeChart"), paramTypes, config.fields[i].toString(), plots[i]);
      // charts[i].setBackgroundPaint(Color.WHITE);
      invokeMethod(getClass0("org.jfree.chart.JFreeChart"), charts[i], "setBackgroundPaint", Color.WHITE );
    }
    return config;
  }

  /**
   * Create and populate a dataset with the values of the specified fields.
   * @param config the names of the fields whose values populate the dataset.
   * @return a DefaultCategoryDataset instance.
   */
  protected Object createDataset(final ChartConfiguration config) {
    Object[] datasets = new Object[config.fields.length];
    for (int i=0; iChartConfiguration instance.
   */
  @Override
  public ChartConfiguration populateDataset(final ChartConfiguration config) {
    return updateDataset(config);
  }

  /**
   * Update a dataset based on a chart configuration.
   * @param config the chart configuration containing the dataset to update.
   * @return a ChartConfiguration instance.
   */
  @Override
  public ChartConfiguration updateDataset(final ChartConfiguration config) {
    Object[] ds = (Object[]) config.dataset;
    Map valueMap = statsHandler.getLatestDoubleValues();
    if (valueMap != null) {
      for (int i=0; i




© 2015 - 2025 Weber Informatics LLC | Privacy Policy