/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.app.xmlui.aspect.swordclient;
import org.apache.cocoon.environment.ObjectModelHelper;
import org.apache.cocoon.environment.Request;
import org.apache.log4j.Logger;
import org.dspace.app.xmlui.cocoon.AbstractDSpaceTransformer;
import org.dspace.app.xmlui.utils.UIException;
import org.dspace.app.xmlui.wing.Message;
import org.dspace.app.xmlui.wing.WingException;
import org.dspace.app.xmlui.wing.element.*;
import org.dspace.authorize.AuthorizeException;
import org.dspace.sword.client.ServiceDocumentHelper;
import org.purl.sword.base.Collection;
import org.purl.sword.base.ServiceDocument;
import org.xml.sax.SAXException;
import java.io.IOException;
import java.sql.SQLException;
/**
* User: Robin Taylor
* Date: 21-Sep-2010
* Time: 13:44:28
*/
public class SelectPackagingTransformer extends AbstractDSpaceTransformer
{
private static final Message T_dspace_home = message("xmlui.general.dspace_home");
private static final Message T_title = message("xmlui.swordclient.SelectCollection.title");
private static final Message T_SwordCopy_trail = message("xmlui.swordclient.general.SwordCopy_trail");
private static final Message T_trail = message("xmlui.swordclient.SelectCollection.trail");
private static final Message T_main_head = message("xmlui.swordclient.general.main_head");
private static final Message T_collection_head = message("xmlui.swordclient.SelectPackagingAction.head");
private static final Message T_collection_title = message("xmlui.swordclient.SelectPackagingAction.title");
private static final Message T_collection_policy = message("xmlui.swordclient.SelectPackagingAction.policy");
private static final Message T_collection_mediation = message("xmlui.swordclient.SelectPackagingAction.mediation");
private static final Message T_collection_file_types = message("xmlui.swordclient.SelectPackagingAction.file_types");
private static final Message T_collection_package_formats = message("xmlui.swordclient.SelectPackagingAction.package_formats");
private static final Message T_submit_next = message("xmlui.general.next");
private static final Message T_submit_cancel = message("xmlui.general.cancel");
private static Logger log = Logger.getLogger(SelectPackagingTransformer.class);
/**
* Add a page title and trail links
*/
public void addPageMeta(PageMeta pageMeta) throws SAXException, WingException, UIException, SQLException, IOException, AuthorizeException {
pageMeta.addMetadata("title").addContent(T_title);
pageMeta.addTrailLink(contextPath + "/", T_dspace_home);
pageMeta.addTrail().addContent(T_SwordCopy_trail);
pageMeta.addTrail().addContent(T_trail);
}
public void addBody(Body body) throws SAXException, WingException, UIException, SQLException, IOException, AuthorizeException {
String handle = parameters.getParameter("handle", null);
Request request = ObjectModelHelper.getRequest(objectModel);
ServiceDocument serviceDoc = (ServiceDocument) request.getAttribute("serviceDoc");
String location = (String) request.getAttribute("location");
String[] fileTypes = (String[]) request.getAttribute("fileTypes");
String[] packageFormats = (String[]) request.getAttribute("packageFormats");
Collection collection = ServiceDocumentHelper.getCollection(serviceDoc, location);
Division main = body.addInteractiveDivision("confirm-collection", contextPath + "/swordclient", Division.METHOD_POST, "");
main.setHead(T_main_head.parameterize(handle));
List collectionList = main.addList("collectionList", List.TYPE_FORM);
collectionList.setHead(T_collection_head.parameterize(location));
collectionList.addItem().addContent(T_collection_title.parameterize(collection.getTitle()));
collectionList.addItem().addContent(T_collection_policy.parameterize(collection.getCollectionPolicy()));
collectionList.addItem().addContent(T_collection_mediation.parameterize(Boolean.toString(collection.getMediation())));
Select fileType = collectionList.addItem().addSelect("fileType");
for (String ft : fileTypes) {
fileType.addOption(false, ft, ft);
}
fileType.setLabel(T_collection_file_types);
Select packageFormat = collectionList.addItem().addSelect("packageFormat");
for (String pf : packageFormats) {
packageFormat.addOption(false, pf, pf);
}
packageFormat.setLabel(T_collection_package_formats);
Para buttonList = main.addPara();
buttonList.addButton("submit_next").setValue(T_submit_next);
buttonList.addButton("submit_cancel").setValue(T_submit_cancel);
main.addHidden("swordclient-continue").setValue(knot.getId());
}
}