Skip to content

Commit 4d3a40e

Browse files
author
David Baum
committed
refactor color handling in generator2
1 parent 69e0f59 commit 4d3a40e

14 files changed

Lines changed: 215 additions & 376 deletions

File tree

generator2/org.getaviz.generator/src/main/java/org/getaviz/generator/SettingsConfiguration.java

Lines changed: 49 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,7 @@
44
import java.io.UnsupportedEncodingException;
55
import java.net.URLDecoder;
66
import java.util.Enumeration;
7-
87
import javax.servlet.http.HttpServletRequest;
9-
10-
import java.awt.Color;
118
import org.apache.commons.configuration2.PropertiesConfiguration;
129
import org.apache.commons.configuration2.builder.fluent.Configurations;
1310
import org.apache.commons.configuration2.ex.ConfigurationException;
@@ -16,6 +13,7 @@
1613
import org.getaviz.generator.SettingsConfiguration.Bricks.Layout;
1714
import org.getaviz.generator.SettingsConfiguration.Original.BuildingMetric;
1815
import org.getaviz.generator.SettingsConfiguration.Panels.SeparatorModes;
16+
import org.getaviz.generator.output.OutputColor;
1917

2018
public class SettingsConfiguration {
2119
private static PropertiesConfiguration config;
@@ -317,75 +315,62 @@ public double getBuildingVerticalMargin() {
317315
return config.getDouble("city.building.vertical_margin", 1.0);
318316
}
319317

320-
public String getPackageColorHex() {
321-
return config.getString("city.package.color_start", "#969696");
322-
}
323-
324-
public Color getPackageColorStart() {
325-
return getColor(config.getString("city.package.color_start", "#969696"));
326-
}
327-
328-
public Color getPackageColorEnd() {
329-
return getColor(config.getString("city.package.color_end", "#f0f0f0"));
318+
public OutputColor getPackageColorStart() {
319+
return new OutputColor(config.getString("city.package.color_start", "#969696"));
330320
}
331321

332-
public String getClassColorHex() {
333-
return config.getString("city.class.color", "#353559");
322+
public OutputColor getPackageColorEnd() {
323+
return new OutputColor(config.getString("city.package.color_end", "#f0f0f0"));
334324
}
335325

336-
public Color getClassColorStart() {
337-
return getColor(config.getString("city.class.color_start", "#131615"));
326+
public OutputColor getClassColorStart() {
327+
return new OutputColor(config.getString("city.class.color_start", "#131615"));
338328
}
339329

340-
public Color getClassColorEnd() {
341-
return getColor(config.getString("city.class.color_end", "#00ff00"));
330+
public OutputColor getClassColorEnd() {
331+
return new OutputColor(config.getString("city.class.color_end", "#00ff00"));
342332
}
343333

344-
public Color getClassColor() {
345-
return getColor(config.getString("city.class.color", "#353559"));
334+
public OutputColor getClassColor() {
335+
final String color = config.getString("city.class.color", "#353559");
336+
return new OutputColor(color);
346337
}
347338

348-
public Color getCityColor(String name) {
349-
return getColor(getCityColorHex(name));
350-
}
351-
352-
public String getCityColorHex(String name) {
353-
String color = name.toLowerCase();
339+
public OutputColor getCityColor(String name) {
340+
String colorName = name.toLowerCase();
354341
String defaultColor = "";
355-
switch (name) {
356-
case "aqua":
357-
defaultColor = "#99CCFF"; break;
358-
case "blue":
359-
defaultColor = "#99FFCC"; break;
360-
case "light_green":
361-
defaultColor = "#CCFF99"; break;
362-
case "dark_green":
363-
defaultColor = "#99FF99"; break;
364-
case "yellow":
365-
defaultColor = "#FFFF99"; break;
366-
case "orange":
367-
defaultColor = "#FFCC99"; break;
368-
case "red":
369-
defaultColor = "#FF9999"; break;
370-
case "pink":
371-
defaultColor = "#FF99FF"; break;
372-
case "violet":
373-
defaultColor = "#9999FF"; break;
374-
case "light_grey":
375-
defaultColor = "#CCCCCC"; break;
376-
case "dark_grey":
377-
defaultColor = "#999999"; break;
378-
case "white":
379-
defaultColor = "#FFFFFF"; break;
380-
case "black":
381-
defaultColor = "#000000"; break;
342+
switch (colorName) {
343+
case "aqua":
344+
defaultColor = "#99CCFF"; break;
345+
case "blue":
346+
defaultColor = "#99FFCC"; break;
347+
case "light_green":
348+
defaultColor = "#CCFF99"; break;
349+
case "dark_green":
350+
defaultColor = "#99FF99"; break;
351+
case "yellow":
352+
defaultColor = "#FFFF99"; break;
353+
case "orange":
354+
defaultColor = "#FFCC99"; break;
355+
case "red":
356+
defaultColor = "#FF9999"; break;
357+
case "pink":
358+
defaultColor = "#FF99FF"; break;
359+
case "violet":
360+
defaultColor = "#9999FF"; break;
361+
case "light_grey":
362+
defaultColor = "#CCCCCC"; break;
363+
case "dark_grey":
364+
defaultColor = "#999999"; break;
365+
case "white":
366+
defaultColor = "#FFFFFF"; break;
367+
case "black":
368+
defaultColor = "#000000"; break;
382369
}
383-
return config.getString("city.color." + color, defaultColor);
370+
final String color = config.getString("city.color." + colorName, defaultColor);
371+
return new OutputColor(color);
384372
}
385373

386-
public String getCityColorAsPercentage(String name) {
387-
return getColorFormatted(getCityColor(name));
388-
}
389374

390375
public double getRDDataFactor() {
391376
return config.getDouble("rd.data_factor", 4.0);
@@ -423,35 +408,19 @@ public double getRDDataTransparency() {
423408
return config.getDouble("rd.data_transparency", 0);
424409
}
425410

426-
public String getRDClassColor() {
411+
public OutputColor getRDClassColor() {
427412
final String color = config.getString("rd.color.class", "#353559");
428-
if(this.getOutputFormat() == OutputFormat.AFrame) {
429-
return color;
430-
} else {
431-
return getColorFormatted(getColor(color));
432-
}
413+
return new OutputColor(color);
433414
}
434415

435-
public String getRDDataColor() {
416+
public OutputColor getRDDataColor() {
436417
final String color = config.getString("rd.color.data", "#fffc19");
437-
if(this.getOutputFormat() == OutputFormat.AFrame) {
438-
return color;
439-
} else {
440-
return getColorFormatted(getColor(color));
441-
}
418+
return new OutputColor(color);
442419
}
443420

444-
public String getRDMethodColor() {
421+
public OutputColor getRDMethodColor() {
445422
final String color = config.getString("rd.color.method", "#1485cc");
446-
if(this.getOutputFormat() == OutputFormat.AFrame) {
447-
return color;
448-
} else {
449-
return getColorFormatted(getColor(color));
450-
}
451-
}
452-
453-
public String getRDNamespaceColorHex() {
454-
return config.getString("rd.color.namespace", "#969696");
423+
return new OutputColor(color);
455424
}
456425

457426
public boolean isMethodDisks() {
@@ -466,17 +435,6 @@ public boolean isMethodTypeMode() {
466435
return config.getBoolean("rd.method_type_mode", false);
467436
}
468437

469-
private String getColorFormatted(Color color) {
470-
double r = color.getRed() / 255.0;
471-
double g = color.getGreen() / 255.0;
472-
double b = color.getBlue() / 255.0;
473-
return r + " " + g + " " + b;
474-
}
475-
476-
private Color getColor(String hex) {
477-
return Color.decode(hex);
478-
}
479-
480438
public enum OutputFormat {
481439
X3D, AFrame
482440
}

generator2/org.getaviz.generator/src/main/java/org/getaviz/generator/city/CityUtils.java

Lines changed: 28 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import org.getaviz.generator.SettingsConfiguration;
1010
import org.getaviz.generator.SettingsConfiguration.OutputFormat;
1111
import org.getaviz.generator.city.m2m.BuildingSegmentComparator;
12-
import org.getaviz.generator.city.m2m.RGBColor;
1312
import org.getaviz.generator.database.DatabaseConnector;
1413
import org.getaviz.generator.database.Labels;
1514

@@ -25,14 +24,14 @@ public static String setBuildingSegmentColor(Node relatedEntity) {
2524
switch (config.getScheme()) {
2625
case VISIBILITY:
2726
if (visibility.equals("public")) {
28-
color = config.getCityColorHex("dark_green");
27+
color = config.getCityColor("dark_green").toString();
2928
} else if (visibility.equals("protected")) {
30-
color = config.getCityColorHex("yellow");
29+
color = config.getCityColor("yellow").toString();
3130
} else if (visibility.equals("private")) {
32-
color = config.getCityColorHex("red");
31+
color = config.getCityColor("red").toString();
3332
} else {
3433
// Package visibility or default
35-
color = config.getCityColorHex("blue");
34+
color = config.getCityColor("blue").toString();
3635
}
3736
break;
3837
case TYPES:
@@ -41,23 +40,23 @@ public static String setBuildingSegmentColor(Node relatedEntity) {
4140
} else if(relatedEntity.hasLabel(Labels.Method.name())) {
4241
color = setMethodColor(relatedEntity);
4342
} else {
44-
color = config.getCityColorHex("blue");
43+
color = config.getCityColor("blue").toString();
4544
}
4645
default:
47-
color = config.getCityColorHex("blue");
46+
color = config.getCityColor("blue").toString();
4847
}
4948
} else {
5049
switch (config.getScheme()) {
5150
case VISIBILITY:
5251
if (visibility.equals("public")) {
53-
color = config.getCityColorAsPercentage("dark_green");
52+
color = config.getCityColor("dark_green").toString();
5453
} else if (visibility.equals("protected")) {
55-
color = config.getCityColorAsPercentage("yellow");
54+
color = config.getCityColor("yellow").toString();
5655
} else if (visibility.equals("private")) {
57-
color = config.getCityColorAsPercentage("red");
56+
color = config.getCityColor("red").toString();
5857
} else {
5958
// Package visibility or default
60-
color = config.getCityColorAsPercentage("blue");
59+
color = config.getCityColor("blue").toString();
6160
}
6261
break;
6362
case TYPES:
@@ -66,11 +65,11 @@ public static String setBuildingSegmentColor(Node relatedEntity) {
6665
} else if(relatedEntity.hasLabel(Labels.Method.name())) {
6766
color = setMethodColor(relatedEntity);
6867
} else {
69-
color = config.getCityColorAsPercentage("blue");
68+
color = config.getCityColor("blue").toString();
7069
}
7170
break;
7271
default:
73-
color = config.getCityColorAsPercentage("blue");
72+
color = config.getCityColor("blue").toString();
7473
}
7574
}
7675
return color;
@@ -85,15 +84,15 @@ private static String setAttributeColor(Long relatedEntity) {
8584
}
8685
if (config.getOutputFormat() == OutputFormat.AFrame) {
8786
if (isPrimitive) {
88-
color = config.getCityColorHex("pink");
87+
color = config.getCityColor("pink").toString();
8988
} else { // complex type
90-
color = config.getCityColorHex("aqua");
89+
color = config.getCityColor("aqua").toString();
9190
}
9291
} else {
9392
if (isPrimitive) {
94-
color = config.getCityColorAsPercentage("pink");
93+
color = config.getCityColor("pink").toString();
9594
} else { // complex type
96-
color = config.getCityColorAsPercentage("aqua");
95+
color = config.getCityColor("aqua").toString();
9796
}
9897
}
9998
return color;
@@ -107,34 +106,34 @@ private static String setMethodColor(Node relatedEntity) {
107106
if (config.getOutputFormat() == OutputFormat.AFrame) {
108107
// if (bs.getMethodKind().equals("constructor")) {
109108
if (relatedEntity.hasLabel(Labels.Constructor.name())) {
110-
color = config.getCityColorHex("red");
109+
color = config.getCityColor("red").toString();
111110
} else if (relatedEntity.hasLabel(Labels.Getter.name())) {
112-
color = config.getCityColorHex("light_green");
111+
color = config.getCityColor("light_green").toString();
113112
} else if (relatedEntity.hasLabel(Labels.Setter.name())) {
114-
color = config.getCityColorHex("dark_green");
113+
color = config.getCityColor("dark_green").toString();
115114
} else if (isStatic) {
116-
color = config.getCityColorHex("yellow");
115+
color = config.getCityColor("yellow").toString();
117116
} else if (isAbstract) {
118-
color = config.getCityColorHex("orange");
117+
color = config.getCityColor("orange").toString();
119118
} else {
120119
// Default
121-
color = config.getCityColorHex("violet");
120+
color = config.getCityColor("violet").toString();
122121
}
123122
} else {
124123
// if (bs.getMethodKind().equals("constructor")) {
125124
if (relatedEntity.hasLabel(Labels.Constructor.name())) {
126-
color = config.getCityColorAsPercentage("red");
125+
color = config.getCityColor("red").toString();
127126
} else if (relatedEntity.hasLabel(Labels.Getter.name())) {
128-
color = config.getCityColorAsPercentage("light_green");
127+
color = config.getCityColor("light_green").toString();
129128
} else if (relatedEntity.hasLabel(Labels.Setter.name())) {
130-
color = config.getCityColorAsPercentage("dark_green");
129+
color = config.getCityColor("dark_green").toString();
131130
} else if (isStatic) {
132-
color = config.getCityColorAsPercentage("yellow");
131+
color = config.getCityColor("yellow").toString();
133132
} else if (isAbstract) {
134-
color = config.getCityColorAsPercentage("orange");
133+
color = config.getCityColor("orange").toString();
135134
} else {
136135
// Default
137-
color = config.getCityColorAsPercentage("violet");
136+
color = config.getCityColor("violet").toString();
138137
}
139138
}
140139
return color;

0 commit comments

Comments
 (0)