X-Git-Url: http://git.phpeclipse.com diff --git a/net.sourceforge.phpeclipse.ui/src/net/sourceforge/phpeclipse/ui/text/rules/MultiViewPartitioner.java b/net.sourceforge.phpeclipse.ui/src/net/sourceforge/phpeclipse/ui/text/rules/MultiViewPartitioner.java index 7f1ea61..4bd1a6c 100644 --- a/net.sourceforge.phpeclipse.ui/src/net/sourceforge/phpeclipse/ui/text/rules/MultiViewPartitioner.java +++ b/net.sourceforge.phpeclipse.ui/src/net/sourceforge/phpeclipse/ui/text/rules/MultiViewPartitioner.java @@ -8,7 +8,7 @@ * Contributors: * Igor Malinin - initial contribution * - * $Id: MultiViewPartitioner.java,v 1.3 2004-10-21 16:21:11 jsurfer Exp $ + * $Id: MultiViewPartitioner.java,v 1.7 2004-11-13 12:36:32 axelcl Exp $ */ package net.sourceforge.phpeclipse.ui.text.rules; @@ -116,11 +116,21 @@ public abstract class MultiViewPartitioner extends AbstractPartitioner { if (DEBUG) { Assert.isTrue(position.offset >= 0, Integer.toString(position.offset)); } - DocumentEvent event = new DocumentEvent(outerDocument, outerDocument.getLocalOffset(position.offset), position.length, null); - - outerDocument.fireDocumentAboutToBeChanged(event); + int outerOffset = outerDocument.getLocalOffset(position.offset); + // axelcl start + DocumentEvent event = null; + if (outerOffset>=0) { + // axelcl end + event = new DocumentEvent(outerDocument, outerOffset, position.length, null); + + outerDocument.fireDocumentAboutToBeChanged(event); + } super.addInnerRegion(position); - outerDocument.fireDocumentChanged(event); +// axelcl start + if (event != null) { + // axelcl end + outerDocument.fireDocumentChanged(event); + } } else { super.addInnerRegion(position); } @@ -147,15 +157,16 @@ public abstract class MultiViewPartitioner extends AbstractPartitioner { if (position.offset >= 0 && position.length >= 0) { int outerOffset = outerDocument.getLocalOffset(position.offset); if (outerOffset > 0) { - event = new DocumentEvent(outerDocument, outerOffset, 0, document.get( - position.offset, position.length)); + event = new DocumentEvent(outerDocument, outerOffset, 0, document.get(position.offset, position.length)); outerDocument.fireDocumentAboutToBeChanged(event); } } super.removeInnerRegion(position); if (position.offset >= 0) { - outerDocument.fireDocumentChanged(event); + if (event != null) { + outerDocument.fireDocumentChanged(event); + } } } else { super.removeInnerRegion(position); @@ -425,7 +436,13 @@ public abstract class MultiViewPartitioner extends AbstractPartitioner { */ public ITypedRegion[] computePartitioning(int offset, int length) { List list = new ArrayList(); - +// if (DEBUG) { +// System.out.print("MultiViewPartitioner::computePartitioning - Offset: "); +// System.out.print(offset); +// System.out.print(", Length: "); +// System.out.print(length); +// System.out.println(""); +// } int end = offset + length; int index = computeFlatNodeIndex(offset); @@ -454,10 +471,33 @@ public abstract class MultiViewPartitioner extends AbstractPartitioner { ++index; } - +// if (DEBUG) { +// showList(list); +// } + return (TypedRegion[]) list.toArray(new TypedRegion[list.size()]); } + private void showList(List list) { + try { + throw new NullPointerException(); + } catch (Exception e){ + e.printStackTrace(); + } + System.out.println(">>>>>List start"); + TypedRegion temp; + for (int i = 0; i < list.size(); i++) { + temp = (TypedRegion)list.get(i); + System.out.print("Offset: "); + System.out.print(temp.getOffset()); + System.out.print(", Length: "); + System.out.print(temp.getLength()); + System.out.print(", Type: "); + System.out.print(temp.getType()); + System.out.println(""); + } + System.out.println("<<<<