+++ /dev/null
-package org.simantics.views.swt.loader;
-
-import org.simantics.databoard.Bindings;
-import org.simantics.datatypes.literal.Font;
-import org.simantics.datatypes.literal.RGB;
-import org.simantics.db.Resource;
-import org.simantics.db.VirtualGraph;
-import org.simantics.db.WriteGraph;
-import org.simantics.db.common.request.WriteRequest;
-import org.simantics.db.exception.DatabaseException;
-import org.simantics.db.layer0.util.Simantics;
-import org.simantics.db.layer0.variable.Variable;
-import org.simantics.scenegraph.ParentNode;
-import org.simantics.scenegraph.loader.ScenegraphLoader;
-import org.simantics.utils.ui.widgets.TrackedModifyEvent;
-import org.simantics.utils.ui.widgets.TrackedModifyListener;
-import org.simantics.views.ViewUtils;
-import org.simantics.views.ontology.ViewsResources;
-import org.simantics.views.swt.client.base.ISWTViewNode;
-import org.simantics.views.swt.client.impl.SWTTrackedText;
-
-public class TrackedTextLoader implements ScenegraphLoader {
-
- final private Resource configuration;
-
- public TrackedTextLoader(Resource configuration) {
- this.configuration = configuration;
- }
-
- @Override
- public ISWTViewNode create(ParentNode<ISWTViewNode> parent, final Variable context) throws DatabaseException {
-
- SWTTrackedText node = parent.addNode(SWTTrackedText.class);
-
- node.setLayoutData(LoaderUtils.getGridData(configuration));
- node.setStyle(LoaderUtils.getStyle(configuration));
-
- LoaderUtils.listen(configuration, context, ViewsResources.URIs.TextContainer_HasText, node.getTextFunction());
- LoaderUtils.listen(configuration, context, ViewsResources.URIs.Control_HasForeground, RGB.Integer.BINDING, node.getForegroundFunction());
- LoaderUtils.listen(configuration, context, ViewsResources.URIs.TrackedText_HasInvalidBackground, RGB.Integer.BINDING, node.getInvalidBackgroundFunction());
- LoaderUtils.listen(configuration, context, ViewsResources.URIs.TrackedText_HasInactiveBackground, RGB.Integer.BINDING, node.getInactiveBackgroundFunction());
- LoaderUtils.listen(configuration, context, ViewsResources.URIs.TrackedText_HasHoverBackground, RGB.Integer.BINDING, node.getHoverBackgroundFunction());
- LoaderUtils.listen(configuration, context, ViewsResources.URIs.TrackedText_HasEditingBackground, RGB.Integer.BINDING, node.getEditingBackgroundFunction());
- LoaderUtils.listen(configuration, context, ViewsResources.URIs.Control_HasFont, Font.BINDING, node.getFontFunction());
-
- LoaderUtils.listen(configuration, context, ViewsResources.URIs.TextReceiver_Modifier, node.getModifierFunction());
- LoaderUtils.listen(configuration, context, ViewsResources.URIs.TextReceiver_Validator, node.getValidatorFunction());
-
- node.addModifyListener(new TrackedModifyListener() {
-
- @Override
- public void modifyText(TrackedModifyEvent e) {
-
- final String text = e.getText();
-
- Simantics.getSession().async(new WriteRequest(Simantics.getSession().getService(VirtualGraph.class)) {
-
- @Override
- public void perform(WriteGraph graph) throws DatabaseException {
- ViewsResources VIEW = ViewsResources.getInstance(graph);
- System.err.println("setParameter " + context.getURI(graph) + " -> " + text);
- ViewUtils.setParameter(graph, context, VIEW.TrackedText_Content, text, Bindings.STRING);
- }
-
- });
-
- }
-
- });
-
- return node;
-
- }
-
-}