Package org.dspace.app.xmlui.aspect.administrative.registries

Source Code of org.dspace.app.xmlui.aspect.administrative.registries.EditBitstreamFormat

/*
* EditBitstreamFormat.java
*
* Version: $Revision: 3705 $
*
* Date: $Date: 2009-04-11 17:02:24 +0000 (Sat, 11 Apr 2009) $
*
* Copyright (c) 2002, Hewlett-Packard Company and Massachusetts
* Institute of Technology.  All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* - Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* - Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* - Neither the name of the Hewlett-Packard Company nor the name of the
* Massachusetts Institute of Technology nor the names of their
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
* TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
* USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
* DAMAGE.
*/
package org.dspace.app.xmlui.aspect.administrative.registries;

import java.sql.SQLException;
import java.util.ArrayList;

import org.apache.cocoon.environment.ObjectModelHelper;
import org.apache.cocoon.environment.Request;
import org.dspace.app.xmlui.cocoon.AbstractDSpaceTransformer;
import org.dspace.app.xmlui.utils.RequestUtils;
import org.dspace.app.xmlui.wing.Message;
import org.dspace.app.xmlui.wing.WingException;
import org.dspace.app.xmlui.wing.element.Body;
import org.dspace.app.xmlui.wing.element.CheckBox;
import org.dspace.app.xmlui.wing.element.Division;
import org.dspace.app.xmlui.wing.element.Item;
import org.dspace.app.xmlui.wing.element.List;
import org.dspace.app.xmlui.wing.element.PageMeta;
import org.dspace.app.xmlui.wing.element.Select;
import org.dspace.app.xmlui.wing.element.Text;
import org.dspace.app.xmlui.wing.element.TextArea;
import org.dspace.content.BitstreamFormat;

