com.clican.pluto.cms.ui.action.model.TemplateAction.java Source code

Java tutorial

Introduction

Here is the source code for com.clican.pluto.cms.ui.action.model.TemplateAction.java

Source

/**
 * The Clican-Pluto software suit is Copyright 2009, Clican Company
 * and individual contributors, and is licensed under the GNU LGPL.
 *
 * @author wezhang
 *
 */
package com.clican.pluto.cms.ui.action.model;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import org.apache.commons.collections.CollectionUtils;
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.Factory;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Out;
import org.jboss.seam.annotations.Scope;
import org.jboss.seam.annotations.intercept.BypassInterceptors;

import com.clican.pluto.cms.core.comparator.PropertyComparator;
import com.clican.pluto.cms.core.service.SiteService;
import com.clican.pluto.cms.core.service.TemplateService;
import com.clican.pluto.cms.ui.action.BaseAction;
import com.clican.pluto.cms.ui.ext.transfer.SelectItem2StringTransfer;
import com.clican.pluto.orm.desc.TemplateSiteIdPair;
import com.clican.pluto.orm.dynamic.inter.IDataModel;
import com.clican.pluto.orm.dynamic.inter.ITemplate;

@Scope(ScopeType.PAGE)
@Name("templateAction")
public class TemplateAction extends BaseAction {

    /**
     * 
     */
    private static final long serialVersionUID = 7209304814414586544L;

    @In("#{templateService}")
    private TemplateService templateService;

    @In("#{siteService}")
    private SiteService siteService;

    @Out(required = false)
    @In(required = false)
    private List<ITemplate> templateList;

    private ITemplate template;

    private IDataModel dataModel;

    private List<TemplateSiteIdPair> selectedIdPairs;

    private List<String> allTemplateList;

    private List<String> allSiteList;

    @Factory("templateList")
    public void loadTemplateList() {
        templateList = templateService.getAllTemplates();
    }

    public void newTemplate() {
        template = templateService.newTemplate();
    }

    public void save() {
        templateService.save(template);
        templateList.clear();
        templateList.addAll(templateService.getAllTemplates());
        Collections.sort(templateList, new PropertyComparator<ITemplate>("name"));
        cancel();
    }

    public void cancel() {
        clear();
    }

    public void edit(ITemplate template) {
        this.template = template;
    }

    public void delete(ITemplate template) {
        templateList.remove(template);
        templateService.delete(template);
    }

    private void clear() {
        template = null;
    }

    public void configureTemplateAndSite(IDataModel dataModel) {
        this.dataModel = dataModel;
        selectedIdPairs = templateService.getTemplateSiteIdPairs(dataModel);
        allTemplateList = new ArrayList<String>();
        allSiteList = new ArrayList<String>();
        CollectionUtils.collect(templateService.getAllTemplates(), new SelectItem2StringTransfer(),
                allTemplateList);
        CollectionUtils.collect(siteService.getAllSites(), new SelectItem2StringTransfer(), allSiteList);
    }

    public void addPair() {
        TemplateSiteIdPair pair = new TemplateSiteIdPair();
        selectedIdPairs.add(pair);
    }

    public void deletePair(TemplateSiteIdPair pair) {
        selectedIdPairs.remove(pair);
    }

    public void saveTemplateAndSiteConfiguration() {
        templateService.configureTemplateDirectorySiteRelations(dataModel, selectedIdPairs);
        clear();
    }

    @BypassInterceptors
    public ITemplate getTemplate() {
        return template;
    }

    public void setTemplate(ITemplate template) {
        this.template = template;
    }

    @BypassInterceptors
    public List<TemplateSiteIdPair> getSelectedIdPairs() {
        return selectedIdPairs;
    }

    public void setSelectedIdPairs(List<TemplateSiteIdPair> selectedIdPairs) {
        this.selectedIdPairs = selectedIdPairs;
    }

    @BypassInterceptors
    public List<String> getAllTemplateList() {
        return allTemplateList;
    }

    public void setAllTemplateList(List<String> allTemplateList) {
        this.allTemplateList = allTemplateList;
    }

    @BypassInterceptors
    public List<String> getAllSiteList() {
        return allSiteList;
    }

    public void setAllSiteList(List<String> allSiteList) {
        this.allSiteList = allSiteList;
    }

}

// $Id$