private void doImport(final Collection<DataNode<IdeaJavaProject>> toImport, final Project project, final IdeModifiableModelsProvider modelsProvider) throws Throwable { RunResult result = new WriteCommandAction.Simple(project) { @Override protected void run() throws Throwable { if (!project.isDisposed()) { Map<String, IdeaJavaProject> gradleProjectsByName = indexByModuleName(toImport); for (Module module : modelsProvider.getModules()) { IdeaJavaProject javaProject = gradleProjectsByName.get(module.getName()); if (javaProject != null) { customizeModule(module, modelsProvider, javaProject); } } } } }.execute(); Throwable error = result.getThrowable(); if (error != null) { throw error; } }
@Override public void onOk(@Nonnull NewClassDialog dialog) { final PsiDirectory directory = ideView.getOrChooseDirectory(); if (directory == null) { dialog.cancel(); return; } try { final CommandActionFactory actionFactory = commandActionFactoryProvider.get(); final JavaConverterFactory converterFactory = javaConverterFactoryProvider.get(); final NewClassCommandAction command = actionFactory.create( dialog.getClassName(), dialog.getJson(), directory, converterFactory.create(settings) ); final ProgressManager progressManager = ProgressManager.getInstance(); progressManager.runProcessWithProgressSynchronously(() -> { final ProgressIndicator indicator = progressManager.getProgressIndicator(); if (indicator != null) { indicator.setIndeterminate(true); indicator.setText(bundle.message("progress.text", dialog.getClassName())); } final RunResult<PsiFile> result = command.execute(); return result.getResultObject(); }, bundle.message("progress.title"), false, project); dialog.close(); } catch (RuntimeException e) { LOGGER.warn("Unable to create a class", e); onError(dialog, e.getCause()); } }
@Override public void run() { logger.info("Preparing to write a total of " + sketchFiles.size() + " to the project package " + packageFqn + "."); for (PsiFile sketchFile : sketchFiles) { logger.info("Writing the sketch PSI file '" + sketchFile.getName() + "' to the project package '" + packageFqn + "'."); String sketchFileExtension = PathUtil.getFileExtension(sketchFile.getName()); if (sketchFileExtension == null || ! sketchFileExtension.equals(JavaFileType.DEFAULT_EXTENSION)) { String generatedSketchFileName = PathUtil.makeFileName(PathUtil.getFileName(sketchFile.getName()), JavaFileType.DEFAULT_EXTENSION); sketchFile.setName(generatedSketchFileName); } WriteCommandAction.Simple<String> command = new WriteCommandAction.Simple<String>(project, sketchFile) { @Override protected void run() throws Throwable { CodeStyleManager.getInstance(project).reformat(sketchFile, false); packageFqn.add(sketchFile); } }; RunResult<String> result = command.execute(); logger.debug("Result of executing the file write action is: '" + result.getResultObject() + "'."); } }
private static void doImport(@NotNull final Collection<DataNode<IdeaGradleProject>> toImport, @NotNull final Project project, @NotNull final IdeModifiableModelsProvider modelsProvider) throws Throwable { RunResult result = new WriteCommandAction.Simple(project) { @Override protected void run() throws Throwable { if (!project.isDisposed()) { Map<String, IdeaGradleProject> gradleProjectsByName = indexByModuleName(toImport); for (Module module : modelsProvider.getModules()) { IdeaGradleProject gradleProject = gradleProjectsByName.get(module.getName()); if (gradleProject == null) { // This happens when there is an orphan IDEA module that does not map to a Gradle project. One way for this to happen is when // opening a project created in another machine, and Gradle import assigns a different name to a module. Then, user decides not // to delete the orphan module when Studio prompts to do so. Facets.removeAllFacetsOfType(AndroidGradleFacet.TYPE_ID, modelsProvider.getModifiableFacetModel(module)); } else { String gradleVersion = gradleProject.getGradleVersion(); if (isNotEmpty(gradleVersion)) { setGradleVersionUsed(project, gradleVersion); } customizeModule(module, gradleProject, modelsProvider); } } } } }.execute(); Throwable error = result.getThrowable(); if (error != null) { throw error; } }
@NotNull @Override @Deprecated() public RunResult execute() { return super.execute(); }
@Override protected void write(@NotNull Project project, @NotNull PsiDirectory extensionRootDirectory, @NotNull String className) { if (!className.endsWith("ViewHelper")) { className += "ViewHelper"; } final String finalClassName = className; RunResult<PsiElement> elementRunResult = new WriteCommandAction<PsiElement>(project) { @Override protected void run(@NotNull Result result) throws Throwable { PsiElement extensionFile; Map<String, String> context = new HashMap<>(); String calculatedNamespace = ExtensionUtility.findDefaultNamespace(extensionRootDirectory); if (calculatedNamespace == null) { result.setResult(null); return; } calculatedNamespace += "ViewHelpers"; context.put("namespace", calculatedNamespace); context.put("className", finalClassName); String majorVersion = null; if (TYPO3Utility.getTYPO3Version(project) != null && TYPO3Utility.isMajorMinorCmsVersion(project, "7.6")) { majorVersion = "7"; } else if (TYPO3Utility.getTYPO3Version(project) != null && TYPO3Utility.isMajorMinorCmsVersion(project, "8.7")) { majorVersion = "8"; } else if (TYPO3Utility.getTYPO3Version(project) != null && TYPO3Utility.getTYPO3Version(project).startsWith("9.")) { majorVersion = "9"; } if (majorVersion == null) { result.setResult(null); return; } try { extensionFile = ExtensionFileGenerationUtil.fromTemplate( "extension_file/" + majorVersion + "/ViewHelper.php", "Classes/ViewHelpers", finalClassName + ".php", extensionRootDirectory, context, project ); if (extensionFile != null) { result.setResult(extensionFile); } } catch (IncorrectOperationException e) { // file already exists } } }.execute(); if (elementRunResult.getResultObject() != null) { new OpenFileDescriptor(project, elementRunResult.getResultObject().getContainingFile().getVirtualFile(), 0).navigate(true); } else { Messages.showErrorDialog("Cannot create extension file", "Error"); } }
@Override protected void write(@NotNull Project project, @NotNull PsiDirectory extensionRootDirectory, @NotNull String className) { final String finalClassName = className; RunResult<PsiElement> elementRunResult = new WriteCommandAction<PsiElement>(project) { @Override protected void run(@NotNull Result result) throws Throwable { PsiElement extensionFile; Map<String, String> context = new HashMap<>(); String calculatedNamespace = ExtensionUtility.findDefaultNamespace(extensionRootDirectory); if (calculatedNamespace == null) { result.setResult(null); return; } calculatedNamespace += "Domain\\Model"; context.put("namespace", calculatedNamespace); context.put("className", finalClassName); try { extensionFile = ExtensionFileGenerationUtil.fromTemplate( "extension_file/ExtbaseEntity.php", "Classes/Domain/Model", finalClassName + ".php", extensionRootDirectory, context, project ); if (extensionFile != null) { result.setResult(extensionFile); } } catch (IncorrectOperationException e) { // file already exists } } }.execute(); if (elementRunResult.getResultObject() != null) { new OpenFileDescriptor(project, elementRunResult.getResultObject().getContainingFile().getVirtualFile(), 0).navigate(true); } else { Messages.showErrorDialog("Cannot create extension file", "Error"); } }
@Override protected void write(@NotNull Project project, @NotNull PsiDirectory extensionRootDirectory, @NotNull String className) { if (!className.endsWith("Controller")) { className += "Controller"; } final String finalClassName = className; RunResult<PsiElement> elementRunResult = new WriteCommandAction<PsiElement>(project) { @Override protected void run(@NotNull Result result) throws Throwable { PsiElement extensionFile; Map<String, String> context = new HashMap<>(); String calculatedNamespace = ExtensionUtility.findDefaultNamespace(extensionRootDirectory); if (calculatedNamespace == null) { result.setResult(null); return; } calculatedNamespace += "Controller"; context.put("namespace", calculatedNamespace); context.put("className", finalClassName); try { extensionFile = ExtensionFileGenerationUtil.fromTemplate( "extension_file/ExtbaseActionController.php", "Classes/Controller", finalClassName + ".php", extensionRootDirectory, context, project ); if (extensionFile != null) { result.setResult(extensionFile); } } catch (IncorrectOperationException e) { // file already exists } } }.execute(); if (elementRunResult.getResultObject() != null) { new OpenFileDescriptor(project, elementRunResult.getResultObject().getContainingFile().getVirtualFile(), 0).navigate(true); } else { Messages.showErrorDialog("Cannot create extension file", "Error"); } }