Как мне создать карту радара в BIRT?(образец того, что я сделал в посте) - PullRequest
0 голосов
/ 02 сентября 2011

Я пытаюсь программно создать радиолокационную диаграмму в моем приложении с BIRT.Кажется, что BIRT не хватает документации, поэтому я борюсь с этим (мне интересно, как это может быть так популярно с таким небольшим количеством документации).

Так что моя проблема в том, что я не знаю API и последовательностьдействия, которые я должен вызвать, чтобы иметь полностью интегрированную диаграмму.Все, что я хочу сделать, это получить некоторые данные из БД и отобразить их в РАДАРНОЙ ГРАФИКЕ (например, тезисы: как нормализовать статистику для радиолокационной карты )

Итак, на данный момент я создал сервлет, подобный этому:

public class ChartRenderingServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
    private ChartEngine chartEngine = null;
    private Chart chart = null;
    private IDeviceRenderer iDeviceRenderer = null;
    private IDisplayServer iDisplayServer = null;
    private IGenerator iGenerator = null;
    private String fontName = "Arial";
    private float size = 10;
    private boolean bBold = false;
    private boolean bItalic = false;
    private ColorDefinition cd = ColorDefinitionImpl.BLACK();

    /**
     * @see HttpServlet#HttpServlet()
     */
    public ChartRenderingServlet() {
        super();
        // Starting platform
        PlatformConfig platformConfig = new PlatformConfig();
        platformConfig.setProperty("STANDALONE", true);

        // Creating chart Engine
        chartEngine = ChartEngine.instance(platformConfig);
        iGenerator = chartEngine.getGenerator();

        try {
            iDeviceRenderer = chartEngine.getRenderer("dv.PNG");
            iDisplayServer = iDeviceRenderer.getDisplayServer();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
     *      response)
     */
    protected void doGet(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        RunTimeContext context;
        chart = ChartWithoutAxesImpl.create();
        chart.setType("RADAR");

        try {
            // PREPARE PHASE
            context = Generator.instance().prepare(chart, null, null, ULocale.getDefault());

            // BIND PHASE
            //Long id = Long.valueOf(request.getParameter("id"));
            NumberDataSet orthoValues = NumberDataSetImpl.create(new double[] {25, 35, 15, 5, 20});
            RadarSeries radarSeries = RadarSeriesImpl.create();
            radarSeries.setDataSet(orthoValues);

            // RENDER PHASE
            GeneratedChartState generatedChartState = iGenerator.build(iDisplayServer, chart, null, null, context);
            iGenerator.render(iDeviceRenderer, generatedChartState);
        } catch (ChartException e) {
            e.printStackTrace();
        }

    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
     *      response)
     */
    protected void doPost(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
    }

}

Любая помощь действительно будет оценена, потому что я даже не знаю, правильно ли это или нет.

Спасибомного,

1 Ответ

0 голосов
/ 22 сентября 2011

Не берите в голову,

при разработке приложения, основанного на отчетах BIRT, попробуйте использовать более высокий уровень абстракции при кодировании.Я имею в виду, что нет необходимости кодировать против низкоуровневого API: просто возьмите файл rptdesign и используйте API Birt Runtime для непосредственного кодирования приложения.Если я могу что-то предложить, я бы сказал, что используйте основной доступный API, который представляет собой API-интерфейс Report Engine, это ускорит вашу разработку.

И самое интересное в том, что у вас есть много документации, доступной с тех порэто самый распространенный способ разработки приложения на основе BIRT.

tchusss ...

...