package Package;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class RekenC extends JPanel
{
private RekenModel model;
private RekenVC view;
public Color goud;
public JButton Clear, is, plus, min, delen, maal, leeg, nul;
public JButton[] nummersArray = new JButton[9];
public String[] namen = {"1", "2", "3", "4", "5", "6", "7", "8", "9"};
public String[] namenFunny = {"een", "twee", "drie", "vier", "vijf", "zes", "zeven", "acht", "negen"};
public String laatsteInvoer = null;
public String vorigenr = "=";
public double voorResultaat = 0;
public double vervolgResultaat= 0;
public double resultaat;
public RekenC( RekenModel model, RekenVC view )
{
this.model = model;
this.view = view;
setLayout (new BorderLayout());
goud = new Color ( 147, 147, 0 );
KnopHandler aap = new KnopHandler();
CijferHandler calc = new CijferHandler();
JPanel paneelcijfers = new JPanel();
paneelcijfers .setLayout(new GridLayout(4, 3));
for(int i = 0; i < 9; i++)
{
nummersArray[i] = new JButton(namen[i]);
nummersArray[i] .addActionListener(calc);
nummersArray[i] .addActionListener(aap);
paneelcijfers.add(nummersArray[i]);
}
nummersArray[0] .setBackground(goud);
nummersArray[2] .setBackground(goud);
nummersArray[4] .setBackground(goud);
nummersArray[6] .setBackground(goud);
nummersArray[8] .setBackground(goud);
//nul .setBackground(goud);
paneelcijfers.add(leeg = new JButton("" ));
leeg .addActionListener(aap);
//paneelcijfers.add(nul = new JButton("0"));
//nul .addActionListener(calc);
paneelcijfers.add(Clear = new JButton("C"));
Clear .addActionListener(aap);
//Zal wel calc zijn??
Clear .addActionListener(calc);
JPanel paneelkeuze = new JPanel();
paneelkeuze .setLayout(new GridLayout(4, 1));
paneelkeuze.add(plus = new JButton("+"));
paneelkeuze.add(min = new JButton("-"));
paneelkeuze.add(maal = new JButton("x"));
paneelkeuze.add(delen = new JButton(":"));
min .setBackground(goud);
delen .setBackground(goud);
plus .addActionListener(calc);
min .addActionListener(calc);
maal .addActionListener(calc);
delen .addActionListener(calc);
plus .addActionListener(aap);
min .addActionListener(aap);
maal .addActionListener(aap);
delen .addActionListener(aap);
JPanel paneelis = new JPanel();
paneelis .setLayout(new GridLayout(1, 1));
paneelis .add(is = new JButton("="));
paneelis .setBackground(goud);
is .addActionListener(calc);
is .addActionListener(aap);
add(paneelcijfers,BorderLayout.CENTER);
add(paneelis,BorderLayout.SOUTH);
add(paneelkeuze, BorderLayout.EAST);
}
public void zet(String no)
{
if((view.uitkomst.getText()).equals("0"))
view.uitkomst.setText(no);
else if( laatsteInvoer=="=")
{
view.uitkomst.setText(no);
laatsteInvoer=null;
}
else view.uitkomst.setText(view.uitkomst.getText()+no);
}
/* Elke nummer krijgt hier een waarde en wanneer je op het nummer klikt krijgt het nummer de waarde van zijn knop */
class CijferHandler implements ActionListener
{
public void actionPerformed(ActionEvent invoer)
{
RekenC c = new RekenC(model,view);
RekenVC vc = new RekenVC(model);
for(int i = 0; i < 9; i++)
if(invoer.getSource()==nummersArray[i])
{
model.setNummer(c);
}
else if(invoer.getSource()==nul)
{
model.setNul(c);
}
else if(invoer.getSource()==plus)
{
model.setPlus(c,vc);
}
else if(invoer.getSource()==min)
{
model.setMin(c,vc);
}
else if(invoer.getSource()==maal)
{
model.setMaal(c,vc);
}
else if(invoer.getSource()==delen)
{
model.setDelen(c,vc);
}
else if(invoer.getSource()==is)
{
model.setIs(c,vc);
}
}
}
/* Hier maak ik de KnopHandler aan voor de funny teksten */
class KnopHandler implements ActionListener
{
public void actionPerformed(ActionEvent funny)
{
for(int i = 0; i < 9; i++)
if(funny.getSource()==nummersArray[i])
{
RekenC c = new RekenC(model,view);
model.setNummerF(view,c);
}
else if(funny.getSource()==plus)
{
model.setPlusF(view);
}
else if(funny.getSource()==min)
{
model.setMinF(view);
}
else if(funny.getSource()==maal)
{
model.setMaalF(view);
}
else if(funny.getSource()==leeg)
{
model.setLeegF(view);
}
else if(funny.getSource()==delen)
{
model.setDelenF(view);
}
else if(funny.getSource()==is)
{
model.setIsF(view);
}
else if(funny.getSource()==Clear)
{
model.setClearF(view);
}
}
}
/* Om de tekstvak schoon te vegen*/
class ClearListener implements ActionListener
{
boolean startnr = true;
public void actionPerformed(ActionEvent schoon)
{
startnr = true ;
view.uitkomst.setText ("0") ;
vorigenr = "=" ;
}
}
}