Skip to content

Commit 146a514

Browse files
Propagates view title/name and description to image views based upon a model view.
1 parent f52092d commit 146a514

File tree

2 files changed

+21
-3
lines changed

2 files changed

+21
-3
lines changed

structurizr-dsl/src/main/java/com/structurizr/dsl/ImageViewContentParser.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import com.structurizr.importer.diagrams.mermaid.MermaidImporter;
88
import com.structurizr.importer.diagrams.plantuml.PlantUMLImporter;
99
import com.structurizr.util.ImageUtils;
10+
import com.structurizr.util.StringUtils;
1011
import com.structurizr.util.Url;
1112
import com.structurizr.view.ImageView;
1213
import com.structurizr.view.ModelView;
@@ -56,6 +57,13 @@ void parsePlantUML(ImageViewDslContext context, File dslFile, Tokens tokens) {
5657
StructurizrPlantUMLExporter exporter = new StructurizrPlantUMLExporter();
5758
String plantuml = exporter.export((ModelView) viewWithKey).getDefinition();
5859
new PlantUMLImporter().importDiagram(context.getView(), plantuml);
60+
61+
if (!StringUtils.isNullOrEmpty(viewWithKey.getTitle())) {
62+
context.getView().setTitle(viewWithKey.getTitle());
63+
} else {
64+
context.getView().setTitle(viewWithKey.getName());
65+
}
66+
context.getView().setDescription(viewWithKey.getDescription());
5967
} else {
6068
if (Url.isUrl(source)) {
6169
RemoteContent content = readFromUrl(source);
@@ -107,6 +115,13 @@ void parseMermaid(ImageViewDslContext context, File dslFile, Tokens tokens) {
107115
MermaidDiagramExporter exporter = new MermaidDiagramExporter();
108116
String mermaid = exporter.export((ModelView) viewWithKey).getDefinition();
109117
new MermaidImporter().importDiagram(context.getView(), mermaid);
118+
119+
if (!StringUtils.isNullOrEmpty(viewWithKey.getTitle())) {
120+
context.getView().setTitle(viewWithKey.getTitle());
121+
} else {
122+
context.getView().setTitle(viewWithKey.getName());
123+
}
124+
context.getView().setDescription(viewWithKey.getDescription());
110125
} else {
111126
if (Url.isUrl(source)) {
112127
RemoteContent content = readFromUrl(source);

structurizr-dsl/src/test/java/com/structurizr/dsl/ImageViewContentParserTests.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,9 @@ void test_parsePlantUML_WithViewKey() {
5555

5656
parser = new ImageViewContentParser(true);
5757
parser.parsePlantUML(context, null, tokens("plantuml", "SystemLandscape"));
58-
assertEquals("System Landscape", imageView.getTitle());
59-
assertEquals("https://plantuml.com/plantuml/svg/ZLBBJiCm4BpxArRb32rLuH2IgE4b3kL243q01pVU9bOJRsHlr0VYtt6Qj1n0Y9LihMTjpth6KyVISbELWZMN2A7JEmp6apZTEiOAPj8ebyaQms5RYT_CSSSjkipgcZMPlYY4GmQ7jRIIoO8XWuAf1YPO43DLeBJ5h3qY2gqGF8T5ucsDGeIEjwM_1C0ICNpu1E1QPglSKcFK3PLa0pXPxkDgNxqdmmTyieyM__HZE8Ix4Yiqx1TdVNhwDD-KY_bBev8e-XV1J1lyIT3XQTjk0ADlvBdGsSgWSm6C_sgmmzDMHnZto0DPlVEeB9DIvwPjDu3CpsYx3MaX5QsroO-KZtAZgwQQQyL509EBKVTuRqOdf6YbbYRtjWwYA3bOTtuPlwQqvBMq29tDxxs10mZ3txIAOv0E4Y6cQ9J_B5y0", imageView.getContent());
58+
assertEquals("System Landscape View", imageView.getTitle());
59+
assertEquals("Description", imageView.getDescription());
60+
assertEquals("https://plantuml.com/plantuml/svg/ZLBBJiCm4BpxArPmXfQgS0X9rF0IXt8Xg3q01pVP9bOTRsHlr0VYtt6Qj1n0Y9LihMTjpth64yVISbDfmOerGkZK3eFHE4wtZh62gJIvosIDC5Eu3WTjENupnsrtw3AhQbPa-g8G3XaSrj9A9Wk630gc6fXWGSnKGQuiPkqHKQeSmHDP9DxMA4JeUAlz9G2MYE739m0tCbiLbXgJtv8c6y3fSX_N--e36JxWutsq-ASVWm7SQwpGi5-Sz-dPytoZ5_DPaoTHz2-2gJBuaw33qxRT08RVo4kfifL1vm8O_TLWXwUjZZ3gaKUoQkTHgHEj2jEs6q3cPxJTXhIKEQsLAOwKJtAZggQQgvpB0CQNm-xntenEID5ABKtXlJs9ekHWtSLL_9hIajVI8dHUl_S6da0O_gPL78Dqa0WnGPFx7_C5", imageView.getContent());
6061
}
6162

6263
@Test
@@ -95,7 +96,9 @@ void test_parseMermaid_WithViewKey() {
9596

9697
parser = new ImageViewContentParser(true);
9798
parser.parseMermaid(context, null, tokens("mermaid", "SystemLandscape"));
98-
assertEquals("https://mermaid.ink/svg/pako:eJxtkMtqwzAQRX9lmFK8cWgChYKaGNp1d-4uzkKxRraIHkaaNE1D_r12lEJfs5qBM4fLPQG2QREK7KIcenh9bjyANX5X89ESKNJybxm0sVbc6Ms0fmLSfptflJHj4mDdYH1MTA5epFeplQM1uJnQEc6yK_ldViaOYUc_3QCL0bZU5i1_rgodPM8OZLqeBWyDVUX1tLwbgeoPlcwHCXiY3z6Ck7EzfsZhEDAf3otqXQfNBxkJctRNdvzKufg_4f1lyjbYEL-unJe8whLQUXTSKBQn5J7c1Oq1PzyfPwHoMXnQ", imageView.getContent());
99+
assertEquals("System Landscape View", imageView.getTitle());
100+
assertEquals("Description", imageView.getDescription());
101+
assertEquals("https://mermaid.ink/svg/pako:eJxtkM1rwkAQxf-VYYrkEqmCUNjaQD33luLFeFizs8nifoTd1WjF_72Ja6Ffc5qB33vzeBfA2glCho3nXQvvq8oCaGX3ZTxrAkGSH3QEqbRmD_I2lR2ZcNgliVB8WAxsKizPIZKBN25FqHlHsFbUV7gd-UGRHO_4d8c8RO_29PMBwHywXAp1TMqXTDobpz2ppo0Mdk6LrHhdPg5A8YcK6oMYPM0mz2C4b5SdRtcxmHWnrNiUTsaee4KUd5s8fuWc_59wcZu8dtr5ryvlJSswBzTkDVcC2QVjS2as9l4iXq-fYuV7iw==", imageView.getContent());
99102
}
100103

101104
@Test

0 commit comments

Comments
 (0)