0,0 → 1,216 |
/* |
* TaskPropertiesDialog.java - task properties dialog |
* |
* Copyright (c) 2008 Lukas Jelinek, http://www.aiken.cz |
* |
* ========================================================================== |
* |
* This program is free software; you can redistribute it and/or modify |
* it under the terms of the GNU General Public License Version 2 as |
* published by the Free Software Foundation. |
* |
* This program is distributed in the hope that it will be useful, |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
* GNU General Public License for more details. |
* |
* You should have received a copy of the GNU General Public License |
* along with this program; if not, write to the Free Software |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
* |
* ========================================================================== |
*/ |
|
package cz.aiken.util.lwtt; |
|
import javax.swing.JOptionPane; |
|
/** |
* Task properties dialog class. |
* |
* This class allows to set various properties of a task. Currently only |
* price per hour can be set. |
* |
* @author luk |
*/ |
public class TaskPropetiesDialog extends javax.swing.JDialog { |
/** A return status code - returned if Cancel button has been pressed */ |
public static final int RET_CANCEL = 0; |
/** A return status code - returned if OK button has been pressed */ |
public static final int RET_OK = 1; |
|
private double price = 1; |
|
/** Creates a new TaskPropetiesDialog. |
* @param parent parent object for this dialog |
* @param modal modal dialog yes/no |
*/ |
public TaskPropetiesDialog(java.awt.Frame parent, boolean modal) { |
super(parent, modal); |
initComponents(); |
priceText.setText(Double.toString(price)); |
} |
|
/** |
* Returns the "return status" of this dialog - one of RET_OK or RET_CANCEL. |
* |
* @return return status |
*/ |
public int getReturnStatus() { |
return returnStatus; |
} |
|
/** |
* Sets the price per hour. |
* |
* @param price new price per hour |
*/ |
public void setPrice(double price) { |
this.price = price; |
priceText.setText(Double.toString(price)); |
} |
|
/** |
* Returns the price per hour. |
* |
* @return price per hour |
*/ |
public double getPrice() { |
return price; |
} |
|
|
/** This method is called from within the constructor to |
* initialize the form. |
* WARNING: Do NOT modify this code. The content of this method is |
* always regenerated by the Form Editor. |
*/ |
@SuppressWarnings("unchecked") |
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents |
private void initComponents() { |
|
okButton = new javax.swing.JButton(); |
cancelButton = new javax.swing.JButton(); |
priceLabel = new javax.swing.JLabel(); |
priceText = new javax.swing.JTextField(); |
|
setTitle("Properties"); |
setLocationByPlatform(true); |
setResizable(false); |
addWindowListener(new java.awt.event.WindowAdapter() { |
public void windowClosing(java.awt.event.WindowEvent evt) { |
closeDialog(evt); |
} |
}); |
|
okButton.setText("OK"); |
okButton.addActionListener(new java.awt.event.ActionListener() { |
public void actionPerformed(java.awt.event.ActionEvent evt) { |
okButtonActionPerformed(evt); |
} |
}); |
|
cancelButton.setText("Cancel"); |
cancelButton.addActionListener(new java.awt.event.ActionListener() { |
public void actionPerformed(java.awt.event.ActionEvent evt) { |
cancelButtonActionPerformed(evt); |
} |
}); |
|
priceLabel.setText("Price per hour"); |
|
priceText.setHorizontalAlignment(javax.swing.JTextField.RIGHT); |
|
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); |
getContentPane().setLayout(layout); |
layout.setHorizontalGroup( |
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) |
.addGroup(layout.createSequentialGroup() |
.addContainerGap() |
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) |
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() |
.addComponent(okButton, javax.swing.GroupLayout.PREFERRED_SIZE, 67, javax.swing.GroupLayout.PREFERRED_SIZE) |
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) |
.addComponent(cancelButton)) |
.addGroup(layout.createSequentialGroup() |
.addComponent(priceLabel) |
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) |
.addComponent(priceText, javax.swing.GroupLayout.DEFAULT_SIZE, 69, Short.MAX_VALUE))) |
.addContainerGap()) |
); |
|
layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {cancelButton, okButton}); |
|
layout.setVerticalGroup( |
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) |
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() |
.addContainerGap() |
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) |
.addComponent(priceLabel) |
.addComponent(priceText, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) |
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 22, Short.MAX_VALUE) |
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) |
.addComponent(cancelButton) |
.addComponent(okButton)) |
.addContainerGap()) |
); |
|
pack(); |
}// </editor-fold>//GEN-END:initComponents |
|
private void okButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_okButtonActionPerformed |
try { |
double p = Double.parseDouble(priceText.getText()); |
if (p < 0) |
throw new NumberFormatException("price value must not be negative"); |
price = p; |
doClose(RET_OK); |
} catch (NumberFormatException ex) { |
JOptionPane.showMessageDialog(this, "Price per hour has invalid format.\nPlease use a non-negative number.", "Invalid format", JOptionPane.ERROR_MESSAGE); |
} |
}//GEN-LAST:event_okButtonActionPerformed |
|
private void cancelButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancelButtonActionPerformed |
doClose(RET_CANCEL); |
}//GEN-LAST:event_cancelButtonActionPerformed |
|
/** Closes the dialog */ |
private void closeDialog(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_closeDialog |
doClose(RET_CANCEL); |
}//GEN-LAST:event_closeDialog |
|
private void doClose(int retStatus) { |
returnStatus = retStatus; |
setVisible(false); |
dispose(); |
} |
|
/** |
* This method is only for testing purposes. |
* |
* @param args the command line arguments |
*/ |
public static void main(String args[]) { |
java.awt.EventQueue.invokeLater(new Runnable() { |
public void run() { |
TaskPropetiesDialog dialog = new TaskPropetiesDialog(new javax.swing.JFrame(), true); |
dialog.addWindowListener(new java.awt.event.WindowAdapter() { |
@Override |
public void windowClosing(java.awt.event.WindowEvent e) { |
System.exit(0); |
} |
}); |
dialog.setVisible(true); |
} |
}); |
} |
|
// Variables declaration - do not modify//GEN-BEGIN:variables |
private javax.swing.JButton cancelButton; |
private javax.swing.JButton okButton; |
private javax.swing.JLabel priceLabel; |
private javax.swing.JTextField priceText; |
// End of variables declaration//GEN-END:variables |
|
private int returnStatus = RET_CANCEL; |
} |