Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.text/projection/org/eclipse/jface/text/projection/FragmentUpdater.java')
-rw-r--r--org.eclipse.text/projection/org/eclipse/jface/text/projection/FragmentUpdater.java138
1 files changed, 0 insertions, 138 deletions
diff --git a/org.eclipse.text/projection/org/eclipse/jface/text/projection/FragmentUpdater.java b/org.eclipse.text/projection/org/eclipse/jface/text/projection/FragmentUpdater.java
deleted file mode 100644
index 1f13a39480d..00000000000
--- a/org.eclipse.text/projection/org/eclipse/jface/text/projection/FragmentUpdater.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*******************************************************************************
- * 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 org.eclipse.jface.text.projection;
-
-import org.eclipse.jface.text.BadLocationException;
-import org.eclipse.jface.text.BadPositionCategoryException;
-import org.eclipse.jface.text.DefaultPositionUpdater;
-import org.eclipse.jface.text.DocumentEvent;
-import org.eclipse.jface.text.IDocument;
-import org.eclipse.jface.text.Position;
-
-
-/**
- * The position updater used to adapt the fragments of a document. If an
- * insertion happens at a fragment's offset, the fragment is extended rather
- * than shifted. Also, the last fragment is extended if an insert operation
- * happens at the end of the fragment.
- * <p>
- * Internal class. Do not use. Only public for testing purposes.
- *
- * @since 3.0
- */
-public class FragmentUpdater extends DefaultPositionUpdater {
-
- /** Indicates whether the position being updated represents the last fragment. */
- private boolean fIsLast= false;
-
- /**
- * Creates the fragment updater for the given category.
- *
- * @param fragmentCategory the position category used for managing the fragments of a document
- */
- protected FragmentUpdater(String fragmentCategory) {
- super(fragmentCategory);
- }
-
- /*
- * @see org.eclipse.jface.text.IPositionUpdater#update(org.eclipse.jface.text.DocumentEvent)
- */
- public void update(DocumentEvent event) {
-
- try {
-
- Position[] category= event.getDocument().getPositions(getCategory());
-
- fOffset= event.getOffset();
- fLength= event.getLength();
- fReplaceLength= (event.getText() == null ? 0 : event.getText().length());
- fDocument= event.getDocument();
-
- for (int i= 0; i < category.length; i++) {
-
- fPosition= category[i];
- fIsLast= (i == category.length -1);
-
- fOriginalPosition.offset= fPosition.offset;
- fOriginalPosition.length= fPosition.length;
-
- if (notDeleted())
- adaptToReplace();
- }
-
- } catch (BadPositionCategoryException x) {
- // do nothing
- }
- }
-
- /*
- * @see org.eclipse.jface.text.DefaultPositionUpdater#adaptToInsert()
- */
- protected void adaptToInsert() {
- int myStart= fPosition.offset;
- int myEnd= Math.max(myStart, fPosition.offset + fPosition.length - (fIsLast || isAffectingReplace() ? 0 : 1));
-
- if (myEnd < fOffset)
- return;
-
- if (fLength <= 0) {
-
- if (myStart <= fOffset)
- fPosition.length += fReplaceLength;
- else
- fPosition.offset += fReplaceLength;
-
- } else {
-
- if (myStart <= fOffset && fOriginalPosition.offset <= fOffset)
- fPosition.length += fReplaceLength;
- else
- fPosition.offset += fReplaceLength;
- }
- }
-
- /**
- * Returns whether this updater considers any position affected by the given
- * document event. A position is affected if either the offset or the length
- * of the position is modified but the position is not just shifted.
- *
- * @param event the event
- * @return <code>true</code> if there is any affected position,
- * <code>false</code> otherwise
- */
- public boolean affectsPositions(DocumentEvent event) {
- IDocument document= event.getDocument();
- try {
-
- int index= document.computeIndexInCategory(getCategory(), event.getOffset());
- Position[] fragments= document.getPositions(getCategory());
-
- if (0 < index) {
- Position fragment= fragments[index - 1];
- if (fragment.overlapsWith(event.getOffset(), event.getLength()))
- return true;
- if (fragment.offset + fragment.length == event.getOffset())
- return index == fragments.length;
- }
-
- if (index < fragments.length) {
- Position fragment= fragments[index];
- return fragment.overlapsWith(event.getOffset(), event.getLength());
- }
-
- } catch (BadLocationException x) {
- } catch (BadPositionCategoryException x) {
- }
-
- return false;
- }
-}

Back to the top