| /******************************************************************************* |
| * 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 |
| } |
| } |