Class StructureRootNode
java.lang.Object
org.eclipse.compare.structuremergeviewer.DocumentRangeNode
org.eclipse.compare.structuremergeviewer.StructureRootNode
- All Implemented Interfaces:
IDocumentRange,IEditableContent,IEditableContentExtension,IEncodedStreamContentAccessor,IStreamContentAccessor,ITypedElement,IStructureComparator,IAdaptable,IDisposable
A node that acts as the root of the tree returned from a
StructureCreator. This node performs the following tasks tasks:
- It adapts to an
ISharedDocumentAdapterthat provides the proper document key (seegetAdapter(Class)). - It invokes
IStructureCreator.save(IStructureComparator, Object)whennodeChanged(DocumentRangeNode)is called. - It disposes of the
IDisposableprovided in the constructor whendispose()is called.
This class may be subclassed by clients.
- Since:
- 3.3
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringThe string constant (value"root") that is used as the id of the root node.static final intThe integer constant (value0) that is used as the type code of the root node.Fields inherited from interface org.eclipse.compare.contentmergeviewer.IDocumentRange
RANGE_CATEGORYFields inherited from interface org.eclipse.compare.ITypedElement
FOLDER_TYPE, TEXT_TYPE, UNKNOWN_TYPE -
Constructor Summary
ConstructorsConstructorDescriptionStructureRootNode(IDocument document, Object input, StructureCreator creator, ISharedDocumentAdapter adapter) Create the structure root node. -
Method Summary
Modifier and TypeMethodDescriptionvoiddispose()Disposes of this service.<T> TgetAdapter(Class<T> adapter) OverrideIAdaptable.getAdapter(Class)in order to provide anISharedDocumentAdapterthat provides the proper look up key based on the input from which this structure node was created.getImage()Returns an image for this object.getName()Returns the name of this object.getType()Returns the type of this object.booleanReturn whether the typed element being displayed is read-only. a read-only element will require a call to validateEdit before the element can be modified on disk.protected voidnodeChanged(DocumentRangeNode node) Override in order to invokeIStructureCreator.save(IStructureComparator, Object)when the contents of a node have changed.replace(ITypedElement child, ITypedElement other) This method is called on a parent to add or remove a child, or to copy the contents of a child.validateEdit(Shell shell) If the element is read-only, this method should be called to attempt to make it writable.Methods inherited from class org.eclipse.compare.structuremergeviewer.DocumentRangeNode
addChild, equals, getAppendPosition, getCharset, getChildren, getContents, getDocument, getId, getParentNode, getRange, getTypeCode, hashCode, internalSetContents, isEditable, setAppendPosition, setContent, setId, setLength
-
Field Details
-
ROOT_TYPE
public static final int ROOT_TYPEThe integer constant (value0) that is used as the type code of the root node.- See Also:
-
ROOT_ID
The string constant (value"root") that is used as the id of the root node.- See Also:
-
-
Constructor Details
-
Method Details
-
dispose
public void dispose()Description copied from interface:IDisposableDisposes of this service. All resources must be freed. All listeners must be detached. Dispose will only be called once during the life cycle of a service.- Specified by:
disposein interfaceIDisposable
-
getAdapter
OverrideIAdaptable.getAdapter(Class)in order to provide anISharedDocumentAdapterthat provides the proper look up key based on the input from which this structure node was created.- Specified by:
getAdapterin interfaceIAdaptable- Overrides:
getAdapterin classDocumentRangeNode- Type Parameters:
T- the class type- Parameters:
adapter- the adapter class to look up- Returns:
- the object adapted to the given class or
null - See Also:
-
nodeChanged
Override in order to invokeIStructureCreator.save(IStructureComparator, Object)when the contents of a node have changed.- Overrides:
nodeChangedin classDocumentRangeNode- Parameters:
node- the changed node
-
replace
Description copied from interface:IEditableContentThis method is called on a parent to add or remove a child, or to copy the contents of a child. What to do is encoded in the two arguments as follows:add: dest == null src != null remove: dest != null src == null copy: dest != null src != null - Specified by:
replacein interfaceIEditableContent- Overrides:
replacein classDocumentRangeNode- Parameters:
child- the existing child of this object to be replaced; ifnulla new child can be added.other- the new child to be added or replaced; ifnullan existing child can be removed.- Returns:
- the argument
dest
-
getImage
Description copied from interface:ITypedElementReturns an image for this object. This image is used when displaying this object in the UI.- Specified by:
getImagein interfaceITypedElement- Returns:
- the image of this object or
nullif this type of input has no image
-
getName
Description copied from interface:ITypedElementReturns the name of this object. The name is used when displaying this object in the UI.- Specified by:
getNamein interfaceITypedElement- Returns:
- the name of this object
-
getType
Description copied from interface:ITypedElementReturns the type of this object. For objects with a file name this is typically the file extension. For folders its the constantFOLDER_TYPE. The type is used for determining a suitable viewer for this object.- Specified by:
getTypein interfaceITypedElement- Returns:
- the type of this object
-
isReadOnly
public boolean isReadOnly()Description copied from interface:IEditableContentExtensionReturn whether the typed element being displayed is read-only. a read-only element will require a call to validateEdit before the element can be modified on disk.- Specified by:
isReadOnlyin interfaceIEditableContentExtension- Overrides:
isReadOnlyin classDocumentRangeNode- Returns:
- whether the typed element is read-only
-
validateEdit
Description copied from interface:IEditableContentExtensionIf the element is read-only, this method should be called to attempt to make it writable.- Specified by:
validateEditin interfaceIEditableContentExtension- Overrides:
validateEditin classDocumentRangeNode- Parameters:
shell- a shell used to prompt the user if required.- Returns:
- a status object that is
OKif things are fine, otherwise a status describing reasons why modifying the given files is not reasonable. A status with a severity ofCANCELis returned if the validation was canceled, indicating the edit should not proceed.
-