@Override
 public void saveBean(SystemUser currentUser) {
   setVersion(getVersion() + 1);
   super.saveBean(currentUser);
   if (this.isActive()) {
     writeViewToFile();
   }
 }
  @Override
  public void saveBean(SystemUser currentUser) {
    //  get the template from the database (will have the old values)
    if (!isNew()) {
      TopLevelTemplate dbTemplate = new BeanDao(TopLevelTemplate.class).get(getId());
      //  if !new or changed from db template
      if (dbTemplate == null || hasTemplateChanged(dbTemplate)) {
        //  if different load all of the pages and run the script to add the corresponding CPH
        // sections
        BeanDao cmsPageRevisionDao = new BeanDao(CmsPageRevision.class);
        cmsPageRevisionDao.addWhereCriteria(
            "bean.cmsTemplate.class = 'TOP_LEVEL_TEMPLATE' AND bean.cmsTemplate.id="
                + this.getId());
        List<CmsPageRevision> pageList = cmsPageRevisionDao.getAll();
        for (CmsPageRevision page : pageList) {
          page.setTemplate(this, true, true);
          page.saveDetails();
        }

        BeanDao innerTemplateDao = new BeanDao(InnerTemplate.class);
        innerTemplateDao.addWhereCriteria("bean.cmsTemplate.id=" + this.getId());
        List<InnerTemplate> innerTemplateList = innerTemplateDao.getAll();
        boolean hasCprCphModulesChanged = hasCprCphModulesChanged(dbTemplate);
        //  Need to load it out of the session each time or hibernate throws
        //  a Transient Object wobbly.
        for (InnerTemplate innerTemplate : innerTemplateList) {
          InnerTemplate loadedInnerTemplate =
              (InnerTemplate) new BeanDao(InnerTemplate.class).get(innerTemplate.getId());
          loadedInnerTemplate.setTemplate(this, false, true);
          if (hasCprCphModulesChanged) {
            loadedInnerTemplate.updateCmsPageRevisionChildren();
          }
          loadedInnerTemplate.saveDetails();
          //				HibernateUtil.startNewTransaction();
          //				session = HibernateUtil.getCurrentSession();
        }
      }
    }
    for (CmsAtomPassThrough cmsAtomPassThrough : cmsAtomPassThroughList) {
      cmsAtomPassThrough.saveDetails(currentUser);
    }
    super.saveBean(currentUser);

    if (this.isActive()) {
      writeViewToFile();
    }
  }