Please take time to read the code disclaimer.
/**
* EditProject.java
*
* Created on Dec 5, 2011, 4:15:50 PM
*/
package front;
import back.*;
import folderfind.*;
import java.awt.*;
import java.io.File;
import javax.swing.*;
/**
*
* @author labuser
*/
public class EditProject extends javax.swing.JDialog {
private Project project;
private Project storeProject;
/**
* Creates new form EditProject
* @param parent
* @param modal
* @param project
*/
public EditProject(java.awt.Frame parent, boolean modal, Project project) {
super(parent, modal);
this.project = project;
this.storeProject = project;
initComponents();
StaticClass.centerAndPack(this);
}
/** 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;
projectNameLabel = new javax.swing.JLabel();
projectSourceLabel = new javax.swing.JLabel();
projectNameTextField = new javax.swing.JTextField();
sourceLabel = new javax.swing.JLabel();
chooseNewSourceButton = new javax.swing.JButton();
submitChangesButton = new javax.swing.JButton();
goBackButton = new javax.swing.JButton();
projectPostURLLabel = new javax.swing.JLabel();
projectPostURLTextField = new javax.swing.JTextField();
projectYouTubeCodeLabel = new javax.swing.JLabel();
projectYouTubeCodeTextField = new javax.swing.JTextField();
projectPageLabel = new javax.swing.JLabel();
projectPageTextField = new javax.swing.JTextField();
hasJarCheckBox = new javax.swing.JCheckBox();
jLabel1 = new javax.swing.JLabel();
assignmentNameTextField = new javax.swing.JTextField();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setTitle("Editing: " + project.getName());
getContentPane().setLayout(new java.awt.GridBagLayout());
projectNameLabel.setText("Project 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);
getContentPane().add(projectNameLabel, gridBagConstraints);
projectSourceLabel.setText("Project Directory: ");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 6;
gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_END;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
getContentPane().add(projectSourceLabel, gridBagConstraints);
projectNameTextField.setText(project.getName());
projectNameTextField.setMinimumSize(new java.awt.Dimension(175, 28));
projectNameTextField.setPreferredSize(new java.awt.Dimension(175, 28));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 0;
gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START;
gridBagConstraints.weightx = 0.1;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
getContentPane().add(projectNameTextField, gridBagConstraints);
sourceLabel.setText(StaticClass.displayTextShortener(project.getFile().getPath(), 50));
sourceLabel.setMaximumSize(new java.awt.Dimension(300, 16));
sourceLabel.setMinimumSize(new java.awt.Dimension(300, 16));
sourceLabel.setPreferredSize(new java.awt.Dimension(300, 16));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 6;
gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START;
gridBagConstraints.weightx = 0.1;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
getContentPane().add(sourceLabel, gridBagConstraints);
chooseNewSourceButton.setText("Change Directory");
chooseNewSourceButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
chooseNewSourceButtonActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 7;
gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
getContentPane().add(chooseNewSourceButton, gridBagConstraints);
submitChangesButton.setText("Submit");
submitChangesButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
submitChangesButtonActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 8;
gridBagConstraints.anchor = java.awt.GridBagConstraints.LAST_LINE_END;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
getContentPane().add(submitChangesButton, gridBagConstraints);
goBackButton.setText("<-- Go Back");
goBackButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
goBackButtonActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 8;
gridBagConstraints.anchor = java.awt.GridBagConstraints.LAST_LINE_START;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
getContentPane().add(goBackButton, gridBagConstraints);
projectPostURLLabel.setText("Project Post URL: ");
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);
getContentPane().add(projectPostURLLabel, gridBagConstraints);
projectPostURLTextField.setText(project.getPostURL());
projectPostURLTextField.setMinimumSize(new java.awt.Dimension(100, 28));
projectPostURLTextField.setPreferredSize(new java.awt.Dimension(175, 28));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 1;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START;
gridBagConstraints.weightx = 0.1;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
getContentPane().add(projectPostURLTextField, gridBagConstraints);
projectYouTubeCodeLabel.setText("Project YouTube Code:");
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);
getContentPane().add(projectYouTubeCodeLabel, gridBagConstraints);
projectYouTubeCodeTextField.setText(project.getYouTubeCode());
projectYouTubeCodeTextField.setMinimumSize(new java.awt.Dimension(175, 28));
projectYouTubeCodeTextField.setPreferredSize(new java.awt.Dimension(175, 28));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 3;
gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
getContentPane().add(projectYouTubeCodeTextField, gridBagConstraints);
projectPageLabel.setText("Project Page: ");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 4;
gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_END;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
getContentPane().add(projectPageLabel, gridBagConstraints);
projectPageTextField.setText(project.getProjectPage());
projectPageTextField.setMinimumSize(new java.awt.Dimension(175, 28));
projectPageTextField.setPreferredSize(new java.awt.Dimension(175, 28));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 4;
gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
getContentPane().add(projectPageTextField, gridBagConstraints);
hasJarCheckBox.setSelected(project.hasJar());
hasJarCheckBox.setText("Has Jar?");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 5;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
getContentPane().add(hasJarCheckBox, gridBagConstraints);
jLabel1.setText("Assignment Name: ");
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);
getContentPane().add(jLabel1, gridBagConstraints);
assignmentNameTextField.setText(project.getAssignmentName());
assignmentNameTextField.setMinimumSize(new java.awt.Dimension(175, 28));
assignmentNameTextField.setPreferredSize(new java.awt.Dimension(175, 28));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 2;
gridBagConstraints.anchor = java.awt.GridBagConstraints.LINE_START;
gridBagConstraints.weightx = 0.1;
gridBagConstraints.insets = new java.awt.Insets(5, 5, 5, 5);
getContentPane().add(assignmentNameTextField, gridBagConstraints);
pack();
}// //GEN-END:initComponents
private void goBackButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_goBackButtonActionPerformed
project = storeProject;
this.dispose();
}//GEN-LAST:event_goBackButtonActionPerformed
private void chooseNewSourceButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chooseNewSourceButtonActionPerformed
chooseNewSource();
}//GEN-LAST:event_chooseNewSourceButtonActionPerformed
private void submitChangesButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_submitChangesButtonActionPerformed
project.setName(projectNameTextField.getText());
project.setPostURL(projectPostURLTextField.getText());
project.setAssignmentName(assignmentNameTextField.getText());
project.setJar(hasJarCheckBox.isSelected());
project.setProjectPage(projectPageTextField.getText());
project.setYouTubeCode(projectYouTubeCodeTextField.getText());
this.dispose();
}//GEN-LAST:event_submitChangesButtonActionPerformed
/**
* This method opens a jfolderchooser
*/
public void chooseNewSource() {
try {
JFolderChooser chooser = new JFolderChooser();
chooser.setTitle("Select assignment folder");
chooser.setMinimumSize(new Dimension(500, 500));
chooser.showOpenDialog(this);
if (!chooser.isCanceled()) {
String name = chooser.getSelectedFile().getName();
project.setName(name);
project.setFile(chooser.getSelectedFile());
projectNameTextField.setText(name);
sourceLabel.setText(StaticClass.displayTextShortener(chooser.getSelectedFile().getPath(), 45));
}
} catch (Exception e) {
JOptionPane exception = new JOptionPane();
exception.setVisible(true);
exception.setMessage("There has been an error:\n" + e);
}
}
/**
* @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(EditProject.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(EditProject.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(EditProject.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(EditProject.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//
/** Create and display the dialog */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
EditProject dialog = new EditProject(new javax.swing.JFrame(), true, new Project(new CodeSyntaxBuilder(new ProjectsFrame()), new File(StaticClass.homeDir)));
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.JTextField assignmentNameTextField;
private javax.swing.JButton chooseNewSourceButton;
private javax.swing.JButton goBackButton;
private javax.swing.JCheckBox hasJarCheckBox;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel projectNameLabel;
private javax.swing.JTextField projectNameTextField;
private javax.swing.JLabel projectPageLabel;
private javax.swing.JTextField projectPageTextField;
private javax.swing.JLabel projectPostURLLabel;
private javax.swing.JTextField projectPostURLTextField;
private javax.swing.JLabel projectSourceLabel;
private javax.swing.JLabel projectYouTubeCodeLabel;
private javax.swing.JTextField projectYouTubeCodeTextField;
private javax.swing.JLabel sourceLabel;
private javax.swing.JButton submitChangesButton;
// End of variables declaration//GEN-END:variables
}