codice:
public class ProgettazioneFrame extends JDialog implements ActionListener{
public static final int DEFAULT_WIDTH = 890;
public static final int DEFAULT_HEIGHT = 530;
private Logica logica;
private JButton ok,annulla;
private ElencoPanel centerPanel;
private ButtonPrestazioniPanel bottoniPrestazioni;
private ImportoCategoriaPanel icp;
private double valoreTabellaA;
private double valoreTabellaB;
private double valoreTabellaB1;
public ProgettazioneFrame(ButtonPrestazioniPanel bottoniPrestazioni,Logica logica, ImportoCategoriaPanel icp){
setModal(true);
this.icp=icp;
this.bottoniPrestazioni=bottoniPrestazioni;
this.logica=logica;
setTitle("Progettazione");
setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
ok=new JButton("OK");
annulla=new JButton("Annulla");
ok.addActionListener(this);
annulla.addActionListener(this);
JPanel southPanel=new JPanel();
southPanel.setLayout(new BorderLayout());
JPanel p1=new JPanel();
p1.setLayout(new GridLayout(2,1));
p1.add(new JLabel("(*)prestazione richiesta in presenza di affidamento di concessione per lavori pubblici"));
p1.add(new JLabel("(**)prestazione richiesta in caso di appalto concorso o affidamento di concessione per lavori"));
JPanel p2=new JPanel();
p2.setLayout(new GridLayout(1,2));
p2.add(ok);
p2.add(annulla);
southPanel.add(p1);
southPanel.add(p2,BorderLayout.EAST);
centerPanel=new ElencoPanel();
//Container c=this.getContentPane();
add(centerPanel);
add(southPanel,BorderLayout.SOUTH);
setLocationRelativeTo(null);
setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
setVisible(true);
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==ok){
String classeCategoria=icp.getClasseCategoria();
double preventivo=icp.getImporto();
Map<JCheckBox,String>mapTabB=centerPanel.getMap();
Iterator<JCheckBox>it=mapTabB.keySet().iterator();
LinkedList<String>lettereTabB=new LinkedList<String>();
JCheckBox tmp=null;
boolean verificato=false;
while(it.hasNext()){
tmp=it.next();
if(tmp.isSelected()){
verificato=true;
lettereTabB.addLast(mapTabB.get(tmp));
}
}
if(verificato==false){
JOptionPane.showConfirmDialog(ProgettazioneFrame.this,"Attenzione non è stato selezionata nessuna prestazione ","Errore",
JOptionPane.CLOSED_OPTION,
JOptionPane.INFORMATION_MESSAGE);
}
else{
valoreTabellaA=logica.percentualeTabA(classeCategoria,preventivo);
valoreTabellaB=logica.risTabellaB(lettereTabB,classeCategoria);
valoreTabellaB1=logica.risTabellaB1(lettereTabB,classeCategoria);
bottoniPrestazioni.setVisible(true);
this.setVisible(false);
}
}
else if(e.getSource()==annulla){
bottoniPrestazioni.setVisible(true);
this.setVisible(false);
}
}
}
class ElencoPanel extends JPanel implements ActionListener{
private JPanel tabB,tabB1;
private JCheckBox a,b,c,d,e,f,g,h,i,l,l1,m,n,o1,o2,o3,o4,o5,p,q,r1,r2,r3,r4,s,l2,l3,l4;
private Map<JCheckBox,String> map=new HashMap<JCheckBox,String>();
public ElencoPanel(){
tabB = new JPanel();
tabB1 = new JPanel();
//informazioni tabella B
a = new JCheckBox("a) Relazioni, planimetrie, schemi grafici");
a.setFont(new Font("Arial",Font.PLAIN,11));
b = new JCheckBox("b) Calcolo sommario spesa");
b.setFont(new Font("Arial",Font.PLAIN,11));
c = new JCheckBox("c) Relazione illustrativa, Elaborati grafici per ottenimento autorizzazioni");
c.setFont(new Font("Arial",Font.PLAIN,11));
d = new JCheckBox("d) Disciplinare elementi tecnici");
d.setFont(new Font("Arial",Font.PLAIN,11));
e = new JCheckBox("e) Computo metrico estimativo, quadro economico");
e.setFont(new Font("Arial",Font.PLAIN,11));
f = new JCheckBox("f) Relazione generale e specialistiche, elaborati grafici, calcoli esecutivi");
f.setFont(new Font("Arial",Font.PLAIN,11));
g = new JCheckBox("g) Particolari costruttivi e decorativi");
g.setFont(new Font("Arial",Font.PLAIN,11));
//"<html>Ciao
a tutti</html>"
h = new JCheckBox("<html> h) Computo metrico estimativo definitivo, quadro economico,
elenco prezzi ed eventuali analisi, quadro dell'incidenza percentuale
della quantità di manodopera");
h.setFont(new Font("Arial",Font.PLAIN,11));
i = new JCheckBox("i) Schema di contratto, capitolato speciale d'appalto, cronoprogramma");
i.setFont(new Font("Arial",Font.PLAIN,11));
l = new JCheckBox("l) Direzioni lavori, assistenza al collaudo, prove d'officina");
l.setFont(new Font("Arial",Font.PLAIN,11));
l1 = new JCheckBox("l1) Liquidazione");
l1.setFont(new Font("Arial",Font.PLAIN,11));
//informazioni tabella B1
m = new JCheckBox("m*) Piano economico e finanziario di massima",false);
m.setEnabled(false);
m.setFont(new Font("Arial",Font.PLAIN,11));
n = new JCheckBox("n**) Capitolato speciale e prestazionale");
n.setEnabled(false);
n.setFont(new Font("Arial",Font.PLAIN,11));
o1 = new JCheckBox("o1) Relazione di indagine geotecnica");
o1.setEnabled(false);
o1.setFont(new Font("Arial",Font.PLAIN,11));
o2 = new JCheckBox("o2) Relazione di indagine idrologica");
o2.setEnabled(false);
o2.setFont(new Font("Arial",Font.PLAIN,11));
o3 = new JCheckBox("o3) Relazione di indagine idraulica");
o3.setEnabled(false);
o3.setFont(new Font("Arial",Font.PLAIN,11));
o4 = new JCheckBox("o4) Relazione di indagine sismica");
o4.setEnabled(false);
o4.setFont(new Font("Arial",Font.PLAIN,11));
o5 = new JCheckBox("o5) Relazione di indagine archeologica");
o5.setEnabled(false);
o5.setFont(new Font("Arial",Font.PLAIN,11));
p = new JCheckBox("p) Studio di inserimento urbanistico");
p.setEnabled(false);
p.setFont(new Font("Arial",Font.PLAIN,11));
q = new JCheckBox("q**) Schema di contratto, capitolato speciale d'appalto");
q.setEnabled(false);
q.setFont(new Font("Arial",Font.PLAIN,11));
r1 = new JCheckBox("r1) Relazione di indagine geotecnica");
r1.setEnabled(false);
r1.setFont(new Font("Arial",Font.PLAIN,11));
r2 = new JCheckBox("r2) Relazione di indagine idrologica");
r2.setEnabled(false);
r2.setFont(new Font("Arial",Font.PLAIN,11));
r3 = new JCheckBox("r3) Relazione di indagine idraulica");
r3.setEnabled(false);
r3.setFont(new Font("Arial",Font.PLAIN,11));
r4 = new JCheckBox("r4) Relazioni di indagine sismica");
r4.setEnabled(false);
r4.setFont(new Font("Arial",Font.PLAIN,11));
s = new JCheckBox("s) Piano di manutenzione dell'opera");
s.setEnabled(false);
s.setFont(new Font("Arial",Font.PLAIN,11));
l2 = new JCheckBox("Controllo aggiornamento elaborati di prog.,aggionamento dei manuali d'uso");
l2.setEnabled(false);
l2.setFont(new Font("Arial",Font.PLAIN,11));
l3 = new JCheckBox("l3) Coordinamento e supervisione dell'ufficio di direzioni lavori");
l3.setEnabled(false);
l3.setFont(new Font("Arial",Font.PLAIN,11));
l4 = new JCheckBox("l4) Ufficio della direzione lavori, per addetto con qualifica di direttore operativo");
l4.setEnabled(false);
l4.setFont(new Font("Arial",Font.PLAIN,11));
a.addActionListener(this);
b.addActionListener(this);
c.addActionListener(this);
d.addActionListener(this);
e.addActionListener(this);
f.addActionListener(this);
g.addActionListener(this);
h.addActionListener(this);
i.addActionListener(this);
l.addActionListener(this);
l1.addActionListener(this);
map.put(a,"a");
map.put(b,"b");
map.put(c,"c");
map.put(d,"d");
map.put(e,"e");
map.put(f,"f");
map.put(g,"g");
map.put(h,"h");
map.put(i,"i");
map.put(l,"l");
map.put(l1,"l1");
map.put(m,"m");
map.put(n,"n");
map.put(o1,"o1");
map.put(o2,"o2");
map.put(o3,"o3");
map.put(o4,"o4");
map.put(o5,"o5");
map.put(p,"p");
map.put(q,"q");
map.put(r1,"r1");
map.put(r2,"r2");
map.put(r3,"r3");
map.put(r4,"r4");
map.put(s,"s");
map.put(l2,"l2");
map.put(l3,"l3");
map.put(l4,"l4");
JLabel preliminare=new JLabel("Preliminare");
JLabel definitivo=new JLabel("Definitivo");
JLabel esecutivo=new JLabel("Esecutivo");
JLabel direzioniLavori=new JLabel("Direzioni Lavori");
preliminare.setFont(new Font("Arial",Font.BOLD,13));
tabB.setEnabled(false);
tabB1.setEnabled(false);
JLabel preliminare2=new JLabel("Preliminare");
JLabel definitivo2=new JLabel("Definitivo");
JLabel esecutivo2=new JLabel("Esecutivo");
JLabel direzioniLavori2=new JLabel("Direzioni Lavori");
preliminare2.setFont(new Font("Arial",Font.BOLD,13));
setLayout(new GridLayout(1,2));
add(tabB);
add(tabB1);
}
public void actionPerformed(ActionEvent event){
if(a.isSelected()||b.isSelected()){
m.setEnabled(true);
n.setEnabled(true);
o1.setEnabled(true);
o2.setEnabled(true);
o3.setEnabled(true);
o4.setEnabled(true);
o5.setEnabled(true);
}
else{
m.setEnabled(false);
m.setSelected(false);
n.setEnabled(false);
n.setSelected(false);
o1.setEnabled(false);
o1.setSelected(false);
o2.setEnabled(false);
o2.setSelected(false);
o3.setEnabled(false);
o3.setSelected(false);
o4.setEnabled(false);
o4.setSelected(false);
o5.setEnabled(false);
o5.setSelected(false);
}
if(c.isSelected()||d.isSelected()||e.isSelected()){
p.setEnabled(true);
q.setEnabled(true);
r1.setEnabled(true);
r2.setEnabled(true);
r3.setEnabled(true);
r4.setEnabled(true);
}
else{
p.setEnabled(false);
p.setSelected(false);
q.setEnabled(false);
q.setSelected(false);
r1.setEnabled(false);
r1.setSelected(false);
r2.setEnabled(false);
r2.setSelected(false);
r3.setEnabled(false);
r3.setSelected(false);
r4.setEnabled(false);
r4.setSelected(false);
}
if(f.isSelected()||g.isSelected()||h.isSelected()||i.isSelected()){
s.setEnabled(true);
}
else{
s.setEnabled(false);
s.setSelected(false);
}
if(l.isSelected()||l1.isSelected()){
l2.setEnabled(true);
l3.setEnabled(true);
l4.setEnabled(true);
}
else{
l2.setEnabled(false);
l2.setSelected(false);
l3.setEnabled(false);
l3.setSelected(false);
l4.setEnabled(false);
l4.setSelected(false);
}
}
Map<JCheckBox,String> getMap(){
return map;
}
}