package app; import ariba.ui.meta.annotations.Trait; import ariba.ui.meta.annotations.Property; import ariba.ui.meta.annotations.Action; import ariba.ui.meta.annotations.NavModuleClass; import java.util.Date; @NavModuleClass public class Post { @Trait.Required @Property.Label("Name") @Property.Editable("${properties.editing && value!='admin'}") public String userName; @Property.Valid("${object.isValidBirthday}") public Date birthday; @Trait.LabelField public String title; @Trait.RichText @Property.Visible("${properties.editing || !object.isPrivate}") public String comment; public int rating = 3; public boolean isPrivate; @Trait.Required public Continent continent; public Object isValidBirthday () { if (birthday == null || birthday.before(new java.util.Date())) { return true; } return "Birthday cannot be in the future"; } @Action(message="isPrivate set to %s") public boolean toggleIsPrivate () { isPrivate = !isPrivate; return isPrivate; } }