/******************************************************************************* * 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;
}