... | ... | @@ -30,132 +30,6 @@ Here we should describe the general workflow of our application. |
|
|
|
|
|
Here we can explain how we derived the TLA and packages from the previously explained pipeline.
|
|
|
|
|
|
## Configuration Parsing
|
|
|
|
|
|
### Configuration Files
|
|
|
The configuration files specify the printers properties and a set of formats with their format specific properties. The files are of the type '.properties' (Java Properties Format). The 'ConfigParser' component features an abstract ConfigurationParser which can be extended to support other file types.
|
|
|
|
|
|
The Java Properties Format holds properties in a tree-like structure of dot-separated namespaces. Values are assigned by a simple '='. The structure of the config files is the following:
|
|
|
|
|
|
```mermaid
|
|
|
graph TD;
|
|
|
root-->printer;
|
|
|
root-->format;
|
|
|
printer-->name;
|
|
|
printer-->...;
|
|
|
format-->A4_landscape;
|
|
|
format-->B5_portrait;
|
|
|
A4_landscape-->width;
|
|
|
A4_landscape-->height;
|
|
|
A4_landscape-->characters_per_line;
|
|
|
A4_landscape-->....;
|
|
|
B5_portrait-->.....;
|
|
|
```
|
|
|
|
|
|
##### Properties
|
|
|
|
|
|
In the following a table with all available properties is presented. All distances are measured in milimetres.
|
|
|
|
|
|
| Prefix | Property | Content | Description | Required | Default |
|
|
|
| ------ | ------ | ------ | ------ | ------ | ------ |
|
|
|
| printer. ||||
|
|
|
|| name | string | The name/model of the printer. | ✔ |
|
|
|
|| mode | enum | The modus operandi with which the printer should print. Not case-sensitive. Can be 'normalprinter' or name of concrete specialization in combination with the printers name(e.g. index_everest_d_v4_graphic_printer). | ✔ | normalprinter
|
|
|
|| brailletable | relative filename | A file containing a brailletable mapping for the exporter. | ✔ | eurobraille.properties
|
|
|
|| floatingDot.support | true/false | The printers capability to print floating dots. | ✔ | false
|
|
|
|| floatingDot.resolution | non-negative double | The minimum distance between two dot centres. | ✔ if floating dot is supported |
|
|
|
|| constraint.[top,left] | non-negative double | The printers base indentation of printing area.| ✔ | 0
|
|
|
|| constraint.[width,height] | non-negative double | The printers hardware limitation of printing area.| |
|
|
|
|| raster.constraint.[top,left] | non-negative double | Further raster constraints: border from top or left raster edge. Difference to 'printer.constraint': measured in full cells instead of mm.| ✔ | 0
|
|
|
|| raster.constraint.[width,height] | non-negative double | Further raster constraints: fixed char per line limit or line per page limit. Difference to 'printer.constraint': measured in full cells instead of mm.| |
|
|
|
|| raster.type | enum | The braille raster. Can be any of the following: '6-dot', '8-dot' | ✔ | 6-dot
|
|
|
|| raster.cellDistance.horizontal | non-negative double | Horizontal distance between two consecutive braille characters. | ✔ | 3.6
|
|
|
|| raster.cellDistance.vertical | non-negative double | Vertical distance between two braille lines. | ✔ | 4.8
|
|
|
|| raster.dotDistance.horizontal | non-negative double | Horizontal distance between two dots inside a braille cell. | ✔ | 2.5
|
|
|
|| raster.dotDistance.vertical | non-negative double | Vertical distance between two dots inside a braille cell. | ✔ | 2.5
|
|
|
|| raster.dotDiameter | non-negative double | Diameter of a single dot. | ✔ | 1.5
|
|
|
|| ... | ... | ... | ... | ... |
|
|
|
| format.[name]. ||||||
|
|
|
|| page.width | non-negative integer | Horizontal page size. | ✔ | 210
|
|
|
|| page.height | non-negative integer | Vertical page size. | ✔ | 297
|
|
|
|| margin.[top,left,bottom,right] | non-negative integer | Desired minimum margin from respective page border. (Can have greater size in real output, because it will be a multiple of the cell size.) | ✔ | 0; left = 5
|
|
|
|| ... | ... | ... | ... | ... |
|
|
|
| representation.[name]. ||||||
|
|
|
|| floatingDot.minBarWidth | non-negative double | The desired minimum bar width for bar charts. | ✔ | 20
|
|
|
|| floatingDot.maxBarWidth | non-negative double | The desired maximum bar width for bar charts. | ✔ | 30
|
|
|
|| floatingDot.minBarDist | non-negative double | The desired minimum distance between bars for bar charts. | ✔ | 10
|
|
|
|| floatingDot.secondAxis | true/false | Decides wether a second y-axis should be plotted on the right side for scatter and line plots. | ✔ | true
|
|
|
|| floatingDot.frames | true/false | Decides wether frames should be drawn around data points in scatter and line plots. One frame for each data series. | ✔ | true
|
|
|
|| floatingDot.derivation | true/false | Decides wether numbered axes should be named with numbers or with letter derivations. | ✔ | true
|
|
|
|| floatingDot.grid | true/false | Decides wether a grid should be drawn. | ✔ | true
|
|
|
|| floatingDot.dotFrame | true/false | Decides wether only dot frames should be used for all data series for framed line plots. If floatingDot.frames is true, this attribute takes higher priority. | ✔ | false
|
|
|
|| floatingDot.barAccumulation | true/false | Decides wether bar charts should be drawn as stacked bar charts (true) or grouped bar charts (false). | ✔ | false
|
|
|
|| ... | ... | ... | ... | ... |
|
|
|
|
|
|
## Input Data Parsing
|
|
|
|
|
|
We aim to support the same input data in CSV files as [SVG-Plott](https://gitlab.hrz.tu-chemnitz.de/s9716248--tu-dresden.de/SVG-Plott) does.
|
|
|
This includes unique csv patterns for:
|
|
|
* Bar Charts
|
|
|
* Categorical Bar Charts
|
|
|
* Line/Scatter Plots
|
|
|
|
|
|
At the moment of writing, the following patterns are supported:
|
|
|
|
|
|
### Simple Bar Charts (no categories):
|
|
|
|
|
|
#### Vertical
|
|
|
`CsvParser.parse(CsvType.X_ALIGNED, CsvOrientation.VERTICAL) -> PointListContainer<PointList>`
|
|
|
|
|
|
|Column 1|Column 2|
|
|
|
|---|---|
|
|
|
|${Name_of_sample#1}|${Value_for_sample#1}|
|
|
|
|${Name_of_sample#2}|${Value_for_sample#2}|
|
|
|
|...|...|
|
|
|
|${Name_of_sample#n}|${Value_for_sample#n}|
|
|
|
|
|
|
[Example File](https://gitlab.hrz.tu-chemnitz.de/s9444737--tu-dresden.de/brailleplot/blob/master/src/main/resources/examples/csv/0_bar_chart.csv)
|
|
|
|
|
|
|
|
|
### Categorical Bar Charts
|
|
|
|
|
|
#### Vertical
|
|
|
`CsvParser.parse(CsvType.X_ALIGNED_CATEGORIES, CsvOrientation.VERTICAL) -> CategoricalPointListContainer<PointList>`
|
|
|
|
|
|
|Column 1|Column 2|Column 3|...|Column n|
|
|
|
|---|---|---|---|---|
|
|
|
||${Name_of_category#1}|${Name_of_category#2}|...|${Name_of_category#n}
|
|
|
|${Name_of_dataset#1}|${Value#1_for_dataset#1_in_category#1}|${Value#2_for_dataset#1_in_category#2}|...|${Value#n_for_dataset#1_in_category#n}|
|
|
|
|${Name_of_dataset#2}|${Value#1_for_dataset#2_in_category#1}|${Value#2_for_dataset#2_in_category#2}|...|${Value#n_for_dataset#2_in_category#n}|
|
|
|
|...|...|...|...|...|
|
|
|
|${Name_of_dataset#n}|${Value#1_for_dataset#n_in_category#1}|${Value#2_for_dataset#n_in_category#2}|...|${Value#n_for_dataset#n_in_category#n}|
|
|
|
|
|
|
[Example File](https://gitlab.hrz.tu-chemnitz.de/s9444737--tu-dresden.de/brailleplot/blob/master/src/main/resources/examples/csv/0_bar_chart_categorical_vertical.csv)
|
|
|
|
|
|
### Scatter and Line Plots
|
|
|
|
|
|
#### Horizontal
|
|
|
`CsvParser.parse(CsvType.DOTS, CsvOrientation.HORIZONTAL) -> PointListContainer<PointList>`
|
|
|
|
|
|
|Column 1|Column 2|Column 3|...|Column n|
|
|
|
|---|---|---|---|---|
|
|
|
|${Name_of_dataset#1}|${XValue#1_for_dataset#1}|${XValue#2_for_dataset#1}|...|${XValue#n_for_dataset#1}
|
|
|
||${YValue#1_for_dataset#1}|${YValue#2_for_dataset#1}|...|${YValue#n_for_dataset#1}
|
|
|
|${Name_of_dataset#2}|${XValue#1_for_dataset#2}|${XValue#2_for_dataset#2}|...|${XValue#n_for_dataset#2}
|
|
|
||${YValue#1_for_dataset#2}|${YValue#2_for_dataset#2}|...|${YValue#n_for_dataset#2}
|
|
|
|...|...|...|...|...|
|
|
|
|${Name_of_dataset#n}|${XValue#1_for_dataset#n}|${XValue#2_for_dataset#n}|...|${XValue#n_for_dataset#n}
|
|
|
||${YValue#1_for_dataset#n}|${YValue#2_for_dataset#n}|...|${YValue#n_for_dataset#n}
|
|
|
|
|
|
|
|
|
[Example File](https://gitlab.hrz.tu-chemnitz.de/s9444737--tu-dresden.de/brailleplot/blob/master/src/main/resources/examples/csv/1_scatter_plot.csv)
|
|
|
|
|
|
### Global rules for all CSV patterns
|
|
|
* Each column has to be separated by the `,` character
|
|
|
* Values need to be of numerical type
|
|
|
* Fractional rational numbers (e.g. a float), to be escaped by placing the `"` character at the beginning and and on the end of that number (e.g. `"3,5"`)
|
|
|
|
|
|
|
|
|
## Rendering
|
|
|
|
|
|
Would be nice to explain this thing a bit here... |
|
|
\ No newline at end of file |