blob: 8636d0a276eee18ba6bed9dcc6b3d03d02299079 [file] [log] [blame]
/*
* Created on Jun 3, 2009
*
* PLACE_YOUR_DISTRIBUTION_STATEMENT_RIGHT_HERE
*/
package org.eclipse.osee.framework.ui.skynet.compare;
import java.lang.reflect.Field;
import org.eclipse.compare.CompareConfiguration;
import org.eclipse.compare.CompareEditorInput;
import org.eclipse.compare.CompareViewerSwitchingPane;
import org.eclipse.compare.structuremergeviewer.DiffNode;
import org.eclipse.compare.structuremergeviewer.Differencer;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
/**
* @author b1565043
*/
public class CompareInput extends CompareEditorInput {
private static final String CONFIRM_SAVE_PROPERTY = "org.eclipse.compare.internal.CONFIRM_SAVE_PROPERTY";
private Object differences;
private CompareItem left;
private CompareItem right;
/*
*
*
*
*
CompareConfiguration compareConfiguration = new CompareConfiguration();
compareConfiguration.setLeftEditable(true);
compareConfiguration.setRightEditable(false);
CompareUI.openCompareEditor(new CompareInput(compareConfiguration));
*/
public CompareInput(CompareConfiguration compareConfiguration) {
super(compareConfiguration);
getCompareConfiguration().setProperty(CONFIRM_SAVE_PROPERTY, Boolean.FALSE);
}
protected Object prepareInput(IProgressMonitor pm) {
initTitle();
CompareItem ancestor = new CompareItem("Common", "contents", System.currentTimeMillis());
left = new CompareItem("Left", "new contents 23\nhi\nbye", System.currentTimeMillis());
right = new CompareItem("Right", "old contents 21\nhi\ntry", System.currentTimeMillis());
Differencer differencer = new Differencer();
differences = differencer.findDifferences(true, pm, null, ancestor, left, right);
// MergeNode mergeNode = new MergeNode(null, Differencer.CONFLICTING,
// ancestor, left, right);
return differences;
}
private void initTitle() {
CompareConfiguration cc = getCompareConfiguration();
String nameLeft = "Left Object";
String nameRight = "Right Object";
if (nameLeft.equals(nameRight)) {
nameLeft = "Left object";
nameRight = "Right Object";
}
cc.setLeftLabel(nameLeft);
// cc.setLeftImage(Artifact.getOverrideImage());
cc.setRightLabel(nameRight);
// cc.setRightImage(Artifact.getOverrideImage());
// cc.setLeftEditable(true);
// cc.setRightEditable(true);
setTitle("Compare (" + nameLeft + " - " + nameRight + ")");
}
/* (non-Javadoc)
* @see org.eclipse.compare.CompareEditorInput#isEditionSelectionDialog()
*/
@Override
public boolean isEditionSelectionDialog() {
return super.isEditionSelectionDialog();
}
/* (non-Javadoc)
* @see org.eclipse.compare.CompareEditorInput#isSaveNeeded()
*/
@Override
public boolean isSaveNeeded() {
return super.isSaveNeeded();
}
/* (non-Javadoc)
* @see org.eclipse.compare.CompareEditorInput#saveChanges(org.eclipse.core.runtime.IProgressMonitor)
*/
@Override
public void saveChanges(IProgressMonitor monitor) throws CoreException {
super.saveChanges(monitor);
if (differences instanceof DiffNode) {
try {
// boolean result = commit(monitor, (DiffNode) differences);
// let the UI re-compare here on changed inputs
if (true) {
}
} finally {
setDirty(false);
}
}
}
public CompareViewerSwitchingPane getInputPane() {
try {
Field field = CompareEditorInput.class.getDeclaredField("fContentInputPane");
field.setAccessible(true);
Object object = field.get(this);
if (object instanceof CompareViewerSwitchingPane) {
return (CompareViewerSwitchingPane) object;
}
} catch (Throwable e) {
// ignore
}
return null;
}
/* (non-Javadoc)
* @see org.eclipse.compare.CompareEditorInput#isDirty()
*/
@Override
public boolean isDirty() {
return super.isDirty();
}
/* (non-Javadoc)
* @see org.eclipse.compare.CompareEditorInput#save(org.eclipse.core.runtime.IProgressMonitor)
*/
@Override
public void save(IProgressMonitor pm) {
super.save(pm);
}
}