Package com.secretpal.components.event

Source Code of com.secretpal.components.event.SPEventEditPage

package com.secretpal.components.event;

import com.secretpal.components.application.SPPage;
import com.secretpal.components.group.SPGroupPage;
import com.secretpal.model.SPEvent;
import com.secretpal.model.SPGroup;
import com.secretpal.model.SPMembership;
import com.secretpal.model.SPNoNoPal;
import com.secretpal.model.SPPerson;
import com.webobjects.appserver.WOActionResults;
import com.webobjects.appserver.WOContext;
import com.webobjects.eocontrol.EOEditingContext;
import com.webobjects.foundation.NSArray;

import er.extensions.eof.ERXEC;

public class SPEventEditPage extends SPPage {
  private SPEvent _event;
  public SPMembership _membership;
  public SPNoNoPal _noNoPal;
  public SPPerson _noNoPerson;
  public SPPerson _selectedNoNoPerson;

  public SPEventEditPage(WOContext context) {
    super(context);
  }

  @Override
  protected void checkAccess() throws SecurityException {
    super.checkAccess();
    if (!_event.canEdit(session().currentPerson().localInstanceIn(_event.editingContext()))) {
      throw new SecurityException("You do not have permission to edit this event.");
    }
  }

  public void setEvent(SPEvent event) {
    EOEditingContext editingContext = ERXEC.newEditingContext();
    _event = event.localInstanceIn(editingContext);
  }

  public SPEvent event() {
    return _event;
  }

  public NSArray<SPPerson> noNoPersonPossibilities() {
    return _event.noNoPersonPossibilitiesForPerson(_membership.person());
  }

  public NSArray<SPNoNoPal> noNoPals() {
    return _event.noNoPalsForPerson(_membership.person());
  }

  public SPMembership noNoPersonMembership() {
    return _event.group().membershipForPerson(_noNoPerson);
  }

  public WOActionResults reassignSecretPals() {
    try {
      EOEditingContext editingContext = ERXEC.newEditingContext();
      _event.localInstanceIn(editingContext).reassignSecretPals();
      editingContext.saveChanges();
     
      session().notifications().addNotice("Secret pals have been assigned for this event.");
     
      SPEventPage eventPage = pageWithName(SPEventPage.class);
      eventPage.setEvent(_event);
      return eventPage;
    }
    catch (IllegalStateException e) {
      session().errors().addNotice(e.getMessage());
      return null;
    }
  }
 
  public WOActionResults saveEvent() {
    if (session().errors().hasNotices()) {
      return null;
    }
   
    _event.editingContext().saveChanges();
    SPEventPage eventPage = pageWithName(SPEventPage.class);
    eventPage.setEvent(_event);
    return eventPage;
  }

  public WOActionResults deleteEvent() {
    SPGroup group = _event.group();
    _event.delete();
    _event.editingContext().saveChanges();
    SPGroupPage groupPage = pageWithName(SPGroupPage.class);
    groupPage.setGroup(group);
    return groupPage;
  }

  public WOActionResults removeNoNoPal() {
    EOEditingContext editingContext = ERXEC.newEditingContext();
    _noNoPal.localInstanceIn(editingContext).delete();
    editingContext.saveChanges();
    return this;
  }

  public WOActionResults addNoNoPal() {
    EOEditingContext editingContext = ERXEC.newEditingContext();
    SPNoNoPal.createSPNoNoPal(editingContext, _event.localInstanceIn(editingContext), _membership.person().localInstanceIn(editingContext), _selectedNoNoPerson.localInstanceIn(editingContext));
    editingContext.saveChanges();
    _selectedNoNoPerson = null;
    return this;
  }
}
TOP

Related Classes of com.secretpal.components.event.SPEventEditPage

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.