public void performRequest( Request request ) {
EditPolicy policy = getEditPolicy(request.getType());
if( policy instanceof PrintingEditPolicy ){
PrintingEditPolicy editPolicy = (PrintingEditPolicy)policy;
IBoxEditAction action = editPolicy.getAction().getBoxEditAction();
action.init(this);
action.perform();
Display display = getViewer().getControl().getDisplay();
while( !action.isDone() ){
if( !display.readAndDispatch() ){
try {
Thread.sleep(200);
} catch (InterruptedException e) {
break;
}
}
}
if( !action.isDone() )
return;
Command command = action.getCommand();
if( command!=null && command.canExecute() ){
getViewer().getEditDomain().getCommandStack().execute(command);
}
}