Yes, that is the problem :( Thanks On Thu, Sep 24, 2015 at 6:09 PM, Jeroen van der Wal <[email protected]> wrote:
> Did you use it in a parented collection? It currently only works in > standalone collections [1]. > > [1] https://issues.apache.org/jira/browse/ISIS-1035 > > On 24 September 2015 at 09:38, Stephen Cameron <[email protected] > > > wrote: > > > Hi, > > > > I am trying to copy the 'bulk' action example in the kitchen sink app, > but > > I don't see the check boxes on the left hand column in my collection. > What > > can I be missing? > > > > I am assuming that the annotation as follows is what gives the magic! > > > > @Action(invokeOn = InvokeOn.OBJECT_AND_COLLECTION) > > > > but maybe not alone? > > > > My Attended class is as follows. > > > > package au.com.scds.chats.dom.module.attendance; > > > > import java.util.List; > > > > import javax.jdo.annotations.Column; > > import javax.jdo.annotations.IdentityType; > > import javax.jdo.annotations.PersistenceCapable; > > > > import org.apache.isis.applib.Identifier; > > import org.apache.isis.applib.annotation.Action; > > import org.apache.isis.applib.annotation.BookmarkPolicy; > > import org.apache.isis.applib.annotation.DomainObjectLayout; > > import org.apache.isis.applib.annotation.Editing; > > import org.apache.isis.applib.annotation.InvokeOn; > > import org.apache.isis.applib.annotation.InvokedOn; > > import org.apache.isis.applib.annotation.LabelPosition; > > import org.apache.isis.applib.annotation.MemberGroupLayout; > > import org.apache.isis.applib.annotation.MemberOrder; > > import org.apache.isis.applib.annotation.Property; > > import org.apache.isis.applib.annotation.PropertyLayout; > > import org.apache.isis.applib.annotation.Where; > > import org.apache.isis.applib.services.actinvoc.ActionInvocationContext; > > import org.apache.isis.applib.services.eventbus.ActionDomainEvent; > > import org.apache.isis.applib.services.eventbus.EventBusService; > > > > import au.com.scds.chats.dom.AbstractChatsDomainEntity; > > import au.com.scds.chats.dom.module.activity.ActivityEvent; > > import au.com.scds.chats.dom.module.participant.Participant; > > > > @PersistenceCapable(identityType = IdentityType.DATASTORE) > > @DomainObjectLayout(bookmarking = BookmarkPolicy.NEVER) > > @MemberGroupLayout(columnSpans = { 6, 3, 0, 3 }, left = "General", > middle = > > { "Admin" }) > > public class Attended extends AbstractChatsDomainEntity implements > > Comparable<Attended>{ > > > > public String title(){ > > return getParticipant().getFullName() + (getAttended() ? " did > > attend " : " did NOT attend ") + getActivity().getName() + " on " + > > getActivity().getStartDateTime().toString("dd MMMM yyyy"); > > } > > > > // {{ Activity (property) > > private ActivityEvent activity; > > > > @Column(allowsNull = "false") > > @Property(editing = Editing.DISABLED, editingDisabledReason = "This > is > > a non-modifiable property") > > @PropertyLayout(hidden=Where.ALL_TABLES) > > @MemberOrder(sequence = "1") > > public ActivityEvent getActivity() { > > return activity; > > } > > > > void setActivity(final ActivityEvent activity) { > > if (activity == null || this.activity != null) > > return; > > this.activity = activity; > > } > > > > // }} > > > > // {{ Participant (property) > > private Participant participant; > > > > @Column(allowsNull = "false") > > @Property(editing = Editing.DISABLED, editingDisabledReason = "This > is > > a non-modifiable property") > > @MemberOrder(sequence = "2") > > public Participant getParticipant() { > > return participant; > > } > > > > void setParticipant(final Participant participant) { > > this.participant = participant; > > } > > > > // }} > > > > // {{ Attended (property) > > private Boolean attended = false; > > > > @Column(allowsNull = "false") > > @MemberOrder(sequence = "3") > > public Boolean getAttended() { > > return attended; > > } > > > > void setAttended(final Boolean attended) { > > this.attended = attended; > > } > > // }} > > > > // {{ Content (property) > > private String comments; > > > > @Column(allowsNull = "true") > > @MemberOrder(sequence = "4") > > @PropertyLayout(multiLine = 20, labelPosition = LabelPosition.TOP, > > hidden = Where.ALL_TABLES) > > public String getComments() { > > return comments; > > } > > > > public void setComments(final String contents) { > > this.comments = contents; > > } > > > > @Override > > public int compareTo(Attended o) { > > return > > getParticipant().getPerson().compareTo(o.getParticipant().getPerson()); > > } > > > > // }} > > > > //region > previous (action) > > @Action(invokeOn = InvokeOn.OBJECT_AND_COLLECTION) > > public Attended Attended() { > > if(!getAttended()) > > setAttended(true); > > return actionInvocationContext.getInvokedOn().isCollection()? > null: > > this; > > } > > > > @Action(invokeOn = InvokeOn.OBJECT_AND_COLLECTION) > > public Attended NotAttended() { > > if(getAttended()) > > setAttended(false); > > return actionInvocationContext.getInvokedOn().isCollection()? > null: > > this; > > } > > > > @Action(invokeOn = InvokeOn.OBJECT_AND_COLLECTION) > > public AttendanceList Delete() { > > AttendanceList attendances = getActivity().getAttendances(); > > attendances.removeAttended(this); > > return actionInvocationContext.getInvokedOn().isCollection()? > null: > > attendances; > > } > > > > @javax.inject.Inject > > private ActionInvocationContext actionInvocationContext; > > > > } > > > > TFYH > > >
