| 
org.netbeans.modules.diff/1 1.18.0 42 | |||||||||
| PREV NEXT | FRAMES NO FRAMES | |||||||||
See:
          Description
| Diff | |
|---|---|
| org.netbeans.api.diff | |
| org.netbeans.spi.diff | |
Support to everything related to creation and visualization of diffs. This library allows registrations of various diff providers and visualizers and provides programatic access to their functionality.
DiffController class is a successor to DiffView interface that provides more features.
StreamSource provides more ways of defining the source (a FileObject) and can declare its editability.
A controler interface, that allows to programmatically control the diff component.
Class, that is used as a source of named streams for diff and merge stuff.
Service, that is used to resolve merge collisions.
From an action or wherever you like you can call this:
public void diff(final StreamSource local, final StreamSource remote){
    SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            try {
                DiffView view = Diff.getDefault().createDiff(local, remote);
                showDiff(view);
            } catch (IOException ex) {
                Logger.getLogger(ThisClass.class.getName()).throwing(ex);
            }
        }
    });
}
public void showDiff(final DiffView view){
    SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            //create our panel with our view
            //right now I am just going to use the diff component 
            // instead of a panel
            //create a topcomponent with our panel
            DiffTopComponent tc = new DiffTopComponent(view);
            tc.setName("MY_DIFF");
            tc.setDisplayName("Some display name");
            tc.open();
            tc.requestActive();
        }
    });
}
Here is a top component to display it:
public class DiffTopComponent extends TopComponent { /** Creates a new instance of DiffTopComponent */ public DiffTopComponent(Component diffPanel) { setLayout(new BorderLayout()); add(diffPanel, BorderLayout.CENTER); getAccessibleContext().setAccessibleName( NbBundle.getMessage(DiffTopComponent.class, "ACSN_Diff_Top_Component")); // NOI18N getAccessibleContext().setAccessibleDescription( NbBundle.getMessage(DiffTopComponent.class, "ACSD_Diff_Top_Component")); // NOI18N } public DiffTopComponent(DiffView view) { this(view.getComponent()); } public int getPersistenceType(){ return TopComponent.PERSISTENCE_NEVER; } protected String preferredID(){ return "DiffTopComponent"; //NOI18N } public HelpCtx getHelpCtx() { return new HelpCtx(getClass()); } }
  | 
  | 
The sources for the module are in NetBeans CVS in diff directory.
Read more about the implementation in the answers to architecture questions.
  | 
org.netbeans.modules.diff/1 1.18.0 42 | |||||||||
| PREV NEXT | FRAMES NO FRAMES | |||||||||