예제 #1
0
  /** Handle the configure context's update button */
  public void doSave(RunData data, Context context) {
    // TODO: if we do limit the initState() calls, we need to make sure we get a new one after this
    // call -ggolden

    String peid = ((JetspeedRunData) data).getJs_peid();
    SessionState state = ((JetspeedRunData) data).getPortletSessionState(peid);
    ParameterParser params = data.getParameters();
    String parentId = params.getString("parentSite");

    if (!SiteService.allowUpdateSite(parentId)) {
      addAlert(state, rb.getString("error.cannot.update"));
      return;
    }

    try {
      Site site;
      site = SiteService.getSite(getSiteId(state));
      ResourcePropertiesEdit rpe = site.getPropertiesEdit();
      rpe.addProperty("sakai:parent-id", parentId);
      SiteService.save(site);
      SessionManager.getCurrentToolSession().setAttribute(LINK_MODE, MODE_DONE);
      scheduleTopRefresh();
    } catch (Exception e) {
      addAlert(state, rb.getString("error.cannot.update"));
    }
  }