[BIRT 2.3.2 (StandAlone)] Проблема с «прыжками»? - PullRequest
1 голос
/ 09 июня 2009

Вот факт: я сделал крошечное приложение, которое состоит из таблицы, относящейся к гистограмме (чуть ниже ... конечно), когда я изменяю значения таблицы, она автоматически изменяет мою диаграмму (как в Excel, но менее навороченная) ) ...

В любом случае, все работает нормально ... НО, когда я хочу сделать свою диаграмму интерактивной, чтобы показать подсказки (например), я сообщаю, естественно, мой IDeviceRenderer с помощью следующей команды idr.setProperty (IDeviceRenderer.UPDATE_NOTIFIER, this); но это приводит к ошибке, когда (намного позже) мой код приходит к gr.render (idr, gr.build (idr.getDisplayServer (), this.chart, bo, vroum, null)); (Который никогда не подводил раньше) ...

Я чувствую себя потерянным ...

пс: Ошибка, которую я получаю, состоит в том, что я не получаю баров на свой график и получаю следующее сообщение об ошибке: org.eclipse.birt.chart.exception.ChartException в org.eclipse.birt.chart.factory.Generator.render (Generator.java:1373) at clickable.chart.ClickableProto.paintControl (ClickableProto.java:520) в org.eclipse.swt.widgets.TypedListener.handleEvent (TypedListener.java:217) в org.eclipse.swt.widgets.EventTable.sendEvent (EventTable.java:84) в org.eclipse.swt.widgets.Widget.sendEvent (Widget.java:1003) в org.eclipse.swt.widgets.Widget.sendEvent (Widget.java:1027) в org.eclipse.swt.widgets.Widget.sendEvent (Widget.java:1012) на org.eclipse.swt.widgets.Composite.WM_PAINT (Composite.java:1424) в org.eclipse.swt.widgets.Control.windowProc (Control.java:3842) в org.eclipse.swt.widgets.Canvas.windowProc (Canvas.java:337) в org.eclipse.swt.widgets.Display.windowProc (Display.java:4541) в org.eclipse.swt.internal.win32.OS.DispatchMessageW (собственный метод) в org.eclipse.swt.internal.win32.OS.DispatchMessage (OS.java:2371) в org.eclipse.swt.widgets.Display.readAndDispatch (Display.java:3420) at clickable.chart.ClickableProto.main (ClickableProto.java:151) Вызывается: java.lang.NullPointerException в org.eclipse.birt.chart.render.InteractiveRenderer.isColoredByCategories (InteractiveRenderer.java:197) на org.eclipse.birt.chart.render.InteractiveRenderer.getSource (InteractiveRenderer.java:161) в org.eclipse.birt.chart.render.InteractiveRenderer.modifyEvent (InteractiveRenderer.java:116) в org.eclipse.birt.chart.device.swt.SwtRendererImpl.fillPolygon (SwtRendererImpl.java:502) в org.eclipse.birt.chart.event.PolygonRenderEvent.fill (PolygonRenderEvent.java:156) в org.eclipse.birt.chart.render.DeferredCache.flushPlanes (DeferredCache.java:499) в org.eclipse.birt.chart.render.DeferredCache.flushOptions (DeferredCache.java:271) в org.eclipse.birt.chart.render.DeferredCacheManager.flushOptions (DeferredCacheManager.java:165) в org.eclipse.birt.chart.render.AxesRenderer.flushClipping (AxesRenderer.java:3416) в org.eclipse.birt.chart.render.AxesRenderer.restoreClipping (AxesRenderer.java:3401) на org.eclipse.birt.chart.render.Bar.renderSeries (Bar.java:1533) в org.eclipse.birt.chart.render.AxesRenderer.renderPlot (AxesRenderer.java:2181) в org.eclipse.birt.chart.render.AxesRenderer.render (AxesRenderer.java:314) на org.eclipse.birt.chart.factory.Generator.render (Generator.java:1368) ... еще 14

Я открыт для любой идеи!

1 Ответ

1 голос
/ 11 июня 2009

Наконец я справился сам ...

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

1 Реализуйте только то, что нужно переопределить

Я лично забыл переопределить

getDesignTimeModel()

и

getRunTimeModel()

идет с реализацией ICallBackNotifier ...

2 Не вкладывайте вашу диаграмму (или будьте готовы вкладывать большинство ваших методов тоже)

У меня была диаграмма не непосредственно на моей оболочке, а вложенная в кучу композитных виджетов, холста и тому подобного ... Поэтому мой холст скрывал мою оболочку, которая была единственной, способной реагировать так, как я хотел, на мою мышь контроллер. (Забавный факт: я понял все это, когда я (без причины) попытался перетащить небольшую часть моей оболочки, которая не перекрывалась диаграммой, и бросить ее на мои бары ... Там всплыла подсказка ... ^^ Забавный способ понять, как все работает: p)

3 Не будь мной ...

Трудно и мучительно для едва приемлемого результата; p

Надеюсь, эта помощь, не стесняйтесь, напишите мне, если вы столкнулись с той же проблемой, я буду рад помочь столько, сколько смогу ^^

...