]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/diagram/monitor/FontModifier.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.modeling.ui / src / org / simantics / modeling / ui / diagram / monitor / FontModifier.java
1 package org.simantics.modeling.ui.diagram.monitor;\r
2 \r
3 import org.simantics.browsing.ui.swt.widgets.impl.ModifyComboListenerImpl;\r
4 import org.simantics.databoard.Bindings;\r
5 import org.simantics.db.Resource;\r
6 import org.simantics.db.WriteGraph;\r
7 import org.simantics.db.exception.DatabaseException;\r
8 import org.simantics.diagram.stubs.DiagramResource;\r
9 import org.simantics.layer0.Layer0;\r
10 import org.simantics.ui.fonts.FontDescriptor;\r
11 \r
12 public class FontModifier extends ModifyComboListenerImpl<Resource, String> {\r
13 \r
14         @Override\r
15         public void applySelection(WriteGraph graph, Resource monitor, String newFamily) throws DatabaseException {\r
16                 Layer0 L0 = Layer0.getInstance(graph);\r
17                 DiagramResource DIA = DiagramResource.getInstance(graph);\r
18                 FontDescriptor fd = graph.getPossibleRelatedAdapter(monitor, DIA.HasFont, FontDescriptor.class);\r
19                 if (fd != null) {\r
20                         graph.markUndoPoint();\r
21                         Resource font = graph.newResource();\r
22                         graph.claim(font, L0.InstanceOf, null, DIA.RealizedFont);\r
23                         graph.addLiteral(font, DIA.RealizedFont_HasFamily, DIA.RealizedFont_HasFamily_Inverse, L0.String, newFamily, Bindings.STRING);\r
24                         graph.addLiteral(font, DIA.RealizedFont_HasStyle, DIA.RealizedFont_HasStyle_Inverse, L0.Integer, fd.getStyle(), Bindings.INTEGER);\r
25                         graph.addLiteral(font, DIA.RealizedFont_HasSize, DIA.RealizedFont_HasSize_Inverse, L0.Integer, fd.getSize(), Bindings.INTEGER);\r
26                         graph.deny(monitor, DIA.HasFont);\r
27                         graph.claim(monitor, DIA.HasFont, font);\r
28                 }\r
29         }\r
30 \r
31 }\r