/** * This file is licensed under the University of Illinois/NCSA Open Source License. See LICENSE.TXT for details. */ package edu.illinois.codingtracker.operations.conflicteditors; import org.eclipse.compare.CompareUI; import org.eclipse.compare.internal.CompareEditor; import org.eclipse.core.resources.IResource; import org.eclipse.core.runtime.Path; import edu.illinois.codingtracker.compare.helpers.EditorHelper; import edu.illinois.codingtracker.helpers.ResourceHelper; import edu.illinois.codingtracker.operations.OperationLexer; import edu.illinois.codingtracker.operations.OperationSymbols; import edu.illinois.codingtracker.operations.OperationTextChunk; /** * * @author Stas Negara * */ @SuppressWarnings("restriction") public class OpenedConflictEditorOperation extends ConflictEditorOperation { private String editedFilePath; private String initialContent; public OpenedConflictEditorOperation() { super(); } public OpenedConflictEditorOperation(String editorID, String editedFilePath, String initialContent) { super(editorID); this.editedFilePath= editedFilePath; this.initialContent= initialContent; } @Override protected char getOperationSymbol() { return OperationSymbols.CONFLICT_EDITOR_OPENED_SYMBOL; } @Override public String getDescription() { return "Opened conflict editor"; } @Override protected void populateTextChunk(OperationTextChunk textChunk) { super.populateTextChunk(textChunk); textChunk.append(editedFilePath); textChunk.append(initialContent); } @Override protected void initializeFrom(OperationLexer operationLexer) { super.initializeFrom(operationLexer); editedFilePath= operationLexer.readString(); initialContent= operationLexer.readString(); } @Override public void replay() { IResource editedFile= ResourceHelper.findWorkspaceMember(new Path(editedFilePath)); ResourceHelper.checkResourceExists(editedFile, "Conflict editor file does not exist: " + this); CompareUI.openCompareEditor(new DocumentCompareEditorInput(editedFile, initialContent)); EditorHelper.addCompareEditor(editorID, (CompareEditor)EditorHelper.getActiveEditor()); } @Override public String toString() { StringBuffer sb= new StringBuffer(); sb.append("File path: " + editedFilePath + "\n"); sb.append("Initial content: " + initialContent + "\n"); sb.append(super.toString()); return sb.toString(); } }