package org.jetbrains.android.importDependencies; import com.intellij.openapi.project.Project; import com.intellij.openapi.ui.DialogWrapper; import com.intellij.ui.CheckBoxList; import com.intellij.ui.CollectionListModel; import com.intellij.ui.components.JBScrollPane; import com.intellij.util.containers.HashMap; import org.jetbrains.android.util.AndroidBundle; import javax.swing.*; import java.awt.*; import java.util.ArrayList; import java.util.List; import java.util.Map; /** * @author Eugene.Kudelevsky */ class ImportDependenciesDialog extends DialogWrapper { private final CheckBoxList myCheckBoxList = new CheckBoxList(); private final List<ImportDependenciesTask> myTasks; private final Map<ImportDependenciesTask, JCheckBox> myTask2Checkbox = new HashMap<ImportDependenciesTask, JCheckBox>(); protected ImportDependenciesDialog(Project project, List<ImportDependenciesTask> tasks) { super(project, false); setTitle(AndroidBundle.message("android.import.dependencies.dialog.title")); myTasks = tasks; final JCheckBox[] checkBoxes = new JCheckBox[tasks.size()]; for (int i = 0; i < checkBoxes.length; i++) { final ImportDependenciesTask task = tasks.get(i); final JCheckBox checkBox = new JCheckBox(task.getTitle()); checkBox.setSelected(true); checkBoxes[i] = checkBox; myTask2Checkbox.put(task, checkBox); } myCheckBoxList.setModel(new CollectionListModel(checkBoxes)); init(); } @Override protected JComponent createCenterPanel() { final JBScrollPane pane = new JBScrollPane(myCheckBoxList); pane.setPreferredSize(new Dimension(500, 200)); return pane; } public List<ImportDependenciesTask> getSelectedTasks() { final List<ImportDependenciesTask> result = new ArrayList<ImportDependenciesTask>(); for (ImportDependenciesTask task : myTasks) { if (myTask2Checkbox.get(task).isSelected()) { result.add(task); } } return result; } }