/*******************************************************************************
* Copyright (c) 2008, 2012 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.bpel.compare.ui.gef.bpel;
import java.util.HashMap;
import java.util.Iterator;
import org.eclipse.bpel.compare.ui.gef.mergeviewer.GEFContentMergeViewer;
import org.eclipse.bpel.model.Process;
import org.eclipse.bpel.ui.BPELEditDomain;
import org.eclipse.bpel.ui.ScrollingBPELGraphicalViewer;
import org.eclipse.bpel.ui.editparts.FlowEditPart;
import org.eclipse.compare.CompareConfiguration;
import org.eclipse.compare.CompareUI;
import org.eclipse.draw2d.ColorConstants;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.swt.widgets.Composite;
public class BPELContentMergeViewer extends GEFContentMergeViewer {
private static HashMap<BPELCompareEditPartFactory, BPELContentMergeViewer>
uiFactory2mergeViewer =
new HashMap<BPELCompareEditPartFactory, BPELContentMergeViewer>();
public static BPELContentMergeViewer getBPELContentMergeViewer(
BPELCompareEditPartFactory uiFactory) {
return uiFactory2mergeViewer.get(uiFactory);
}
protected BPELContentMergeViewer(Composite parent, CompareConfiguration cc) {
super(parent, cc);
getControl().setData(CompareUI.COMPARE_VIEWER_TITLE,
"BPEL Processes Compare");
}
@Override
public void updateContent(EObject modelAncestor, EObject modelLeft,
EObject modelRight) {
BPELEditDomain bpelEditDomain = new BPELEditDomain(null);
bpelEditDomain.setProcess((Process)modelLeft);
viewerLeft.setEditDomain(bpelEditDomain);
BPELCompareEditPartFactory uiFactory = new BPELCompareEditPartFactory();
viewerLeft.setEditPartFactory(uiFactory);
uiFactory2mergeViewer.put(uiFactory, this);
// viewer_left.setRootEditPart(new DiagramRootEditPart(diag_left.getMeasurementUnit()));
viewerLeft.setContents(modelLeft);
bpelEditDomain = new BPELEditDomain(null);
bpelEditDomain.setProcess((Process) modelRight);
viewerRight.setEditDomain(bpelEditDomain);
viewerRight.setEditPartFactory(uiFactory);
viewerRight.setContents(modelRight);
if (modelAncestor != null) {
bpelEditDomain = new BPELEditDomain(null);
bpelEditDomain.setProcess((Process) modelAncestor);
viewerAncestor.setEditDomain(bpelEditDomain);
viewerAncestor.setEditPartFactory(uiFactory);
viewerAncestor.setContents(modelAncestor);
}
}
@Override
public void initializeViewers(Composite composite) {
viewerLeft = new ScrollingBPELGraphicalViewer();
viewerLeft.createControl(composite);
viewerLeft.getControl().setBackground(ColorConstants.listBackground);
viewerRight = new ScrollingBPELGraphicalViewer();
viewerRight.createControl(composite);
viewerRight.getControl().setBackground(ColorConstants.listBackground);
viewerAncestor = new ScrollingBPELGraphicalViewer();
viewerAncestor.createControl(composite);
viewerAncestor.getControl().setBackground(ColorConstants.listBackground);
}
}