Hi ,

I am sure this topic has been posted before but, I just can't find the 
right topic 

I am trying to use AnnotatedTimeLine.PACKAGE with UiBinder 

My UiBinder XML File is 
 <g:VerticalPanel width="450px" height="222px">
                        
                            ...
                             <g:HTMLPanel width="100px" height="160px"> 
                                 <gct:AnnotatedTimeLine 
ui:field="timelineplot" width="90px" height="150px"/>
                             </g:HTMLPanel>
                             <g:Label ui:field="lastUpdatedLabel"></g:Label>
                        </g:VerticalPanel>

My "timelineplot" field is declared with provided=true as
    @UiField (provided = true)
    AnnotatedTimeLine timelineplot;


As I understand for Visualization API I need to call 
VisualizationUtils.loadVisualizationApi(timelineplotCallback, 
AnnotatedTimeLine.PACKAGE);

where timelineplotCallBack is the call back function which initializes the 
chart 

Relevant code

        Runnable timelineplotCallback = new Runnable()
        {
            @Override
            public void run()
            {
                AnnotatedTimeLine timelineplot = new 
AnnotatedTimeLine("90px", "150px");
                DataTable talbe = createHistoryTable();
                timelineplot.draw(talbe);
                
                initWidget(uiBinder.createAndBindUi(handletoParent));
                //timer to refresh data
                CreateTimer();
            }
        };
        
        VisualizationUtils.loadVisualizationApi(timelineplotCallback, 
AnnotatedTimeLine.PACKAGE);

        AnnotatedTimeLine.Options options = 
AnnotatedTimeLine.Options.create();
        options.setDisplayAnnotations(true);
        options.setDisplayZoomButtons(true);
        options.setScaleType(AnnotatedTimeLine.ScaleType.ALLFIXED);
        
options.setLegendPosition(AnnotatedTimeLine.AnnotatedLegendPosition.SAME_ROW);
// Additional data initialization
        PrepareStockTable();
}

However, the run code is never executed ( no stop on breakpoints) and the 
RootPanel.get("application").add(c); // where c is a composite object 
consisting of the widgets including timeplot

It crashes at this line with 

java.lang.AssertionError: This UIObject's element is not set; you may be 
missing a call to either Composite.initWidget() or UIObject.setElement()

This is understandable since initWidget located in the callback is still 
not called.

If I however call 
" initWidget(uiBinder.createAndBindUi(handletoParent));"
just before the "PrepareStockTable();" 

it crashes at the "(uiBinder.createAndBindUi(handletoParent));" line with 

java.lang.AssertionError: UiField timelineplot with 'provided = true' was 
null


On the other hand if  my code is as follows :

      Runnable timelineplotCallback = new Runnable()
        {
            @Override
            public void run()
            {
                //DataTable talbe = createHistoryTable();
                //timelineplot.draw(talbe);
                CreateTimer();

            }
        };
        
        VisualizationUtils.loadVisualizationApi(timelineplotCallback, 
AnnotatedTimeLine.PACKAGE);

        AnnotatedTimeLine.Options options = 
AnnotatedTimeLine.Options.create();
        options.setDisplayAnnotations(true);
        options.setDisplayZoomButtons(true);
        options.setScaleType(AnnotatedTimeLine.ScaleType.ALLFIXED);
        
options.setLegendPosition(AnnotatedTimeLine.AnnotatedLegendPosition.SAME_ROW);

        //DataTable data = createHistoryTable();
        //PrepareGWTChart();
        
        AnnotatedTimeLine timelineplot = new AnnotatedTimeLine("90px", 
"150px");
        DataTable talbe = createHistoryTable();
        timelineplot.draw(talbe);
        
        
        initWidget(uiBinder.createAndBindUi(handletoParent));
then it crashes at " timelineplot.draw(talbe);"  with 

com.google.gwt.core.client.JavaScriptException: (Error) 
@com.google.gwt.visualization.client.visualizations.Visualization::draw(Lcom/google/gwt/visualization/client/AbstractDataTable;)([JavaScript
 
object(15)]): Container width is zero. Expecting a valid width.

So what is the right way of using AnnotatedTimeLine.PACKAGE with UiBinder ??

Thanks for reading so far :)

Regards

-- 
You received this message because you are subscribed to the Google Groups 
"Google Visualization API" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/google-visualization-api.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to