Mercurial > projects > dwt-addons
view dwtx/core/commands/operations/OperationHistoryEvent.d @ 3:6518c18a01f7
eclipse.core package without osgi dependencies
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Wed, 26 Mar 2008 00:57:19 +0100 |
parents | |
children |
line wrap: on
line source
/******************************************************************************* * Copyright (c) 2005, 2006 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 * Port to the D programming language: * Frank Benoit <benoit@tionex.de> *******************************************************************************/ module dwtx.core.commands.operations.OperationHistoryEvent; import dwtx.core.runtime.IStatus; import dwtx.core.commands.operations.IOperationHistory; import dwtx.core.commands.operations.IUndoableOperation; import dwt.dwthelper.utils; /** * <p> * OperationHistoryEvent is used to communicate changes that occur in a * DefaultOperationHistory, including the addition or removal of operations, and * the execution, undo, and redo of operations. * </p> * <p> * Operation history listeners must be prepared to receive notifications from a * background thread. Any UI access occurring inside the implementation must be * properly synchronized using the techniques specified by the client's widget * library. * </p> * * * @since 3.1 */ public final class OperationHistoryEvent { /** * ABOUT_TO_EXECUTE indicates that an operation is about to execute. * Listeners should prepare for the execution as appropriate. Listeners will * receive a DONE notification if the operation is successful, or an * OPERATION_NOT_OK notification if the execution is cancelled or otherwise * fails. This notification is only received for those operations executed * by the operation history. Operations that are added to the history after * execution do not trigger these notifications. * * If the operation successfully executes, clients will also receive a * notification that it has been added to the history. * * (value is 1). */ public static const int ABOUT_TO_EXECUTE = 1; /** * ABOUT_TO_REDO indicates that an operation is about to be redone. * Listeners should prepare for the redo as appropriate. Listeners will * receive a REDONE notification if the operation is successful, or an * OPERATION_NOT_OK notification if the redo is cancelled or otherwise * fails. * * (value is 2). */ public static const int ABOUT_TO_REDO = 2; /** * ABOUT_TO_UNDO indicates that an operation is about to be undone. * Listeners should prepare for the undo as appropriate. Listeners will * receive an UNDONE notification if the operation is successful, or an * OPERATION_NOT_OK notification if the undo is cancelled or otherwise * fails. * * (value is 3). */ public static const int ABOUT_TO_UNDO = 3; /** * DONE indicates that an operation has been executed. Listeners can take * appropriate action, such as revealing any relevant state in the UI. This * notification is only received for those operations executed by the * operation history. Operations that are added to the history after * execution do not trigger this notification. * * Clients will also receive a notification that the operation has been * added to the history. * * (value is 4). */ public static const int DONE = 4; /** * OPERATION_ADDED indicates that an operation was added to the history. * Listeners can use this notification to add their undo context to a new * operation as appropriate or otherwise record the operation. * * (value is 5). */ public static const int OPERATION_ADDED = 5; /** * OPERATION_CHANGED indicates that an operation has changed in some way * since it was added to the operations history. * * (value is 6). */ public static const int OPERATION_CHANGED = 6; /** * OPERATION_NOT_OK indicates that an operation was attempted and not * successful. Listeners typically use this when they have prepared for an * execute, undo, or redo, and need to know that the operation did not * successfully complete. For example, listeners that turn redraw off before * an operation is undone would turn redraw on when the operation completes, * or when this notification is received, since there will be no * notification of the completion. * * (value is 7). */ public static const int OPERATION_NOT_OK = 7; /** * OPERATION_REMOVED indicates an operation was removed from the history. * Listeners typically remove any record of the operation that they may have * kept in their own state. The operation has been disposed by the time * listeners receive this notification. * * (value is 8). */ public static const int OPERATION_REMOVED = 8; /** * REDONE indicates that an operation was redone. Listeners can take * appropriate action, such as revealing any relevant state in the UI. * * (value is 9). */ public static const int REDONE = 9; /** * UNDONE indicates that an operation was undone. Listeners can take * appropriate action, such as revealing any relevant state in the UI. * * (value is 10). */ public static const int UNDONE = 10; private int code = 0; private IOperationHistory history; private IUndoableOperation operation; /* @since 3.2 */ private IStatus status; /** * Construct an event for the specified operation history. * * @param code * the event code to be used. * @param history * the history triggering the event. * @param operation * the operation involved in the event. */ public this(int code, IOperationHistory history, IUndoableOperation operation) { this(code, history, operation, null); } /** * Construct an event for the specified operation history. * * @param code * the event code to be used. * @param history * the history triggering the event. * @param operation * the operation involved in the event. * @param status * the status associated with the event, or null if no status is * available. * * @since 3.2 */ public this(int code, IOperationHistory history, IUndoableOperation operation, IStatus status) { if (history is null) { throw new NullPointerException(); } if (operation is null) { throw new NullPointerException(); } this.code = code; this.history = history; this.operation = operation; this.status = status; } /** * Return the type of event that is occurring. * * @return the type code indicating the type of event. */ public int getEventType() { return code; } /** * Return the operation history that triggered this event. * * @return the operation history */ public IOperationHistory getHistory() { return history; } /** * Return the operation associated with this event. * * @return the operation */ public IUndoableOperation getOperation() { return operation; } /** * Return the status associated with this event. * * @return the status associated with this event. The status may be null. * * @since 3.2 */ public IStatus getStatus() { return status; } }