AddUnimplementedConstructorsOperation op= new AddUnimplementedConstructorsOperation(type, settings, false);
AddUnimplementedMethodsOperation op= new AddUnimplementedMethodsOperation(type, settings, false);
	public void run() {		Shell shell= JavaPlugin.getActiveWorkbenchShell();		try {			IType type= getSelectedType();			if (type == null) {				return;			}					// open an editor and work on a working copy			IEditorPart editor= EditorUtility.openInEditor(type);			type= (IType)EditorUtility.getWorkingCopy(type);						if (type == null) {				MessageDialog.openError(shell, JavaUIMessages.getString("AddUnimplementedMethodsAction.error.title"), JavaUIMessages.getString("AddUnimplementedMethodsAction.error.type_removed_in_editor")); //$NON-NLS-2$ //$NON-NLS-1$				return;			}						CodeGenerationSettings settings= JavaPreferencesSettings.getCodeGenerationSettings();			AddUnimplementedConstructorsOperation op= new AddUnimplementedConstructorsOperation(type, settings, false);			try {				ProgressMonitorDialog dialog= new ProgressMonitorDialog(shell);				dialog.run(false, true, new WorkbenchRunnableWrapper(op));				IMethod[] res= op.getCreatedMethods();				if (res == null || res.length == 0) {					MessageDialog.openInformation(shell, JavaUIMessages.getString("AddUnimplementedMethodsAction.error.title"), JavaUIMessages.getString("AddUnimplementedMethodsAction.error.nothing_found")); //$NON-NLS-2$ //$NON-NLS-1$				} else if (editor != null) {					EditorUtility.revealInEditor(editor, res[0]);				}			} catch (InvocationTargetException e) {				JavaPlugin.log(e);				MessageDialog.openError(shell, JavaUIMessages.getString("AddUnimplementedMethodsAction.error.title"), e.getTargetException().getMessage()); //$NON-NLS-1$			} catch (InterruptedException e) {				// Do nothing. Operation has been canceled by user.			}		} catch (CoreException e) {			JavaPlugin.log(e);			ErrorDialog.openError(shell, JavaUIMessages.getString("AddUnimplementedMethodsAction.error.title"), null, e.getStatus()); //$NON-NLS-1$		}				}