blob: b12d1aa6ece9a3cd09b87f902e982c0633ccb6af [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2005, 2006 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.ltk.internal.ui.refactoring.model;
import org.eclipse.team.core.diff.IThreeWayDiff;
import org.eclipse.core.runtime.Assert;
import org.eclipse.core.runtime.PlatformObject;
import org.eclipse.ltk.core.refactoring.RefactoringDescriptorProxy;
import org.eclipse.ltk.internal.ui.refactoring.RefactoringPluginImages;
import org.eclipse.ltk.internal.ui.refactoring.RefactoringUIMessages;
import org.eclipse.swt.graphics.Image;
import org.eclipse.compare.CompareUI;
import org.eclipse.compare.ITypedElement;
import org.eclipse.compare.structuremergeviewer.ICompareInput;
import org.eclipse.compare.structuremergeviewer.ICompareInputChangeListener;
/**
* Compare input which represents a pending refactoring.
*
* @since 3.2
*/
public final class RefactoringDescriptorCompareInput extends PlatformObject implements ICompareInput {
/** Refactoring descriptor element */
private final class RefactoringDescriptorElement implements ITypedElement {
/**
* {@inheritDoc}
*/
public Image getImage() {
return RefactoringDescriptorCompareInput.this.getImage();
}
/**
* {@inheritDoc}
*/
public String getName() {
if (fDescriptor instanceof RefactoringDescriptorSynchronizationProxy) {
final RefactoringDescriptorSynchronizationProxy proxy= (RefactoringDescriptorSynchronizationProxy) fDescriptor;
if (proxy.getDirection() == IThreeWayDiff.INCOMING)
return ModelMessages.RefactoringDescriptorCompareInput_pending_refactoring;
else
return ModelMessages.RefactoringDescriptorCompareInput_performed_refactoring;
}
return RefactoringUIMessages.RefactoringWizard_refactoring;
}
/**
* {@inheritDoc}
*/
public String getType() {
return TYPE_REFACTORING_DESCRIPTOR;
}
}
/** Has the image already been registered? */
private static boolean fImageRegistered= false;
/** The refactoring descriptor type */
private static final String TYPE_REFACTORING_DESCRIPTOR= "refactoring_descriptor"; //$NON-NLS-1$
/** The refactoring descriptor */
private final RefactoringDescriptorProxy fDescriptor;
/** The differencer kind */
private final int fKind;
/**
* Creates a new refactoring descriptor compare input.
*
* @param descriptor
* the refactoring descriptor
* @param kind
* the differencer kind
*/
public RefactoringDescriptorCompareInput(final RefactoringDescriptorProxy descriptor, final int kind) {
Assert.isNotNull(descriptor);
fDescriptor= descriptor;
fKind= kind;
if (!fImageRegistered) {
CompareUI.registerImageDescriptor(TYPE_REFACTORING_DESCRIPTOR, RefactoringPluginImages.DESC_OBJS_REFACTORING);
fImageRegistered= true;
}
}
/**
* {@inheritDoc}
*/
public void addCompareInputChangeListener(final ICompareInputChangeListener listener) {
// Do nothing
}
/**
* {@inheritDoc}
*/
public void copy(final boolean leftToRight) {
// Do nothing
}
/**
* {@inheritDoc}
*/
public ITypedElement getAncestor() {
return new RefactoringDescriptorElement();
}
/**
* Returns the refactoring descriptor.
*
* @return the refactoring descriptor
*/
public RefactoringDescriptorProxy getDescriptor() {
return fDescriptor;
}
/**
* {@inheritDoc}
*/
public Image getImage() {
return CompareUI.getImage(TYPE_REFACTORING_DESCRIPTOR);
}
/**
* {@inheritDoc}
*/
public int getKind() {
return fKind;
}
/**
* {@inheritDoc}
*/
public ITypedElement getLeft() {
return new RefactoringDescriptorElement();
}
/**
* {@inheritDoc}
*/
public String getName() {
return fDescriptor.getDescription();
}
/**
* {@inheritDoc}
*/
public ITypedElement getRight() {
return new RefactoringDescriptorElement();
}
/**
* {@inheritDoc}
*/
public void removeCompareInputChangeListener(final ICompareInputChangeListener listener) {
// Do nothing
}
}