Package ca.nanometrics.gflot.sample.client

Source Code of ca.nanometrics.gflot.sample.client.GFlotSample

package ca.nanometrics.gflot.sample.client;

import java.util.ArrayList;
import java.util.List;

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.core.client.Scheduler;
import com.google.gwt.core.client.Scheduler.ScheduledCommand;
import com.google.gwt.dom.client.Style.Unit;
import com.google.gwt.event.logical.shared.SelectionEvent;
import com.google.gwt.event.logical.shared.SelectionHandler;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.ui.RootLayoutPanel;
import com.google.gwt.user.client.ui.SimpleLayoutPanel;
import com.google.gwt.user.client.ui.TabLayoutPanel;
import com.google.gwt.user.client.ui.Widget;

public class GFlotSample
    implements EntryPoint
{
    private TabLayoutPanel tabPanel;

    private List<SimpleLayoutPanel> panels;

    private List<GFlotExample> samples;

    private void addExamples()
    {
        panels = new ArrayList<SimpleLayoutPanel>();
        samples = new ArrayList<GFlotExample>();

        addExample( new SimplePlotExample() );
        addExample( new BarChartExample() );
        addExample( new PlotWithInteractiveLegendExample() );
        addExample( new PlotWithOverviewExample() );
        addExample( new HoverExample() );
        addExample( new SlidingWindowExample() );
        addExample( new DecimationExample() );
        addExample( new MarkingsExample() );
        addExample( new ImageExample() );
    }

    private void addExample( GFlotExample example )
    {
        SimpleLayoutPanel panel = new SimpleLayoutPanel();
        tabPanel.add( panel, example.getName() );
        panels.add( panel );
        samples.add( example );
    }

    public void onModuleLoad()
    {
        tabPanel = new TabLayoutPanel( 30, Unit.PX );

        addExamples();

        tabPanel.addSelectionHandler( new SelectionHandler<Integer>()
        {
            @Override
            public void onSelection( SelectionEvent<Integer> event )
            {
                initSample( event.getSelectedItem() );
            }
        } );

        RootLayoutPanel.get().add( tabPanel );

        // selected by default
        initSample( 0 );
    }

    private void initSample( final int index )
    {
        // deferred to prevent a bug where the axis are not correctly drawn
        Scheduler.get().scheduleDeferred( new ScheduledCommand()
        {
            @Override
            public void execute()
            {
                SimpleLayoutPanel panel = panels.get( index );
                if ( null == panel.getWidget() )
                {
                    Widget sample = samples.get( index ).createExample();
                    DOM.setStyleAttribute( sample.getElement(), "marginTop", "10px" );
                    panel.setWidget( sample );

                    // setting size to 100% to avoid a bug on IE6 and IE7 where the panel don't take all the space
                    // available
                    panel.setSize( "100%", "100%" );
                }
            }
        } );
    }

}
TOP

Related Classes of ca.nanometrics.gflot.sample.client.GFlotSample

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.