Logo de Saga Consulting (Nueva Ventana)

Widget MultiCategory

Widget que muestra la jsp de selección de categorias de OpenCms (la misma pantalla que si seleccionamos en el menú /Relaciones/Asignar Categorias).

 

Para la instalación podemos seguir el siguiente manual de la wiki: http://www.opencms-wiki.org/Custom_Widgets

package com.saga.opencms.templatesaga.widget;

import java.util.List;
import java.util.Map;

import org.opencms.file.CmsObject;
import org.opencms.main.OpenCms;
import org.opencms.widgets.A_CmsSelectWidget;
import org.opencms.widgets.I_CmsWidget;
import org.opencms.widgets.I_CmsWidgetDialog;
import org.opencms.widgets.I_CmsWidgetParameter;

/**
 * @author Saga nguillen
 * @version 1.0
 * Widget que genera un Select multiple con las categorias que existen definidas
 * El recurso sera asignado a las categorias seleccionadas en el select
 * En la configuración se puede marcar la ruta base.
 */

public class CmsMultiCategoryWidget extends A_CmsSelectWidget {

    /** Indicates if used html code is a multi selection list or a list of checkboxes. */
    private boolean m_asCheckBoxes;



    /**
     * Creates a new select widget.<p>
     */
    public CmsMultiCategoryWidget() {

        // empty constructor is required for class registration
        super();
    }



    public CmsMultiCategoryWidget(List configuration) {

        this(configuration, false);
    }


    public CmsMultiCategoryWidget(List configuration, boolean asCheckboxes) {

        super(configuration);
        m_asCheckBoxes = asCheckboxes;
    }


    public CmsMultiCategoryWidget(String configuration) {

        super(configuration);
    }


    public void setEditorValue(
        CmsObject cms,
        Map formParameters,
        I_CmsWidgetDialog widgetDialog,
        I_CmsWidgetParameter param) {
    }


    public String getDialogWidget(CmsObject cms, I_CmsWidgetDialog widgetDialog, I_CmsWidgetParameter param) {

       String id = param.getId();
        StringBuffer result = new StringBuffer(16);

        List options = parseSelectOptions(cms, widgetDialog, param);

        result.append("<td class=\"xmlTd\">\r\n");
        result.append("<script>\r\n");
        result.append("function ShowWebSite(val){\r\n");
        result.append("document.all.myFrame.src=val;\r\n");
        result.append("document.all.myFrame.style.visibility=\"visible\";}\r\n");
        result.append("function Button1_onclick() {\r\n");
        String uri=OpenCms.getSystemInfo().getOpenCmsContext()+"/system/workplace/views/admin/admin-main.jsp";
        result.append("var v = '"+uri+"?root=explorer&path=/categories&resource='+document.getElementsByName('resource')[0].value;\r\n");
        result.append("ShowWebSite(v);}\r\n");
        result.append("function ocultaCab() {\r\n");
   	 	result.append("document.all.myFrame.contentWindow.document. getElementById('screenH').style.position='absolute';\r\n");
   	 	result.append("document.all.myFrame.contentWindow.document. getElementById('screenH').style.top='-140px';");
        result.append("  }\r\n");
        result.append("</script>\r\n");
    	result.append("<iframe width=\"750\" height=\"500\" frameborder=\"0\" id=\"myFrame\" onLoad=\"ocultaCab();\"  scrolling=\"auto\" ></iframe>");
    	result.append("<script>Button1_onclick();</script>");
    	result.append("</td>");
        return result.toString();
    }


    public I_CmsWidget newInstance() {

        return new CmsMultiCategoryWidget(getConfiguration());
    }

}

Noel Guillen - Saga Consulting

© OpenCms Hispano - Powered by OpenCms 7.5.2 & Template Saga
logo template Saga