public void update(AnActionEvent e) { final Module module = LangDataKeys.MODULE.getData(e.getDataContext()); boolean enabled = module != null && PluginModuleType.isOfType(module); e.getPresentation().setVisible(enabled); e.getPresentation().setEnabled(enabled); if (enabled) { e.getPresentation().setText(DevKitBundle.message("prepare.for.deployment", module.getName())); } }
public static boolean doPrepare( final Module module, final List<String> errorMessages, final List<String> successMessages) { final String pluginName = module.getName(); final String defaultPath = new File(module.getModuleFilePath()).getParent() + File.separator + pluginName; final HashSet<Module> modules = new HashSet<Module>(); PluginBuildUtil.getDependencies(module, modules); modules.add(module); final Set<Library> libs = new HashSet<Library>(); for (Module dep : modules) { PluginBuildUtil.getLibraries(dep, libs); } final Map<Module, String> jpsModules = collectJpsPluginModules(module); modules.removeAll(jpsModules.keySet()); final boolean isZip = !libs.isEmpty() || !jpsModules.isEmpty(); final String oldPath = defaultPath + (isZip ? JAR_EXTENSION : ZIP_EXTENSION); final File oldFile = new File(oldPath); if (oldFile.exists()) { if (Messages.showYesNoDialog( module.getProject(), DevKitBundle.message("suggest.to.delete", oldPath), DevKitBundle.message("info.message"), Messages.getInformationIcon()) == Messages.YES) { FileUtil.delete(oldFile); } } final String dstPath = defaultPath + (isZip ? ZIP_EXTENSION : JAR_EXTENSION); final File dstFile = new File(dstPath); return clearReadOnly(module.getProject(), dstFile) && ProgressManager.getInstance() .runProcessWithProgressSynchronously( new Runnable() { public void run() { final ProgressIndicator progressIndicator = ProgressManager.getInstance().getProgressIndicator(); if (progressIndicator != null) { progressIndicator.setText( DevKitBundle.message("prepare.for.deployment.common")); progressIndicator.setIndeterminate(true); } try { File jarFile = preparePluginsJar(module, modules); if (isZip) { processLibrariesAndJpsPlugins( jarFile, dstFile, pluginName, libs, jpsModules, progressIndicator); } else { FileUtil.copy(jarFile, dstFile); } LocalFileSystem.getInstance() .refreshIoFiles(Collections.singleton(dstFile), true, false, null); successMessages.add( DevKitBundle.message( "saved.message", isZip ? 1 : 2, pluginName, dstPath)); } catch (final IOException e) { errorMessages.add(e.getMessage() + "\n(" + dstPath + ")"); } } }, DevKitBundle.message("prepare.for.deployment", pluginName), true, module.getProject()); }
public String getDisplayName() { return DevKitBundle.message("run.configuration.title"); }
public String getConfigurationTypeDescription() { return DevKitBundle.message("run.configuration.type.description"); }
@NotNull public String getFamilyName() { return DevKitBundle.message("inspections.registration.problems.quickfix.create.constructor"); }