From b0705cc751c6e887c70896d47725edb3cb2cdb13 Mon Sep 17 00:00:00 2001 From: Eugene Zhuravlev Date: Wed, 17 Oct 2012 15:12:23 +0200 Subject: [PATCH 1/4] if processor generates resources directly to target's ootput directory, do not register any additional src root descriptor --- .../org/jetbrains/jps/builders/impl/BuildRootIndexImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jps/jps-builders/src/org/jetbrains/jps/builders/impl/BuildRootIndexImpl.java b/jps/jps-builders/src/org/jetbrains/jps/builders/impl/BuildRootIndexImpl.java index a190b8254300..19a18b0d81d3 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/builders/impl/BuildRootIndexImpl.java +++ b/jps/jps-builders/src/org/jetbrains/jps/builders/impl/BuildRootIndexImpl.java @@ -72,8 +72,8 @@ public class BuildRootIndexImpl implements BuildRootIndex { for (ModuleBuildTarget target : targets) { final File annotationOut = paths.getAnnotationProcessorGeneratedSourcesOutputDir(target.getModule(), target.isTests(), profile); if (annotationOut != null) { - if (findJavaRootDescriptor(null, annotationOut) == null) { - // register only if the root is not under already existing roots + if (findJavaRootDescriptor(null, annotationOut) == null && !FileUtil.filesEqual(annotationOut, target.getOutputDir())) { + // register only if the root is not under already existing roots and not is the same as target's output root final ResourcesOnlyRootDescriptor descriptor = new ResourcesOnlyRootDescriptor(annotationOut, target, true, false, ""); registerDescriptor(descriptor); //noinspection unchecked From 39176fc80a58c3b2965370ae0513ec9f1d157235 Mon Sep 17 00:00:00 2001 From: Dmitry Avdeev Date: Wed, 17 Oct 2012 16:17:19 +0400 Subject: [PATCH 2/4] @Nullables --- .../com/intellij/ide/util/newProjectWizard/AddModuleWizard.java | 2 +- .../src/com/intellij/ide/util/projectWizard/WizardContext.java | 2 +- .../src/com/intellij/ide/wizard/AbstractWizard.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/AddModuleWizard.java b/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/AddModuleWizard.java index 738663e7ad9a..04e2017cb64f 100644 --- a/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/AddModuleWizard.java +++ b/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/AddModuleWizard.java @@ -79,7 +79,7 @@ public class AddModuleWizard extends AbstractWizard { initModuleWizard(project, null); } - private void initModuleWizard(final Project project, @Nullable final String defaultPath) { + private void initModuleWizard(@Nullable final Project project, @Nullable final String defaultPath) { myWizardContext = new WizardContext(project); if (defaultPath != null) { myWizardContext.setProjectFileDirectory(defaultPath); diff --git a/platform/lang-api/src/com/intellij/ide/util/projectWizard/WizardContext.java b/platform/lang-api/src/com/intellij/ide/util/projectWizard/WizardContext.java index 8cb3e36021f7..09a92245fc8b 100644 --- a/platform/lang-api/src/com/intellij/ide/util/projectWizard/WizardContext.java +++ b/platform/lang-api/src/com/intellij/ide/util/projectWizard/WizardContext.java @@ -59,7 +59,7 @@ public class WizardContext { void nextStepRequested(); } - public WizardContext(Project project) { + public WizardContext(@Nullable Project project) { myProject = project; if (myProject != null){ myProjectJdk = ProjectRootManager.getInstance(myProject).getProjectSdk(); diff --git a/platform/platform-api/src/com/intellij/ide/wizard/AbstractWizard.java b/platform/platform-api/src/com/intellij/ide/wizard/AbstractWizard.java index 7781f61f598c..8d5a4f367422 100644 --- a/platform/platform-api/src/com/intellij/ide/wizard/AbstractWizard.java +++ b/platform/platform-api/src/com/intellij/ide/wizard/AbstractWizard.java @@ -71,7 +71,7 @@ public abstract class AbstractWizard extends DialogWrapper { initWizard(title); } - public AbstractWizard(final String title, final Project project) { + public AbstractWizard(final String title, @Nullable final Project project) { super(project, true); mySteps = new ArrayList(); initWizard(title); From 7a41f3595bcef73a771d4a66ab6e86c10c62d832 Mon Sep 17 00:00:00 2001 From: Dmitry Avdeev Date: Wed, 17 Oct 2012 17:16:05 +0400 Subject: [PATCH 3/4] do not show another template selection --- .../modes/CreateFromScratchMode.java | 13 +++++++------ .../ide/util/projectWizard/WizardContext.java | 12 ++++++++++++ .../com/intellij/openapi/module/WebModuleType.java | 1 + 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/modes/CreateFromScratchMode.java b/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/modes/CreateFromScratchMode.java index 14ca759786ee..c48e882a8d72 100644 --- a/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/modes/CreateFromScratchMode.java +++ b/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/modes/CreateFromScratchMode.java @@ -68,18 +68,19 @@ public class CreateFromScratchMode extends WizardMode { StepSequence sequence, List builders) { sequence.addCommonStep(new ProjectNameWithTypeStep(context, sequence, mode)); for (ModuleBuilder builder : builders) { - addModuleBuilder(builder, context, modulesProvider, sequence); + context.setTemplateMode(mode instanceof CreateFromTemplateMode); + addStepsForBuilder(builder, context, modulesProvider, sequence); } return sequence; } - private static void addModuleBuilder(ModuleBuilder builder, - WizardContext context, - ModulesProvider modulesProvider, - StepSequence myStepSequence) { + private static void addStepsForBuilder(ModuleBuilder builder, + WizardContext context, + ModulesProvider modulesProvider, + StepSequence sequence) { final String id = builder.getBuilderId(); for (ModuleWizardStep step : builder.createWizardSteps(context, modulesProvider)) { - myStepSequence.addSpecificStep(id, step); + sequence.addSpecificStep(id, step); } } diff --git a/platform/lang-api/src/com/intellij/ide/util/projectWizard/WizardContext.java b/platform/lang-api/src/com/intellij/ide/util/projectWizard/WizardContext.java index 09a92245fc8b..e8fc24b1dac7 100644 --- a/platform/lang-api/src/com/intellij/ide/util/projectWizard/WizardContext.java +++ b/platform/lang-api/src/com/intellij/ide/util/projectWizard/WizardContext.java @@ -172,4 +172,16 @@ public class WizardContext { public StorageScheme getProjectStorageFormat() { return myProjectStorageFormat; } + + private boolean myTemplateMode; + + /** This will be removed shortly */ + @Deprecated + public boolean isTemplateMode() { + return myTemplateMode; + } + + public void setTemplateMode(boolean templateMode) { + myTemplateMode = templateMode; + } } diff --git a/platform/lang-impl/src/com/intellij/openapi/module/WebModuleType.java b/platform/lang-impl/src/com/intellij/openapi/module/WebModuleType.java index cd048d659cf2..4b317ffcfac1 100644 --- a/platform/lang-impl/src/com/intellij/openapi/module/WebModuleType.java +++ b/platform/lang-impl/src/com/intellij/openapi/module/WebModuleType.java @@ -18,6 +18,7 @@ public class WebModuleType extends WebModuleTypeBase { @Override public ModuleWizardStep[] createWizardSteps(WizardContext wizardContext, ModuleBuilder moduleBuilder, ModulesProvider modulesProvider) { + if (wizardContext.isTemplateMode()) return ModuleWizardStep.EMPTY_ARRAY; WebModuleGenerationStep generationStep = new WebModuleGenerationStep( moduleBuilder, wizardContext.getStepIcon(), From 62fc4227db74122321b85b1e75cb89329b1282a4 Mon Sep 17 00:00:00 2001 From: peter Date: Wed, 17 Oct 2012 15:16:46 +0200 Subject: [PATCH 4/4] AbstractVcs.allowsRemoteCalls, let it be false for Perforce offline mode, check in BrowseChangesAction (IDEA-93078, IDEA-39709) --- .../vcs-api/src/com/intellij/openapi/vcs/AbstractVcs.java | 5 +++++ .../openapi/vcs/changes/actions/BrowseChangesAction.java | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/platform/vcs-api/src/com/intellij/openapi/vcs/AbstractVcs.java b/platform/vcs-api/src/com/intellij/openapi/vcs/AbstractVcs.java index 0a873ced0d6a..436f2a8b7e12 100644 --- a/platform/vcs-api/src/com/intellij/openapi/vcs/AbstractVcs.java +++ b/platform/vcs-api/src/com/intellij/openapi/vcs/AbstractVcs.java @@ -44,6 +44,7 @@ import com.intellij.util.ThrowableRunnable; import com.intellij.util.containers.Convertor; import com.intellij.util.ui.VcsSynchronousProgressWrapper; import org.jetbrains.annotations.NonNls; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.Arrays; @@ -559,6 +560,10 @@ public abstract class AbstractVcs extends S return true; } + public boolean allowsRemoteCalls(@NotNull final VirtualFile file) { + return true; + } + public void setCheckinEnvironment(CheckinEnvironment checkinEnvironment) { if (myCheckinEnvironment != null) throw new IllegalStateException("Attempt to redefine checkin environment"); myCheckinEnvironment = checkinEnvironment; diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/actions/BrowseChangesAction.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/actions/BrowseChangesAction.java index c8937a38a86a..aabb82a5e7f6 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/actions/BrowseChangesAction.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/actions/BrowseChangesAction.java @@ -74,7 +74,7 @@ public class BrowseChangesAction extends AnAction implements DumbAware { VirtualFile vFile = e.getData(PlatformDataKeys.VIRTUAL_FILE); if (vFile == null) return false; AbstractVcs vcs = ProjectLevelVcsManager.getInstance(project).getVcsFor(vFile); - if (vcs == null || vcs.getCommittedChangesProvider() == null) { + if (vcs == null || vcs.getCommittedChangesProvider() == null || !vcs.allowsRemoteCalls(vFile)) { return false; } FilePath filePath = VcsContextFactory.SERVICE.getInstance().createFilePathOn(vFile);