All Downloads are FREE. Search and download functionalities are using the official Maven repository.

edu.cornell.mannlib.vedit.tags.DynamicFieldsTag Maven / Gradle / Ivy

/* $This file is distributed under the terms of the license in LICENSE$ */

package edu.cornell.mannlib.vedit.tags;

import java.util.HashMap;
import java.util.ArrayList;
import java.util.List;
import java.util.Iterator;

import java.io.File;
import java.io.InputStream;
import java.io.FileInputStream;
import java.io.BufferedInputStream;
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.IOException;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;

import edu.cornell.mannlib.vedit.beans.FormObject;
import edu.cornell.mannlib.vedit.beans.DynamicField;
import edu.cornell.mannlib.vedit.beans.DynamicFieldRow;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.lang3.StringUtils;

import edu.cornell.mannlib.vedit.tags.EditTag;

public class DynamicFieldsTag extends EditTag {

    private static final String LANGUAGE = "language";

    private char PATH_SEP = File.separatorChar;

    public final String MARKUP_FILE_PATH = "templates"+PATH_SEP+"edit"+PATH_SEP+"specific"+PATH_SEP;

    private String name = null;
    private String type = null;
    private String usePage = null;

    private String preMarkup = null;
    private String templateMarkup = null;
    private String postMarkup = null;

    public void setName( String name ) {
        this.name = name;
    }

    public void setType( String type ) {
        this.type = type;
    }

    public void setUsePage( String usePage ) {
        this.usePage = usePage;
    }

    public void parseMarkup() throws JspException{
        try {

            int preStart = -1;
            int templateStart = -1;
            int postStart = -1;

            InputStream fis = new FileInputStream (pageContext.getServletContext().getRealPath("")+PATH_SEP+MARKUP_FILE_PATH+usePage);
            InputStream bis = new BufferedInputStream(fis);
            BufferedReader in = new BufferedReader(new InputStreamReader(bis));
            List lines = new ArrayList();
            lines.add(""); // 0th line
            int lineIndex = 0;
            while (in.ready()) {
                ++lineIndex;
                String currentLine = in.readLine();
                if (currentLine != null && currentLine.indexOf("");
                String hiddenTemplatePreMarkup = preMarkup;
                // bit of a hack to hide the template from the user:
                hiddenTemplatePreMarkup = strReplace(hiddenTemplatePreMarkup,"display\\:none\\;","");
                hiddenTemplatePreMarkup = strReplace(hiddenTemplatePreMarkup,"display\\:block\\;","");
                hiddenTemplatePreMarkup = strReplace(hiddenTemplatePreMarkup,"display\\:inline\\;","");
                hiddenTemplatePreMarkup = strReplace(hiddenTemplatePreMarkup,"style\\=\\\"","style=\"display:none;");
                out.print(hiddenTemplatePreMarkup);
                String hiddenTemplateTemplateMarkup = templateMarkup;
                hiddenTemplateTemplateMarkup = strReplace(hiddenTemplateTemplateMarkup, "\\$\\$", "");
                out.print(hiddenTemplateTemplateMarkup);
                out.print(postMarkup);

            } catch (Exception e){
                System.out.println("DynamicFieldsTag could not get the form object");
            }

        } catch(Exception ex) {
            throw new JspException(ex.getMessage());
        }
        return SKIP_BODY;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy