use of org.eclipse.wst.sse.core.internal.provisional.events.RegionsReplacedEvent in project webtools.sourceediting by eclipse.
the class BasicStructuredDocument method internalReplaceText.
/**
* @param requester
* @param start
* @param replacementLength
* @param changes
* @param modificationStamp
* @param ignoreReadOnlySettings
* @return
*/
private StructuredDocumentEvent internalReplaceText(Object requester, int start, int replacementLength, String changes, long modificationStamp, boolean ignoreReadOnlySettings) {
StructuredDocumentEvent result = null;
stopPostNotificationProcessing();
if (changes == null)
// $NON-NLS-1$
changes = "";
//
if (Debug.debugStructuredDocument)
// $NON-NLS-4$//$NON-NLS-3$//$NON-NLS-2$//$NON-NLS-1$
System.out.println(getClass().getName() + "::replaceText(" + start + "," + replacementLength + "," + changes + ")");
if (Debug.perfTestStructuredDocumentOnly || Debug.perfTest || Debug.perfTestRawStructuredDocumentOnly) {
startStreamTime = System.currentTimeMillis();
}
try {
// Note: event must be computed before 'fire' method called
fDocumentEvent = new DocumentEvent(this, start, replacementLength, changes);
fireDocumentAboutToChanged();
try {
acquireLock();
if (!ignoreReadOnlySettings && (containsReadOnly(start, replacementLength))) {
NoChangeEvent noChangeEvent = new NoChangeEvent(this, requester, changes, start, replacementLength);
noChangeEvent.reason = NoChangeEvent.READ_ONLY_STATE_CHANGE;
result = noChangeEvent;
} else {
result = updateModel(requester, start, replacementLength, changes);
}
} finally {
releaseLock();
}
if (Debug.perfTestRawStructuredDocumentOnly || Debug.perfTest) {
long stopStreamTime = System.currentTimeMillis();
// $NON-NLS-1$
System.out.println("\n\t\t\t\t Time for IStructuredDocument raw replaceText: " + (stopStreamTime - startStreamTime));
}
if (Debug.debugStructuredDocument) {
// $NON-NLS-1$
System.out.println("event type returned by replaceTextWithNoDebuggingThread: " + result);
}
} finally {
// increment modification stamp if modifications were made
if (result != null && !(result instanceof NoChangeEvent)) {
fModificationStamp = modificationStamp;
fNextModificationStamp = Math.max(fModificationStamp, fNextModificationStamp);
fDocumentEvent.fModificationStamp = fModificationStamp;
}
if (result == null) {
// result should not be null, but if an exception was thrown,
// it will be
// so send a noChangeEvent and log the problem
NoChangeEvent noChangeEvent = new NoChangeEvent(this, requester, changes, start, replacementLength);
noChangeEvent.reason = NoChangeEvent.NO_EVENT;
fireStructuredDocumentEvent(noChangeEvent);
// $NON-NLS-1$
Logger.log(Logger.ERROR, "Program Error: invalid structured document event");
} else {
if (result instanceof RegionChangedEvent) {
fireStructuredDocumentEvent((RegionChangedEvent) result);
} else {
if (result instanceof RegionsReplacedEvent) {
fireStructuredDocumentEvent((RegionsReplacedEvent) result);
} else {
if (result instanceof StructuredDocumentRegionsReplacedEvent) {
// probably more efficient to mark old regions as
// 'deleted' at the time
// that are determined to be deleted, but I'll do
// here
// in then central spot
// for programming ease.
updateDeletedFields((StructuredDocumentRegionsReplacedEvent) result);
fireStructuredDocumentEvent((StructuredDocumentRegionsReplacedEvent) result);
} else {
if (result instanceof NoChangeEvent) {
fireStructuredDocumentEvent((NoChangeEvent) result);
} else {
// if here, this means a new event was created
// and not handled here
// just send a no event until this issue is
// resolved.
NoChangeEvent noChangeEvent = new NoChangeEvent(this, requester, changes, start, replacementLength);
noChangeEvent.reason = NoChangeEvent.NO_EVENT;
fireStructuredDocumentEvent(noChangeEvent);
// $NON-NLS-1$
Logger.log(Logger.INFO, "Program Error: unexpected structured document event: " + result);
}
}
}
}
}
if (Debug.perfTest || Debug.perfTestStructuredDocumentOnly) {
long stopStreamTime = System.currentTimeMillis();
// $NON-NLS-1$
System.out.println("\n\t\t\t\t Total Time for IStructuredDocument event signaling/processing in replaceText: " + (stopStreamTime - startStreamTime));
}
resumePostNotificationProcessing();
}
return result;
}
use of org.eclipse.wst.sse.core.internal.provisional.events.RegionsReplacedEvent in project webtools.sourceediting by eclipse.
the class TestRegionsReplacedEvent method testGetNewRegions.
public void testGetNewRegions() {
RegionsReplacedEvent event = getBasicEvent();
assertNull(event.getNewRegions());
}
use of org.eclipse.wst.sse.core.internal.provisional.events.RegionsReplacedEvent in project webtools.sourceediting by eclipse.
the class TestRegionsReplacedEvent method testGetOldRegions.
public void testGetOldRegions() {
RegionsReplacedEvent event = getBasicEvent();
assertNull(event.getOldRegions());
}
use of org.eclipse.wst.sse.core.internal.provisional.events.RegionsReplacedEvent in project webtools.sourceediting by eclipse.
the class TestRegionsReplacedEvent method getBasicEvent.
private RegionsReplacedEvent getBasicEvent() {
IStructuredDocument document = StructuredDocumentFactory.getNewStructuredDocumentInstance(new NullParser());
document.setText(this, testString);
RegionsReplacedEvent event = new RegionsReplacedEvent(document, this, null, null, null, "", 0, 0);
return event;
}
use of org.eclipse.wst.sse.core.internal.provisional.events.RegionsReplacedEvent in project webtools.sourceediting by eclipse.
the class TestRegionsReplacedEvent method testGetStructuredDocumentRegion.
public void testGetStructuredDocumentRegion() {
RegionsReplacedEvent event = getBasicEvent();
assertNull(event.getStructuredDocumentRegion());
}
Aggregations