private static final Logger LOGGER = LoggerFactory.getLogger(OpenDiagramFromComponentAdapter.class);
- private static final String EDITOR_ID = "org.simantics.modeling.ui.diagramEditor";
+ private static final String EDITOR_ID = "org.simantics.modeling.ui.diagramEditor"; //$NON-NLS-1$
public OpenDiagramFromComponentAdapter() {
- super("Open Diagram Containing This Component", Activator.SYMBOL_ICON);
+ super(Messages.OpenDiagramFromComponentAdapter_OpenDiagramContainingComponent, Activator.SYMBOL_ICON);
+ }
+
+ protected String getEditorId(ReadGraph g, Resource diagram) throws DatabaseException {
+ ModelingResources MOD = ModelingResources.getInstance(g);
+ String preferredEditorId = g.getPossibleRelatedValue(diagram, MOD.PreferredDiagramEditorID);
+ if(preferredEditorId != null)
+ return preferredEditorId;
+ else
+ return EDITOR_ID;
}
@Override
private Pair<Resource, String> tryGetResource(ReadGraph graph, Object input) throws DatabaseException {
Resource r = ResourceAdaptionUtils.toSingleResource(input);
if (r != null)
- return Pair.make(r, "");
+ return Pair.make(r, ""); //$NON-NLS-1$
Variable v = AdaptionUtils.adaptToSingle(input, Variable.class);
return findResource(graph, v);
}
while (v != null) {
Resource r = v.getPossibleRepresents(graph);
if (r != null) {
- String rvi = "";
+ String rvi = ""; //$NON-NLS-1$
if (path != null) {
int pathLength = path.size();
for (int i = 0; i < pathLength; i++)
path.set(i, URIStringUtils.escape(path.get(i)));
Collections.reverse(path);
- rvi = EString.implode(path, "/");
+ rvi = EString.implode(path, "/"); //$NON-NLS-1$
}
return Pair.make(r, rvi);
}
if (path == null)
path = new ArrayList<>(2);
path.add( v.getName(graph) );
- v = v.browsePossible(graph, ".");
+ v = v.browsePossible(graph, "."); //$NON-NLS-1$
}
return null;
}
Variable v = AdaptionUtils.adaptToSingle(input, Variable.class);
if (LOGGER.isDebugEnabled()) {
- LOGGER.debug(getClass().getSimpleName() + ".openEditor: input's nearest parent resource URI: " + NameUtils.getURIOrSafeNameInternal(graph, r.first));
- LOGGER.debug(getClass().getSimpleName() + ".openEditor: input's nearest parent RVI: " + r.second);
- LOGGER.debug(getClass().getSimpleName() + ".openEditor: input variable URI: " + (v != null ? v.getURI(graph) : "null"));
+ LOGGER.debug(getClass().getSimpleName() + ".openEditor: input's nearest parent resource URI: " + NameUtils.getURIOrSafeNameInternal(graph, r.first)); //$NON-NLS-1$
+ LOGGER.debug(getClass().getSimpleName() + ".openEditor: input's nearest parent RVI: " + r.second); //$NON-NLS-1$
+ LOGGER.debug(getClass().getSimpleName() + ".openEditor: input variable URI: " + (v != null ? v.getURI(graph) : "null")); //$NON-NLS-1$ //$NON-NLS-2$
}
final Collection<Runnable> rs = tryFindDiagram(graph, r.first, v, r.second);
Resource composite = g.getSingleObject(component, l0.PartOf);
Resource diagram = ComponentUtils.getPossibleCompositeDiagram(g, composite);
+ String editorId = getEditorId(g, composite);
+
if (LOGGER.isDebugEnabled()) {
- LOGGER.debug(getClass().getSimpleName() + ".findDiagram: component: " + NameUtils.getURIOrSafeNameInternal(g, component));
- LOGGER.debug(getClass().getSimpleName() + ".findDiagram: composite: " + NameUtils.getURIOrSafeNameInternal(g, composite));
+ LOGGER.debug(getClass().getSimpleName() + ".findDiagram: component: " + NameUtils.getURIOrSafeNameInternal(g, component)); //$NON-NLS-1$
+ LOGGER.debug(getClass().getSimpleName() + ".findDiagram: composite: " + NameUtils.getURIOrSafeNameInternal(g, composite)); //$NON-NLS-1$
}
Collection<Resource> referenceElements = diagram == null ? g.getObjects(component, MOD.HasParentComponent_Inverse) : Collections.<Resource>emptyList();
if (LOGGER.isDebugEnabled()) {
- LOGGER.debug(getClass().getSimpleName() + ".findDiagram: diagram: " + NameUtils.getURIOrSafeNameInternal(g, diagram));
- LOGGER.debug(getClass().getSimpleName() + ".findDiagram: referenceElements: " + referenceElements.size());
+ LOGGER.debug(getClass().getSimpleName() + ".findDiagram: diagram: " + NameUtils.getURIOrSafeNameInternal(g, diagram)); //$NON-NLS-1$
+ LOGGER.debug(getClass().getSimpleName() + ".findDiagram: referenceElements: " + referenceElements.size()); //$NON-NLS-1$
for (Object object : referenceElements)
- LOGGER.debug("\t" + NameUtils.getURIOrSafeNameInternal(g, (Resource) object));
+ LOGGER.debug("\t" + NameUtils.getURIOrSafeNameInternal(g, (Resource) object)); //$NON-NLS-1$
}
if (diagram == null && referenceElements.isEmpty())
return Collections.emptyList();
if (indexRoot == null)
return Collections.emptyList();
if (LOGGER.isDebugEnabled())
- LOGGER.debug(getClass().getSimpleName() + ".findDiagram: Model: " + indexRoot);
+ LOGGER.debug(getClass().getSimpleName() + ".findDiagram: Model: " + indexRoot); //$NON-NLS-1$
if (diagram != null) {
if(OpenDiagramFromConfigurationAdapter.isLocked(g, diagram))
if (parent != null) {
rvi = parent.getPossibleRVI(g);
if (LOGGER.isDebugEnabled())
- LOGGER.debug(getClass().getSimpleName() + ".findDiagram: resolved RVI: " + rvi);
+ LOGGER.debug(getClass().getSimpleName() + ".findDiagram: resolved RVI: " + rvi); //$NON-NLS-1$
}
}
} else {
allowNullRvi = true;
rvi = compositeVariable.getPossibleRVI(g);
if (LOGGER.isDebugEnabled())
- LOGGER.debug(getClass().getSimpleName() + ".findDiagram: resolved RVI from resource path: " + rvi);
+ LOGGER.debug(getClass().getSimpleName() + ".findDiagram: resolved RVI from resource path: " + rvi); //$NON-NLS-1$
}
if (rvi == null && !allowNullRvi)
return Collections.emptyList();
Collection<Object> selectedObjects = findElementObjects(g, component, rviFromComponent);
if (LOGGER.isDebugEnabled()) {
- LOGGER.debug(getClass().getSimpleName() + ".findDiagram: selected objects: " + selectedObjects.size());
+ LOGGER.debug(getClass().getSimpleName() + ".findDiagram: selected objects: " + selectedObjects.size()); //$NON-NLS-1$
for (Object object : selectedObjects)
- LOGGER.debug("\t" + NameUtils.getURIOrSafeNameInternal(g, (Resource) object));
+ LOGGER.debug("\t" + NameUtils.getURIOrSafeNameInternal(g, (Resource) object)); //$NON-NLS-1$
}
// Prevent diagram from opening if there's nothing to select
// on the diagram based on the received input.
if (!selectedObjects.isEmpty())
- result.add( NavigateToTarget.editorActivator(EDITOR_ID, diagram, indexRoot, rvi, editorActivationCallback(selectedObjects)) );
+ result.add( NavigateToTarget.editorActivator(editorId, diagram, indexRoot, rvi, editorActivationCallback(selectedObjects)) );
} else {
final MapSet<NamedResource, Resource> referencingDiagrams = listReferenceDiagrams(g, referenceElements);
final Set<NamedResource> diagrams = referencingDiagrams.getKeys();
if (LOGGER.isDebugEnabled()) {
- LOGGER.debug(getClass().getSimpleName() + ".findDiagram: selected objects: " + diagrams.size());
+ LOGGER.debug(getClass().getSimpleName() + ".findDiagram: selected objects: " + diagrams.size()); //$NON-NLS-1$
for (NamedResource d : diagrams) {
- LOGGER.debug("\t" + NameUtils.getURIOrSafeNameInternal(g, d.getResource()) + ":");
+ LOGGER.debug("\t" + NameUtils.getURIOrSafeNameInternal(g, d.getResource()) + ":"); //$NON-NLS-1$ //$NON-NLS-2$
for (Resource referenceElement : referencingDiagrams.getValues(d)) {
- LOGGER.debug("\t\t" + NameUtils.getURIOrSafeNameInternal(g, referenceElement));
+ LOGGER.debug("\t\t" + NameUtils.getURIOrSafeNameInternal(g, referenceElement)); //$NON-NLS-1$
}
}
}
RVI rvi = getDiagramCompositeRvi(g, singleDiagram.getResource());
if (rvi != null) {
Collection<Resource> selectedObjects = referencingDiagrams.getValues(singleDiagram);
- result.add( NavigateToTarget.editorActivator(EDITOR_ID, singleDiagram.getResource(), indexRoot, rvi, editorActivationCallback(selectedObjects)) );
+ result.add( NavigateToTarget.editorActivator(editorId, singleDiagram.getResource(), indexRoot, rvi, editorActivationCallback(selectedObjects)) );
}
break;
if (selected != null) {
Collection<Resource> selectedObjects = referencingDiagrams.getValues(selected);
RVI drvi = diagramToRvi.get(selected);
- NavigateToTarget.editorActivator(EDITOR_ID, selected.getResource(), indexRoot, drvi, editorActivationCallback(selectedObjects)).run();
+ NavigateToTarget.editorActivator(editorId, selected.getResource(), indexRoot, drvi, editorActivationCallback(selectedObjects)).run();
}
});
break;
while (v != null) {
Resource represents = v.getPossibleRepresents(graph);
if (LOGGER.isDebugEnabled())
- LOGGER.debug(v.getURI(graph) + " -> " + NameUtils.getURIOrSafeNameInternal(graph, represents));
+ LOGGER.debug(v.getURI(graph) + " -> " + NameUtils.getURIOrSafeNameInternal(graph, represents)); //$NON-NLS-1$
if (represents != null)
return v;
v = v.getParent(graph);
protected NamedResource queryTarget(final Shell parentShell, Collection<NamedResource> options) {
NavigationTargetChooserDialog dialog = new NavigationTargetChooserDialog(
parentShell, options.toArray(new NamedResource[options.size()]),
- "Choose Diagram with Component Reference",
- "Select single diagram from list");
+ Messages.OpenDiagramFromComponentAdapter_ChooseDiagramComponetReference,
+ Messages.OpenDiagramFromComponentAdapter_SelectSingleDiagramfromList);
return dialog.open() != Window.OK ? null : dialog.getSelection();
}