1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/zaoying-EChartsAnnotation

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Java аннотационный фреймворк для ECharts EChartsAnnotation

Использует native Java аннотации для представления класса Option ECharts, предоставляя функцию преобразования аннотаций в JSON.

Принцип работы

Как это работает 1 Внутри используются аннотации для пометки биновых классов
2 Аннотация-процессор преобразует в дерево JSON
3 Используется сериализация JSON пакета (например, fastjson/gson) для вывода на фронтенд-страницу

Аннотации

Создано на основе ECharts 3.0
Опция определение
Общее количество более 3700 аннотаций! Здесь сгенерированные аннотации могут использоваться только для помечания полей класса Bean

На основе различных типов атрибута Type листовых узлов JSON дерева, более 3700 аннотаций разделены на шесть различных типов:Тип JS Тип Java По умолчанию Конец файла Примечание
boolean boolean false Boolean Булевый тип
Цвет int 0 Hex Web цвета отображаются как целое число Java, поскольку они обычно представлены шестнадцатеричной системой, конец файла — Hex
Число Number 0 Number Абстрактный класс Number является родителем основных типов данных int и double, все преобразуются в double
Строка String "" String Тип строки
Массив List Нет Array Все массивы преобразуются в generics List
Функция Object Нет Function Поскольку Java не поддерживает тип функции, требуется реализовать метод toJSONString интерфейса JSONAware для вывода строки функции
* Object Нет All См. Тип Function По количеству параметров аннотации можно разделить на два типа:
Маркерные аннотации

Маркерные аннотации не имеют параметров. Если помеченный элемент равен null или имеет значение по умолчанию, процессор аннотаций ничего не выведет.

Аннотации с одним значением

Аннотация с одним значением имеет один параметр. Тип этого параметра связан с последним словом имени аннотации. Из-за того что многие листовые узлы могут иметь несколько типов, один листовой узел может создать несколько аннотаций, но процессор аннотаций будет выводить эти аннотации как одну аннотацию.Если параметр аннотации с одним значением не пустой, а помеченный элемент не равен null и не имеет значения по умолчанию, процессор аннотаций будет выводить значение аннотированного элемента.## Обработчик аннотаций AnnotationProcessor

Уникальные аннотации для обработчика аннотаций:

SingleChart и DuplexChart используются для маркировки Java-классов, которые должны быть преобразованы в JSON. Разница между этими двумя аннотациями заключается в том, как они обрабатывают аннотации внутри series, dataZoom и visualMap. Первая аннотация объединяет повторяющиеся аннотации; вторая использует три аннотации (AddSeries, AddDataZoom и AddVisualMap) для извлечения аннотаций series, dataZoom и visualMap из файла, помеченного SingleChart, и добавляет их в текущий файл, помеченный DuplexChart.

SingleChart

Параметр exportTo по умолчанию пустой. Если он отличается от значения по умолчанию, то "exportTo.json" записывается на диск. Параметр extendsFrom по умолчанию пустой. Если он отличается от значения по умолчанию, то он наследуется от "extendsFrom.json".

DuplexChart

Параметр exportTo по умолчанию пустой. Если он отличается от значения по умолчанию, то "exportTo.json" записывается на диск. Параметр extendsFrom по умолчанию пустой. Если он отличается от значения по умолчанию, то он наследуется от "extendsFrom.json".

AddSeries

Эта аннотация используется только для поля Field аннотации DuplexChart. Если поле не равно null и его исходный файл был помечен аннотацией SingleChart, то аннотации внутри series будут извлечены и добавлены в DuplexChart.###### AddDataZoom Эта аннотация используется только для поля field аннотации DuplexChart. Если поле не равно null и его исходный файл был помечен аннотацией SingleChart, то аннотации внутри dataZoom будут извлечены и добавлены в DuplexChart.###### AddVisualMap Эта аннотация используется только для поля Field аннотации DuplexChart. Если поле не равно null и его исходный файл был помечен аннотацией SingleChart, то аннотации внутри visualMap будут извлечены и добавлены в DuplexChart.

Как начать использование

phraseSingleChart и phraseDuplexChart были объединены в parseChart, поэтому теперь нет необходимости различать их. 1 Добавьте EChartsAnnotation в проект maven

<dependency>
    <groupId>cn.edu.gdut.zaoying</groupId>
    <artifactId>EChartsAnnotation</artifactId>
    <version>1.0.2</version>
    <type>pom</type>
</dependency>

gradle

compile('cn.edu.gdut.zaoying:EChartsAnnotation:1.0.2')

jar
Скачать Jar пакет
Добавление LineChart (диаграммы линий)

@SingleChart(экспортироватьК = "templates/lineChart.json")
public class LineChart {
    @NameString
    String name;
    @DataArray
    double[] data;
    @cn.edu.gdut.zaoying.Option.xAxis.NameString("горизонтальная ось")
    String xAxisName;
    @TypeString("category")
    String type;
    @cn.edu.gdut.zaoying.Option.xAxis.DataArray
    int[] xAxisData = new int[]{1, 2, 3, 4};
    @cn.edu.gdut.zaoying.Option.yAxis.NameString("вертикальная ось")
    String yAxisName;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public double[] getData() {
        return data;
    }

