/******************************************************************************* * Copyright (c) 2004, 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.gef.examples.text.requests; import org.eclipse.gef.Request; import org.eclipse.gef.examples.text.AppendableCommand; import org.eclipse.gef.examples.text.SelectionRange; /** * @since 3.1 */ public class TextRequest extends Request { public static final Object REQ_BACKSPACE = new Object(); /** * The Request type for a break in the current line. A line break is a newline within the * current paragraph or block, such as a bulleted or numbered list. This request indicates * that SHIFT+ENTER was received */ public static final Object REQ_BREAK = new Object(); public static final Object REQ_DELETE = new Object(); public static final Object REQ_INDENT = new Object(); public static final Object REQ_INSERT = new Object(); public static final Object REQ_OVERWRITE = new Object(); public static final Object REQ_STYLE = new Object(); /** * The Request type for a new page. A "Page" may be interpreted to mean anything based * on the context of the current selection range. This request indicates that CTRL+ENTER * was received. */ public static final Object REQ_NEW_PAGE = new Object(); public static final Object REQ_NEWLINE= new Object(); public static final Object REQ_REMOVE_RANGE = new Object(); public static final Object REQ_UNINDENT = new Object(); private AppendableCommand previous; private SelectionRange range; private String text; private String[] styleKeys; private Object[] styleValues; /** * @param type * @since 3.1 */ public TextRequest(SelectionRange range, String text, AppendableCommand previous) { this (REQ_INSERT, range, text, previous); } public TextRequest(Object type, SelectionRange range) { this(type, range, null, null); } public TextRequest(Object type, SelectionRange range, AppendableCommand previous) { this(type, range, null, previous); } public TextRequest(Object type, SelectionRange range, String text, AppendableCommand previous) { super(type == null ? REQ_INSERT : type); this.text = text; this.range = range; this.previous = previous; } public int getInsertionOffset() { return range.begin.offset; } public AppendableCommand getPreviousCommand() { return previous; } public SelectionRange getSelectionRange() { return range; } /** * @return the keys starting with most recent * @since 3.1 */ public String[] getStyleKeys() { return styleKeys; } /** * * @return the values starting with the most recent * @since 3.1 */ public Object[] getStyleValues() { return styleValues; } public String getText() { return text; } public void setStyles(String keys[], Object values[]) { this.styleKeys = keys; this.styleValues = values; } }