/** * Get the list of all contactTags selected * * @return the list of all contactTags selected */ public List<SelectItem> getContactTagsSelected() { ArrayList<SelectItem> ret = new ArrayList<SelectItem>(); List<Contact> refs = this.getContactTags(); for (Contact ref : refs) { ret.add(new SelectItem(ref, ref.getName())); } return ret; }
public List<SelectItem> getAllContacts() { final List<Contact> refs = ContactManager.getDefault().getAllEntities(null, new SortCriteria("name")); final List<SelectItem> ret = new ArrayList<SelectItem>(); for (Contact ref : refs) { ret.add(new SelectItem(ref, ref.getName())); } return ret; }
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); } } } }