как да създадете проста кръгова диаграма с invient-диаграми във vaadin?

през последните три часа се опитвах да създам проста кръгова диаграма с добавка invient-charts във vaadin. Четох много за това и сложих jquery.js и highcharts.js във файл с уеб съдържание. Модифицирах моя xml файл, за да препратка към сервлета на моето приложение. Но пак не става. Мисля, че и аз правя тези неща погрешно. Сега ме подлудява. Може ли някой да ми предостави прост урок за създаване на кръгова диаграма или друг пример за диаграма?


person yns    schedule 18.09.2012    source източник
comment
първо това всичко, можете ли да ни кажете малко повече? например какво изключение се хвърля или ако приложението работи, но диаграмите не се изобразяват...   -  person Franco    schedule 18.09.2012


Отговори (1)


Тъй като не предоставихте много информация, публикувам тук стъпките, които предприех...

Първо добавям всички javascript файлове jquery и highcharts в папката webapp/js

сега редактирайте сервлета на вашето приложение (този, който разширява AbstractApplicationServlet)... има метод writeAjaxPageHtmlHeader, където трябва да добавите url за горните два js файла. това е тук: https://vaadin.com/forum/-/message_boards/view_message/254632#_19_message_254632

използвам maven в моя проект, така че добавете зависимостите (ако не използвате maven, добавете бурканите в папки WEB-INF/lib)

по-късно прекомпилирам набора от приспособления за приложения с плъгини gwt:clean, vaadin:update-widgetset и gwt-compile maven (ако не използвам maven, командата е Ctrl+6, мисля)

накрая кодът за добавяне на диаграма в компонент може да бъде като този:

package com.x.y.z;

import java.util.LinkedHashSet;
import java.util.Map;
import com.invient.vaadin.charts.InvientChartsConfig;
import com.x.y.Manager;
import com.x.y.util.ApplicationHelper;

public class SalesChat extends AbstractChart {

    private static final long serialVersionUID = -793793426045107314L;

    public SalesChat(InvientChartsConfig chartConfig) {
        super(chartConfig);
    }

    @Override
    public void build() {

        Manager manager = (Manager)ApplicationHelper.getApplicationContext().getBean("manager");
        Map<String, Integer> sales = manager.weeklySales();

        XYSeries series = new XYSeries("Sales");
        LinkedHashSet<DecimalPoint> points = new LinkedHashSet<DecimalPoint>();

        for( String string : sales.keySet() ){

            DecimalPoint point = new DecimalPoint(series, string, sales.get(string));
            point.setName( string + " " + sales.get(string).toString());
            points.add( point );
        }

        series.setSeriesPoints(points);
        addSeries(series);
        setWidth("279px");
        setHeight("240px");

    }
}

по късно...

InvientChartsConfig chartConfig = new InvientChartsConfig();
chartConfig.getTitle().setText("Sales");
chartConfig.getGeneralChartConfig().setType(SeriesType.PIE);

SalesChat chart = new SalesChat(chartConfig);
chart.build();

VerticalLayout layout = new VerticalLayout();
layout.addComponent(chart);
person Franco    schedule 18.09.2012