public void novo() {
    bean = new Receita();
    bean.setDataReceita(new Date());
    beanToForm(true);
    fieldCliente.grabFocus();

    try {
      List<String> listOftal = receitaService.findAllOftamologista();
      fieldOftalmologista.addPossibility(listOftal);
    } catch (MkServiceException ex) {
      MkDialog.error(ex.getMessage(), ex);
    }
  }
 protected void excluir() {
   if (JanelaLogin.getInstance().getUsuarioLogado().isAdministrador()) {
     if (MkDialog.confirm("Deseja excluir esse registro?")) {
       try {
         receitaService.delete(bean.getId());
         closeWindow();
         application.refreshWindows();
       } catch (Exception ex) {
         MkDialog.error(ex.getMessage(), ex);
       }
     }
   } else {
     MkDialog.warm("Acesso Negado");
   }
 }
  @Override
  protected void initWindow() {

    MkPanelTable panelTable = new MkPanelTable();
    panelTable.addRow(
        "Codigo:", fieldId, "Data Receita:", fieldDataReceita, GridBagConstraints.NONE);
    panelTable.addRow(
        "Cliente:",
        new MkPanelTable().addRow(fieldCliente, buttonCliente, GridBagConstraints.NONE));
    panelTable.addRow("Telefone:", fieldTelefone, MkPanelTable.getDefaultCell(1));
    panelTable.addRow("Oftalmologista:", fieldOftalmologista);

    panelTable.addRow(
        "",
        "Direito",
        GridBagConstraints.CENTER,
        "Esquerdo",
        GridBagConstraints.CENTER,
        "DP",
        GridBagConstraints.CENTER);
    panelTable.addRow("Longe", fieldOlhoDireitoLonge, fieldOlhoEsquerdoLonge, fieldDP);
    panelTable.addRow(
        "Perto",
        fieldOlhoDireitoPerto,
        fieldOlhoEsquerdoPerto,
        "Altura",
        GridBagConstraints.CENTER);

    panelTable.addRow("Adição", fieldAdicao, MkPanelTable.getDefaultCell(2), fieldAltura);

    panelTable.addRow("Lente:", fieldLente);
    panelTable.addRow("Armação:", fieldArmacao);

    panelTable.addRow(textObservacao.getJScrollPane("Observação"), GridBagConstraints.BOTH);

    addPanelCenter(panelTable, 610, 480);

    fieldId.setEnabled(false);
    fieldTelefone.setMask(EnumMkMask.CELLPHONE);

    addPanelButton(true, buttonImprimir, buttonNovo, buttonSalvar, buttonEditar, buttonExcluir);

    if (bean.getId() == null) {
      novo();
    } else {
      beanToForm(false);
    }
  }
  private void beanToForm(boolean isEditMode) {
    if (bean.getId() == null) {
      fieldId.setText("NOVO");
    } else {
      fieldId.setText(bean.getId() + "");
    }
    fieldCliente.setText(bean.getCliente());
    fieldTelefone.setText(bean.getTelefone());
    fieldOftalmologista.setText(bean.getOftalmologista());
    fieldDataReceita.setDate(bean.getDataReceita());
    fieldOlhoDireitoLonge.setText(bean.getOlhoDireitoLonge());
    fieldOlhoEsquerdoLonge.setText(bean.getOlhoEsquerdoLonge());
    fieldOlhoDireitoPerto.setText(bean.getOlhoDireitoPerto());
    fieldOlhoEsquerdoPerto.setText(bean.getOlhoEsquerdoPerto());
    fieldAdicao.setText(bean.getAdicao());
    fieldLente.setText(bean.getLente());
    fieldArmacao.setText(bean.getArmacao());
    textObservacao.setText(bean.getObservacao());
    fieldDP.setText(bean.getDp());
    fieldAltura.setText(bean.getAltura());

    fieldCliente.setEditable(isEditMode);
    fieldTelefone.setEditable(isEditMode);
    fieldOftalmologista.setEditable(isEditMode);
    fieldDataReceita.setEditable(isEditMode);
    fieldOlhoDireitoLonge.setEditable(isEditMode);
    fieldOlhoEsquerdoLonge.setEditable(isEditMode);
    fieldOlhoDireitoPerto.setEditable(isEditMode);
    fieldOlhoEsquerdoPerto.setEditable(isEditMode);
    fieldAdicao.setEditable(isEditMode);
    fieldLente.setEditable(isEditMode);
    fieldArmacao.setEditable(isEditMode);
    textObservacao.setEditable(isEditMode);
    fieldDP.setEditable(isEditMode);
    fieldAltura.setEditable(isEditMode);

    buttonNovo.setEnabled(!isEditMode);
    buttonSalvar.setEnabled(isEditMode);
    buttonEditar.setEnabled(!isEditMode);
    buttonExcluir.setEnabled(!isEditMode);
    buttonImprimir.setEnabled(!isEditMode);
  }
  protected void salvar() {
    try {

      bean.setCliente(fieldCliente.getText());
      bean.setTelefone(fieldTelefone.getText());
      bean.setOftalmologista(fieldOftalmologista.getText());
      bean.setDataReceita(fieldDataReceita.getDate());
      bean.setOlhoDireitoLonge(fieldOlhoDireitoLonge.getText());
      bean.setOlhoEsquerdoLonge(fieldOlhoEsquerdoLonge.getText());
      bean.setOlhoDireitoPerto(fieldOlhoDireitoPerto.getText());
      bean.setOlhoEsquerdoPerto(fieldOlhoEsquerdoPerto.getText());
      bean.setAdicao(fieldAdicao.getText());
      bean.setLente(fieldLente.getText());
      bean.setArmacao(fieldArmacao.getText());
      bean.setObservacao(textObservacao.getText());
      bean.setDp(fieldDP.getText());
      bean.setAltura(fieldAltura.getText());

      if (bean.getId() == null) {
        bean.setOwner(JanelaLogin.getInstance().getUsuarioLogado().getId());
        receitaService.insert(bean);
      } else {
        receitaService.update(bean);
      }
      MkDialog.info("Receita salva com sucesso", buttonSalvar);

      bean = receitaService.findById(bean.getId());
      beanToForm(false);
      application.refreshWindows();

    } catch (Exception ex) {
      MkDialog.error(ex.getMessage(), ex);
    }
  }