1 package org.simantics.district.network.ui.adapters;
4 import java.util.ArrayList;
7 import org.simantics.db.Resource;
8 import org.simantics.g2d.element.IElement;
9 import org.simantics.g2d.element.handler.AdditionalColor;
10 import org.simantics.g2d.element.handler.ElementHandler;
11 import org.simantics.utils.datastructures.hints.IHintContext.Key;
12 import org.simantics.utils.datastructures.hints.IHintContext.KeyOf;
13 import org.simantics.utils.ui.color.ColorPool;
15 public class DistrictNetworkAdditionalColor implements AdditionalColor {
17 public static final Key KEY_DN_MAPPING_RESOURCE = new KeyOf(Resource.class, "DN_MAPPING_RESOURCE");
19 private static final long serialVersionUID = -6290147660355075322L;
21 private static final org.simantics.utils.ui.color.Color lightBlue = new org.simantics.utils.ui.color.Color(34, 167, 240);
22 private static final org.simantics.utils.ui.color.Color lightRed = new org.simantics.utils.ui.color.Color(236, 100, 75);
23 private static final org.simantics.utils.ui.color.Color lightGreen = new org.simantics.utils.ui.color.Color(135, 211, 124);
24 private static final org.simantics.utils.ui.color.Color gray = new org.simantics.utils.ui.color.Color(108, 122, 137);
25 private static final org.simantics.utils.ui.color.Color orange = new org.simantics.utils.ui.color.Color(243, 156, 18);
26 private static final org.simantics.utils.ui.color.Color purple = new org.simantics.utils.ui.color.Color(190, 144, 212);
28 public static final ElementHandler INSTANCE = new DistrictNetworkAdditionalColor();
30 private ColorPool colorPool = new ColorPool();
31 private List<Resource> mappings = new ArrayList<>();
33 public DistrictNetworkAdditionalColor() {
34 colorPool.add(lightBlue);
35 colorPool.add(lightRed);
36 colorPool.add(lightGreen);
38 colorPool.add(orange);
39 colorPool.add(purple);
43 public void setAdditionalColor(IElement e, Color c) {
44 throw new UnsupportedOperationException("Not needed!");
48 public Color getAdditionalColor(IElement e) {
49 Resource mapping = e.getHint(KEY_DN_MAPPING_RESOURCE);
50 if (!mappings.contains(mapping))
51 mappings.add(mapping);
53 int index = mappings.indexOf(mapping);
54 Color color = colorPool.getColor(index).getAWTColor();