Olá pessoal, estou montando um exemplo ‘bobo’ de uma calculadora utilizando o conceito de MVP e o framework Genesis.
No entanto, estou tendo dificuldade para achar o local ideal para inicializar o JFRAME. Se eu colocar na classe Presenter ele dá erro na linha que uso para binder com a classe Form.
Veja o código abaixo:
Camada Presenter
public class CalculatorPresenter {
private Calculo calculo;
private CalculoForm view;
public CalculatorPresenter() {
}
public CalculoForm getView() {
return view;
}
public void setView(CalculoForm view) {
this.view = view;
}
public CalculatorPresenter(Calculo calculo, CalculoForm view) {
this.calculo = calculo;
this.view = view;
}
public void calcular() {
calculo.setNumero(view.getNumero());
calculo.setOperacao(view.getOperacao());
calculo.calcular();
view.setNumero(calculo.getResultado());
}
public void updateViewFromModel() {
view.setNumero(calculo.getResultado());
}
Form
@Form
public class CalculoForm {
private int numero;
private char operacao;
private CalculatorPresenter presenter;
public CalculoForm() {
presenter = new CalculatorPresenter();
}
public int getNumero() {
return numero;
}
public void setNumero(int numero) {
this.numero = numero;
}
@Action
public void actionSoma() {
setOperacao('+');
presenter.calcular();
}
@Action
public void actionSub() {
setOperacao('-');
presenter.calcular();
}
@Action
public void actionMult() {
setOperacao('*');
presenter.calcular();
}
@Action
public void actionDiv() {
setOperacao('/');
presenter.calcular();
}
@Action
public void actionResult() {
presenter.calcular();
}
@Action
public void actionNumero(){
}
public void setOperacao(char operacao) {
this.operacao = operacao;
}
public char getOperacao() {
return operacao;
}
}
Camada View
@ViewHandler
public class CalculoView extends javax.swing.JFrame implements ICalculoView{
/** Creates new form CalculoView */
public CalculoView() {
initComponents();
CalculoForm form = new CalculoForm();
SwingBinder binder = new SwingBinder(this, form); // Erro aqui.
binder.bind();
}
.....
Por favor, me ajudem…