package org.simantics.interop.update.editor;
+import org.eclipse.ui.PartInitException;
import org.simantics.db.Resource;
import org.simantics.db.layer0.variable.RVI;
import org.simantics.ui.workbench.ResourceEditorInput2;
+import org.simantics.utils.ui.workbench.WorkbenchUtils;
/**
* Editor input for ModelUpdateEditor
*/
public class UpdateEditorInput extends ResourceEditorInput2{
+ private String editorID;
private Resource r1;
private Resource r2;
+ private Resource r3;
+ private boolean newDistinct = false;
- public UpdateEditorInput(String editorID, Resource r1, Resource r2, Resource model, RVI rvi) {
- super(editorID, r1, model, rvi);
+
+ public UpdateEditorInput(String editorID, Resource r1, Resource r2, RVI rvi) {
+ this(editorID, r1, r2, null,rvi);
+ }
+
+ /**
+ *
+ * @param editorID
+ * @param r1 old model that is being updated
+ * @param r2 new model containing the changes that we want to apply
+ * @param r3 original model to detect user mace changes to the old model r1. This parameter can be
+ * @param rvi
+ */
+ public UpdateEditorInput(String editorID, Resource r1, Resource r2, Resource r3, RVI rvi) {
+ super(editorID, r1, r1, rvi);
this.r1 = r1;
this.r2 = r2;
+ this.r3 = r3;
+ this.editorID = editorID;
}
public Resource getR1() {
return r2;
}
+ public Resource getR3() {
+ return r3;
+ }
+
+
+ public void openEditor() throws PartInitException {
+ WorkbenchUtils.openEditor(editorID, this);
+ }
+
+ // With tree-way comparison, treat new resources for compared old and new models as distinct.
+ // default : false. Comparison may consider that new objects in models r1 and r2 are the same.
+ public boolean isNewDistinct() {
+ return newDistinct;
+ }
+
+ public void setNewDistinct(boolean newDistinct) {
+ this.newDistinct = newDistinct;
+ }
}