Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Logic Familiar Hierarchy - CreateRelation.java

CreateRelation.java

Caricato da: Nophiq
Scarica il programma completo

  1. /************************************************************************
  2.  * Copyright (C) 19aa Claudio Reggiani alias Nophiq                     *
  3.  * Questo programma è software libero; è lecito ridistribuirlo e/o      *
  4.  * modificarlo secondo i termini della Licenza Pubblica Generica GNU    *
  5.  * come pubblicata dalla Free Software Foundation; o la versione 2      *
  6.  * della licenza o (a scelta) una versione successiva.                  *
  7.  *                                                                      *
  8.  * Questo programma è distribuito  nella speranza che sia utile, ma     *
  9.  * SENZA ALCUNA GARANZIA; senza neppure la garanzia implicita di        *
  10.  * COMMERCIABILITÀ o di APPLICABILITÀ PER UN PARTICOLARE SCOPO. Si      *
  11.  * veda la Licenza Pubblica Generica GNU per avere maggiori dettagli.   *
  12.  *                                                                      *
  13.  * Ognuno dovrebbe avere ricevuto una copia  della Licenza Pubblica     *
  14.  * Generica GNU insieme a questo programma; in caso contrario, la si    *
  15.  * può ottenere dalla Free Software Foundation, Inc., 675 Mass Ave,     *
  16.  * Cambridge, MA 02139, Stati Uniti.                                    *
  17.  *                                                                      *
  18.  * Per contattarmi attraverso posta elettronica: nophiq@virgilio.it     *
  19.  ************************************************************************/
  20.  
  21. package albero;
  22.  
  23. /**
  24.  *
  25.  * @author nophiq
  26.  */
  27. import javax.swing.*;
  28. import java.awt.event.*;
  29. import java.awt.*;
  30. /**
  31.  *
  32.  * @author nophiq
  33.  */
  34. public class CreateRelation extends JFrame implements ActionListener, KeyListener {
  35.   private JLabel l1, l2;
  36.   private JTextField name1, name2, name3;
  37.   private JButton add;
  38.   private GridBagConstraints c;
  39.   private ObjectPanel panelTree;
  40.  
  41.   /** Creates a new instance of addNewMember */
  42.   public CreateRelation(ObjectPanel panelTree) {
  43.     super("Crea nuova Relazione");
  44.     this.panelTree = panelTree;
  45.     initialize();
  46.   }
  47.  
  48.   public void initialize() {
  49.     this.setLayout(new GridBagLayout());
  50.     c = new GridBagConstraints();
  51.    
  52.     l1 = new JLabel(" è ");
  53.     setObjectSetting(c, 20, 10, 1, 1);
  54.     this.add(l1, c);
  55.    
  56.     name1 = new JTextField(20);
  57.     name1.addKeyListener(this);
  58.     setObjectSetting(c, 10, 10, 1, 1);
  59.     this.add(name1, c);
  60.    
  61.     name2 = new JTextField(20);
  62.     name2.addKeyListener(this);
  63.     setObjectSetting(c, 30, 10, 1, 1);
  64.     this.add(name2, c);
  65.    
  66.     l2 = new JLabel(" di ");
  67.     setObjectSetting(c, 40, 10, 1, 1);
  68.     this.add(l2, c);
  69.    
  70.     name3 = new JTextField(20);
  71.     name3.addKeyListener(this);
  72.     setObjectSetting(c, 50, 10, 1, 1);
  73.     this.add(name3, c);
  74.    
  75.     add = new JButton("Crea relazione");
  76.     add.addActionListener(this);
  77.     setObjectSetting(c, 20, 50, 1, 1);
  78.     this.add(add, c);
  79.    
  80.     this.pack();
  81.     this.setVisible(true);
  82.   }
  83.  
  84.   private void setObjectSetting(GridBagConstraints c, int gridx, int gridy, int gridheight, int gridwidth) {
  85.     c.gridx = gridx;  // Posizionamento Orizzontale
  86.     c.gridy = gridy;  // Posizionamento Verticale
  87.     c.gridheight = gridheight;
  88.     c.gridwidth = gridwidth;
  89.   }
  90.  
  91.   private void addRelation() {
  92.       // TODO: guardare se la nuova relazione esiste già
  93.     if (!name1.getText().equals("") &&
  94.       name1.getText().toLowerCase().charAt(0) >= 'a' &&
  95.       name1.getText().toLowerCase().charAt(0) <= 'z' &&
  96.  
  97.       !name2.getText().equals("") &&
  98.       name2.getText().toLowerCase().charAt(0) >= 'a' &&
  99.       name2.getText().toLowerCase().charAt(0) <= 'z' &&
  100.        
  101.       !name3.getText().equals("") &&
  102.       name3.getText().toLowerCase().charAt(0) >= 'a' &&
  103.       name3.getText().toLowerCase().charAt(0) <= 'z') {
  104.      
  105.       String name = name2.getText();
  106.       name = name.replace(' ', '_');
  107.       name = name.toLowerCase();
  108.  
  109.       String atom1 = name1.getText();
  110.       atom1 = atom1.replace(' ', '_');
  111.       atom1 = atom1.toLowerCase();
  112.  
  113.       String atom2 = name3.getText();
  114.       atom2 = atom2.replace(' ', '_');
  115.       atom2 = atom2.toLowerCase();
  116.      
  117.       if (panelTree.isMemberPresent(atom1) && panelTree.isMemberPresent(atom2)) {
  118.         this.panelTree.newTheory(name, atom1, atom2);
  119.         this.dispose();
  120.       }
  121.       else {
  122.         JOptionPane.showMessageDialog(null,
  123.           "I nomi dei membri inseriti non sono presenti nel database\n" +
  124.           "oppure il nome della nuova relazione è già esistente", "Attenzione",
  125.           JOptionPane.INFORMATION_MESSAGE);
  126.       }
  127.     }
  128.     else {
  129.       JOptionPane.showMessageDialog(null,
  130.         "Nomi e Relazioni non inseriti correttamente\n" +
  131.         "1) Il primo carattere deve essere una lettera dell'alfabeto\n" +
  132.         "2) Tutti i campi devono essere completati", "Attenzione",
  133.         JOptionPane.INFORMATION_MESSAGE);
  134.     }
  135.   }
  136.  
  137.   public void actionPerformed(ActionEvent ev) {
  138.     Object src = ev.getSource();
  139.    
  140.     if (src == add) this.addRelation();
  141.   }
  142.  
  143.   public void keyPressed(KeyEvent e) {}
  144.   public void keyTyped(KeyEvent e) {}
  145.   public void keyReleased(KeyEvent e) {
  146.     int src = e.getKeyCode();
  147.    
  148.     if (src == KeyEvent.VK_ENTER) {
  149.       this.addRelation();
  150.     }
  151.   }
  152. }