/******************************************************************************* * Copyright (c) 2000, 2005 IBM Corporation 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: * IBM Corporation - initial API and implementation *******************************************************************************/ package org.eclipse.ui.texteditor; /** * Interface for parties interested in standardized element changes. These * changes are: * <ul> * <li> dirty state changes * <li> content replacements * <li> moves * <li> deletions * </ul> * The notifications sent to the element state listeners inform about those standardized, * abstract changes. The concrete change applied might differ from the one the listeners * are notified about, but should be interpreted as the one the listeners receive. * <p> * In order to provided backward compatibility for clients of <code>IElementStateListener</code>, * extension interfaces are used to provide a means of evolution. The following extension interface * exists: * <ul> * <li>{@link org.eclipse.ui.texteditor.IElementStateListenerExtension} since version 2.0 introducing * state validation events.</li> * </ul> * </p> * * @see org.eclipse.ui.texteditor.IElementStateListenerExtension */ public interface IElementStateListener { /** * Notifies that the dirty state of the given element has changed. * * @param element the element * @param isDirty the new dirty state */ void elementDirtyStateChanged(Object element, boolean isDirty); /** * Notifies that the content of the given element is about to be replaced. * * @param element the element */ void elementContentAboutToBeReplaced(Object element); /** * Notifies that the content of the given element has been replaced. * * @param element the element */ void elementContentReplaced(Object element); /** * Notifies that the given element has been deleted. * * @param element the element */ void elementDeleted(Object element); /** * Notifies that the element has moved. If <code>movedElement</code> * is <code>null</code> it is similar to <code>elementDeleted(originalElement)</code>. * * @param originalElement the element before the move * @param movedElement the element after the move */ void elementMoved(Object originalElement, Object movedElement); }