/******************************************************************************* * Copyright (c) 2000, 2003 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Common Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/cpl-v10.html * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/ package net.sourceforge.phpdt.internal.ui.text; /** * Describes a run of similar typing changes. *
* XXX to be extended with further information, e.g. offset, length, and content * of the run. *
* * @since 3.0 */ public final class TypingRun { /** * A change of typeDELETE
deletes one single character
* (through delete or backspace or empty paste).
*/
public static final ChangeType DELETE = new ChangeType(true, "DELETE"); //$NON-NLS-1$
/**
* A change of type INSERT
inserts one single character
* (normal typing).
*/
public static final ChangeType INSERT = new ChangeType(true, "INSERT"); //$NON-NLS-1$
/**
* A change of type NO_CHANGE
does not change anything.
*/
public static final ChangeType NO_CHANGE = new ChangeType(false,
"NO_CHANGE"); //$NON-NLS-1$
/**
* A change of type OVERTYPE
replaces one single character
* (overwrite mode, pasting a single character).
*/
public static final ChangeType OVERTYPE = new ChangeType(true, "OVERTYPE"); //$NON-NLS-1$
/**
* A change of type SELECTION
does not change text, but
* changes the focus, or selection. Such a change ends all typing runs.
*/
public static final ChangeType SELECTION = new ChangeType(false,
"SELECTION"); //$NON-NLS-1$
/**
* A change of type UNKNOWN
modifies text in an unspecified
* way. An example is pasting more than one character, or deleting an entire
* selection, or reverting a file. Such a change ends all typing runs and
* cannot form a typing run with any other change, including a change of
* type UNKNOWN
.
*/
public static final ChangeType UNKNOWN = new ChangeType(true, "UNKNOWN"); //$NON-NLS-1$
/**
* Enumeration of change types.
*
* @since 3.0
*/
public static final class ChangeType {
private final boolean fIsModification;
private final String fName;
/** Private ctor for type safe enumeration. */
private ChangeType(boolean isRunPart, String name) {
fIsModification = isRunPart;
fName = name;
}
/**
* Returns true
if changes of this type modify text.
*
* @return true
if changes of this type modify text,
* false
otherwise
*/
boolean isModification() {
return fIsModification;
}
/*
* @see java.lang.Object#toString()
*/
public String toString() {
return fName;
}
}
/**
* Creates a new run.
*
* @param type
* the type of the run
*/
TypingRun(ChangeType type) {
this.type = type;
}
/** The change type of this run. */
public final ChangeType type;
}