Please take time to read the code disclaimer.

<--Go back to Kent's Projects

<--Go back to project post

/**
 * 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
}