public class DiffNode extends DiffContainer implements ICompareInput
ITypedElement
and ICompareInput
interfaces it can be used directly to display the
compare result in a DiffTreeViewer
and as the input to any other
compare/merge viewer.
DiffNode
s are typically created as the result of performing
a compare with the Differencer
.
Clients typically use this class as is, but may subclass if required.
DiffTreeViewer
,
Differencer
FOLDER_TYPE, TEXT_TYPE, UNKNOWN_TYPE
Constructor and Description |
---|
DiffNode(IDiffContainer parent,
int kind)
Creates a new
DiffNode and initializes with the given values. |
DiffNode(IDiffContainer parent,
int kind,
ITypedElement ancestor,
ITypedElement left,
ITypedElement right)
Creates a new
DiffNode and initializes with the given values. |
DiffNode(int kind)
Creates a new
DiffNode with the given diff kind. |
DiffNode(int kind,
ITypedElement ancestor,
ITypedElement left,
ITypedElement right)
Creates a new
DiffNode and initializes with the given values. |
DiffNode(ITypedElement left,
ITypedElement right)
Creates a new
DiffNode with diff kind Differencer.CHANGE
and initializes with the given values. |
Modifier and Type | Method and Description |
---|---|
void |
addCompareInputChangeListener(ICompareInputChangeListener listener)
Registers a listener for changes of this
ICompareInput . |
void |
copy(boolean leftToRight)
Copy one side (source) to the other side (destination) depending on the
value of
leftToRight . |
boolean |
dontExpand()
Returns
true if this node shouldn't automatically be expanded in
a DiffTreeViewer. |
boolean |
equals(Object other) |
protected void |
fireChange()
Sends out notification that a change has occurred on the
ICompareInput . |
ITypedElement |
getAncestor()
Returns the ancestor side of this input.
|
ITypedElement |
getId()
Returns the first not-
null input of this node. |
Image |
getImage()
The
DiffElement implementation of this ITypedInput
method returns null . |
ITypedElement |
getLeft()
Returns the left side of this input.
|
String |
getName()
Returns the (non-
null ) name of the left or right side if they are identical. |
ITypedElement |
getRight()
Returns the right side of this input.
|
String |
getType()
The
DiffElement implementation of this ITypedElement
method returns ITypedElement.UNKNOWN_TYPE . |
int |
hashCode() |
void |
removeCompareInputChangeListener(ICompareInputChangeListener listener)
Unregisters a
ICompareInput listener. |
void |
setAncestor(ITypedElement ancestor)
Sets the ancestor input to the given value.
|
void |
setDontExpand(boolean dontExpand)
Controls whether this node is not automatically expanded when displayed in
a DiffTreeViewer.
|
void |
setLeft(ITypedElement left)
Sets the left input to the given value.
|
void |
setRight(ITypedElement right)
Sets the right input to the given value.
|
add, findChild, getChildren, hasChildren, remove, removeToRoot
getKind, getParent, setKind, setParent
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
getKind
getKind, getParent, setParent
public DiffNode(IDiffContainer parent, int kind, ITypedElement ancestor, ITypedElement left, ITypedElement right)
DiffNode
and initializes with the given values.parent
- under which the new container is added as a child or null
kind
- of difference (defined in Differencer
)ancestor
- the common ancestor input to a compareleft
- the left input to a compareright
- the right input to a comparepublic DiffNode(ITypedElement left, ITypedElement right)
DiffNode
with diff kind Differencer.CHANGE
and initializes with the given values.left
- the left input to a compareright
- the right input to a comparepublic DiffNode(int kind, ITypedElement ancestor, ITypedElement left, ITypedElement right)
DiffNode
and initializes with the given values.kind
- of difference (defined in Differencer
)ancestor
- the common ancestor input to a compareleft
- the left input to a compareright
- the right input to a comparepublic DiffNode(int kind)
DiffNode
with the given diff kind.kind
- of difference (defined in Differencer
)public DiffNode(IDiffContainer parent, int kind)
DiffNode
and initializes with the given values.parent
- under which the new container is added as a child or null
kind
- of difference (defined in Differencer
)public void addCompareInputChangeListener(ICompareInputChangeListener listener)
ICompareInput
.
Has no effect if an identical listener is already registered.addCompareInputChangeListener
in interface ICompareInput
listener
- the listener to addpublic void removeCompareInputChangeListener(ICompareInputChangeListener listener)
ICompareInput
listener.
Has no effect if listener is not registered.removeCompareInputChangeListener
in interface ICompareInput
listener
- the listener to removeprotected void fireChange()
ICompareInput
.public boolean dontExpand()
true
if this node shouldn't automatically be expanded in
a DiffTreeViewer.true
if node shouldn't automatically be expandedpublic void setDontExpand(boolean dontExpand)
dontExpand
- if true
this node is not automatically expanded in DiffTreeViewerpublic ITypedElement getId()
null
input of this node.
Method checks the three inputs in the order: ancestor, right, left.null
input of this nodepublic String getName()
null
) name of the left or right side if they are identical.
Otherwise both names are concatenated (separated with a slash ('/')).
Subclasses may re-implement to provide a different name for this node.
getName
in interface ITypedElement
getName
in interface ICompareInput
public Image getImage()
DiffElement
DiffElement
implementation of this ITypedInput
method returns null
. Subclasses may re-implement to provide
an image for this element.getImage
in interface ITypedElement
getImage
in interface ICompareInput
getImage
in class DiffElement
null
.public String getType()
DiffElement
DiffElement
implementation of this ITypedElement
method returns ITypedElement.UNKNOWN_TYPE
. Subclasses may
re-implement to provide a type for this element.getType
in interface ITypedElement
getType
in class DiffElement
ITypedElement.UNKNOWN_TYPE
.public void setAncestor(ITypedElement ancestor)
ancestor
- the new value for the ancestor inputpublic ITypedElement getAncestor()
ICompareInput
null
if this input has no ancestor
or in the two-way compare case.getAncestor
in interface ICompareInput
null
public void setLeft(ITypedElement left)
left
- the new value for the left inputpublic ITypedElement getLeft()
ICompareInput
null
if there is no left side (deletion or addition).getLeft
in interface ICompareInput
null
public void setRight(ITypedElement right)
right
- the new value for the right inputpublic ITypedElement getRight()
ICompareInput
null
if there is no right side (deletion or addition).getRight
in interface ICompareInput
null
public void copy(boolean leftToRight)
ICompareInput
leftToRight
. This method is called from
a merge viewer if a corresponding action ("take left" or "take right")
has been pressed.
The implementation should handle the following cases:
null
the destination must be deleted,
null
the destination must be created
and filled with the contents from the source,
null
the contents of source must be copied to destination.
ICompareInputChangeListener
.copy
in interface ICompareInput
leftToRight
- if true
the left side is copied to the right side.
If false
the right side is copied to the left side
Copyright (c) 2000, 2014 Eclipse Contributors and others. All rights reserved.Guidelines for using Eclipse APIs.