*******************************************************************************/
package org.simantics.diagram.adapter;
+import java.awt.Font;
import java.awt.Shape;
import java.awt.geom.AffineTransform;
import java.awt.geom.Rectangle2D;
import org.simantics.databoard.Bindings;
import org.simantics.databoard.binding.error.RuntimeBindingConstructionException;
import org.simantics.databoard.util.Bean;
-import org.simantics.datatypes.literal.Font;
import org.simantics.datatypes.literal.RGB;
import org.simantics.db.AsyncReadGraph;
import org.simantics.db.ReadGraph;
import org.simantics.db.Session;
import org.simantics.db.WriteGraph;
import org.simantics.db.common.procedure.adapter.TransientCacheListener;
+import org.simantics.db.common.procedure.guarded.GuardedAsyncProcedureWrapper;
import org.simantics.db.common.request.ResourceRead;
import org.simantics.db.common.request.TernaryRead;
import org.simantics.db.common.request.WriteRequest;
procedure.execute(graph, createFlagClass(DIA.Flag, DIA.Flag_Terminal));
}
+ @Override
+ public void load(AsyncReadGraph graph, final ICanvasContext canvas, final IDiagram diagram,
+ final Resource elementResource, final IElement element, final AsyncProcedure<IElement> procedure) {
+ GuardedAsyncProcedureWrapper<IElement> guard = new GuardedAsyncProcedureWrapper<IElement>(procedure, 2);
+ super.load(graph, canvas, diagram, elementResource, element, guard);
+ ElementFactoryUtil.loadLayersForElement(graph, diagram, element, elementResource, guard);
+ }
+
@Override
public void load(ReadGraph g, ICanvasContext canvas, IDiagram diagram, Resource flag, IElement e) throws DatabaseException {
Layer0 l0 = g.getService(Layer0.class);
if (ftr != null) {
IFlagType ft = ftr.read(g, flag, modelingRules);
- FlagInfo info = ft.getInfo(g);
+ FlagInfo info = ft.getInfo(g, canvas);
Shape shape = info.getShape();
if (shape != null) {
e.setHint(FlagClass.KEY_FLAG_TEXT, flagText);
flagTextIsSet = true;
}
+
+ Font flagFont = info.getFont();
+ if(flagFont != null) {
+ e.setHint(FlagClass.KEY_FLAG_FONT, flagFont);
+ }
if (info.getTextArea() != null) {
e.setHint(FlagClass.KEY_FLAG_TEXT_AREA, info.getTextArea());