package org.eclipse.ecf.tests.sync;
import org.eclipse.ecf.sync.IModelChange;
import org.eclipse.ecf.sync.IModelChangeMessage;
import org.eclipse.ecf.sync.IModelSynchronizationStrategy;
import org.eclipse.ecf.sync.doc.DocumentChangeMessage;
import org.eclipse.jface.text.Document;
public class Initiator extends Thread {
private Document fDocument;
private SimpleMessageQueue queue;
private SimpleMessageQueue receiverQueue;
private IModelSynchronizationStrategy initiator;
public Initiator(IModelSynchronizationStrategy initiator, Document document) {
this.setInitiator(initiator);
this.queue = new SimpleMessageQueue();
fDocument = document;
}
public void run() {
for (int i = 0; i < 10; i++) {
String text = fDocument.get();
String newText = ">";
text = text.concat(newText);
fDocument.set(text);
IModelChange change = new DocumentChangeMessage(i + 150, newText.length(), newText);
IModelChangeMessage[] changes = initiator.registerLocalChange(change);
getReceiverQueue().put(changes);
}
}
protected void setInitiator(IModelSynchronizationStrategy initiator) {
this.initiator = initiator;
}
public IModelSynchronizationStrategy getInitiator() {
return initiator;
}
public void setDocument(Document document) {
this.fDocument = document;
}
public Document getDocument() {
return fDocument;
}
public SimpleMessageQueue getQueue() {
return queue;
}
public void setReceiverQueue(SimpleMessageQueue receiverQueue) {
this.receiverQueue = receiverQueue;
}
public SimpleMessageQueue getReceiverQueue() {
return receiverQueue;
}
}