-
Notifications
You must be signed in to change notification settings - Fork 18
Migration guide v4.0.0
NetworkAreaDiagram and SingleLineDiagram APIs have been modified to:
- Bring more consistency between both APIs, especially now they share the same github repository;
- Offer a better user experience for those who want to play around and customize their diagrams.
SldParameters and NadParameters are the new classes to use to customize diagrams. Those two classes contain default parameters for each of their components. Users only need to set the components they want to customize.
Example for single-line diagrams:
SldParameters sldParameters = new SldParameters()
.setLayoutParameters(projectCustomizedLayoutParameters)
.setComponentLibrary(projectCustomizedComponentLibrary);
SingleLineDiagram.draw(myNetwork, "myNetwork", pathToSvgFile, sldParameters);
Example for network-area diagrams:
NadParameters nadParameters = new NadParameters()
.setSvgParameters(projectCustomizedSvgParameters)
.setLabelProviderFactory(ProjectCustomizedLabelProvider::new)
.setIdProviderFactory(ProjectCustomizedIntIdProvider::new);
NetworkAreaDiagram.draw(myNetwork, pathToSvgFile, nadParameters, VoltageLevelFilter.NO_FILTER);
If no customization is needed, plain functions are still available.
Examples:
NetworkAreaDiagram.draw(network, pathToSvgFile);
SingleLineDiagram.draw(network, "myNetwork", pathToSvgFile);
Parameters used for layout purposes and parameters used for svg construction purposes were mixed into a single LayoutParameters class
Some parameters from the LayoutParameters class have been migrated to a new SvgParameters class:
String prefixIdString undefinedValueSymbolString languageTagint voltageValuePrecisionint powerValuePrecisionint angleValuePrecisionint currentValuePrecisiondouble busInfoMargindouble feederInfosIntraMargindouble feederInfosOuterMarginboolean feederInfoSymmetryboolean addNodesInfosboolean useNamedouble angleLabelShiftboolean labelCenteredboolean labelDiagonalboolean tooltipEnabledboolean svgWidthAndHeightAddedSvgParameters.CssLocation cssLocationboolean avoidSVGComponentsDuplicationString diagramNameboolean drawStraightWiresboolean showGridboolean showInternalNodesboolean displayCurrentFeederInfo
NB: the SvgParameters and LayoutParameters distinction was already there for network-area diagrams. Now both diagrams have differenciated LayoutParameters and SvgParameters classes.
NetworkAreaDiagram nad = new NetworkAreaDiagram(...);
nad.draw(...);
NetworkAreaDiagram.draw(...);
NB: the NetworkAreaDiagram class is now similar to the SingleLineDiagram class which has a SingleLineDiagram.draw(...) static function.
Before
.sld-vsc {stroke: var(--sld-vl-color, blue); font-size: 7.43px; fill: none}After
.sld-vsc {stroke: var(--sld-vl-color, blue); font-size: 7.43px; fill: none}
.sld-lcc {stroke: var(--sld-vl-color, blue); font-size: 7.43px; fill: none}Before
.sld-lcc {fill: var(--sld-vl-color, blue)}After
.sld-vsc {fill: var(--sld-vl-color, blue)}
.sld-lcc {fill: var(--sld-vl-color, blue)}powsybl-diagram now only supports Java 17 and higher. Please check that your installed SDK is still compatible. If you are using Ubuntu 20.04 LTS and the preinstalled Maven version, you will need to upgrade your Maven version too at least up to a version 3.8.x.