00001
00002
00003
00004
00005
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
00447
00448
00449
00450 public void setCategorieen(ArrayList categorieen)
00451 {
00452 categorieComboBox.removeAllItems();
00453 categorieComboBox.addItem(new String(""));
00454 this.categorieen = categorieen;
00455 Iterator categorieenIterator = categorieen.iterator();
00456 while(categorieenIterator.hasNext())
00457 {
00458 categorieComboBox.addItem(categorieenIterator.next());
00459 }
00460 }
00461
00462
00463
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 }