| /* |
| * @(#)$RCSfile: TextCommand.java,v $ $Revision: 1.1 $ $Date: 2000/04/20 17:51:23 $ |
| * |
| * (C) Copyright IBM Corp. 1998-1999. All Rights Reserved. |
| * |
| * The program is provided "as is" without any warranty express or |
| * implied, including the warranty of non-infringement and the implied |
| * warranties of merchantibility and fitness for a particular purpose. |
| * IBM will not be liable for any damages suffered by you as a result |
| * of using the Program. In no event will IBM be liable for any |
| * special, indirect or consequential damages or lost profits even if |
| * IBM has been advised of the possibility of their occurrence. IBM |
| * will not be liable for any third party claims against you. |
| */ |
| package com.ibm.richtext.textpanel; |
| |
| import com.ibm.richtext.styledtext.MConstText; |
| import com.ibm.richtext.styledtext.MText; |
| import com.ibm.richtext.textformat.TextOffset; |
| |
| abstract class TextCommand extends Command { |
| static final String COPYRIGHT = |
| "(C) Copyright IBM Corp. 1998-1999 - All Rights Reserved"; |
| protected TextEditBehavior fBehavior; |
| protected MText fOriginalText; |
| protected int fAffectedRangeStart; |
| protected TextOffset fSelStartBefore; |
| protected TextOffset fSelEndBefore; |
| |
| public TextCommand(TextEditBehavior behavior, |
| MText originalText, |
| int affectedRangeStart, |
| TextOffset selStartBefore, |
| TextOffset selEndBefore) { |
| |
| fBehavior = behavior; |
| fOriginalText = originalText; |
| fAffectedRangeStart = affectedRangeStart; |
| fSelStartBefore = new TextOffset(); |
| fSelStartBefore.assign(selStartBefore); |
| fSelEndBefore = new TextOffset(); |
| fSelEndBefore.assign(selEndBefore); |
| } |
| |
| public abstract int affectedRangeEnd(); |
| |
| public void undo() { |
| fBehavior.doReplaceText(fAffectedRangeStart, affectedRangeEnd(), fOriginalText, |
| fSelStartBefore, fSelEndBefore); |
| } |
| } |