/************************************************************************
* 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.*;
import java.awt.event.*;
import java.io.*;
/**
*
* @author Nophiq
*/
private JMenu file, add, view, query, help
;
private JMenuItem hierarchyElaborating, addMember, addRelation, load, save, exit, newFile
;
private JMenuItem newRelation, chiediAlProgramma, about, guide
;
private ObjectPanel panelTree;
private JPanel panelTreeMother
;
private Graph gr;
public Main() {
super("Elabora gerarchia famigliare");
gr = new Graph();
initialize();
}
private void initialize() {
panelTree = new ObjectPanel(gr);
sH.addAdjustmentListener(panelTree);
sV.addAdjustmentListener(panelTree);
scrollPanelTree.setViewportView(panelTree);
scrollPanelTree.setHorizontalScrollBar(sH);
scrollPanelTree.setVerticalScrollBar(sV);
scrollPanelTree.
setVerticalScrollBarPolicy(JScrollPane.
VERTICAL_SCROLLBAR_ALWAYS);
scrollPanelTree.
setHorizontalScrollBarPolicy(JScrollPane.
HORIZONTAL_SCROLLBAR_ALWAYS);
panelTreeMother
= new JPanel();
panelTreeMother.
setMinimumSize(new Dimension(800, 500
));
panelTreeMother.
setPreferredSize(new Dimension(800, 500
));
setObjectSetting(c, 10, 10, 1, 1);
this.add(panelTreeMother, c);
hierarchyElaborating
= new JMenuItem("Elabora Gerarchia");
addMember
= new JMenuItem("Aggiungi membro");
addRelation
= new JMenuItem("Aggiungi relazione");
newRelation
= new JMenuItem("Crea relazione");
chiediAlProgramma
= new JMenuItem("Esegui query");
hierarchyElaborating.addActionListener(this);
addMember.addActionListener(this);
addRelation.addActionListener(this);
newFile.addActionListener(this);
load.addActionListener(this);
save.addActionListener(this);
exit.addActionListener(this);
newRelation.addActionListener(this);
chiediAlProgramma.addActionListener(this);
about.addActionListener(this);
guide.addActionListener(this);
file
= new JMenu("File");
file.add(newFile);
file.add(load);
file.add(save);
file.addSeparator();
file.add(exit);
add
= new JMenu("Aggiungi");
add.add(addMember);
add.add(addRelation);
add.add(newRelation);
view
= new JMenu("Visualizza");
view.add(hierarchyElaborating);
query
= new JMenu("Query");
query.add(chiediAlProgramma);
help
= new JMenu("Help");
help.add(about);
help.addSeparator();
help.add(guide);
menuBar.add(file);
menuBar.add(add);
menuBar.add(view);
menuBar.add(query);
menuBar.add(help);
this.setJMenuBar(menuBar);
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;
}
// Gestisco la pressione di bottoni
if (src == hierarchyElaborating) panelTree.getHierarchy();
if (src == addMember) new AddNewMember(panelTree);
if (src == addRelation) new AddNewRelation(panelTree);
if (src == newFile) panelTree.newFile();
if (src == newRelation) new CreateRelation(panelTree);
if (src == chiediAlProgramma) new Query(panelTree);
if (src == about) new About();
if (src == guide) new Guide();
if (src == load) {
int response = fileChooser.showOpenDialog(this);
File fileTxt
= fileChooser.
getSelectedFile();
public boolean accept
(File f
) {
if (!f.isDirectory() && f.getName().toLowerCase().endsWith(".pl")) return true;
else return false;
}
public String getDescription
() {return "File .pl";}
};
// Controllo l'estensione
if (txtFilter.accept(fileTxt)) {
// Carico la teoria
gr.clearAll();
panelTree.setTheory(fileTxt);
}
}
}
if (src == save) {
salva.setDialogTitle("Salva Posizione - Salvare in formato .pl");
int scelta = salva.showSaveDialog(this);
File fFile
= salva.
getSelectedFile();
try {
ps.println(panelTree.getTheory());
}
ex.printStackTrace();
}
}
}
if (src == exit) {
this.dispose();
}
}
public static void main
(String[] args
) {
Main m = new Main();
}
}