Динамическое создание и управление StockEvent

Коллеги, добрый день!
Возникла необходимость программно создавать и управлять метками StockEvent на графике.
В описании: https://demo.cuba-platform.com/sampler/#main/23/sample?id=stockchart-stock-events - показан пример задания меток при помощи XML.
При попытке создать метку StockEvent программно:

StockEvent stockEvent = new StockEvent();
stockEvent.

IJ не дает доступа к свойствам и методам stockEvent.

Возможно есть какой-то другой способ (или тип диаграммы) на которой можно построить графики (xy) и отметить некоторые точки различными метками?

Добрый день.

Возможно вы заимпортили неправильный StockEvent, Вам нужен: com.haulmont.charts.gui.amcharts.model.StockEvent. Программно StockEvent добавляется в DataSet:

StockEvent stockEvent = new StockEvent();
...
stockChart.getDataSet("dataSet").addStockEvents(stockEvent);

Глеб

1 симпатия

Глеб!
Спасибо большое. Разобрались.

Коллеги!
Получился вот такой stockChart:
%D1%84%D0%BE%D1%80%D1%83%D0%BC%20%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D0%BA%D0%B8
Возникла проблема с обработкой клика по узлу графика или по сегменту столбцовой диаграммы.
Из доступных click-событий, на клик реагирует только событие StockChartClick. Но это немного не то…

@Subscribe("detachmentDynamicsChart")
    private void onDetachmentDynamicsChartStockGraphItemClick(StockChart.StockGraphItemClickEvent event) {
        System.out.println(">>>>>StockGraphItemClick - 1");
    }

    @Subscribe("detachmentDynamicsChart")
    private void onDetachmentDynamicsChartStockChartClick(StockChart.StockChartClickEvent event) {
        System.out.println(">>>>>StockChartClick - 2");
    }

    @Subscribe("detachmentDynamicsChart")
    private void onDetachmentDynamicsChartStockGraphClick(StockChart.StockGraphClickEvent event) {
        System.out.println(">>>>>StockGraphClick - 3");
    }

    @Subscribe("detachmentDynamicsChart")
    private void onDetachmentDynamicsChartStockEventClick(StockChart.StockEventClickEvent event) {
        System.out.println(">>>>>StockEventClick - 4");
    }

Подскажите, пожалуйста, что мы не так делаем :slight_smile: нужно просто выполнить некоторый код по клику на сегмент одного из графиков. Спасибо!

Спасибо, что сообщили о проблеме, Я завел тикет.

Глеб

1 симпатия

Вам, спасибо, Глеб @gorelov !
Когда можно ждать версию платформы, с решенной проблемой?

Предположительно в конце этой или следующей недели. Но точных сроков обещать не могу.

1 симпатия

@gorelov!
Спасибо, обновили платформу - теперь событие обрабатывается.
Но возникла следующая проблема: dataItem=null для события GraphItemClick

@Subscribe("detachmentDynamicsChart")
private void onDetachmentDynamicsChartStockGraphItemClick(StockChart.StockGraphItemClickEvent event) {
        sliceCategoryId = (int) event.getDataItem().getValue("categoryId"); // null pointer exeption
        sliceCategoryName = (String) event.getDataItem().getValue("categoryName");
        sliceViewType = null;
        loadSliceData();  // данные о командировках
}

Здравствуйте!

Удалось воспроизвести проблему, завёл задачу: cuba-platform/chart#86.

Роман, добрый день.

Аналогичное поведение наблюдаю для Chart.LegendItemClickEvent.

Да, проблема воспроизводится для:

  • Chart.LegendItemClickEvent
  • Chart.LegendMarkerClickEvent

Завёл задачу cuba-platform/chart#87, будем разбираться.

1 симпатия

Роман, добрый день! @pinyazhin
В описании задачи вижу, что проблема решена в версиях: 7.0.12, 7.1.2, 7.2.0.
Шутка в том, что наш проект сейчас живет на версии платформы 7.1.1 :slight_smile: Откатывать версию мы не хотим, а версии 7.1.2 и 7.2.0 не доступна для выбора в свойствах проекта.
Подскажите, пожалуйста, как нам быть?

Добрый день.

Все три версии еще не выпущены.

ОК, Глеб, спасибо! Когда ожидаются 7.1.2 и 7.2.0?

К сожалению, такой информации у меня нет.