/******************************************************************************* * Copyright (c) 2012 Rushan R. Gilmullin and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Rushan R. Gilmullin - initial API and implementation *******************************************************************************/ package org.semanticsoft.e4extension.service; import org.eclipse.e4.ui.model.application.descriptor.basic.MPartDescriptor; import org.eclipse.e4.ui.model.application.ui.MElementContainer; import org.eclipse.e4.ui.model.application.ui.basic.MInputPart; import org.eclipse.e4.ui.model.application.ui.basic.MPart; import org.eclipse.e4.ui.workbench.modeling.EPartService.PartState; import e4modelextension.EditorPartDescriptor; /** * @author rushan * */ public interface EPartServiceExt { public static interface PartAddLogic { void addMPart(MPart mpart); } /** * Creates a new input part of the given id. * * @param id * the identifier of the part, must not be <code>null</code> * @return a new part of the given id, or <code>null</code> if no part descriptors can be found * that match the specified id */ MInputPart createInputPart(String id); MPartDescriptor findDescriptor(String id); EditorPartDescriptor findEditorPartDescriptorUsingId(String id); EditorPartDescriptor findEditorPartDescriptor(String inputUri); /** * Open the given uri in area with id = org.eclipse.ui.editorss (eclipse conditions) * @param inputUri given uri * @return part that was opened or finded with this uri */ MInputPart openUri(String inputUri); /** * Open the given uri in area with id = org.eclipse.ui.editorss (eclipse conditions) in editor with given descriptor */ MInputPart openUri(String inputUri, EditorPartDescriptor descriptor); MInputPart openUri(String inputUri, String editorDescriptorId); /** * Open given uri in given are * @param area * @param inputUri * @return */ MInputPart openUri(MElementContainer<?> area, String inputUri); MInputPart openUri(String inputUri, EditorPartDescriptor editorPartDescriptor, MElementContainer<?> area); void closeUri(String inputUri, boolean saveBeforeClose); MInputPart openNewEditor(EditorPartDescriptor descriptor); MInputPart openNewEditor(String descriptorId); /** * Fixed method EPartService.showPart. Current method search any opened shared part and if allowMultiples == false (default) it * create placeholder on this part rather creating new. The differences from original showPart is that it search shared part in any perspective, * the original showPart search shared part in active perspective. I can not say is this bug or general contract of this method... * @param id * @param partState * @return */ MPart showPart(String id, PartState partState); }