package org.flowerplatform.eclipse; import org.eclipse.core.expressions.PropertyTester; import org.eclipse.ui.IEditorPart; import org.eclipse.ui.IEditorReference; import org.eclipse.ui.PlatformUI; import org.flowerplatform.eclipse.part.FlowerDiagramEditor; public class IsDiagramEditorOpenTest extends PropertyTester { public static final String PROPERTY_IS_DIAGRAM_OPEN = "isDiagramEditorOpen"; public IsDiagramEditorOpenTest() { } @Override public boolean test(Object receiver, String property, Object[] args, Object expectedValue) { if (PROPERTY_IS_DIAGRAM_OPEN.equals(property)) { IEditorReference[] editorReference = PlatformUI.getWorkbench() .getActiveWorkbenchWindow().getActivePage() .getEditorReferences(); for (int i = editorReference.length - 1; i >= 0; i--) { IEditorPart edit = editorReference[i].getEditor(false); if (edit instanceof FlowerDiagramEditor) { return true; } } } return false; } }