/* * Copyright 2013 Hewlett-Packard Development Company, L.P * * 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.hp.alm.ali.idea.content.taskboard; import com.hp.alm.ali.idea.cfg.TaskBoardConfiguration; import com.hp.alm.ali.idea.ui.dialog.MyDialog; import com.intellij.openapi.project.Project; import javax.swing.BorderFactory; import javax.swing.BoxLayout; import javax.swing.JCheckBox; import javax.swing.JComboBox; import javax.swing.JPanel; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import java.awt.BorderLayout; import java.awt.Component; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.util.Arrays; public class TaskBoardSettingsDialog extends MyDialog { private TaskBoardConfiguration configuration; private JCheckBox taskCompleteSwitch; private JComboBox<String> itemStatuses; private JCheckBox deactivateItemSwitch; private JCheckBox assignTaskSwitch; private JCheckBox activateItemSwitch; public TaskBoardSettingsDialog(Project project) { super(project, "Task Board Settings", true, true, Arrays.asList(Button.OK, Button.Cancel)); JPanel contentPanel = new JPanel(); contentPanel.setLayout(new BoxLayout(contentPanel, BoxLayout.Y_AXIS)); contentPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); JPanel taskComplete = new JPanel(new GridBagLayout()); taskComplete.setAlignmentX(Component.LEFT_ALIGNMENT); taskComplete.setBorder(BorderFactory.createTitledBorder("When last task is completed")); GridBagConstraints c = new GridBagConstraints(); c.gridy = 0; c.gridx = 0; c.anchor = GridBagConstraints.WEST; taskCompleteSwitch = new JCheckBox("Move backlog item to "); taskComplete.add(taskCompleteSwitch, c); itemStatuses = new JComboBox<String>(new String[]{ BacklogItemPanel.ITEM_IN_TESTING, BacklogItemPanel.ITEM_DONE }); c.gridx++; taskComplete.add(itemStatuses, c); taskCompleteSwitch.addChangeListener(new ChangeListener() { @Override public void stateChanged(ChangeEvent e) { itemStatuses.setEnabled(taskCompleteSwitch.isSelected()); } }); deactivateItemSwitch = new JCheckBox("Deactivate work item"); c.gridx = 0; c.gridy++; c.gridwidth = 2; taskComplete.add(deactivateItemSwitch, c); // add filler c.gridx = 3; c.gridy++; c.fill = GridBagConstraints.BOTH; c.fill = GridBagConstraints.BOTH; c.weightx = 1.0d; c.weighty = 1.0d; taskComplete.add(new JPanel(), c); contentPanel.add(taskComplete); JPanel assignTask = new JPanel(new GridBagLayout()); assignTask.setAlignmentX(Component.LEFT_ALIGNMENT); assignTask.setBorder(BorderFactory.createTitledBorder("When starting work on task")); c = new GridBagConstraints(); c.gridx = 0; c.gridy = 0; c.anchor = GridBagConstraints.WEST; assignTaskSwitch = new JCheckBox("Assign it to me"); assignTask.add(assignTaskSwitch, c); activateItemSwitch = new JCheckBox("Activate work item"); c.gridy++; assignTask.add(activateItemSwitch, c); // add filler c.gridx = 3; c.gridy++; c.fill = GridBagConstraints.BOTH; c.weightx = 1.0d; c.weighty = 1.0d; assignTask.add(new JPanel(), c); contentPanel.add(assignTask); configuration = project.getComponent(TaskBoardConfiguration.class); String status = configuration.getTasksCompletedStatus(); if (status == null) { itemStatuses.setEnabled(false); } else { taskCompleteSwitch.setSelected(true); itemStatuses.setSelectedItem(status); } assignTaskSwitch.setSelected(configuration.isAssignTask()); deactivateItemSwitch.setSelected(configuration.isDeactivateItem()); activateItemSwitch.setSelected(configuration.isActivateItem()); getContentPane().add(contentPanel, BorderLayout.CENTER); getRootPane().setDefaultButton(getButton(Button.OK)); pack(); centerOnOwner(); } protected void buttonPerformed(Button button) { super.buttonPerformed(button); switch (button) { case OK: if (taskCompleteSwitch.isSelected()) { configuration.setTasksCompletedStatus((String) itemStatuses.getSelectedItem()); } else { configuration.setTasksCompletedStatus(null); } configuration.setAssignTask(assignTaskSwitch.isSelected()); configuration.setDeactivateItem(deactivateItemSwitch.isSelected()); configuration.setActivateItem(activateItemSwitch.isSelected()); close(true); break; } } }