private void trackPositionChanges(Tag tag) { // tracking associated Positions for (Position position : tag.getPositionTags()) { Position positionDB = PositionManager.getDefault().getEntityById(position.getId()); if (!positionDB.getTags().contains(tag)) { positionDB .getHistory() .add( PositionManager.getDefault() .getChange(positionDB, PositionManager.FIELD_TAGS, "", tag.getName())); } } // tracking deassociated Positions if (tag.getId() != null) { Tag tagDB = getEntityById(tag.getId()); for (Position positionDB : tagDB.getPositionTags()) { if (!tag.getPositionTags().contains(positionDB)) { positionDB .getHistory() .add( PositionManager.getDefault() .getChange(positionDB, PositionManager.FIELD_TAGS, tag.getName(), "")); } } } }
private void trackContactChanges(Tag tag) { // tracking associated Contacts for (Contact contact : tag.getContactTags()) { final Contact contactBD = ContactManager.getDefault().getEntityById(contact.getId()); if (!contactBD.getTags().contains(tag)) { // FIXME aqui debería bastar con añadir el cambio o el tag al contacto y salvar el contacto // para que se actualizase con los listener de hibernate. Por algún motivo, sólo cuando se // da de alta // una nueva clave y se asocia a un contacto antes de guardar no funciona correctamente. EntityChange entityChange = contactBD.getEntityChange( Contact.FIELD_TAGS, "", tag.getName(), tag.getId().toString()); contactBD.addEntityChange(Contact.FIELD_TAGS, "", tag.getName(), tag.getId().toString()); // contactDAO.update(contactBD); if (entityChange != null) { entityChangeDAO.insert(entityChange); } } } // tracking deassociated Contacts if (tag.getId() != null) { Tag tagDB = getEntityById(tag.getId()); for (Contact contactDB : tagDB.getContactTags()) { if (!tag.getContactTags().contains(contactDB)) { contactDB.addEntityChange(Contact.FIELD_TAGS, tag.getName(), "", tag.getId().toString()); contactDAO.update(contactDB); } } } }
/** * Save bean and stay on it * * @return forward to list page */ public String save() { doBeforeSave(); if (tag.getId() == null) { manager.insertEntity(tag); } else { manager.updateEntity(tag); } // Calls an after save action String result = doAfterSave(NavigationResults.LIST); // Unselect object tag = null; return result; }
// Getters and setters to manipulate active Tag object public java.lang.Integer getId() { return tag.getId(); }
/** * Whether or not delete button is available for user * * @return true if user can delete current object */ public boolean isDeleteAvailable() { return (tag.getId() != null) && SpringUtils.isAclPermissionGranted(tag, BasePermission.DELETE); }