Please take time to read the code disclaimer.
/**
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
* CustomLanguage.java
*
* Created on Dec 21, 2011, 4:34:31 PM
*/
package metagui;
import broadscope.*;
import java.util.*;
import javax.swing.*;
import metadatagenerator.*;
/**
*
* @author Video
*/
public class CustomLanguage extends javax.swing.JDialog {
private DefaultListModel tagListModel = new DefaultListModel();
private LinkedList tags = new LinkedList();
private ConferenceMDGenerator cmdg;
private boolean submitted = false;
/**
* Creates new form CustomLanguage
* @param parent
* @param modal
* @param cmdg
*/
public CustomLanguage(java.awt.Frame parent, boolean modal, ConferenceMDGenerator cmdg) {
super(parent, modal);
initComponents();
this.cmdg = cmdg;
englishNameTextField.requestFocus();
StaticClass.addPartLogo(getContentPane(), getClass(), true, 40, java.awt.GridBagConstraints.SOUTHEAST, true);
StaticClass.centerAndPack(this);
StaticClass.setUnifiedColor(rootPane, java.awt.Color.white);
}
/** 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() {
java.awt.GridBagConstraints gridBagConstraints;
infoPanel1 = new javax.swing.JPanel();
englishNameLabel = new javax.swing.JLabel();
englishNameTextField = new javax.swing.JTextField();
nameLabel = new javax.swing.JLabel();
nameTextField = new javax.swing.JTextField();
socialMormonSiteLabel = new javax.swing.JLabel();
socialMormonSiteTextField = new javax.swing.JTextField();
mormonOrgSiteLabel = new javax.swing.JLabel();
mormonOrgSiteTextField = new javax.swing.JTextField();
infoPanel2 = new javax.swing.JPanel();
genericTagsLabel = new javax.swing.JLabel();
genericTagsTextField = new javax.swing.JTextField();
addTagButton = new javax.swing.JButton();
tagScrollPane = new javax.swing.JScrollPane();
tagJList = new javax.swing.JList();
cancelButton = new javax.swing.JButton();
submitButton = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setTitle("Create Custom Language");
getContentPane().setLayout(new java.awt.GridBagLayout());
infoPanel1.setLayout(new java.awt.GridBagLayout());
englishNameLabel.setText("English Name: ");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0;
gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_END;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
infoPanel1.add(englishNameLabel, gridBagConstraints);
englishNameTextField.setPreferredSize(new java.awt.Dimension(100, 28));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
infoPanel1.add(englishNameTextField, gridBagConstraints);
nameLabel.setText("Name: ");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 1;
gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_END;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
infoPanel1.add(nameLabel, gridBagConstraints);
nameTextField.setPreferredSize(new java.awt.Dimension(100, 28));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 1;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
infoPanel1.add(nameTextField, gridBagConstraints);
socialMormonSiteLabel.setText("Social Mormon Site: ");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 2;
gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_END;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
infoPanel1.add(socialMormonSiteLabel, gridBagConstraints);
socialMormonSiteTextField.setPreferredSize(new java.awt.Dimension(100, 28));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 2;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
infoPanel1.add(socialMormonSiteTextField, gridBagConstraints);
mormonOrgSiteLabel.setText("Mormon.org Site: ");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 3;
gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_END;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
infoPanel1.add(mormonOrgSiteLabel, gridBagConstraints);
mormonOrgSiteTextField.setPreferredSize(new java.awt.Dimension(100, 28));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 3;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
infoPanel1.add(mormonOrgSiteTextField, gridBagConstraints);
getContentPane().add(infoPanel1, new java.awt.GridBagConstraints());
infoPanel2.setLayout(new java.awt.GridBagLayout());
genericTagsLabel.setText("Generic Tags: ");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0;
gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_END;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
infoPanel2.add(genericTagsLabel, gridBagConstraints);
genericTagsTextField.setPreferredSize(new java.awt.Dimension(100, 28));
genericTagsTextField.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
genericTagsTextFieldActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 0;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
infoPanel2.add(genericTagsTextField, gridBagConstraints);
addTagButton.setText("Add Tag");
addTagButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
addTagButtonActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 2;
gridBagConstraints.gridy = 0;
gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
infoPanel2.add(addTagButton, gridBagConstraints);
tagScrollPane.setViewportBorder(javax.swing.BorderFactory.createTitledBorder("Tags"));
tagScrollPane.setPreferredSize(new java.awt.Dimension(150, 170));
tagJList.setModel(tagListModel);
tagJList.setToolTipText("Double-click to remove");
tagJList.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
tagJListMouseClicked(evt);
}
});
tagScrollPane.setViewportView(tagJList);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 1;
gridBagConstraints.gridwidth = 3;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
infoPanel2.add(tagScrollPane, gridBagConstraints);
getContentPane().add(infoPanel2, new java.awt.GridBagConstraints());
cancelButton.setText("Cancel");
cancelButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cancelButtonActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 6;
gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_START;
gridBagConstraints.insets = new java.awt.Insets(10, 10, 10, 10);
getContentPane().add(cancelButton, gridBagConstraints);
submitButton.setText("Submit");
submitButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
submitButtonActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 2;
gridBagConstraints.gridy = 6;
gridBagConstraints.anchor = java.awt.GridBagConstraints.FIRST_LINE_END;
gridBagConstraints.insets = new java.awt.Insets(10, 10, 10, 10);
getContentPane().add(submitButton, gridBagConstraints);
pack();
}// //GEN-END:initComponents
private void addTagButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_addTagButtonActionPerformed
addTag();
}//GEN-LAST:event_addTagButtonActionPerformed
private void tagJListMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_tagJListMouseClicked
if (evt.getClickCount() == 2) {
tags.remove(getSelectedTag());
updateList();
}
}//GEN-LAST:event_tagJListMouseClicked
private void genericTagsTextFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_genericTagsTextFieldActionPerformed
addTag();
}//GEN-LAST:event_genericTagsTextFieldActionPerformed
private void cancelButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancelButtonActionPerformed
this.dispose();
}//GEN-LAST:event_cancelButtonActionPerformed
private void submitButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_submitButtonActionPerformed
submit();
submitted = true;
this.dispose();
}//GEN-LAST:event_submitButtonActionPerformed
/**
* This method adds the given tag
*/
public void addTag() {
if (!genericTagsTextField.getText().isEmpty()) {
tags.add(genericTagsTextField.getText());
updateList();
genericTagsTextField.setText("");
genericTagsTextField.requestFocus();
}
}
/**
* This method submits the new language
*/
public void submit() {
LanguageType newLanguageType = new LanguageType();
newLanguageType.setEnglishName(englishNameTextField.getText());
newLanguageType.setName(nameTextField.getText());
newLanguageType.setSocialSite(socialMormonSiteTextField.getText());
newLanguageType.setMormonSite(mormonOrgSiteTextField.getText());
newLanguageType.setGenericTagList(tags);
newLanguageType.setSelected(true);
newLanguageType.resetMormonSite();
cmdg.getAllLanguageTypesList().add(newLanguageType);
}
/**
* This method updates the tags list
*/
public void updateList() {
tagListModel.clear();
for (String tag : tags) {
tagListModel.addElement(tag);
}
}
/**
* This method gets the selected tag
* @return selectedTag
*/
public String getSelectedTag() {
String tag = "";
if (tagJList.getSelectedIndex() != -1) {
tag = tags.get(tagJList.getSelectedIndex());
}
return tag;
}
//
/**
* @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(CustomLanguage.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(CustomLanguage.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(CustomLanguage.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(CustomLanguage.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//
/** Create and display the dialog */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
CustomLanguage dialog = new CustomLanguage(new javax.swing.JFrame(), true, new ConferenceMDGenerator(new DescriptionFrame()));
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 addTagButton;
private javax.swing.JButton cancelButton;
private javax.swing.JLabel englishNameLabel;
private javax.swing.JTextField englishNameTextField;
private javax.swing.JLabel genericTagsLabel;
private javax.swing.JTextField genericTagsTextField;
private javax.swing.JPanel infoPanel1;
private javax.swing.JPanel infoPanel2;
private javax.swing.JLabel mormonOrgSiteLabel;
private javax.swing.JTextField mormonOrgSiteTextField;
private javax.swing.JLabel nameLabel;
private javax.swing.JTextField nameTextField;
private javax.swing.JLabel socialMormonSiteLabel;
private javax.swing.JTextField socialMormonSiteTextField;
private javax.swing.JButton submitButton;
private javax.swing.JList tagJList;
private javax.swing.JScrollPane tagScrollPane;
// End of variables declaration//GEN-END:variables
//
/**
* @return the submitted
*/
public boolean isSubmitted() {
return submitted;
}
/**
* @param submitted the submitted to set
*/
public void setSubmitted(boolean submitted) {
this.submitted = submitted;
}
}