+
+ /**
+ * Delete this {@link Contact} from its parent {@link Card} if any.
+ *
+ * @return TRUE in case of success
+ */
+ public boolean delete() {
+ if (parent != null) {
+ List<Contact> list = parent.getContactsList();
+ for (int i = 0; i < list.size(); i++) {
+ if (list.get(i) == this) {
+ list.remove(i);
+ parent.setDirty();
+ return true;
+ }
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * Notify this element <i>and all its descendants</i> that it is in pristine
+ * state (as opposed to dirty).
+ */
+ void setPristine() {
+ dirty = false;
+ for (Data data: datas) {
+ data.setPristine();
+ }
+ }