/*
* Copyright 2005-2010 Ignis Software Tools Ltd. All rights reserved.
*/
package jsystem.treeui.dialog;
import java.awt.GridLayout;
import javax.swing.JCheckBox;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import jsystem.framework.FrameworkOptions;
import jsystem.framework.JSystemProperties;
import jsystem.treeui.TestRunner;
/**
* General dialog with checkBox for different Framework options
*
* @author Nizan Freedman
*
*/
public class DialogWithCheckBox extends JDialog {
private static final long serialVersionUID = -1570893402282756718L;
/**
* this function will display(confirm) a dialog pop up with a checkbox -the value of the check box will be given from the
* FrameworkOptions value and will be set to the properties files.
*
* after the user answer- the value of the checkbox will be set to the Jsystem properties file
*
* Note: the value of the checkbox will be set to the properties file only if the user confirm the dialog
*
*
* @param title - the title of the popup
* @param message - the message of the dialog
* @param checkBox - the label of the check box
* @param option - the value of the checkbox - if the propertie is ture in the Jsystem propertie file , the check box will be checked.
* else- will be set to false
*
* @return user answer (yes or no)
*
*
* @author liel_r
*/
public static int showConfirmDialogWithCheckBox(String title, String message, String checkBox, FrameworkOptions option) {
boolean propertyValue = false;
/**
* read property from jsystem.properties
*/
String editProperty = JSystemProperties.getInstance().getPreference(option);
if(editProperty!=null){
if(("true").equals(editProperty)){
propertyValue = true;
}
}
JCheckBox cb = new JCheckBox(checkBox, propertyValue);
JLabel label = new JLabel(message);
JLabel separator = new JLabel();
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(3, 1));
panel.add(label);
panel.add(separator);
panel.add(cb);
int answer = JOptionPane.YES_OPTION;
answer = JOptionPane.showConfirmDialog(TestRunner.treeView, panel, title, JOptionPane.YES_NO_OPTION);
//set the value only if the user will confirm the dialog
if (JOptionPane.YES_OPTION ==answer ) {
JSystemProperties.getInstance().setPreference(option, cb.isSelected() + "");
}
return answer;
}
/**
* Show a confirm dialog with given title, message and checkBox String.
*
*
* @param title
* The dialog title
* @param message
* The dialog message
* @param checkBox
* The checkBox String
* @param option
* The FrameworkOption to be read and modified if checkbox is
* marked
* @return
*/
public static int showConfirmDialog(String title, String message, String checkBox, FrameworkOptions option) {
JCheckBox cb = new JCheckBox(checkBox);
JLabel label = new JLabel(message);
JLabel separator = new JLabel();
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(3, 1));
panel.add(label);
panel.add(separator);
panel.add(cb);
/**
* read property from jsystem.properties
*/
String editProperty = JSystemProperties.getInstance().getPreference(option);
int answer = JOptionPane.YES_OPTION;
if (editProperty == null || "false".equals(editProperty)) {
answer = JOptionPane.showConfirmDialog(TestRunner.treeView, panel, title, JOptionPane.YES_NO_CANCEL_OPTION);
}
if (cb.isSelected()) {
JSystemProperties.getInstance().setPreference(option, true + "");
}
return answer;
}
}