/*******************************************************************************
- * Copyright (c) 2007, 2010 Association for Decentralized Information Management
+ * Copyright (c) 2007, 2018 Association for Decentralized Information Management
* in Industry THTH ry.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
*
* Contributors:
* VTT Technical Research Centre of Finland - initial API and implementation
+ * Semantum Oy - gitlab #146 - tooltip support
*******************************************************************************/
package org.simantics.browsing.ui.graph.impl.contribution;
import java.util.Collections;
import java.util.Map;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Event;
import org.simantics.Simantics;
import org.simantics.browsing.ui.BuiltinKeys;
import org.simantics.browsing.ui.BuiltinKeys.LabelerKey;
import org.simantics.browsing.ui.common.labelers.LabelerContent;
import org.simantics.browsing.ui.common.labelers.LabelerStub;
import org.simantics.browsing.ui.common.node.IModifiableNode;
+import org.simantics.browsing.ui.graph.impl.contributor.labeler.ColumnLabelerContributorImpl;
import org.simantics.browsing.ui.graph.impl.request.ResourceQuery;
import org.simantics.db.AsyncReadGraph;
import org.simantics.db.ReadGraph;
}
+ @Override
+ public boolean shouldCreateToolTip(Event event, NodeContext nodeContext) {
+ return createToolTip(event, nodeContext);
+ }
+
+ @Override
+ public Composite createToolTipContentArea(Event event, Composite parent, NodeContext nodeContext) {
+ return (Composite)createToolTipContent(event, parent, nodeContext);
+ }
+
// OVERRIDE
public Modifier getModifier(ReadGraph graph, UndoContext undoContext, NodeContext context, String columnKey) throws DatabaseException {
public abstract int category(ReadGraph graph, NodeContext context) throws DatabaseException;
+ public boolean createToolTip(Object event, NodeContext nodeContext) {
+ return false;
+ }
+
+ public Object createToolTipContent(Object event, Object parent, NodeContext nodeContext) {
+ return null;
+ }
+
}
/*******************************************************************************
- * Copyright (c) 2007, 2010 Association for Decentralized Information Management
+ * Copyright (c) 2007, 2018 Association for Decentralized Information Management
* in Industry THTH ry.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
*
* Contributors:
* VTT Technical Research Centre of Finland - initial API and implementation
+ * Semantum Oy - gitlab #146 - tooltip support
*******************************************************************************/
package org.simantics.browsing.ui.graph.impl.contributor.labeler;
this.clazz = clazz;
}
+ public boolean shouldCreateToolTip(Object event, T input) {
+ return false;
+ }
+
+ public Object createToolTipContentArea(Object event, Object parent, T input) {
+ return null;
+ }
+
@Override
public LabelerFactory getFactory() {
return ColumnLabelerContributorImpl.this.toString();
}
+ @Override
+ public boolean createToolTip(Object event, NodeContext nodeContext) {
+ T input = (T)context.getConstant(BuiltinKeys.INPUT);
+ return ColumnLabelerContributorImpl.this.shouldCreateToolTip(event, input);
+ }
+
+ @Override
+ public Object createToolTipContent(Object event, Object parent, NodeContext nodeContext) {
+ T input = (T)context.getConstant(BuiltinKeys.INPUT);
+ return ColumnLabelerContributorImpl.this.createToolTipContentArea(event, parent, input);
+ }
+
};
}
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Tree;
+import org.eclipse.swt.widgets.TreeColumn;
import org.eclipse.swt.widgets.TreeItem;
import org.simantics.browsing.ui.BuiltinKeys;
import org.simantics.browsing.ui.NodeContext;
TreeItem treeItem = parent.getItem(new Point(event.x, event.y));
if (treeItem == null)
return false;
+ // Locate the column, and add the column reference to Event object.
+ TreeColumn columns[] = parent.getColumns();
+ TreeColumn column = null;
+ int x = 0;
+ for (TreeColumn c : columns) {
+ int w = c.getWidth();
+ if (event.x >= x && event.x < (x+w)) {
+ column = c;
+ break;
+ }
+ x+=w;
+ }
+ event.data = column.getData();
GENodeQueryManager manager = new GENodeQueryManager(explorerContext, null, null, TreeItemReference.create(treeItem.getParentItem()));
nodeContext = (NodeContext) treeItem.getData();
if (nodeContext != null)
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.simantics.jdbc</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.simantics.graph.builder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.PluginNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- <nature>org.simantics.graph.nature</nature>
- </natures>
-</projectDescription>
+<?xml version="1.0" encoding="UTF-8"?>\r
+<projectDescription>\r
+ <name>org.simantics.jdbc</name>\r
+ <comment></comment>\r
+ <projects>\r
+ </projects>\r
+ <buildSpec>\r
+ <buildCommand>\r
+ <name>org.eclipse.jdt.core.javabuilder</name>\r
+ <arguments>\r
+ </arguments>\r
+ </buildCommand>\r
+ <buildCommand>\r
+ <name>org.eclipse.pde.ManifestBuilder</name>\r
+ <arguments>\r
+ </arguments>\r
+ </buildCommand>\r
+ <buildCommand>\r
+ <name>org.eclipse.pde.SchemaBuilder</name>\r
+ <arguments>\r
+ </arguments>\r
+ </buildCommand>\r
+ </buildSpec>\r
+ <natures>\r
+ <nature>org.eclipse.pde.PluginNature</nature>\r
+ <nature>org.eclipse.jdt.core.javanature</nature>\r
+ </natures>\r
+</projectDescription>\r
/*******************************************************************************
- * Copyright (c) 2007, 2017 Association for Decentralized Information Management
+ * Copyright (c) 2007, 2018 Association for Decentralized Information Management
* in Industry THTH ry.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* Contributors:
* VTT Technical Research Centre of Finland - initial API and implementation
* Semantum Oy - #7116 regression fix
+ * Semantum Oy - gitlab #147 - expose getPossibleId implementation
*******************************************************************************/
package org.simantics.modeling.ui.modelBrowser.handlers;
return Simantics.getSession().syncRequest(new UniqueRead<String>() {
@Override
public String perform(ReadGraph graph) throws DatabaseException {
- ModelingResources MOD = ModelingResources.getInstance(graph);
- if (resource != null) {
- Resource component = graph.getPossibleObject(resource, MOD.ElementToComponent);
- String id = component != null ? graph.getPossibleRelatedValue2(component, MOD.contextualHelpId, Bindings.STRING) : null;
- if (id != null)
- return id;
- id = graph.getPossibleRelatedValue2(resource, MOD.contextualHelpId, Bindings.STRING);
- if (id != null)
- return id;
- }
-
- if (variable != null) {
- String id = variable.getPossiblePropertyValue(graph, MOD.contextualHelpId, Bindings.STRING);
- if (id != null)
- return id;
- }
-
- // TODO: consider removing this block
- if (sel != null) {
- PropertyVariables vars = AdaptionUtils.adaptToSingle(sel, PropertyVariables.class);
- Variable var = vars != null ? vars.getConfiguration() : null;
- String id = var != null ? var.getPossiblePropertyValue(graph, MOD.contextualHelpId, Bindings.STRING) : null;
- if (id != null)
- return id;
- }
-
- return null;
+ return getPossibleId(graph, resource, variable, sel);
}
});
} catch (DatabaseException e) {
return null;
}
+ public static String getPossibleId(ReadGraph graph, Resource resource, Variable variable, ISelection sel) throws DatabaseException {
+ ModelingResources MOD = ModelingResources.getInstance(graph);
+ if (resource != null) {
+ Resource component = graph.getPossibleObject(resource, MOD.ElementToComponent);
+ String id = component != null ? graph.getPossibleRelatedValue2(component, MOD.contextualHelpId, Bindings.STRING) : null;
+ if (id != null)
+ return id;
+ id = graph.getPossibleRelatedValue2(resource, MOD.contextualHelpId, Bindings.STRING);
+ if (id != null)
+ return id;
+ }
+
+ if (variable != null) {
+ String id = variable.getPossiblePropertyValue(graph, MOD.contextualHelpId, Bindings.STRING);
+ if (id != null)
+ return id;
+ }
+
+ // TODO: consider removing this block
+ if (sel != null) {
+ PropertyVariables vars = AdaptionUtils.adaptToSingle(sel, PropertyVariables.class);
+ Variable var = vars != null ? vars.getConfiguration() : null;
+ String id = var != null ? var.getPossiblePropertyValue(graph, MOD.contextualHelpId, Bindings.STRING) : null;
+ if (id != null)
+ return id;
+ }
+
+ return null;
+ }
+
}
if (value == null) {
map.remove(key);
if (map.isEmpty())
- properties.remove(element);
+ temporaryProperties.remove(element);
} else
map.put(key, value);
}