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 cc92f53ef971..85faaa5bfe44 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
@@ -40,7 +40,15 @@ public class AddFrameworkSupportDialog extends DialogWrapper {
public String compute() {
return contentRootPath;
}
- });
+ }) {
+
+ @Override
+ protected void onFrameworkStateChanged() {
+ setOKActionEnabled(isOKActionEnabled());
+ }
+ };
+
+ setOKActionEnabled(isOKActionEnabled());
Disposer.register(myDisposable, myAddSupportPanel);
init();
}
@@ -61,8 +69,13 @@ public class AddFrameworkSupportDialog extends DialogWrapper {
return roots.length != 0 && FrameworkSupportUtil.hasProviders(module);
}
+ @Override
+ public boolean isOKActionEnabled() {
+ return myAddSupportPanel.hasSelectedFrameworks();
+ }
+
protected void doOKAction() {
- if (myAddSupportPanel.haveSelectedFrameworks()) {
+ if (myAddSupportPanel.hasSelectedFrameworks()) {
if (!myAddSupportPanel.downloadLibraries()) {
int answer = Messages.showYesNoDialog(myAddSupportPanel.getMainPanel(),
ProjectBundle.message("warning.message.some.required.libraries.wasn.t.downloaded"),
@@ -96,4 +109,9 @@ public class AddFrameworkSupportDialog extends DialogWrapper {
protected JComponent createCenterPanel() {
return myAddSupportPanel.getMainPanel();
}
+
+ @Override
+ public JComponent getPreferredFocusedComponent() {
+ return myAddSupportPanel.getFrameworksTree();
+ }
}
diff --git a/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/AddSupportForFrameworksPanel.form b/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/AddSupportForFrameworksPanel.form
index 0c644bcc775c..a4dcb29384a4 100644
--- a/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/AddSupportForFrameworksPanel.form
+++ b/java/idea-ui/src/com/intellij/ide/util/newProjectWizard/AddSupportForFrameworksPanel.form
@@ -31,7 +31,9 @@
-
+
+
+
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 64018fe883de..e4a143fc4fb6 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
@@ -48,6 +48,7 @@ import com.intellij.ui.SeparatorFactory;
import com.intellij.util.graph.CachingSemiGraph;
import com.intellij.util.graph.DFSTBuilder;
import com.intellij.util.graph.GraphGenerator;
+import com.intellij.util.ui.UIUtil;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -64,7 +65,6 @@ import java.util.List;
*/
public class AddSupportForFrameworksPanel implements Disposable {
private static final Logger LOG = Logger.getInstance("#com.intellij.ide.util.newProjectWizard.AddSupportForFrameworksStep");
- @NonNls private static final String UNCHECKED_CARD = "unchecked";
@NonNls private static final String EMPTY_CARD = "empty";
private JPanel myMainPanel;
private JPanel myFrameworksPanel;
@@ -78,7 +78,6 @@ public class AddSupportForFrameworksPanel implements Disposable {
private final FrameworksTree myFrameworksTree;
private final Set myInitializedOptionsPanelIds = new HashSet();
private FrameworkSupportNode myLastSelectedNode;
- private final JLabel myTickCheckboxLabel;
public AddSupportForFrameworksPanel(final List providers, final @NotNull LibrariesContainer librariesContainer,
@Nullable ModuleBuilder builder, Computable baseDirForLibrariesGetter) {
@@ -100,6 +99,7 @@ public class AddSupportForFrameworksPanel implements Disposable {
updateOptionsPanel();
frameworkSupportNode.getConfigurable().onFrameworkSelectionChanged(node.isChecked());
myModel.onFrameworkSelectionChanged(frameworkSupportNode);
+ onFrameworkStateChanged();
}
};
myFrameworksTree.addTreeSelectionListener(new TreeSelectionListener() {
@@ -107,17 +107,19 @@ public class AddSupportForFrameworksPanel implements Disposable {
onSelectionChanged();
}
});
+
splitter.setFirstComponent(ScrollPaneFactory.createScrollPane(myFrameworksTree));
myOptionsPanel = new JPanel(new CardLayout());
myOptionsPanel.add(EMPTY_CARD, new JPanel());
- final JPanel uncheckedLabelPanel = new JPanel(new BorderLayout());
- myTickCheckboxLabel = new JLabel("Tick checkbox");
- uncheckedLabelPanel.add(BorderLayout.NORTH, myTickCheckboxLabel);
- myOptionsPanel.add(UNCHECKED_CARD, uncheckedLabelPanel);
+
splitter.setSecondComponent(myOptionsPanel);
myFrameworksPanel.add(splitter, BorderLayout.CENTER);
+
+ myFrameworksTree.setSelectionRow(0);
}
+ protected void onFrameworkStateChanged() {}
+
private void onSelectionChanged() {
if (!myFrameworksTree.isProcessingMouseEventOnCheckbox()) {
updateOptionsPanel();
@@ -154,14 +156,9 @@ public class AddSupportForFrameworksPanel implements Disposable {
private void updateOptionsPanel() {
final FrameworkSupportNode node = getSelectedNode();
if (node != null) {
- if (node.isChecked()) {
- initializeOptionsPanel(node);
- showCard(node.getProvider().getId());
- }
- else {
- myTickCheckboxLabel.setText("Select check box to add '" + node.getTitle() + "' support");
- showCard(UNCHECKED_CARD);
- }
+ initializeOptionsPanel(node);
+ showCard(node.getProvider().getId());
+ UIUtil.setEnabled(myOptionsPanel, node.isChecked(), true);
}
else {
showCard(EMPTY_CARD);
@@ -314,7 +311,11 @@ public class AddSupportForFrameworksPanel implements Disposable {
return myMainPanel;
}
- public boolean haveSelectedFrameworks() {
+ public FrameworksTree getFrameworksTree() {
+ return myFrameworksTree;
+ }
+
+ public boolean hasSelectedFrameworks() {
return !getFrameworkNodes(true).isEmpty();
}
diff --git a/platform/platform-resources-en/src/messages/ProjectBundle.properties b/platform/platform-resources-en/src/messages/ProjectBundle.properties
index 41ddcd669d6d..a112246db61b 100644
--- a/platform/platform-resources-en/src/messages/ProjectBundle.properties
+++ b/platform/platform-resources-en/src/messages/ProjectBundle.properties
@@ -481,7 +481,7 @@ composing.library.name.label=&Name:
composing.library.download.missing.jars.to=&Download missing files to:
composing.liibrary.new.library.label=The following library will be created
composing.library.from.repository.label=&from {0}
-dialog.title.add.frameworks.support=Frameworks Support
+dialog.title.add.frameworks.support=Add Frameworks Support
warning.message.some.required.libraries.wasn.t.downloaded=Some required library wasn't downloaded. Do you want to proceed without it?
save.as.library.checkbox=&Move copy to {0} level