Note: These pages are being reviewed.
I want to make some programmatic changes to the edited file. How can I do it so one Undo undoes it all?
Create a Runnable
that will do all of the code generation/munging you want to do. Pass it to org.openide.text.NbDocument.runAtomic(doc, runnable)
.
Example:
...
import org.openide.text.NbDocument;
import org.netbeans.api.editor.EditorRegistry;
...
public final class MyAction
implements ActionListener
{
private class RunnableAction
implements Runnable
{
private JTextComponent ed;
private Document doc;
private RunnableAction( JTextComponent ed, Document doc )
{
this.ed = ed;
this.doc = doc;
}
@Override
public void run()
{
...
}
}
public void actionPerformed( ActionEvent e )
{
JTextComponent ed = EditorRegistry.lastFocusedComponent();
StyledDocument doc = ( StyledDocument ) ed.getDocument();
// Perform all of the changes atomically so that they can be undone with one undo.
NbDocument.runAtomic( doc, new RunnableAction( ed, doc ) );
}
}
Applies to: All Netbeans versions
Platforms: All
Apache Migration Information
The content in this page was kindly donated by Oracle Corp. to the Apache Software Foundation.
This page was exported from http://wiki.netbeans.org/DevFaqMultipleProgrammaticEdits , that was last modified by NetBeans user TheloniousBonk on 2012-03-06T22:14:01Z.
NOTE: This document was automatically converted to the AsciiDoc format on 2018-02-07, and needs to be reviewed.