| /* |
| * Copyright (c) 2011, 2012, 2015 Eike Stepper (Berlin, Germany) 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: |
| * Martin Fluegge - initial API and implementation |
| */ |
| package org.eclipse.emf.cdo.dawn.spi; |
| |
| import org.eclipse.emf.cdo.view.CDOView; |
| |
| import java.util.List; |
| import java.util.Map; |
| |
| /** |
| * The IDawnEditingSupport is the direct connection the the Dawn Runtime. Service Providers must implement this |
| * interface to react on repository changes or local data manipulation. For implementation example @see |
| * org.eclipse.emf.cdo.dawn.gmf.editors.impl.DawnGMFEditorSupport. |
| * |
| * @author Martin Fluegge |
| * @since 2.0 |
| */ |
| public interface IDawnEditingSupport |
| { |
| /** |
| * Sets the element dirty. Implementations must ensure that all necessary operations a made to represent a dirty |
| * state. E.g. display the state in the user interface. |
| */ |
| public void setDirty(boolean dirty); |
| |
| /** |
| * Returns the dirty state of the UI element. |
| * |
| * @return true if the specific parts of the model that should be reflected as dirty to the UI are dirty, else |
| * otherwise. |
| */ |
| public boolean isDirty(); |
| |
| /** |
| * Returns the CDO view that is responsible for the data represented be the IDawnEditingSupport. |
| */ |
| public CDOView getView(); |
| |
| /** |
| * Sets the CDO view that is responsible for the data represented be the IDawnEditingSupport. |
| */ |
| public void setView(CDOView view); |
| |
| /** |
| * Handles all actions that must be executed when the UI element ist closed. E.g. close the related view. |
| */ |
| public void close(); |
| |
| /** |
| * Registers the default listeners which are used to interact with the repository and the user interface. |
| */ |
| public void registerListeners(); |
| |
| /** |
| * Implementations must process all operations that are need to provide a clean rollback. This includes the rollback |
| * on the repository site and the refreshing of the user interface. |
| * |
| * @since 1.0 |
| */ |
| public void rollback(); |
| |
| /** |
| * Refreshes the internal components of the IDawnEditor |
| * |
| * @since 2.0 |
| */ |
| public void refresh(); |
| |
| /** |
| * Locks the objects |
| * |
| * @since 2.0 |
| */ |
| public void lockObjects(List<Object> objectsToBeLocked); |
| |
| /** |
| * @since 2.0 |
| */ |
| public void lockObject(Object objectToBeLocked); |
| |
| /** |
| * Unlocks the objects |
| * |
| * @since 2.0 |
| */ |
| public void unlockObjects(List<Object> objectsToBeLocked); |
| |
| /** |
| * @since 2.0 |
| */ |
| public void unlockObject(Object objectToBeUnlocked); |
| |
| /** |
| * Implementations must handle all operations which are necessary on remotely locked objects, like disabling them, |
| * providing specific markers, like colors or icons, and so on. |
| * |
| * @since 2.0 |
| */ |
| public void handleRemoteLockChanges(Map<Object, DawnState> changedObjects); |
| } |