From c502bbbbcb9d5648788324a7db7c7ff72fcfaf78 Mon Sep 17 00:00:00 2001 From: nik Date: Fri, 22 Oct 2010 12:09:03 +0400 Subject: [PATCH] framework support step: added method to listener to notify when step is reached --- .../AddFrameworkSupportDialog.java | 8 +++-- .../AddSupportForFrameworksPanel.java | 6 ++-- .../SupportForFrameworksStep.java | 12 ++++++- .../impl/FrameworkSupportModelImpl.java | 4 +++ .../FrameworkSupportModelAdapter.java | 35 +++++++++++++++++++ .../FrameworkSupportModelListener.java | 1 + 6 files changed, 59 insertions(+), 7 deletions(-) create mode 100644 platform/lang-api/src/com/intellij/ide/util/frameworkSupport/FrameworkSupportModelAdapter.java diff --git a/java/idea-ui/src/com/intellij/ide/util/frameworkSupport/AddFrameworkSupportDialog.java b/java/idea-ui/src/com/intellij/ide/util/frameworkSupport/AddFrameworkSupportDialog.java index 85faaa5bfe44..a5c95700bc5c 100644 --- a/java/idea-ui/src/com/intellij/ide/util/frameworkSupport/AddFrameworkSupportDialog.java +++ b/java/idea-ui/src/com/intellij/ide/util/frameworkSupport/AddFrameworkSupportDialog.java @@ -6,6 +6,7 @@ package com.intellij.ide.util.frameworkSupport; import com.intellij.CommonBundle; import com.intellij.ide.util.newProjectWizard.AddSupportForFrameworksPanel; +import com.intellij.ide.util.newProjectWizard.impl.FrameworkSupportModelImpl; import com.intellij.openapi.application.Result; import com.intellij.openapi.application.WriteAction; import com.intellij.openapi.module.Module; @@ -35,9 +36,10 @@ public class AddFrameworkSupportDialog extends DialogWrapper { super(module.getProject(), true); setTitle(ProjectBundle.message("dialog.title.add.frameworks.support")); myModule = module; - myAddSupportPanel = new AddSupportForFrameworksPanel(providers, LibrariesContainerFactory.createContainer(module.getProject()), null, - new Computable() { - public String compute() { + final FrameworkSupportModelImpl model = new FrameworkSupportModelImpl(module.getProject(), null); + myAddSupportPanel = new AddSupportForFrameworksPanel(providers, LibrariesContainerFactory.createContainer(module.getProject()), + model, new Computable() { + public String compute() { return contentRootPath; } }) { diff --git a/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/AddSupportForFrameworksPanel.java b/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/AddSupportForFrameworksPanel.java index 983617b62554..a7a539fbe8c1 100644 --- a/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/AddSupportForFrameworksPanel.java +++ b/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/AddSupportForFrameworksPanel.java @@ -24,7 +24,6 @@ import com.intellij.ide.util.frameworkSupport.FrameworkSupportConfigurableListen import com.intellij.ide.util.frameworkSupport.FrameworkSupportProvider; import com.intellij.ide.util.newProjectWizard.impl.FrameworkSupportCommunicator; import com.intellij.ide.util.newProjectWizard.impl.FrameworkSupportModelImpl; -import com.intellij.ide.util.projectWizard.ModuleBuilder; import com.intellij.openapi.Disposable; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.module.Module; @@ -75,11 +74,12 @@ public class AddSupportForFrameworksPanel implements Disposable { private FrameworkSupportNode myLastSelectedNode; public AddSupportForFrameworksPanel(final List providers, final @NotNull LibrariesContainer librariesContainer, - @Nullable ModuleBuilder builder, Computable baseDirForLibrariesGetter) { + final FrameworkSupportModelImpl model, + Computable baseDirForLibrariesGetter) { + myModel = model; myLibrariesContainer = librariesContainer; myBaseDirForLibrariesGetter = baseDirForLibrariesGetter; myProviders = providers; - myModel = new FrameworkSupportModelImpl(myLibrariesContainer.getProject(), builder); createNodes(); final Splitter splitter = new Splitter(false, 0.30f, 0.1f, 0.7f); diff --git a/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/SupportForFrameworksStep.java b/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/SupportForFrameworksStep.java index 25f88922b6a9..af562c89a02a 100644 --- a/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/SupportForFrameworksStep.java +++ b/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/SupportForFrameworksStep.java @@ -7,6 +7,7 @@ package com.intellij.ide.util.newProjectWizard; import com.intellij.CommonBundle; import com.intellij.ide.util.frameworkSupport.FrameworkSupportProvider; import com.intellij.ide.util.frameworkSupport.FrameworkSupportUtil; +import com.intellij.ide.util.newProjectWizard.impl.FrameworkSupportModelImpl; import com.intellij.ide.util.projectWizard.JavaModuleBuilder; import com.intellij.ide.util.projectWizard.ModuleBuilder; import com.intellij.ide.util.projectWizard.ModuleWizardStep; @@ -30,11 +31,15 @@ import java.util.List; */ public class SupportForFrameworksStep extends ModuleWizardStep { private final AddSupportForFrameworksPanel mySupportForFrameworksPanel; + private final FrameworkSupportModelImpl myFrameworkSupportModel; private boolean myCommitted; public SupportForFrameworksStep(final ModuleBuilder builder, @NotNull LibrariesContainer librariesContainer) { List providers = FrameworkSupportUtil.getProviders(builder); - mySupportForFrameworksPanel = new AddSupportForFrameworksPanel(providers, librariesContainer, builder, new Computable() { + myFrameworkSupportModel = new FrameworkSupportModelImpl(librariesContainer.getProject(), builder); + mySupportForFrameworksPanel = new AddSupportForFrameworksPanel(providers, librariesContainer, + myFrameworkSupportModel, + new Computable() { public String compute() { return getBaseDirectory(builder); } @@ -91,6 +96,11 @@ public class SupportForFrameworksStep extends ModuleWizardStep { return mySupportForFrameworksPanel.getMainPanel(); } + @Override + public void updateStep() { + myFrameworkSupportModel.fireWizardStepUpdated(); + } + public void updateDataModel() { } } diff --git a/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/impl/FrameworkSupportModelImpl.java b/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/impl/FrameworkSupportModelImpl.java index 8bda24143f12..3ff16258766d 100644 --- a/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/impl/FrameworkSupportModelImpl.java +++ b/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/impl/FrameworkSupportModelImpl.java @@ -93,4 +93,8 @@ public class FrameworkSupportModelImpl extends UserDataHolderBase implements Fra multicaster.frameworkUnselected(node.getProvider()); } } + + public void fireWizardStepUpdated() { + myDispatcher.getMulticaster().wizardStepUpdated(); + } } diff --git a/platform/lang-api/src/com/intellij/ide/util/frameworkSupport/FrameworkSupportModelAdapter.java b/platform/lang-api/src/com/intellij/ide/util/frameworkSupport/FrameworkSupportModelAdapter.java new file mode 100644 index 000000000000..b1db606f1afb --- /dev/null +++ b/platform/lang-api/src/com/intellij/ide/util/frameworkSupport/FrameworkSupportModelAdapter.java @@ -0,0 +1,35 @@ +/* + * Copyright 2000-2010 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.intellij.ide.util.frameworkSupport; + +import org.jetbrains.annotations.NotNull; + +/** + * @author nik + */ +public abstract class FrameworkSupportModelAdapter implements FrameworkSupportModelListener { + @Override + public void frameworkSelected(@NotNull FrameworkSupportProvider provider) { + } + + @Override + public void frameworkUnselected(@NotNull FrameworkSupportProvider provider) { + } + + @Override + public void wizardStepUpdated() { + } +} diff --git a/platform/lang-api/src/com/intellij/ide/util/frameworkSupport/FrameworkSupportModelListener.java b/platform/lang-api/src/com/intellij/ide/util/frameworkSupport/FrameworkSupportModelListener.java index d6f64b983aff..3d681a6aea0e 100644 --- a/platform/lang-api/src/com/intellij/ide/util/frameworkSupport/FrameworkSupportModelListener.java +++ b/platform/lang-api/src/com/intellij/ide/util/frameworkSupport/FrameworkSupportModelListener.java @@ -29,4 +29,5 @@ public interface FrameworkSupportModelListener extends EventListener { void frameworkUnselected(@NotNull FrameworkSupportProvider provider); + void wizardStepUpdated(); }