X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.modeling.ui%2Fsrc%2Forg%2Fsimantics%2Fmodeling%2Fui%2FdiagramEditor%2FDiagramEditor.java;h=ddba8ebfb322a9323b22bf08dd3bcca4eb7d8fd5;hb=55d1e6f63df516019032ebf0c1e9c8c0495a619d;hp=7734ce7145f60dc20ba7b27c21a769a7b36ab17a;hpb=01829f2ac0839902c07f29ef723cbd37751bfc51;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/diagramEditor/DiagramEditor.java b/bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/diagramEditor/DiagramEditor.java index 7734ce714..ddba8ebfb 100644 --- a/bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/diagramEditor/DiagramEditor.java +++ b/bundles/org.simantics.modeling.ui/src/org/simantics/modeling/ui/diagramEditor/DiagramEditor.java @@ -13,12 +13,14 @@ package org.simantics.modeling.ui.diagramEditor; import java.lang.reflect.Constructor; +import java.util.Set; import java.util.function.Predicate; import org.eclipse.core.runtime.IConfigurationElement; import org.eclipse.core.runtime.IExecutableExtension; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.Platform; +import org.eclipse.osgi.util.NLS; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Composite; import org.eclipse.ui.IEditorInput; @@ -83,7 +85,7 @@ public class DiagramEditor extends EditorPart implements IResourceEditorPart2, I * * @see #setInitializationData(IConfigurationElement, String, Object) */ - public static final String ARG_VIEWER = "viewer"; + public static final String ARG_VIEWER = "viewer"; //$NON-NLS-1$ private Composite parent; @@ -119,16 +121,16 @@ public class DiagramEditor extends EditorPart implements IResourceEditorPart2, I if (data instanceof String) { viewerContributor = cfig.getContributor().getName(); - String[] parameters = ((String) data).split(";"); + String[] parameters = ((String) data).split(";"); //$NON-NLS-1$ for (String parameter : parameters) { - String[] keyValue = parameter.split("="); + String[] keyValue = parameter.split("="); //$NON-NLS-1$ if (keyValue.length > 2) { - ErrorLogger.defaultLogWarning("Invalid parameter '" + parameter + ". Complete view argument: " + data, null); + ErrorLogger.defaultLogWarning(NLS.bind(Messages.DiagramEditor_InvalidParameter, parameter, data), null); continue; } String key = keyValue[0]; - String value = keyValue.length > 1 ? keyValue[1] : ""; + String value = keyValue.length > 1 ? keyValue[1] : ""; //$NON-NLS-1$ if (ARG_VIEWER.equals(key)) { viewerClassName = value; @@ -140,25 +142,25 @@ public class DiagramEditor extends EditorPart implements IResourceEditorPart2, I protected DiagramViewer createViewer() throws PartInitException { if (viewerClassName == null) throw new PartInitException( - "DiagramViewer contributor class was not specified in editor extension's class attribute viewer-argument. contributor is '" - + viewerContributor + "'"); + "DiagramViewer contributor class was not specified in editor extension's class attribute viewer-argument. contributor is '" //$NON-NLS-1$ + + viewerContributor + "'"); //$NON-NLS-1$ try { Bundle b = Platform.getBundle(viewerContributor); if (b == null) - throw new PartInitException("DiagramViewer '" + viewerClassName + "' contributor bundle '" - + viewerContributor + "' was not found in the platform."); + throw new PartInitException("DiagramViewer '" + viewerClassName + "' contributor bundle '" //$NON-NLS-1$ //$NON-NLS-2$ + + viewerContributor + "' was not found in the platform."); //$NON-NLS-1$ Class clazz = b.loadClass(viewerClassName); if (!DiagramViewer.class.isAssignableFrom(clazz)) - throw new PartInitException("DiagramViewer class '" + viewerClassName + "' is not assignable to " - + DiagramViewer.class + "."); + throw new PartInitException("DiagramViewer class '" + viewerClassName + "' is not assignable to " //$NON-NLS-1$ //$NON-NLS-2$ + + DiagramViewer.class + "."); //$NON-NLS-1$ Constructor ctor = clazz.getConstructor(); return (DiagramViewer) ctor.newInstance(); } catch (Exception e) { - throw new PartInitException("Failed to instantiate DiagramViewer implementation '" + viewerClassName - + "' from bundle '" + viewerContributor + "'. See exception for details.", e); + throw new PartInitException("Failed to instantiate DiagramViewer implementation '" + viewerClassName //$NON-NLS-1$ + + "' from bundle '" + viewerContributor + "'. See exception for details.", e); //$NON-NLS-1$ //$NON-NLS-2$ } } @@ -433,4 +435,19 @@ public class DiagramEditor extends EditorPart implements IResourceEditorPart2, I && ((IResourceEditorInput) input).getResource().equals(diagram)); } + /** + * Reinitializes all DiagramEditor instances in all workbench windows that have + * the specified diagrams as their input. + * + *

Must be invoked from the SWT thread.

+ * + * @param diagrams + * collection of diagram resources for which to reinitialize all DiagramEditors + * for + */ + public static void reinitializeDiagram(Set diagrams) { + reinitializeDiagram(input -> input instanceof IResourceEditorInput + && diagrams.contains(((IResourceEditorInput) input).getResource())); + } + }