/**
* Enable the user to edit a bitstream format's metadata.
*
* @author Scott Phillips
*/
public class EditBitstreamFormat extends AbstractDSpaceTransformer  
 
  /** Language Strings */
  private static final Message T_dspace_home =
    message("xmlui.general.dspace_home");
  private static final Message T_title =
    message("xmlui.administrative.registries.EditBitstreamFormat.title");
  private static final Message T_format_registry_trail =
    message("xmlui.administrative.registries.general.format_registry_trail");
  private static final Message T_trail =
    message("xmlui.administrative.registries.EditBitstreamFormat.trail");
  private static final Message T_head1 =
    message("xmlui.administrative.registries.EditBitstreamFormat.head1");
  private static final Message T_head2 =
    message("xmlui.administrative.registries.EditBitstreamFormat.head2");
  private static final Message T_para1 =
    message("xmlui.administrative.registries.EditBitstreamFormat.para1");
  private static final Message T_name =
    message("xmlui.administrative.registries.EditBitstreamFormat.name");
  private static final Message T_name_help =
    message("xmlui.administrative.registries.EditBitstreamFormat.name_help");
  private static final Message T_name_error =
    message("xmlui.administrative.registries.EditBitstreamFormat.name_error");
  private static final Message T_mimetype =
    message("xmlui.administrative.registries.EditBitstreamFormat.mimetype");
  private static final Message T_mimetype_help =
    message("xmlui.administrative.registries.EditBitstreamFormat.mimetype_help");
  private static final Message T_description =
    message("xmlui.administrative.registries.EditBitstreamFormat.description");
  private static final Message T_support =
    message("xmlui.administrative.registries.EditBitstreamFormat.support");
  private static final Message T_support_help =
    message("xmlui.administrative.registries.EditBitstreamFormat.support_help");
  private static final Message T_support_0 =
    message("xmlui.administrative.registries.EditBitstreamFormat.support_0");
  private static final Message T_support_1 =
    message("xmlui.administrative.registries.EditBitstreamFormat.support_1");
  private static final Message T_support_2 =
    message("xmlui.administrative.registries.EditBitstreamFormat.support_2");
  private static final Message T_internal =
    message("xmlui.administrative.registries.EditBitstreamFormat.internal");
  private static final Message T_internal_help =
    message("xmlui.administrative.registries.EditBitstreamFormat.internal_help");
  private static final Message T_extensions =
    message("xmlui.administrative.registries.EditBitstreamFormat.extensions");
  private static final Message T_extensions_help =
    message("xmlui.administrative.registries.EditBitstreamFormat.extensions_help");
  private static final Message T_submit_save =
    message("xmlui.general.save");
  private static final Message T_submit_cancel =
    message("xmlui.general.cancel");
 
 
  public void addPageMeta(PageMeta pageMeta) throws WingException
    {
        pageMeta.addMetadata("title").addContent(T_title);
        pageMeta.addTrailLink(contextPath + "/", T_dspace_home);
        pageMeta.addTrailLink(contextPath + "/admin/format-registry",T_format_registry_trail);
        pageMeta.addTrail().addContent(T_trail);
    }
 
 
  public void addBody(Body body) throws WingException, SQLException
  {
    // Get our parameters & state
    int formatID = parameters.getParameterAsInteger("formatID",-1);
    BitstreamFormat format = null;
   
    if (formatID >= 0)
      format = BitstreamFormat.find(context,formatID);
 
    String errorString = parameters.getParameter("errors",null);
    ArrayList<String> errors = new ArrayList<String>();
    if (errorString != null)
      for (String error : errorString.split(","))
        errors.add(error);
   
    Request request = ObjectModelHelper.getRequest(objectModel);
        String mimetypeValue = request.getParameter("mimetype");
        String nameValue = request.getParameter("short_description");
        String descriptionValue = request.getParameter("description");
        String supportLevelValue = request.getParameter("support_level");
        String internalValue = request.getParameter("internal");
        java.util.List<String> extensionsList = RequestUtils.getFieldValues(request, "extensions");
        String[] extensionValues = extensionsList.toArray(new String[extensionsList.size()]);
       
        // Remove leading periods from file extensions.
        for (int i = 0; i < extensionValues.length; i++)
          if (extensionValues[i].startsWith("."))
            extensionValues[i] = extensionValues[i].substring(1);
       
        if (format != null)
        {
          if (mimetypeValue == null)
            mimetypeValue = format.getMIMEType();
          if (nameValue == null)
            nameValue = format.getShortDescription();
          if (descriptionValue == null)
            descriptionValue = format.getDescription();
          if (supportLevelValue == null)
            supportLevelValue = String.valueOf(format.getSupportLevel());
          if (request.getParameter("mimetype") == null)
            internalValue = format.isInternal() ? "true" : null;
          if (request.getParameter("extensions") == null)
            extensionValues = format.getExtensions();
        }
   
       
 
       
        // DIVISION: edit-bitstream-format
    Division main = body.addInteractiveDivision("edit-bitstream-format",contextPath+"/admin/format-registry",Division.METHOD_POST,"primary administrative format-registry");
    if (formatID == -1)
      main.setHead(T_head1);
    else
      main.setHead(T_head2.parameterize(nameValue));
    main.addPara(T_para1);
 
    List form = main.addList("edit-bitstream-format",List.TYPE_FORM);
   
    Text name = form.addItem().addText("short_description");
    name.setRequired();
    name.setLabel(T_name);
    name.setHelp(T_name_help);
    name.setValue(nameValue);
    name.setSize(35);
    if (errors.contains("short_description"))
      name.addError(T_name_error);
   
    Text mimeType = form.addItem().addText("mimetype");
    mimeType.setLabel(T_mimetype);
    mimeType.setHelp(T_mimetype_help);
    mimeType.setValue(mimetypeValue);
    mimeType.setSize(35);
   
    // Do not allow anyone to change the name of the unknown format.
    if (format != null && format.getID() == 1)
      name.setDisabled();

    TextArea description = form.addItem().addTextArea("description");
    description.setLabel(T_description);
    description.setValue(descriptionValue);
    description.setSize(3, 35);
   
    Select supportLevel = form.addItem().addSelect("support_level");
    supportLevel.setLabel(T_support);
    supportLevel.setHelp(T_support_help);
    supportLevel.addOption(0,T_support_0);
    supportLevel.addOption(1,T_support_1);
    supportLevel.addOption(2,T_support_2);
    supportLevel.setOptionSelected(supportLevelValue);
   
    CheckBox internal = form.addItem().addCheckBox("internal");
    internal.setLabel(T_internal);
    internal.setHelp(T_internal_help);
    internal.addOption((internalValue != null),"true");
   
    Text extensions = form.addItem().addText("extensions");
    extensions.setLabel(T_extensions);
    extensions.setHelp(T_extensions_help);
    extensions.enableAddOperation();
    extensions.enableDeleteOperation();
    for (String extensionValue : extensionValues)
    {
      extensions.addInstance().setValue(extensionValue);
    }
   
    Item actions = form.addItem();
    actions.addButton("submit_save").setValue(T_submit_save);
    actions.addButton("submit_cancel").setValue(T_submit_cancel);
   
   
    main.addHidden("administrative-continue").setValue(knot.getId());
       
   }
 
}
TOP

Related Classes of org.dspace.app.xmlui.aspect.administrative.registries.EditBitstreamFormat

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.