/Users/johnr/Dropbox/johnrayworth.info/largeFilesOutsideJSR/__IB-Other/Other/IA-Solutions-2020/Nont/Product/Nont - IA/src/nont/ia/Main.java
   1 /*
   2  * To change this license header, choose License Headers in Project Properties.
   3  * To change this template file, choose Tools | Templates
   4  * and open the template in the editor.
   5  */
   6 package nont.ia;
   7 
   8 import java.util.ArrayList;
   9 
  10 /**
  11  * TO DO LIST:
  12  * Make edit thingy.. and delete while in creation
  13  * 
  14  * @author 15837
  15  */
  16 public class Main extends javax.swing.JFrame {
  17 
  18     /**
  19      * Creates new form NewJFrame
  20      */
  21     
  22     Song[] songsArray = new Song[99];
  23     private ArrayList<Chord> chordChart;
  24     private int rowCount = 0;
  25     private int columnCount = 0;
  26     private int counter = 0;
  27     private ArrayList<Chord>tempChords = new ArrayList<Chord>();
  28     
  29     
  30     public Main() {
  31         initComponents();
  32         myInitComponents();
  33     }
  34     
  35     public void myInitComponents(){
  36         for(int i = 0; i < songsArray.length; i++){
  37             songsArray[i] = new Song();
  38         }
  39     }
  40 
  41                                                  
1131                     
1191 
1192     private void addSectionButtonMouseReleased(java.awt.event.MouseEvent evt) {                                               
1193         // TODO add your handling code here:
1194         chordChartTable.setValueAt(sectionComboBox.getSelectedItem(), rowCount, 0);
1195         rowCount++;
1196     }                                              
1197 
1198     
1199     
1200     private void addChordsButtonMouseReleased(java.awt.event.MouseEvent evt) {                                              
1201         // TODO add your handling code here:
1202         String baseChord = baseChordComboBox.getSelectedItem()+"";
1203         boolean minor = minorCheckBox.isSelected();
1204         String varience = varienceComboBox.getSelectedItem()+"";
1205         boolean outOfKey = outOfKeyCheckBox.isSelected();
1206         tempChords.add(new Chord(baseChord, minor, varience, outOfKey));
1207         
1208         String chord1 = "";
1209         if(minorCheckBox.isSelected()){
1210             chord1 = baseChord + "m" + varience;
1211         }
1212         else{
1213             chord1 = baseChord + varience;
1214         }
1215         
1216         chordChartTable.setValueAt(chord1, rowCount, columnCount);
1217         columnCount++;
1218         if (columnCount == 4){
1219             columnCount = 0;
1220             rowCount++;
1221         }
1222 
1223     }                                             
1224 
1225     private void addSongButtonMouseReleased(java.awt.event.MouseEvent evt) {                                            
1226         // TODO add your handling code here:
1227         chordChart = tempChords;
1228         tempChords = new ArrayList<Chord>();
1229         String songName = songNameTF.getText();
1230         String artistName = artistNameTF.getText();
1231         String albumName = albumNameTF.getText();
1232         String genreName = genreTF.getText();
1233         String date = (monthComboBox.getSelectedItem()+" ") + (dayComboBox.getSelectedItem()+" ") + (yearComboBox.getSelectedItem()+"");
1234         //add a dateConvertedToNumber attribute to your song class
1235         //200219
1236         //200221
1237         songsArray[counter] = new Song(songName, artistName, albumName, genreName, chordChart, date);
1238         
1239         //songsArray[counter].setProgression(songsArray[counter].getChordChart());
1240         
1241         Transpose transpose = new Transpose();
1242         songsArray[counter].setKey(transpose.analyzeKey(songsArray[counter]));
1243         songsArray[counter].setProgression(transpose.chordProgression(songsArray[counter]));
1244         
1245 //        for(int i = 0; i < songsArray[counter].getProgression().size(); i++){
1246 //            System.out.println(songsArray[counter].getProgression().get(i));
1247 //        }
1248         
1249         
1250         songNameTF.setText("");
1251         artistNameTF.setText("");
1252         albumNameTF.setText("");
1253         genreTF.setText("");
1254         
1255         monthComboBox.setSelectedIndex(0);
1256         dayComboBox.setSelectedIndex(0);
1257         yearComboBox.setSelectedIndex(0);
1258         
1259         //System.out.println(songsArray[0].getSongName());
1260         
1261         for (int row = 0; row < chordChartTable.getRowCount(); row++){
1262             for (int col = 0; col < chordChartTable.getColumnCount(); col++){
1263                 chordChartTable.setValueAt("", row, col);
1264             }
1265         }
1266         
1267         rowCount = 0;
1268         counter++;
1269     }                                           
1270 
1271     private void refreshDisplayTableButtonMouseReleased(java.awt.event.MouseEvent evt) {                                                        
1272         // TODO add your handling code here:
1273         refreshTable();
1274     }                                                       
1275 
1276     private void refreshTable(){
1277         for (int i = 0; i < songsArray.length; i++){
1278             
1279             //System.out.println("inside for loop refresh table");
1280             
1281             if(!songsArray[i].getSongName().equals("not yet set") ){
1282                 displayTable.setValueAt(songsArray[i].getDate(), i, 0);
1283                 displayTable.setValueAt(songsArray[i].getArtistName(), i, 1);
1284                 displayTable.setValueAt(songsArray[i].getSongName(), i, 2);
1285                 displayTable.setValueAt(songsArray[i].getAlbumName(), i, 3);
1286                 displayTable.setValueAt(songsArray[i].getGenreName(), i, 4);
1287                 displayTable.setValueAt(songsArray[i].getKey(), i, 5);
1288             }
1289         }
1290     }
1291     
1292     private void sortArtistButtonMouseReleased(java.awt.event.MouseEvent evt) {                                               
1293         // TODO add your handling code here:
1294         Sorts sorts = new Sorts();
1295         sorts.sortByArtistName(songsArray, counter);
1296         
1297         refreshTable();
1298     }                                              
1299 
1300     private void sortSongNameButtonMouseReleased(java.awt.event.MouseEvent evt) {                                                 
1301         // TODO add your handling code here:
1302         Sorts sorts = new Sorts();
1303         sorts.sortBySongName(songsArray, counter);
1304         
1305         refreshTable();
1306     }                                                
1307 
1308     private void sortAlbumButtonMouseReleased(java.awt.event.MouseEvent evt) {                                              
1309         // TODO add your handling code here:
1310         Sorts sorts = new Sorts();
1311         sorts.sortByAlbumName(songsArray, counter);
1312         
1313         refreshTable();
1314     }                                             
1315 
1316     private void sortGenreButtonMouseReleased(java.awt.event.MouseEvent evt) {                                              
1317         // TODO add your handling code here:
1318         Sorts sorts = new Sorts();
1319         sorts.sortByGenreName(songsArray, counter);
1320         
1321         refreshTable();
1322     }                                             
1323 
1324     private void songNameSearchButtonMouseReleased(java.awt.event.MouseEvent evt) {                                                   
1325         // TODO add your handling code here:
1326         for (int i = 0; i < transposeKeyTable.getRowCount(); i++){
1327             for (int k = 0; k < transposeKeyTable.getColumnCount(); k++){
1328                 transposeKeyTable.setValueAt("", i, k);
1329             }
1330         }
1331         
1332         Song song = new Song();
1333         Transpose transpose = new Transpose();
1334         
1335         for (int i = 0; i < counter; i++){
1336             if(songNameSearchTF.getText().equals(songsArray[i].getSongName())){
1337                 song = songsArray[i];
1338             }
1339         }
1340 
1341         song.getChangeKey().clear();
1342          
1343         String key = changeKeyComboBox.getSelectedItem()+"";
1344         
1345         song.setChangeKey(transpose.transposeSong(song, key));
1346         
1347         int i = 0;
1348         
1349         for (int row = 0; row < transposeKeyTable.getRowCount(); row++){
1350             for (int col = 0; col < transposeKeyTable.getColumnCount(); col++){
1351                 if(i < song.getChangeKey().size()){
1352                     transposeKeyTable.setValueAt(song.getChangeKey().get(i), row, col);
1353                     i++;
1354                 }
1355             }
1356         }
1357         
1358         informationTextArea.setText("Original Key is: " + song.getKey() + "\nArtist name is: " + song.getArtistName() + "\nAlbum name is: " + song.getAlbumName());
1359     }                                                  
1360 
1361     private void refreshAddSongButtonMouseReleased(java.awt.event.MouseEvent evt) {                                                   
1362         // TODO add your handling code here:
1363     }                                                  
1364 
1365     private void chordProgressionButtonMouseReleased(java.awt.event.MouseEvent evt) {                                                     
1366         // TODO add your handling code here:
1367         for (int i = 0; i < transposeKeyTable.getRowCount(); i++){
1368             for (int k = 0; k < transposeKeyTable.getColumnCount(); k++){
1369                 transposeKeyTable.setValueAt("", i, k);
1370             }
1371         }
1372         
1373         Song song = new Song();
1374         Transpose transpose = new Transpose();
1375         
1376         for (int i = 0; i < counter; i++){
1377             if(songNameSearchTF.getText().equals(songsArray[i].getSongName())){
1378                 song = songsArray[i];
1379             }
1380         }
1381         
1382         int i = 0;
1383         
1384         for (int row = 0; row < transposeKeyTable.getRowCount(); row++){
1385             for (int col = 0; col < transposeKeyTable.getColumnCount(); col++){
1386                 if(i < song.getProgression().size()){
1387                     transposeKeyTable.setValueAt(song.getProgression().get(i), row, col);
1388                     i++;
1389                 }
1390             }
1391         }
1392         
1393     }                                                    
1394 



SAMPLE OF NETBEANS AUTO-GENERATED CODE


  42     /**
  43      * This method is called from within the constructor to initialize the form.
  44      * WARNING: Do NOT modify this code. The content of this method is always
  45      * regenerated by the Form Editor.
  46      */
  47     @SuppressWarnings("unchecked")
  48     // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
  49     private void initComponents() {
  50 
  51         jTabbedPane1 = new javax.swing.JTabbedPane();
  52         addSongPanel = new javax.swing.JPanel();
  53         baseChordComboBox = new javax.swing.JComboBox<>();
  54         jLabel1 = new javax.swing.JLabel();
  55         songNameTF = new javax.swing.JTextField();
  56         refreshAddSongButton = new javax.swing.JButton();
  57         jScrollPane1 = new javax.swing.JScrollPane();
  58         chordChartTable = new javax.swing.JTable();
  59         jLabel2 = new javax.swing.JLabel();
1078         copyMenuItem.setMnemonic('y');
1079         copyMenuItem.setText("Copy");
1080         editMenu.add(copyMenuItem);
1081 
1082         pasteMenuItem.setMnemonic('p');
1083         pasteMenuItem.setText("Paste");
1084         editMenu.add(pasteMenuItem);
1085 
1086         deleteMenuItem.setMnemonic('d');
1087         deleteMenuItem.setText("Delete");
1088         editMenu.add(deleteMenuItem);
1089 
1090         menuBar.add(editMenu);
1091 
1092         helpMenu.setMnemonic('h');
1093         helpMenu.setText("Help");
1094 
1095         contentsMenuItem.setMnemonic('c');
1096         contentsMenuItem.setText("Contents");
1097         helpMenu.add(contentsMenuItem);
1098 
1099         aboutMenuItem.setMnemonic('a');
1100         aboutMenuItem.setText("About");
1101         helpMenu.add(aboutMenuItem);
1102 
1103         menuBar.add(helpMenu);
1104 
1105         setJMenuBar(menuBar);
1106 
1107         javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
1108         getContentPane().setLayout(layout);
1109         layout.setHorizontalGroup(
1110             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1111             .addComponent(jTabbedPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 950, javax.swing.GroupLayout.PREFERRED_SIZE)
1112         );
1113         layout.setVerticalGroup(
1114             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1115             .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
1116                 .addContainerGap()
1117                 .addComponent(jTabbedPane1)
1118                 .addContainerGap())
1119         );
1120 
1121         pack();
1122     }// </editor-fold>                        
1123 
1124     private void exitMenuItemActionPerformed(java.awt.event.ActionEvent evt) {                                             
1125         System.exit(0);
1126     }                                            
1127 
1128     private void baseChordComboBoxActionPerformed(java.awt.event.ActionEvent evt) {                                                  
1129         // TODO add your handling code here:
1130     }    
1395     /**
1396      * @param args the command line arguments
1397      */
1398     public static void main(String args[]) {
1399         /* Set the Nimbus look and feel */
1400         //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
1401         /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
1402          * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
1403          */
1404         try {
1405             for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
1406                 if ("Nimbus".equals(info.getName())) {
1407                     javax.swing.UIManager.setLookAndFeel(info.getClassName());
1408                     break;
1409                 }
1410             }
1411         } catch (ClassNotFoundException ex) {
1412             java.util.logging.Logger.getLogger(Main.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
1413         } catch (InstantiationException ex) {
1414             java.util.logging.Logger.getLogger(Main.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
1415         } catch (IllegalAccessException ex) {
1416             java.util.logging.Logger.getLogger(Main.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
1417         } catch (javax.swing.UnsupportedLookAndFeelException ex) {
1418             java.util.logging.Logger.getLogger(Main.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
1419         }
1420         //</editor-fold>
1421         //</editor-fold>
1422         //</editor-fold>
1423         //</editor-fold>
1424 
1425         /* Create and display the form */
1426         java.awt.EventQueue.invokeLater(new Runnable() {
1427             public void run() {
1428                 new Main().setVisible(true);
1429             }
1430         });
1431     }
1432 
1433     // Variables declaration - do not modify                     
1434     private javax.swing.JMenuItem aboutMenuItem;
1435     private javax.swing.JButton addChordsButton;
1436     private javax.swing.JButton addSectionButton;
1437     private javax.swing.JButton addSongButton;
1438     private javax.swing.JPanel addSongPanel;
1439     private javax.swing.JTextField albumNameTF;
1440     private javax.swing.JTextField artistNameTF;
1441     private javax.swing.JComboBox<String> baseChordComboBox;
1442     private javax.swing.JComboBox<String> changeKeyComboBox;
1443     private javax.swing.JTable chordChartTable;
1444     private javax.swing.JButton chordProgressionButton;
1445     private javax.swing.JMenuItem contentsMenuItem;
1446     private javax.swing.JMenuItem copyMenuItem;
1447     private javax.swing.JMenuItem cutMenuItem;
1448     private javax.swing.JComboBox<String> dayComboBox;
1449     private javax.swing.JMenuItem deleteMenuItem;
1450     private javax.swing.JPanel displayPanel;
1451     private javax.swing.JTable displayTable;
1452     private javax.swing.JMenu editMenu;
1453     private javax.swing.JMenuItem exitMenuItem;
1454     private javax.swing.JMenu fileMenu;
1455     private javax.swing.JTextField genreTF;
1456     private javax.swing.JMenu helpMenu;
1457     private javax.swing.JTextArea informationTextArea;
1458     private javax.swing.JLabel jLabel1;
1459     private javax.swing.JLabel jLabel10;
1460     private javax.swing.JLabel jLabel11;