/*******************************************************************************
* Copyright (c) 2001, 2010 Mathew A. Nelson and Robocode contributors
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://robocode.sourceforge.net/license/epl-v10.html
*
* Contributors:
* Mathew A. Nelson
* - Initial API and implementation
* Flemming N. Larsen
* - Code cleanup
*******************************************************************************/
package net.sf.robocode.ui.dialog;
import javax.swing.*;
import java.awt.*;
/**
* @author Mathew A. Nelson (original)
* @author Flemming N. Larsen (contributor)
*/
@SuppressWarnings("serial")
public class NewBattleRulesTab extends JPanel {
private JLabel gunCoolingRateLabel;
private JTextField gunCoolingRateField;
private JLabel inactivityTimeLabel;
private JTextField inactivityTimeField;
private JLabel hideEnemyNamesLabel;
private JCheckBox hideEnemyNamesCheckBox;
public NewBattleRulesTab() {
super();
initialize();
}
public double getGunCoolingRate() {
return Double.parseDouble(getGunCoolingRateField().getText());
}
private JTextField getGunCoolingRateField() {
if (gunCoolingRateField == null) {
gunCoolingRateField = new JTextField();
}
return gunCoolingRateField;
}
private JLabel getGunCoolingRateLabel() {
if (gunCoolingRateLabel == null) {
gunCoolingRateLabel = new JLabel();
gunCoolingRateLabel.setAlignmentX(Component.RIGHT_ALIGNMENT);
gunCoolingRateLabel.setText("Gun Cooling Rate:");
gunCoolingRateLabel.setHorizontalTextPosition(SwingConstants.CENTER);
gunCoolingRateLabel.setHorizontalAlignment(SwingConstants.RIGHT);
}
return gunCoolingRateLabel;
}
public long getInactivityTime() {
return Long.parseLong(getInactivityTimeField().getText());
}
private JTextField getInactivityTimeField() {
if (inactivityTimeField == null) {
inactivityTimeField = new JTextField();
}
return inactivityTimeField;
}
private JLabel getInactivityTimeLabel() {
if (inactivityTimeLabel == null) {
inactivityTimeLabel = new JLabel();
inactivityTimeLabel.setText("Inactivity Time:");
inactivityTimeLabel.setHorizontalAlignment(SwingConstants.RIGHT);
}
return inactivityTimeLabel;
}
public boolean getHideEnemyNames() {
return getHideEnemyNamesCheckBox().isSelected();
}
private JCheckBox getHideEnemyNamesCheckBox() {
if (hideEnemyNamesCheckBox == null) {
hideEnemyNamesCheckBox = new JCheckBox();
}
return hideEnemyNamesCheckBox;
}
private JLabel getHideEnemyNamesLabel() {
if (hideEnemyNamesLabel == null) {
hideEnemyNamesLabel = new JLabel();
hideEnemyNamesLabel.setText("Hide Enemy Names:");
hideEnemyNamesLabel.setHorizontalAlignment(SwingConstants.RIGHT);
}
return hideEnemyNamesLabel;
}
private void initialize() {
JPanel j = new JPanel();
j.setLayout(new GridLayout(3, 2, 5, 5));
j.setBorder(BorderFactory.createEtchedBorder());
j.add(getGunCoolingRateLabel(), getGunCoolingRateLabel().getName());
j.add(getGunCoolingRateField(), getGunCoolingRateField().getName());
j.add(getInactivityTimeLabel(), getInactivityTimeLabel().getName());
j.add(getInactivityTimeField(), getInactivityTimeField().getName());
j.add(getHideEnemyNamesLabel(), getHideEnemyNamesLabel().getName());
j.add(getHideEnemyNamesCheckBox(), getHideEnemyNamesCheckBox().getName());
add(j);
}
public void setGunCoolingRate(double gunCoolingRate) {
getGunCoolingRateField().setText("" + gunCoolingRate);
}
public void setInactivityTime(long inactivityTime) {
getInactivityTimeField().setText("" + inactivityTime);
}
public void setHideEnemyNames(boolean hideEnemyNames) {
getHideEnemyNamesCheckBox().setSelected(hideEnemyNames);
}
}