Added two SymbolRendererProviders
[Mograsim.git] / net.mograsim.logic.ui / src / net / mograsim / logic / ui / serializing / snippets / symbolrenderers / DefaultSymbolRendererProvider.java
1 package net.mograsim.logic.ui.serializing.snippets.symbolrenderers;
2
3 import com.google.gson.JsonElement;
4
5 import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
6 import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle;
7 import net.mograsim.logic.ui.serializing.DeserializedSubmodelComponent;
8 import net.mograsim.logic.ui.serializing.snippets.Renderer;
9 import net.mograsim.logic.ui.serializing.snippets.RendererProvider;
10 import net.mograsim.preferences.ColorDefinition;
11 import net.mograsim.preferences.ColorManager;
12 import net.mograsim.preferences.Preferences;
13
14 public class DefaultSymbolRendererProvider implements RendererProvider
15 {
16         private static final String id = "<Symbol\nunknown>";
17
18         @Override
19         public Renderer create(DeserializedSubmodelComponent component, JsonElement params)
20         {
21                 return (gc, visReg) ->
22                 {
23                         ColorDefinition fg = Preferences.current().getColorDefinition("net.mograsim.logic.ui.color.text");
24                         if (fg != null)
25                                 gc.setForeground(ColorManager.current().toColor(fg));
26                         Point idSize = gc.textExtent(id);
27                         Rectangle bounds = component.getBounds();
28                         gc.drawText(id, bounds.x + (bounds.width - idSize.x) / 2, bounds.y + (bounds.height - idSize.y) / 2, true);
29                 };
30         }
31 }