コード例 #1
0
    // This method is called when a button is pressed.
    public void actionPerformed(ActionEvent e) {
      if (e.getSource() == btnOk) {
        String name = txfName.getText().trim();
        if (name.length() == 0) {
          // TODO: notify user
          return;
        }
        String wageStr = txfWage.getText().trim();
        if (wageStr.length() == 0) {
          // TODO: notify user
          return;
        }
        int wage = -1;
        try {
          wage = Integer.parseInt(wageStr);
        } catch (NumberFormatException ex) {
          // TODO: notify user
          return;
        }
        if (wage < 0) {
          // TODO: notify user
          return;
        }

        Company company = null;
        if (cbxCompanies.getSelectedIndex() >= 1) {
          company = (Company) cbxCompanies.getItemAt(cbxCompanies.getSelectedIndex());
        }

        /** ** update storage *** */
        if (employee == null) {
          Employee newEmployee = service.createEmployee(name, wage);
          if (company != null) service.updateCompanyOfEmployee(newEmployee, company);
        } else {
          if (!employee.getName().equals(name) || employee.getWage() != wage)
            service.updateEmployee(employee, name, wage);
          if (employee.getCompany() != company) service.updateCompanyOfEmployee(employee, company);
        }

        closedByOk = true;
        EmployeeCUDialog.this.setVisible(false);
      }

      if (e.getSource() == btnCancel) {
        closedByOk = false;
        EmployeeCUDialog.this.setVisible(false);
      }
    }