|
Oracle Fusion Middleware Java API Reference for Oracle Extension SDK Reference 11g Release 1 (11.1.1.9.0) E52944-01 |
|||||||||
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |
Contains classes for merge editor abstractions, including an editor addin, commands, a controller, and utilities.
See:
Description
Class Summary | |
---|---|
AbstractMergeAddin | Abstract class for a dynamically registered merge editor addin. |
AbstractMergeEditor | Abstract class for a dynamically registered merge editor. |
MergeContext | |
MergeController | Controller class for merge editor commands. |
MergeEngine | Facade/utility class for performing a merge operation and contructing a CompareModel instance from the result. |
MergeURLFileSystemHelper | Filesystem helper class for the "ide.merge" protocol used by merge node URLs. |
MergeUtil | Utilities class for merge editor consumers / providers. |
RestartMergeCommand | Command class for restarting an editor merge task (losing changes). |
SaveMergeCommand | Command class for saving editor merge results. |
TextMergeContributor | Textual merge compare contributor class, based around a TextBuffer . |
TextMergeEditor | Textual merge editor specialization class. |
TextMergeNode | Textual merge node class on which a TextMergeNodeContributor is created for an editable contributor to the merge UI. |
TextMergeNodeContributor | Textual merge compare contributor class, based around a TextMergeNode . |
Contains classes for merge editor abstractions, including an editor addin, commands, a controller, and utilities. Most importantly this package provides the basis for a textual, wedge-style component for 3-way merge.
Code examples
To create and register a merge editor addin:
import java.net.URL; import oracle.ide.editor.EditorManager; import oracle.jdeveloper.merge.AbstractMergeAddin; ... AbstractMergeAddin mergeEditorAddin = new AbstractMergeAddin( AcmeMergeEditor.class ) { protected boolean isEditorAvailable( URL url ) { ... } }; EditorManager.getEditorManager().registerDynamic( mergeEditorAddin );
To deregister and dispose a merge editor addin:
import oracle.ide.editor.EditorManager; import oracle.jdeveloper.merge.AbstractMergeAddin; ... AbstractMergeAddin mergeEditorAddin = ... ... EditorManager.getEditorManager().unregister( mergeEditorAddin ); mergeEditorAddin.closeEditors(); mergeEditorAddin = null;
Implementing a textual merge editor which builds and returns a model:
import java.io.IOException; import java.net.URL; import oracle.ide.addin.Context; import oracle.ide.net.URLFileSystem; import oracle.javatools.buffer.TextBuffer; import oracle.javatools.buffer.TextBufferFactory; import oracle.javatools.compare.algorithm.text.OffsetDifferenceBlock; import oracle.javatools.compare.algorithm.text.TextCompareContributor; import oracle.javatools.compare.algorithm.text.TextCompareModel; import oracle.jdeveloper.merge.TextMergeContributor; import oracle.jdeveloper.merge.TextMergeNodeContributor; import oracle.jdeveloper.merge.TextMergeEditor; import oracle.jdeveloper.merge.TextMergeNode; ... public class AcmeMergeEditor extends TextMergeEditor { protected TextCompareModel createTextMergeModel( Context context ) throws IOException { TextBuffer textBuffer1 = TextBufferFactory.createTextBuffer(); TextBuffer textBuffer2 = TextBufferFactory.createTextBuffer(); TextBuffer textBufferA = TextBufferFactory.createTextBuffer(); ... // Example initialization of a single difference block OffsetDifferenceBlock differenceBlock = new OffsetDifferenceBlock( OffsetDifferenceBlock.TYPE_CHANGE, textBuffer1, textBuffer2, textBufferA ); differenceBlock.setFirstStart( 1 ); differenceBlock.setSecondStart( 1 ); differenceBlock.setAncestorStart( 1 ); differenceBlock.setFirstLength( 2 ); differenceBlock.setSecondLength( 3 ); differenceBlock.setAncestorLength( 0 ); URL url = context.getDocument().getURL(); setTextMergeNode( new TextMergeNode( url, textBufferA ) ); TextCompareContributor contributor1 = new TextMergeContributor( textBuffer1, URLFileSystem.getSuffix( url ), "Source" ); TextCompareContributor contributor2 = new TextMergeContributor( textBuffer2, URLFileSystem.getSuffix( url ), "Target" ); TextCompareContributor contributorA = new TextMergeNodeContributor( getTextMergeNode(), "Result of Merge" ); return new TextCompareModel( contributor1, contributor2, contributorA, new OffsetDifferenceBlock[] { differenceBlock } ); } }
Implementing a command to make the merge editor of a document visible:
import java.io.IOException; import oracle.ide.Ide; import oracle.ide.addin.AbstractCommand; import oracle.ide.addin.Command; import oracle.jdeveloper.merge.MergeUtil; ... public class AcmeMergeCommand extends AbstractCommand { public static final int CMD_ID = Ide.findOrCreateCmdID( "AcmeMergeCommand" ); public AcmeMergeCommand() { super( AcmeMergeCommand.CMD_ID ); } public int doit() throws IOException { MergeUtil.reopenMergeEditor( getContext().getDocument(), AcmeMergeEditor.class ); return Command.OK; } }
|
Oracle Fusion Middleware Java API Reference for Oracle Extension SDK Reference 11g Release 1 (11.1.1.9.0) E52944-01 |
|||||||||
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |