WoordenMakenView.java

00001 /*
00002  * Created on 13-jun-2005
00003  *
00004  * TODO To change the template for this generated file go to
00005  * Window - Preferences - Java - Code Style - Code Templates
00006  */
00007 package GUI;
00008 
00009 import java.io.File;
00010 import java.util.ArrayList;
00011 import java.util.Iterator;
00012 
00013 import javax.swing.JButton;
00014 import javax.swing.JComboBox;
00015 import javax.swing.JFileChooser;
00016 import javax.swing.JFrame;
00017 import javax.swing.JInternalFrame;
00018 import javax.swing.JLabel;
00019 import javax.swing.JOptionPane;
00020 import javax.swing.JTextField;
00021 
00022 import basis.Woord;
00023 
00030 public class WoordenMakenView extends JFrame {
00031         
00032         private WoordController woordController;
00033         private SpelController spelController;
00034         private javax.swing.JPanel woordMakenView = null;
00035         private JLabel woordenMakenLabel = null;
00036         private JLabel categorieLabel = null;
00037         private JComboBox categorieComboBox = null;
00038         private JTextField categorieTextField = null;
00039         private JLabel nieuweCategorieLabel = null;
00040         private JLabel woordLabel = null;
00041         private JTextField woordTextField = null;
00042         private JButton toevoegenButton = null;
00043         private JLabel woordImporterenButton = null;
00044         private JLabel selecteerBestandLabel = null;
00045         private JTextField bestandsNaamTextField = null;
00046         private JButton importerenButton = null;
00047         private JButton terugNaarMenuButton = null;
00048         private JButton bestandBrowseButton = null;
00049         private JButton woordOpslaanButton = null;
00050         private ArrayList categorieen;
00051         private ArrayList nieuweWoorden;
00052         
00056         public WoordenMakenView(SpelController spelController, WoordController woordController) {
00057                 super();
00058                 initialize();
00059                 this.spelController = spelController;
00060                 this.woordController = woordController;
00061         }
00067         private void initialize() {
00068                 this.setSize(700, 270);
00069                 this.setContentPane(getWoordMakenView());
00070                 this.setTitle("Woordenset importeren/maken");
00071         }
00077         private javax.swing.JPanel getWoordMakenView() {
00078                 if(woordMakenView == null) {
00079                         selecteerBestandLabel = new JLabel();
00080                         woordImporterenButton = new JLabel();
00081                         woordLabel = new JLabel();
00082                         nieuweCategorieLabel = new JLabel();
00083                         categorieLabel = new JLabel();
00084                         woordenMakenLabel = new JLabel();
00085                         woordMakenView = new javax.swing.JPanel();
00086                         woordMakenView.setLayout(null);
00087                         woordenMakenLabel.setBounds(14, 111, 664, 25);
00088                         woordenMakenLabel.setText("Woorden maken");
00089                         woordenMakenLabel.setFont(new java.awt.Font("Garamond", java.awt.Font.BOLD, 18));
00090                         categorieLabel.setBounds(14, 145, 87, 18);
00091                         categorieLabel.setText("Categorie:");
00092                         nieuweCategorieLabel.setBounds(317, 147, 107, 16);
00093                         nieuweCategorieLabel.setText("Nieuwe categorie:");
00094                         woordLabel.setBounds(15, 181, 87, 18);
00095                         woordLabel.setText("Woord:");
00096                         woordImporterenButton.setBounds(14, 13, 664, 25);
00097                         woordImporterenButton.setText("Woorden importen");
00098                         woordImporterenButton.setFont(new java.awt.Font("Garamond", java.awt.Font.BOLD, 18));
00099                         selecteerBestandLabel.setBounds(14, 53, 139, 18);
00100                         selecteerBestandLabel.setText("Selecteer een bestand:");
00101                         woordMakenView.add(woordenMakenLabel, null);
00102                         woordMakenView.add(categorieLabel, null);
00103                         woordMakenView.add(getCategorieComboBox(), null);
00104                         woordMakenView.add(getCategorieTextField(), null);
00105                         woordMakenView.add(nieuweCategorieLabel, null);
00106                         woordMakenView.add(woordLabel, null);
00107                         woordMakenView.add(getWoordTextField(), null);
00108                         woordMakenView.add(getToevoegenButton(), null);
00109                         woordMakenView.add(woordImporterenButton, null);
00110                         woordMakenView.add(selecteerBestandLabel, null);
00111                         woordMakenView.add(getBestandsNaamTextField(), null);
00112                         woordMakenView.add(getImporterenButton(), null);
00113                         woordMakenView.add(getTerugNaarMenuButton(), null);
00114                         woordMakenView.add(getBestandBrowseButton(), null);
00115                         woordMakenView.add(getWoordOpslaanButton(), null);
00116                 }
00117                 return woordMakenView;
00118         }
00124         private JComboBox getCategorieComboBox() {
00125                 if (categorieComboBox == null) {
00126                         categorieComboBox = new JComboBox();
00127                         categorieComboBox.setBounds(107, 145, 198, 18);
00128                         categorieComboBox.addItemListener(new java.awt.event.ItemListener() { 
00129                                 public void itemStateChanged(java.awt.event.ItemEvent e) 
00130                                 {    
00131                                         if (categorieComboBox.getItemCount() > 0)
00132                                         {
00133                                                 if (!categorieComboBox.getSelectedItem().toString().equals(""))
00134                                                 {
00135                                                         categorieTextField.setText("");
00136                                                         categorieTextField.setEnabled(false);
00137                                                 }
00138                                                 else
00139                                                 {
00140                                                         categorieTextField.setEnabled(true);
00141                                                 }
00142                                         }
00143                                 }
00144                         });
00145                 }
00146                 return categorieComboBox;
00147         }
00153         private JTextField getCategorieTextField() {
00154                 if (categorieTextField == null) {
00155                         categorieTextField = new JTextField();
00156                         categorieTextField.setBounds(428, 144, 250, 20);
00157                         categorieTextField.addCaretListener(new javax.swing.event.CaretListener() { 
00158                                 public void caretUpdate(javax.swing.event.CaretEvent e) 
00159                                 {    
00160                                         if (!categorieTextField.getText().equals(""))
00161                                         {
00162                                                 categorieComboBox.setSelectedIndex(0);
00163                                                 categorieComboBox.setEnabled(false);
00164                                         }
00165                                         else
00166                                         {
00167                                                 categorieComboBox.setEnabled(true);
00168                                         }
00169                                 }
00170                         });
00171                 }
00172                 return categorieTextField;
00173         }
00179         private JTextField getWoordTextField() {
00180                 if (woordTextField == null) {
00181                         woordTextField = new JTextField();
00182                         woordTextField.setBounds(108, 180, 198, 20);
00183                         woordTextField.addCaretListener(new javax.swing.event.CaretListener() { 
00184                                 public void caretUpdate(javax.swing.event.CaretEvent e) 
00185                                 {    
00186                                         if (!woordTextField.getText().equals("") && woordTextField.getText().length() == 12 && (!categorieTextField.getText().equals("") || categorieComboBox.getSelectedIndex() != 0))
00187                                         {
00188                                                 toevoegenButton.setEnabled(true);
00189                                         }
00190                                         else
00191                                         {
00192                                                 toevoegenButton.setEnabled(false);
00193                                         }
00194                                 }
00195                         });
00196                 }
00197                 return woordTextField;
00198         }
00204         private JButton getToevoegenButton() {
00205                 if (toevoegenButton == null) {
00206                         toevoegenButton = new JButton();
00207                         toevoegenButton.setBounds(108, 212, 101, 19);
00208                         toevoegenButton.setText("Toevoegen");
00209                         toevoegenButton.setEnabled(false);
00210                         toevoegenButton.addActionListener(new java.awt.event.ActionListener() { 
00211                                 public void actionPerformed(java.awt.event.ActionEvent e) 
00212                                 {    
00213                                         if (nieuweWoorden == null)
00214                                         {
00215                                                 nieuweWoorden = new ArrayList();
00216                                                 categorieComboBox.setEnabled(false);
00217                                                 categorieTextField.setEnabled(false);
00218                                         }
00219                                         if (categorieComboBox.getSelectedItem().toString().equals("") && !categorieTextField.getText().equals(""))
00220                                         {
00221                                                 nieuweWoorden.add(new Woord(woordTextField.getText(), categorieTextField.getText()));
00222                                                 System.out.println(categorieTextField.getText() + " " + woordTextField.getText());
00223                                                 woordOpslaanButton.setEnabled(true);
00224                                         }
00225                                         if (!categorieComboBox.getSelectedItem().toString().equals("") && categorieTextField.getText().equals(""))
00226                                         {
00227                                                 nieuweWoorden.add(new Woord(woordTextField.getText(), categorieComboBox.getSelectedItem().toString()));
00228                                                 System.out.println(categorieComboBox.getSelectedItem().toString() + " " + woordTextField.getText());
00229                                                 woordOpslaanButton.setEnabled(true);
00230                                         }
00231                                         woordTextField.setText("");
00232                                 }
00233                         });
00234                 }
00235                 return toevoegenButton;
00236         }
00242         private JTextField getBestandsNaamTextField() {
00243                 if (bestandsNaamTextField == null) {
00244                         bestandsNaamTextField = new JTextField();
00245                         bestandsNaamTextField.setBounds(156, 52, 266, 20);
00246                 }
00247                 return bestandsNaamTextField;
00248         }
00254         private JButton getImporterenButton() {
00255                 if (importerenButton == null) {
00256                         importerenButton = new JButton();
00257                         importerenButton.setBounds(500, 52, 105, 19);
00258                         importerenButton.setText("Importeren");
00259                         importerenButton.setEnabled(false);
00260                         importerenButton.addActionListener(new java.awt.event.ActionListener() { 
00261                                 public void actionPerformed(java.awt.event.ActionEvent e) 
00262                                 {    
00263                                         if (woordController.importFile())
00264                                         {
00265                                                 System.out.println("Bestand succesvol geïmporteerd!");
00266                                                 resetFields();
00267                                         }
00268                                         else
00269                                         {
00270                                                 System.out.println("Bestand niet succesvol geïmporteerd!");
00271                                         }
00272                                 }
00273                         });
00274                 }
00275                 return importerenButton;
00276         }
00282         private JButton getTerugNaarMenuButton() {
00283                 if (terugNaarMenuButton == null) {
00284                         terugNaarMenuButton = new JButton();
00285                         terugNaarMenuButton.setBounds(533, 212, 144, 19);
00286                         terugNaarMenuButton.setText("Terug naar menu");
00287                         terugNaarMenuButton.addActionListener(new java.awt.event.ActionListener() { 
00288                                 public void actionPerformed(java.awt.event.ActionEvent e) 
00289                                 {    
00290                                         if (nieuweWoorden == null)
00291                                         {
00292                                                 setVisible(false);
00293                                                 spelController.toonWelkom();
00294                                                 resetFields();
00295                                         }
00296                                         else
00297                                         {
00298                                                 JInternalFrame frame = new JInternalFrame();
00299                                                 int opslaanWoorden = JOptionPane.showConfirmDialog(frame, "Woordenset niet opgeslagen!\nWilt u stoppen zonder op te slaan?", "Opslaan", JOptionPane.YES_NO_OPTION);
00300                                                 if (opslaanWoorden == 0)
00301                                                 {
00302                                                         setVisible(false);
00303                                                         spelController.toonWelkom();
00304                                                         resetFields();
00305                                                 }
00306                                         }
00307                                 }
00308                         });
00309                 }
00310                 return terugNaarMenuButton;
00311         }
00317         private JButton getBestandBrowseButton() {
00318                 if (bestandBrowseButton == null) {
00319                         bestandBrowseButton = new JButton();
00320                         bestandBrowseButton.setBounds(430, 52, 61, 19);
00321                         bestandBrowseButton.setText("...");
00322                         bestandBrowseButton.addActionListener(new java.awt.event.ActionListener() { 
00323                                 public void actionPerformed(java.awt.event.ActionEvent e) 
00324                                 {    
00325                                         JFileChooser openDialog = new JFileChooser();
00326                                         openDialog.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
00327                                         int returnVal = openDialog.showOpenDialog(woordMakenView);
00328                                         
00329                                         if (returnVal == JFileChooser.APPROVE_OPTION) 
00330                                         {
00331                                                 File file = openDialog.getSelectedFile();
00332                                                 bestandsNaamTextField.setText(file.getAbsolutePath());
00333                                                 if (woordController.checkImportFile(file))
00334                                                 {       
00335                                                         importerenButton.setEnabled(true);
00336                                                 }
00337                                                 else
00338                                                 {
00339                                                         importerenButton.setEnabled(false);
00340                                                         System.out.println("Not valid woordXml-file.");
00341                                                 }
00342                                         } 
00343                                         else 
00344                                         {
00345                                                 System.out.println("Open command cancelled by user.");
00346                                         }
00347                                 }
00348                         });
00349                 }
00350                 return bestandBrowseButton;
00351         }
00352         
00353         
00359         private JButton getWoordOpslaanButton() {
00360                 if (woordOpslaanButton == null) {
00361                         woordOpslaanButton = new JButton();
00362                         woordOpslaanButton.setBounds(318, 211, 162, 19);
00363                         woordOpslaanButton.setText("Woordenset opslaan");
00364                         woordOpslaanButton.setEnabled(false);
00365                         woordOpslaanButton.addActionListener(new java.awt.event.ActionListener() { 
00366                                 public void actionPerformed(java.awt.event.ActionEvent e) 
00367                                 {    
00368                                         if (nieuweWoorden != null)
00369                                         {                                                               
00370                                                 JFileChooser saveDialog = new JFileChooser();
00371                                                 boolean geschrevenBestand = false;
00372                                                 saveDialog.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
00373                                                 int returnVal = saveDialog.showSaveDialog(woordMakenView);
00374                                                 
00375                                                 if (returnVal == JFileChooser.APPROVE_OPTION) 
00376                                                 {
00377                                                         File file = saveDialog.getSelectedFile();   
00378                                                         if (file.exists())
00379                                                         {
00380                                                                 if (categorieTextField.getText().equals(""))
00381                                                                 {
00382                                                                         geschrevenBestand = woordController.voegAanWoordenSetToe(file, nieuweWoorden, categorieComboBox.getSelectedItem().toString());
00383                                                                 }
00384                                                                 else
00385                                                                 {
00386                                                                         geschrevenBestand = woordController.voegAanWoordenSetToe(file, nieuweWoorden, categorieTextField.getText());
00387                                                                 }
00388                                                         }
00389                                                         else
00390                                                         {
00391                                                                 if (categorieTextField.getText().equals(""))
00392                                                                 {
00393                                                                         geschrevenBestand = woordController.maakWoordenSet(file, nieuweWoorden, categorieComboBox.getSelectedItem().toString());
00394                                                                 }
00395                                                                 else
00396                                                                 {
00397                                                                         geschrevenBestand = woordController.maakWoordenSet(file, nieuweWoorden, categorieTextField.getText());
00398                                                                 }
00399                                                         }
00400                                                         
00401                                                         JInternalFrame frame = new JInternalFrame();
00402                                                         if (geschrevenBestand)
00403                                                         {
00404                                                                 JOptionPane.showMessageDialog(frame, "Woordenset succesvol weggeschreven in: \n " + file.getAbsolutePath());
00405                                                                 int importFile = JOptionPane.showConfirmDialog(frame, "Wilt u het bestand meteen importeren voor gebruik?", "Bestand importeren..", JOptionPane.YES_NO_OPTION);
00406                                                                 if (importFile == 0)
00407                                                                 {
00408                                                                         if (woordController.checkImportFile(file))
00409                                                                         {       
00410                                                                                 if (woordController.importFile())
00411                                                                                 {
00412                                                                                         JOptionPane.showMessageDialog(frame, "Woordenset succesvol geïmporteerd");
00413                                                                                         resetFields();
00414                                                                                 }
00415                                                                                 else
00416                                                                                 {
00417                                                                                         JOptionPane.showMessageDialog(frame, "Er ging iets mis....\n Woordenset niet geïmporteerd.");
00418                                                                                 }
00419                                                                         }
00420                                                                 }
00421                                                                 resetFields();
00422                                                         }
00423                                                         else
00424                                                         {
00425                                                                 JOptionPane.showMessageDialog(frame, "Er ging iets fout!");
00426                                                         }
00427                                                 } 
00428                                                 else 
00429                                                 {
00430                                                         System.out.println("Save command cancelled by user.");
00431                                                 }
00432                                         }
00433                                         else
00434                                         {
00435                                                 JInternalFrame frame = new JInternalFrame();
00436                                                 JOptionPane.showMessageDialog(frame, "Geen woordenset om op te slaan.");
00437                                         }
00438                                 }
00439                         });
00440                 }
00441                 return woordOpslaanButton;
00442         }
00443         
00444         /*
00445          * 
00446          * @author oet
00447          *
00448          * Set de categorieen voor de selectiebox ;)
00449          */
00450         public void setCategorieen(ArrayList categorieen)
00451         {
00452                 categorieComboBox.removeAllItems();
00453                 categorieComboBox.addItem(new String("")); // Extra leeg veld
00454                 this.categorieen = categorieen;
00455                 Iterator categorieenIterator = categorieen.iterator();
00456                 while(categorieenIterator.hasNext())
00457                 {
00458                         categorieComboBox.addItem(categorieenIterator.next());
00459                 } 
00460         }
00461         
00462         /*
00463          * Reset alles naar standaard waarden ;)
00464          */
00465         private void resetFields()
00466         {
00467                 categorieComboBox.setEnabled(true);
00468                 categorieTextField.setEnabled(true);
00469                 categorieTextField.setText("");
00470                 woordOpslaanButton.setEnabled(false);
00471                 toevoegenButton.setEnabled(false);
00472                 nieuweWoorden = null;           
00473                 importerenButton.setEnabled(false);
00474                 woordTextField.setText("");
00475                 bestandsNaamTextField.setText("");
00476         }
00477 }  //  @jve:decl-index=0:visual-constraint="10,10"

Generated on Mon Jul 18 21:59:07 2005 for Twee Voor Twaalf by  doxygen 1.4.3