Class TextEditBasedChange

    • Constructor Detail

      • TextEditBasedChange

        protected TextEditBasedChange​(String name)
        Creates a new abstract text edit change with the specified name. The name is a human-readable value that is displayed to users. The name does not need to be unique, but it must not be null.

        The text type of this text edit change is set to txt.

        Parameters:
        name - the name of the text edit change
        See Also:
        setTextType(String)
    • Method Detail

      • addChangeGroup

        public void addChangeGroup​(TextEditBasedChangeGroup group)
        Adds a text edit change group. The edits managed by the given text edit change group must be part of the change's root edit.
        Parameters:
        group - the text edit change group to add
      • addTextEditGroup

        public void addTextEditGroup​(TextEditGroup group)
        Adds a text edit group. This method is a convenience method for calling change.addChangeGroup(new TextEditBasedChangeGroup(change, group));.
        Parameters:
        group - the text edit group to add
      • hasOneGroupCategory

        public boolean hasOneGroupCategory​(List<GroupCategory> groupCategories)
        Returns true if the change has one of the given group categories. Otherwise false is returned.
        Parameters:
        groupCategories - the group categories to check
        Returns:
        whether the change has one of the given group categories
        Since:
        3.2
      • getCurrentContent

        public abstract String getCurrentContent​(IProgressMonitor pm)
                                          throws CoreException
        Returns the current content of the document this text change is associated with.
        Parameters:
        pm - a progress monitor to report progress or null if no progress reporting is desired
        Returns:
        the current content of the text edit change
        Throws:
        CoreException - if the content can't be accessed
      • getCurrentContent

        public abstract String getCurrentContent​(IRegion region,
                                                 boolean expandRegionToFullLine,
                                                 int surroundingLines,
                                                 IProgressMonitor pm)
                                          throws CoreException
        Returns the current content of the text edit change clipped to a specific region. The region is determined as follows:
        • if expandRegionToFullLine is false then the parameter region determines the clipping.
        • if expandRegionToFullLine is true then the region determined by the parameter region is extended to cover full lines.
        • if surroundingLines > 0 then the given number of surrounding lines is added. The value of surroundingLines is only considered if expandRegionToFullLine is true
        Parameters:
        region - the starting region for the text to be returned
        expandRegionToFullLine - if true is passed the region is extended to cover full lines
        surroundingLines - the number of surrounding lines to be added to the clipping region. Is only considered if expandRegionToFullLine is true
        pm - a progress monitor to report progress or null if no progress reporting is desired
        Returns:
        the current content of the text edit change clipped to a region determined by the given parameters.
        Throws:
        CoreException - if an exception occurs while accessing the current content
      • getKeepPreviewEdits

        public boolean getKeepPreviewEdits()
        Returns whether preview edits are remembered for further region tracking or not.
        Returns:
        true if executed text edits are remembered during preview generation; otherwise false
      • getName

        public String getName()
        Description copied from class: Change
        Returns the human readable name of this change. The name MUST not be null.
        Specified by:
        getName in class Change
        Returns:
        the human readable name of this change
      • getPreviewContent

        public abstract String getPreviewContent​(TextEditBasedChangeGroup[] changeGroups,
                                                 IRegion region,
                                                 boolean expandRegionToFullLine,
                                                 int surroundingLines,
                                                 IProgressMonitor pm)
                                          throws CoreException
        Returns a preview of the text edit change clipped to a specific region. The preview is created by applying the text edits managed by the given array of text edit change groups. The region is determined as follows:
        • if expandRegionToFullLine is false then the parameter region determines the clipping.
        • if expandRegionToFullLine is true then the region determined by the parameter region is extended to cover full lines.
        • if surroundingLines > 0 then the given number of surrounding lines is added. The value of surroundingLines is only considered if expandRegionToFullLine is true
        Parameters:
        changeGroups - a set of change groups for which a preview is to be generated
        region - the starting region for the clipping
        expandRegionToFullLine - if true is passed the region is extended to cover full lines
        surroundingLines - the number of surrounding lines to be added to the clipping region. Is only considered if expandRegionToFullLine is true
        pm - a progress monitor to report progress or null if no progress reporting is desired
        Returns:
        the current content of the text change clipped to a region determined by the given parameters.
        Throws:
        CoreException - if an exception occurs while generating the preview
        See Also:
        getCurrentContent(IRegion, boolean, int, IProgressMonitor)
      • getPreviewContent

        public abstract String getPreviewContent​(IProgressMonitor pm)
                                          throws CoreException
        Returns the preview content as a string.
        Parameters:
        pm - a progress monitor to report progress or null if no progress reporting is desired
        Returns:
        the preview
        Throws:
        CoreException - if the preview can't be created
      • getTextType

        public String getTextType()
        Returns the text edit change's text type.
        Returns:
        the text edit change's text type
      • setEnabled

        public void setEnabled​(boolean enabled)
        Description copied from class: Change
        Sets whether this change is enabled or not.
        Overrides:
        setEnabled in class Change
        Parameters:
        enabled - true to enable this change; false otherwise
      • setKeepPreviewEdits

        public void setKeepPreviewEdits​(boolean keep)
        Controls whether the text edit change should keep executed edits during preview generation.
        Parameters:
        keep - if true executed preview edits are kept
      • setTextType

        public void setTextType​(String type)
        Sets the text type. The text type is used to determine the content merge viewer used to present the difference between the original and the preview content in the user interface. Content merge viewers are defined via the extension point org.eclipse.compare.contentMergeViewers.

        The default text type is txt.

        Parameters:
        type - the text type. If null is passed the text type is reseted to the default text type txt.