Вопрос

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

В любом случае все работает нормально...Но когда я хочу сделать свою диаграмму интерактивной, чтобы показать подсказку (например), я информирую естественному Idevicerenderer Whit следующую команду idr.setproperty (idevicerenderer.update_notifier, это);Но это приносит ошибку, когда (намного позже) мой код приходит к Gr.Render (IDR, Gr.Build (IDR.GetDisplayServer (), this.chart, bo, vroum, null));(Который еще ни разу не подводил)...

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

пс:Ошибка, которую я получаю, заключается в том, что на моем графике нет столбцов, и я получаю следующее сообщение об ошибке:org.eclipse.birt.chart.exception.chartexception at org.eclipse.birt.chart.factory.generator.render (generator.java:1373) на Clickable.Chart.ClickableProto.paintControl (ClicableProto.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) at 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) at at at at att at. 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 (show.java:3420) на clickable.chart.clickableproto.main (clickableproto.java:151) вызвано:java.lang.nullpointerexception at org.eclipse.birt.chart.render.interactiverenderer.iscoloredbycategores (Interactiverenderer.java:197) на org.eclipse.birt.chart.render.InterActiverenderer.getSource (Interactiverender.Java.161). eclipse.birt.chart.render.interactiverenderer.modifyevent (Interactiverenderer.java:116) на org.eclipse.birt.chart.device.swt.swtrendererimpl.fillpolygon (swtrendererimpl.java:502) в org.clipse.chart event.polygonrenderevent.fill (polygonrenderevent.java:156) на org.eclipse.birt.chart.render.deferredcache.flushplanes (deferredcache.java:499) на org.clipse.birt.chart.render.defercread.dfrehptions.flushoptions.flushoptions.flushoptions.flushoptions. Java: 271) на org.eclipse.birt.chart.render.deferredcachemanager.flushoptions (deferredcachemanager.java:165) на org.eclipse.birt.chart.render.axrenderer.flushclisping (axesrenderer.java:3416) atg.ecl .birt.chart.render.axesrenderer.restoreclisping (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.axesrender ) ...еще 14

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

Это было полезно?

Решение

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

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

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

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

getDesignTimeModel()

и

getRunTimeModel()

поставляется с реализацией ICallBackNotifier...

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

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

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

Это слишком много труда и боли ради едва приемлемого результата ;p

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top