/************************************************************************
* Copyright (C) 19aa Claudio Reggiani alias Nophiq *
* Questo programma è software libero; è lecito ridistribuirlo e/o *
* modificarlo secondo i termini della Licenza Pubblica Generica GNU *
* come pubblicata dalla Free Software Foundation; o la versione 2 *
* della licenza o (a scelta) una versione successiva. *
* *
* Questo programma è distribuito nella speranza che sia utile, ma *
* SENZA ALCUNA GARANZIA; senza neppure la garanzia implicita di *
* COMMERCIABILITÀ o di APPLICABILITÀ PER UN PARTICOLARE SCOPO. Si *
* veda la Licenza Pubblica Generica GNU per avere maggiori dettagli. *
* *
* Ognuno dovrebbe avere ricevuto una copia della Licenza Pubblica *
* Generica GNU insieme a questo programma; in caso contrario, la si *
* può ottenere dalla Free Software Foundation, Inc., 675 Mass Ave, *
* Cambridge, MA 02139, Stati Uniti. *
* *
* Per contattarmi attraverso posta elettronica: nophiq@virgilio.it *
************************************************************************/
package albero;
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
/**
*
* @author nophiq
*/
private JTextField name1, name2, name3, name4, name5, name6
;
private ObjectPanel panelTree;
/** Creates a new instance of addNewMember */
public AddNewRelation(ObjectPanel panelTree) {
super("Aggiungi relazione");
this.panelTree = panelTree;
initialize();
}
public void initialize() {
l1
= new JLabel("è padre di ");
setObjectSetting(c, 20, 10, 1, 1);
this.add(l1, c);
name1.addKeyListener(this);
name1.setEditable(true);
setObjectSetting(c, 10, 10, 1, 1);
this.add(name1, c);
name2.addKeyListener(this);
name2.setEditable(true);
setObjectSetting(c, 30, 10, 1, 1);
this.add(name2, c);
// ---------------------------------
l2
= new JLabel("è madre di ");
setObjectSetting(c, 20, 20, 1, 1);
this.add(l2, c);
name3.addKeyListener(this);
name3.setEditable(false);
setObjectSetting(c, 10, 20, 1, 1);
this.add(name3, c);
name4.addKeyListener(this);
name4.setEditable(false);
setObjectSetting(c, 30, 20, 1, 1);
this.add(name4, c);
// ---------------------------------
l3
= new JLabel("è marito di ");
setObjectSetting(c, 20, 30, 1, 1);
this.add(l3, c);
name5.addKeyListener(this);
name5.setEditable(false);
setObjectSetting(c, 10, 30, 1, 1);
this.add(name5, c);
name6.addKeyListener(this);
name6.setEditable(false);
setObjectSetting(c, 30, 30, 1, 1);
this.add(name6, c);
a1.addActionListener(this);
a1.setSelected(true);
setObjectSetting(c, 5, 10, 1, 1);
this.add(a1, c);
b1.addActionListener(this);
setObjectSetting(c, 5, 20, 1, 1);
this.add(b1, c);
c1.addActionListener(this);
setObjectSetting(c, 5, 30, 1, 1);
this.add(c1, c);
selectRelation.add(a1);
selectRelation.add(b1);
selectRelation.add(c1);
add
= new JButton("Aggiungi relazione");
add.addActionListener(this);
setObjectSetting(c, 20, 50, 1, 1);
this.add(add, c);
this.pack();
this.setVisible(true);
}
private void setObjectSetting
(GridBagConstraints c,
int gridx,
int gridy,
int gridheight,
int gridwidth
) {
c.gridx = gridx; // Posizionamento Orizzontale
c.gridy = gridy; // Posizionamento Verticale
c.gridheight = gridheight;
c.gridwidth = gridwidth;
}
private void addRelation() {
if (a1.isSelected() &&
!name1.getText().equals("") &&
name1.getText().toLowerCase().charAt(0) >= 'a' &&
name1.getText().toLowerCase().charAt(0) <= 'z' &&
!name2.getText().equals("") &&
name2.getText().toLowerCase().charAt(0) >= 'a' &&
name2.getText().toLowerCase().charAt(0) <= 'z') {
s1 = s1.toLowerCase();
s1 = s1.replace(' ', '_');
s2 = s2.toLowerCase();
s2 = s2.replace(' ', '_');
if (panelTree.isMemberPresent(s1) && panelTree.isMemberPresent(s2)) {
this.panelTree.addTheory("father(person("+s1+", _), person("+s2+", _)).");
this.dispose();
}
else {
"I nomi dei membri inseriti non sono presenti nel database\n", "Attenzione",
}
}
else if (b1.isSelected() &&
!name3.getText().equals("") &&
name3.getText().toLowerCase().charAt(0) >= 'a' &&
name3.getText().toLowerCase().charAt(0) <= 'z' &&
!name4.getText().equals("") &&
name4.getText().toLowerCase().charAt(0) >= 'a' &&
name4.getText().toLowerCase().charAt(0) <= 'z') {
s1 = s1.toLowerCase();
s1 = s1.replace(' ', '_');
s2 = s2.toLowerCase();
s2 = s2.replace(' ', '_');
if (panelTree.isMemberPresent(s1) && panelTree.isMemberPresent(s2)) {
this.panelTree.addTheory("mother(person("+s1+", _), person("+s2+", _)).");
this.dispose();
}
else {
"I nomi dei membri inseriti non sono presenti nel database\n", "Attenzione",
}
}
else if (c1.isSelected() &&
!name5.getText().equals("") &&
name5.getText().toLowerCase().charAt(0) >= 'a' &&
name5.getText().toLowerCase().charAt(0) <= 'z' &&
!name6.getText().equals("") &&
name6.getText().toLowerCase().charAt(0) >= 'a' &&
name6.getText().toLowerCase().charAt(0) <= 'z') {
s1 = s1.toLowerCase();
s1 = s1.replace(' ', '_');
s2 = s2.toLowerCase();
s2 = s2.replace(' ', '_');
if (panelTree.isMemberPresent(s1) && panelTree.isMemberPresent(s2)) {
this.panelTree.addTheory("husband(person("+s1+", _), person("+s2+", _)).");
this.dispose();
}
else {
"I nomi dei membri inseriti non sono presenti nel database\n", "Attenzione",
}
}
else {
"Nome membri non inseriti correttamente\n" +
"1) Il primo carattere deve essere una lettera dell'alfabeto\n" +
"2) Tutti i campi devono essere completati", "Attenzione",
}
}
if (src == add) this.addRelation();
if (src == a1) {
name1.setEditable(true);
name2.setEditable(true);
name3.setEditable(false);
name4.setEditable(false);
name5.setEditable(false);
name6.setEditable(false);
}
if (src == b1) {
name1.setEditable(false);
name2.setEditable(false);
name3.setEditable(true);
name4.setEditable(true);
name5.setEditable(false);
name6.setEditable(false);
}
if (src == c1) {
name1.setEditable(false);
name2.setEditable(false);
name3.setEditable(false);
name4.setEditable(false);
name5.setEditable(true);
name6.setEditable(true);
}
}
int src = e.getKeyCode();
this.addRelation();
}
}
}