    public void setData(double[] data) {
        this.data = data;
    }
}
```}

Пример ранее использовался с отсутствием xAxis и yAxis, что делает его неработоспособным в соответствии с требованиями ECharts.
3 Вызов графического процессора

public class EChartsTest {
    public static void main(String[] args) {
        LineChart lineChart = new LineChart();
        lineChart.name = "линейный график один";
        lineChart.data = new double[]{1, 2, 3, 4};
        Object json = EChartsAnnotationProcessor.parseChart(lineChart);
        System.out.print(JSON.toJSONString(json));
    }
}

4 Создание более сложной комбинированной диаграммы

Создание столбчатой диаграммы
import cn.edu.gdut.zaoying.Option.series.bar.DataArray;
import cn.edu.gdut.zaoying.Option.series.bar.NameString;
import cn.edu.gdut.zaoying.SingleChart;
``````java
@SingleChart
public class BarChart {
    @NameString
    String name;
    @DataArray
    double[] data;
}

######CombinedChart комбинированная диаграмма

@DuplexChart
public class CombinedChart {
    @TextString
    String title;
    @BackgroundColorHex(value = 0xfff)
    int backgroundColor;
    @AddSeries
    LineChart lineChart;
    @AddSeries
    LineChart lineChart2;
    @AddSeries
    BarChart barChart;
}
``````markdown
    public void объединенныйГрафик(String заголовок) {
        this.title = заголовок;
        линейныйГрафик = new LineChart();
        линейныйГрафик.name = "Линейный график";
        линейныйГрафик.data = new double[]{1, 2, 3, 4};
        линейныйГрафик2 = new LineChart();
        линейныйГрафик2.name = "Линейный график 2";
        линейныйГрафик2.data = new double[]{3, 6, 8, 9};
        столбчатыйГрафик = new BarChart();
        столбчатыйГрафик.name = "Столбчатый график";
        столбчатыйГрафик.data = new double[]{5, 6, 7, 8};
    }
}

5 Вызов графического процессора

public class TestECharts {
    public static void main(String[] args) {
        Object json = EChartsAnnotationProcessor.parseChart(new CombinedChart("Объединённый график"));
        System.out.println(JSON.stringToJSON(json));
    }
}
``````markdown
`6` Использование наследования
##### Напишите view.json
```javascript
{
  "title": {"text": "Объединенный график"},
  "backgroundColor": "#fff"
}
Измените CombinedChart.java
@ДвойнойГрафик(наследуетсяОт = "view.json")
публичный клас ОбъединённыйГрафик {
    @ДобавитьСерию
    ЛинейныйГрафик линияГрафик;
    @ДобавитьСерию
    ЛинейныйГрафик2 линияГрафик2;
    @ДобавитьСерию
    СтолбчатыйГрафик столбчатыйГрафик;
}
public CombinedChart(String title) {
//        this.title = title; // Используйте значение, предоставленное в view.json
    lineChart = new LineChart();
    lineChart.setName("Линейный график");
    lineChart.setData(new double[]{1, 2, 3, 4});
    line2Chart = new Line2Chart();
    line2Chart.setName("Линейный график 2");
    line2Chart.setData(new double[]{1, 2, 3, 4});
    barChart = new BarChart();
    barChart.setName("Столбчатый график");
    barChart.setData(new double[]{5, 6, 7, 8});
}
Вызов процессора графиков
public class EChartsTest {
    public static void main(String[] args) {
        Object json = EChartsAnnotationProcessor.parseChart(new CombinedChart("Комбинированный график"));
        System.out.print(JSON.toJSONString(json));
    }
}

7 Экспорт файла JSON
Экспортировать файл JSON для использования другими графиками

@DuplexChart(exportTo = "templates/view.json") // Вызов процессора графиков для парсинга и экспорта файла JSON
@SingleChart(exportTo = "templates/view.json") // Недопустимо использовать вместе с аннотацией DuplexChart

8 Добавление функции

import com.alibaba.fastjson.JSONAware;
public class Function implements JSONAware { // Реализация интерфейса JSONAware
    String method;
    String arguments;
    String body;

    public Function(String method, String arguments, String body) {
    this.method = method;
    this.arguments = arguments;
    this.body = body;
}
@Override
public String toJSONString() {
    return "функция " + method + "(" + arguments + "){" + "\n" + body + "\n" + "}";
}

}

```java
import com.alibaba.fastjson.JSON;

9 Тестирование```java public class ECharts { public static void main(String[] args) { Function function = new Function("toString", "str", "alert();"); System.out.println(JSON.toJSONString(function)); } }


## Заключение
Проект завершен, дальнейшие изменения будут минимальными и ограничены исправлением ошибок. Интеграция проекта безопасна!
`Taglib` проект
  [Lift](https://github.com/zaoying/EChartsTaglib "EChartsTaglib")

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Фреймворк Java-аннотаций ECharts: используется для отображения класса Option ECharts с помощью нативных аннотаций Java, предоставляет функцию преобразования Annotation в JSON. Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/zaoying-EChartsAnnotation.git
git@api.gitlife.ru:oschina-mirror/zaoying-EChartsAnnotation.git
oschina-mirror
zaoying-EChartsAnnotation
zaoying-EChartsAnnotation
master