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

org.jboss.as.console.client.shared.runtime.vm.HeapChartView Maven / Gradle / Ivy

Go to download

Bundles the core AS7 console as a GWT module. Includes minor customizations to support extensions.

There is a newer version: 0.7.0.Final
Show newest version
package org.jboss.as.console.client.shared.runtime.vm;

import com.google.gwt.user.client.ui.Widget;
import com.google.gwt.visualization.client.visualizations.corechart.AxisOptions;
import com.google.gwt.visualization.client.visualizations.corechart.LineChart;
import com.google.gwt.visualization.client.visualizations.corechart.Options;
import org.jboss.as.console.client.Console;
import org.jboss.as.console.client.shared.help.StaticHelpPanel;
import org.jboss.as.console.client.shared.runtime.Metric;
import org.jboss.as.console.client.shared.runtime.Sampler;
import org.jboss.as.console.client.shared.runtime.charts.Column;
import org.jboss.as.console.client.shared.runtime.charts.LineChartView;
import org.jboss.as.console.client.shared.runtime.charts.NumberColumn;
import org.jboss.as.console.client.shared.runtime.plain.PlainColumnView;

import java.util.Date;

/**
 * @author Heiko Braun
 * @date 9/29/11
 */
public class HeapChartView implements Sampler {

    private Sampler sampler;
    private String title;
    private boolean hasHelp = true;

    public HeapChartView(String title) {
        this.title = title;
    }

    public HeapChartView(String title, boolean hasHelp) {
        this.title = title;
        this.hasHelp = hasHelp;
    }

    public Widget asWidget() {
        return displayStrategy();
    }

    private Widget displayStrategy() {

        Column maxHeap = new NumberColumn("max","Max").setBaseline(true);
        Column[] heapCols = new Column[] {
                maxHeap,
                new NumberColumn("used","Used").setComparisonColumn(maxHeap),
                new NumberColumn("comitted","Committed"),
                new NumberColumn("init","Init"),
        };

        if(Console.visAPILoaded()) {
            sampler = new NormalizedLineChartView(320,200, title)
                    .setColumns(heapCols);
        }
        else
        {


            sampler = new PlainColumnView(title)
                    .setColumns(heapCols);

            if(hasHelp) {
                StringBuilder html = new StringBuilder();
                html.append("max: The maximum amount of memory in bytes that can be used for memory management.\n");
                html.append("used: The amount of used memory in mega bytes.\n");
                html.append("comitted: The amount of memory in bytes that is committed for the Java virtual machine to use.\n");
                html.append("init:The amount of memory in bytes that the Java virtual machine initially requests from the operating system for memory management.\n");

                ((PlainColumnView)sampler).setStaticHelp(new StaticHelpPanel(html.toString()));
            }
        }

        return sampler.asWidget();
    }


    @Override
    public void addSample(Metric metric) {

        long[] converted = new long[metric.numSamples()];
        for(int i=0; i




© 2015 - 2024 Weber Informatics LLC | Privacy Policy