package pizzaorder;
import java.util.Locale;
import java.util.ResourceBundle;
import javax.swing.JDialog;
import javax.swing.JOptionPane;
/**
* A Simple Swing Application to demonstrate Subversion and
* collaborative development.
* The App shows a pizza order form that can be displayed in
* different languages.
* @author jdalbey
*/
public class GUI extends javax.swing.JFrame
{
private JDialog creditsBox;
private String acknowledgement = "";
private final String[] localeCodes =
{
"en", "sq", "ar", "bg", "ca", "zh", "hr", "cs", "da", "nl", "fi",
"fr", "de", "el", "iw", "hu", "is", "in", "ga", "it", "ja", "ko", "lv",
"lt", "ms", "mt", "no", "pl", "pt", "ro", "ru", "sk", "sl", "es",
"sv", "tr", "uk", "ur", "vi", "cy"
};
/**
* Creates new form GUI
*/
public GUI()
{
initComponents();
// Build the language combo box from the language codes array
for (int item = 0; item < localeCodes.length; item++)
{
Locale current = new Locale(localeCodes[item], "");
String menuItem = localeCodes[item] + " / "
+ current.getDisplayName();
comboLocale.addItem(menuItem);
}
}
/**
* 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")
// //GEN-BEGIN:initComponents
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
jPanel2 = new javax.swing.JPanel();
lblLocale = new javax.swing.JLabel();
comboLocale = new javax.swing.JComboBox<>();
jPanel3 = new javax.swing.JPanel();
lblToppings = new javax.swing.JLabel();
jCheckBox1 = new javax.swing.JCheckBox();
jCheckBox2 = new javax.swing.JCheckBox();
jCheckBox3 = new javax.swing.JCheckBox();
jCheckBox4 = new javax.swing.JCheckBox();
jCheckBox5 = new javax.swing.JCheckBox();
jCheckBox6 = new javax.swing.JCheckBox();
jPanel4 = new javax.swing.JPanel();
btnSubmit = new javax.swing.JButton();
menubar = new javax.swing.JMenuBar();
mnuFile = new javax.swing.JMenu();
mnuExit = new javax.swing.JMenuItem();
mnuHelp = new javax.swing.JMenu();
mnuCredits = new javax.swing.JMenuItem();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("Pizza Order International");
lblLocale.setText("Select Locale");
comboLocale.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
comboLocaleActionPerformed(evt);
}
});
javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
jPanel2.setLayout(jPanel2Layout);
jPanel2Layout.setHorizontalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addContainerGap()
.addComponent(lblLocale)
.addGap(18, 18, 18)
.addComponent(comboLocale, javax.swing.GroupLayout.PREFERRED_SIZE, 262, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(37, Short.MAX_VALUE))
);
jPanel2Layout.setVerticalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(lblLocale)
.addComponent(comboLocale, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(16, Short.MAX_VALUE))
);
jPanel3.setBackground(new java.awt.Color(-3355393,true));
lblToppings.setText("Desired toppings");
jCheckBox1.setText("Onions");
jCheckBox2.setText("Mushrooms");
jCheckBox3.setText("Peppers");
jCheckBox4.setText("Olives");
jCheckBox5.setText("Tomatoes");
jCheckBox6.setText("Pepperoni");
javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
jPanel3.setLayout(jPanel3Layout);
jPanel3Layout.setHorizontalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addComponent(lblToppings)
.addContainerGap(303, Short.MAX_VALUE))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jCheckBox2)
.addComponent(jCheckBox1)
.addComponent(jCheckBox3))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 143, Short.MAX_VALUE)
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
.addComponent(jCheckBox6, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jCheckBox4, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jCheckBox5, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGap(70, 70, 70))))
);
jPanel3Layout.setVerticalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addComponent(lblToppings)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jCheckBox1)
.addComponent(jCheckBox4))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jCheckBox2)
.addComponent(jCheckBox5))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jCheckBox3)
.addComponent(jCheckBox6))
.addGap(0, 42, Short.MAX_VALUE))
);
btnSubmit.setText("Submit Order");
btnSubmit.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnSubmitActionPerformed(evt);
}
});
javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4);
jPanel4.setLayout(jPanel4Layout);
jPanel4Layout.setHorizontalGroup(
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel4Layout.createSequentialGroup()
.addContainerGap(280, Short.MAX_VALUE)
.addComponent(btnSubmit)
.addGap(22, 22, 22))
);
jPanel4Layout.setVerticalGroup(
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel4Layout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(btnSubmit)
.addContainerGap())
);
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
.addContainerGap())
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 21, Short.MAX_VALUE))
);
mnuFile.setText("File");
mnuExit.setText("Exit");
mnuExit.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
mnuExitActionPerformed(evt);
}
});
mnuFile.add(mnuExit);
menubar.add(mnuFile);
mnuHelp.setText("Help");
mnuCredits.setText("Credits");
mnuCredits.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
mnuCreditsActionPerformed(evt);
}
});
mnuHelp.add(mnuCredits);
menubar.add(mnuHelp);
setJMenuBar(menubar);
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()
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
pack();
}// //GEN-END:initComponents
private void comboLocaleActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_comboLocaleActionPerformed
{//GEN-HEADEREND:event_comboLocaleActionPerformed
// When a locale is selected, load the properties file for that locale
// and change the labels in the GUI using the properties values.
Locale currentLocale = new Locale(((String)comboLocale.getSelectedItem()).substring(0,2),"");
//System.out.println("locale " + currentLocale.getDisplayName());
ResourceBundle labels =
ResourceBundle.getBundle("resources.Labels", currentLocale);
lblToppings.setText(labels.getString("label1"));
jCheckBox1.setText(labels.getString("choice1"));
jCheckBox2.setText(labels.getString("choice2"));
jCheckBox3.setText(labels.getString("choice3"));
jCheckBox4.setText(labels.getString("choice4"));
jCheckBox5.setText(labels.getString("choice5"));
jCheckBox6.setText(labels.getString("choice6"));
btnSubmit.setText(labels.getString("button1"));
acknowledgement = labels.getString("message1");
}//GEN-LAST:event_comboLocaleActionPerformed
private void btnSubmitActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_btnSubmitActionPerformed
{//GEN-HEADEREND:event_btnSubmitActionPerformed
String toppings = new String();
if (jCheckBox1.isSelected()) toppings += ' '+ jCheckBox1.getText();
if (jCheckBox2.isSelected()) toppings += ' '+ jCheckBox2.getText();
if (jCheckBox3.isSelected()) toppings += ' '+ jCheckBox3.getText();
if (jCheckBox4.isSelected()) toppings += ' '+ jCheckBox4.getText();
if (jCheckBox5.isSelected()) toppings += ' '+ jCheckBox5.getText();
if (jCheckBox6.isSelected()) toppings += ' '+ jCheckBox6.getText();
javax.swing.JOptionPane.showMessageDialog(this,
acknowledgement + " \n" + toppings,"Order Confirmation", JOptionPane.INFORMATION_MESSAGE);
}//GEN-LAST:event_btnSubmitActionPerformed
private void mnuCreditsActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_mnuCreditsActionPerformed
{//GEN-HEADEREND:event_mnuCreditsActionPerformed
if (creditsBox == null)
{
creditsBox = new CreditsBox(this, true);
}
creditsBox.setVisible(true);
}//GEN-LAST:event_mnuCreditsActionPerformed
private void mnuExitActionPerformed(java.awt.event.ActionEvent evt)//GEN-FIRST:event_mnuExitActionPerformed
{//GEN-HEADEREND:event_mnuExitActionPerformed
this.dispose();
}//GEN-LAST:event_mnuExitActionPerformed
/**
* @param args the command line arguments
*/
public static void main(String args[])
{
/* Set the Nimbus look and feel */
//
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try
{
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.
getInstalledLookAndFeels())
{
if ("Nimbus".equals(info.getName()))
{
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
}
catch (ClassNotFoundException ex)
{
java.util.logging.Logger.getLogger(GUI.class.getName()).log(
java.util.logging.Level.SEVERE, null, ex);
}
catch (InstantiationException ex)
{
java.util.logging.Logger.getLogger(GUI.class.getName()).log(
java.util.logging.Level.SEVERE, null, ex);
}
catch (IllegalAccessException ex)
{
java.util.logging.Logger.getLogger(GUI.class.getName()).log(
java.util.logging.Level.SEVERE, null, ex);
}
catch (javax.swing.UnsupportedLookAndFeelException ex)
{
java.util.logging.Logger.getLogger(GUI.class.getName()).log(
java.util.logging.Level.SEVERE, null, ex);
}
//
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable()
{
public void run()
{
new GUI().setVisible(true);
}
});
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton btnSubmit;
private javax.swing.JComboBox comboLocale;
private javax.swing.JCheckBox jCheckBox1;
private javax.swing.JCheckBox jCheckBox2;
private javax.swing.JCheckBox jCheckBox3;
private javax.swing.JCheckBox jCheckBox4;
private javax.swing.JCheckBox jCheckBox5;
private javax.swing.JCheckBox jCheckBox6;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JPanel jPanel4;
private javax.swing.JLabel lblLocale;
private javax.swing.JLabel lblToppings;
private javax.swing.JMenuBar menubar;
private javax.swing.JMenuItem mnuCredits;
private javax.swing.JMenuItem mnuExit;
private javax.swing.JMenu mnuFile;
private javax.swing.JMenu mnuHelp;
// End of variables declaration//GEN-END:variables
}