/******************************************************************************* * Copyright (c) 2009 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 *******************************************************************************/ //------------------------------------------------------------------------------ // Copyright (c) 2005, 2007 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 implementation //------------------------------------------------------------------------------ package org.eclipse.epf.richtext; /** * Models a text selection in a rich text control and editor. * * @author Jeff Hardy * @since 1.2 */ public class RichTextSelection { // The control's text selection. protected String text = ""; //$NON-NLS-1$ // The control's text selection offset protected int offsetStart = 0; // The control's text selection font protected String fontName = ""; //$NON-NLS-1$ // The control's text selection font size // could be in point size (12pt), or HTML size (1-7) protected String fontSize = ""; //$NON-NLS-1$ // The control's text current style protected String blockStyle = ""; //$NON-NLS-1$ // The control's text current flags protected int flags = 0; // Text status flags public static final int BOLD = 1; public static final int ITALIC = BOLD << 1; public static final int UNDERLINE = ITALIC << 1; public static final int SUBSCRIPT = UNDERLINE << 1; public static final int SUPERSCRIPT = SUBSCRIPT << 1; public String getBlockStyle() { return blockStyle; } public void setBlockStyle(String blockStyle) { this.blockStyle = blockStyle; } public int getFlags() { return flags; } public void setFlags(int flags) { this.flags = flags; } public String getFontName() { return fontName; } public void setFontName(String fontName) { this.fontName = fontName; } public String getFontSize() { return fontSize; } public void setFontSize(String fontSize) { this.fontSize = fontSize; } public int getOffsetStart() { return offsetStart; } public void setOffsetStart(int offsetStart) { this.offsetStart = offsetStart; } public String getText() { return text; } public void setText(String text) { this.text = text; } public boolean isBold() { return (flags & BOLD) != 0; } public boolean isItalic() { return (flags & ITALIC) != 0; } public boolean isUnderLine() { return (flags & UNDERLINE) != 0; } public boolean isSubscript() { return (flags & SUBSCRIPT) != 0; } public boolean isSuperscript() { return (flags & SUPERSCRIPT) != 0; } /** * Clears the selection info */ public void clear() { text = ""; //$NON-NLS-1$ offsetStart = 0; fontName = ""; //$NON-NLS-1$ fontSize = ""; //$NON-NLS-1$ blockStyle = ""; //$NON-NLS-1$ flags = 0; } public String toString() { String str = "Text: " + text + "\n"; //$NON-NLS-1$ //$NON-NLS-2$ str += "fontName: " + fontName + "\n"; //$NON-NLS-1$ //$NON-NLS-2$ str += "fontSize: " + fontSize + "\n"; //$NON-NLS-1$ //$NON-NLS-2$ str += "blockStyle: " + blockStyle + "\n"; //$NON-NLS-1$ //$NON-NLS-2$ str += "flags: " + flags + "\n"; //$NON-NLS-1$ //$NON-NLS-2$ return str; } }