X-Git-Url: http://secure.phpeclipse.com diff --git a/net.sourceforge.phpeclipse.ui/src/net/sourceforge/phpdt/internal/ui/text/template/contentassist/InclusivePositionUpdater.java b/net.sourceforge.phpeclipse.ui/src/net/sourceforge/phpdt/internal/ui/text/template/contentassist/InclusivePositionUpdater.java deleted file mode 100644 index dcd7b5f..0000000 --- a/net.sourceforge.phpeclipse.ui/src/net/sourceforge/phpdt/internal/ui/text/template/contentassist/InclusivePositionUpdater.java +++ /dev/null @@ -1,107 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2004 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.template.contentassist; - -import org.eclipse.jface.text.BadPositionCategoryException; -import org.eclipse.jface.text.DocumentEvent; -import org.eclipse.jface.text.IPositionUpdater; -import org.eclipse.jface.text.Position; - -/** - * Position updater that takes any change in [position.offset, position.offset + - * position.length] as belonging to the position. - * - * @since 3.0 - */ -class InclusivePositionUpdater implements IPositionUpdater { - - /** The position category. */ - private final String fCategory; - - /** - * Creates a new updater for the given category. - * - * @param category - * the new category. - */ - public InclusivePositionUpdater(String category) { - fCategory = category; - } - - /* - * @see org.eclipse.jface.text.IPositionUpdater#update(org.eclipse.jface.text.DocumentEvent) - */ - public void update(DocumentEvent event) { - - int eventOffset = event.getOffset(); - int eventOldLength = event.getLength(); - int eventNewLength = event.getText() == null ? 0 : event.getText() - .length(); - int deltaLength = eventNewLength - eventOldLength; - - try { - Position[] positions = event.getDocument().getPositions(fCategory); - - for (int i = 0; i != positions.length; i++) { - - Position position = positions[i]; - - if (position.isDeleted()) - continue; - - int offset = position.getOffset(); - int length = position.getLength(); - int end = offset + length; - - if (offset > eventOffset + eventOldLength) - // position comes way - // after change - shift - position.setOffset(offset + deltaLength); - else if (end < eventOffset) { - // position comes way before change - - // leave alone - } else if (offset <= eventOffset - && end >= eventOffset + eventOldLength) { - // event completely internal to the position - adjust length - position.setLength(length + deltaLength); - } else if (offset < eventOffset) { - // event extends over end of position - adjust length - int newEnd = eventOffset + eventNewLength; - position.setLength(newEnd - offset); - } else if (end > eventOffset + eventOldLength) { - // event extends from before position into it - adjust - // offset - // and length - // offset becomes end of event, length ajusted acordingly - // we want to recycle the overlapping part - position.setOffset(eventOffset); - int deleted = eventOffset + eventOldLength - offset; - position.setLength(length - deleted + eventNewLength); - } else { - // event consumes the position - delete it - position.delete(); - } - } - } catch (BadPositionCategoryException e) { - // ignore and return - } - } - - /** - * Returns the position category. - * - * @return the position category - */ - public String getCategory() { - return fCategory; - } - -}