public void update() {
        if (listAwardNames.getSelectedValue() == null) {
            return;
        }

        clearErrors();

        if (txtAwardName.isMessageDefault() || txtAwardName.getText().isEmpty()) {
            Util.setError(lblNameError, "Award name cannot be left blank");
            return;
        }

        for (int i = 0; i < listAwardNames.getModel().getSize(); ++i) {
            String otherAwardName = (String) listAwardNames.getModel().getElementAt(i);
            if (otherAwardName.equalsIgnoreCase(txtAwardName.getText()) && !txtAwardName.getText().equals(listAwardNames.getSelectedValue().toString())) {
                Util.setError(lblNameError, "Award name already exists");
                return;
            }
        }

        OtherAward otherAward = LogicOtherAward.findByName(listAwardNames.getSelectedValue().toString());
        if (otherAward == null) {
            return;
        }

        if (txtImagePath.isMessageDefault()) {
            otherAward.setImgPath("");
        } else {
            otherAward.setImgPath(txtImagePath.getText());
        }
        otherAward.setName(txtAwardName.getText());

        List<Requirement> requirementList = validateRequirements(otherAward.getId());
        if (requirementList == null) return;

        Util.processBusy(pnlBadgeConf.getBtnUpdate(), true);
        // when editing requirements may need to check who is using them
        LogicRequirement.updateList(requirementList, otherAward.getId(), RequirementTypeConst.OTHER.getId());
        LogicOtherAward.update(otherAward);
        Util.processBusy(pnlBadgeConf.getBtnUpdate(), false);

        reloadData();
    }