}
protected void perform()
{
final Flag confirmed = new Flag( false );
final DocumentFrame frame = (DocumentFrame) getApplication().getComponent( Main.COMP_MAIN );
final ProcessingThread pt = frame.confirmUnsaved( text, confirmed );
if( pt == null ) {
if( !confirmed.isSet() ) return;
queryAndPerform();
} else {
pt.addListener( new ProcessingThread.Listener() {