jspgenerator.java

来自「Java Pattern Oriented Framework (Jt) 是为了」· Java 代码 · 共 1,639 行 · 第 1/4 页

JAVA
1,639
字号
        
        return (form);
        
    }
    

    private boolean verifyReadOnly (String attrName, Object operation) {
        Iterator iterator;
        String tmpStr;
        
        if (operation == null) {
            return false;
        }
        
        if (operation.equals(JtObject.JtDELETE) || operation.equals(JtObject.JtREAD)) {
            return true;
        }
        
        if (operation.equals(JtObject.JtCREATE)) {
            return false;
        }
        
        if (attrName == null)
            return false;
        
        if (keys == null)
            return false;
        
        iterator = keys.iterator();
        
        while (iterator.hasNext()) {

                       
            tmpStr = (String) iterator.next();
            
            if (attrName.equals(tmpStr)) {
                handleTrace ("verifyReadOnly(true):" + tmpStr , 0);
                return true;
            }
                
        }
        
        return false;
        
    }
    
    
    //private boolean generateInputFields2 (JDOMAdapter adapter, String className) {
    private boolean generateInputFields2 (JDOMAdapter adapter, String formName, Object operation) {
        //JtFactory factory = new JtFactory ();
        FormBeanForm form;
        //Object obj;
        JtMessage msg = new JtMessage (JtFactory.JtGET_ATTRIBUTES);
        //JtHashTable attributes;
        //JtIterator iterator;
        String attrName;
        Element element, labelElement;
        int index = 0, index1 = 0;
        Namespace nameSpace = Namespace.getNamespace("html", "http://struts.apache.org/tags-html");
        Namespace nameSpace1 = Namespace.getNamespace("bean", "http://struts.apache.org/tags-bean");
        //PropertyDescriptor prop;
        //JtMessage msg1 = new JtMessage (JtHashTable.JtGET);
        JtMessage msg2;
        List children;
        DynaMapping[] mapping;
        int i;

        //if (className == null || adapter == null)
        //    return (false);
        if (formName == null || adapter == null)
            return (false);

        //obj = factory.createObject(className);

        /*
        if (obj == null) {
            // Propagate the exception
            if (factory.getObjException() != null)
                this.setObjException(factory.getObjException());
            return (false); // check
        }

        
        msg.setMsgContent(obj);

        attributes = (JtHashTable) factory.processMessage(msg);

        if (attributes == null) {
            handleWarning ("generateInputFields: no class attributes for " +
                    className);
            return (true);
        }  
        */
        
        
        //iterator = (JtIterator) attributes.processMessage (new JtMessage (JtHashTable.JtGET_KEYS));

        //if (iterator == null)
        //    return (false); //check

        form = retrieveForm (formName);
        
        if (form == null)
            return (false);
        
        mapping = form.getMappings();
        
        if (mapping == null)
            return (false);
        
      
        msg2 = new JtMessage (JDOMAdapter.GET_CHILDREN);
        msg2.setMsgContent ("jsp:root/html:html/html:form/fieldset");

        children = (List) adapter.processMessage(msg2);

        if (children == null || (children.size() == 0))
            index1 = 1;
        else {
            index1 = 2;
        }


        msg = new JtMessage (JDOMAdapter.INSERT_ELEMENT);
        for (i = 0; i < mapping.length; i++) {
            //attrName = (String) iterator.processMessage(new JtMessage (JtIterator.JtNEXT));
            attrName = mapping[i].getName();

            if (attrName == null || attrName.equals (""))
                break;  // check



            //msg1.setMsgData (attrName);
            //prop = (PropertyDescriptor) attributes.processMessage(msg1);

            //if (!(prop.getPropertyType().isPrimitive() || 
            //        String.class.isAssignableFrom (prop.getPropertyType()) ||
            //        "java.util.Date".equals(prop.getPropertyType().getName())))
            //    continue;



            if (index == 0) {
                element = new Element ("br");
                msg.setMsgData ("jsp:root/html:html/html:form/fieldset");
                msg.setMsgContent(element);
                msg.setMsgAttachment(new Integer (index1++));
                adapter.processMessage(msg);
            }

            labelElement = new Element ("label");

            element = new Element ("message");
            element.setNamespace(nameSpace1);
            element.setAttribute("key", "Jt." + formName  + "." + attrName);
            labelElement.addContent(element);
            labelElement.addContent(":");
            msg.setMsgContent(labelElement);        

            
            //msg.setMsgData ("html:form/fieldset");
            msg.setMsgData ("jsp:root/html:html/html:form/fieldset");
            msg.setMsgAttachment(new Integer (index1++));
            adapter.processMessage(msg);    


            element = new Element ("text");
            element.setNamespace(nameSpace);
            element.setAttribute("property", attrName);
            if (verifyReadOnly (attrName, operation))
                element.setAttribute("readonly", "true");
            msg.setMsgContent(element);
            msg.setMsgAttachment(new Integer (index1++));
            adapter.processMessage(msg);

            element = new Element ("br");
            msg.setMsgContent(element);
            msg.setMsgAttachment(new Integer (index1++));
            adapter.processMessage(msg);   

            element = new Element ("br");
            msg.setMsgContent(element);
            msg.setMsgAttachment(new Integer (index1++));
            adapter.processMessage(msg);  

            index++;
        }  


        //element = new Element ("submit"); 
        //element.setNamespace(nameSpace);    
        //addElement (adapter, "html:form/fieldset", element);



        return (true);

    }
/*
    private boolean olgenerateInputFields1 (JDOMAdapter adapter, String className) {
        //JtFactory factory = new JtFactory ();
        Object obj;
        JtMessage msg = new JtMessage (JtFactory.JtGET_ATTRIBUTES);
        JtHashTable attributes;
        JtIterator iterator;
        String attrName;
        Element element;
        int index = 0;
        Namespace nameSpace = Namespace.getNamespace("html", "http://struts.apache.org/tags-html");
        PropertyDescriptor prop;
        JtMessage msg1 = new JtMessage (JtHashTable.JtGET);

        if (className == null || adapter == null)
            return (false);

        obj = factory.createObject(className);

        if (obj == null) {
            // Propagate the exception
            if (factory.getObjException() != null)
                this.setObjException(factory.getObjException());
            return (false); // check
        }

        msg.setMsgContent(obj);

        attributes = (JtHashTable) factory.processMessage(msg);

        if (attributes == null) {
            handleWarning ("generateInputFields: no class attributes for " +
                    className);
            return (true);
        }  

        iterator = (JtIterator) attributes.processMessage (new JtMessage (JtHashTable.JtGET_KEYS));

        if (iterator == null)
            return (false); //check

        msg = new JtMessage (JDOMAdapter.ADD_ELEMENT);
        for (;;) {
            attrName = (String) iterator.processMessage(new JtMessage (JtIterator.JtNEXT));

            if (attrName == null)
                break;



            msg1.setMsgData (attrName);
            prop = (PropertyDescriptor) attributes.processMessage(msg1);

            if (!(prop.getPropertyType().isPrimitive() || 
                    String.class.isAssignableFrom (prop.getPropertyType()) ||
                    "java.util.Date".equals(prop.getPropertyType().getName())))
                continue;


            if (index == 0) {
                element = new Element ("br");
                msg.setMsgData ("html:form/fieldset");
                msg.setMsgContent(element);
                adapter.processMessage(msg);
            }

            element = new Element ("label");
            element.setText(capFirstLetter (attrName) + ":");           
            msg.setMsgContent(element);        

            msg.setMsgData ("html:form/fieldset");
            //msg.setMsgData ("jsp:root/html:html/html:form/fieldset");
            adapter.processMessage(msg);    


            element = new Element ("text");
            element.setNamespace(nameSpace);
            element.setAttribute("property", attrName);



            msg.setMsgContent(element);
            adapter.processMessage(msg);

            element = new Element ("br");
            msg.setMsgContent(element);
            adapter.processMessage(msg);   

            element = new Element ("br");
            msg.setMsgContent(element);
            adapter.processMessage(msg);  

            index++;
        }  


        element = new Element ("submit"); 
        element.setNamespace(nameSpace);    
        addElement (adapter, "html:form/fieldset", element);



        return (true);

    }
*/

    private JtHashTable retrieveAttributes (InputStream inputStream) {

        JtJavaParser parser = new JtJavaParser ();
        JtHashTable attributes;

        if (inputStream == null)
            return null;

        parser.setInputStream(inputStream);                

        attributes = (JtHashTable) factory.sendMessage(parser, new JtMessage (JtJavaParser.PARSE));


        if (parser.getObjException() != null) {
            this.setObjException(factory.getObjException());
            return null; // check
        }

        if (attributes  == null)
            return null;

        return (attributes);

    }

/*
    private boolean generateInputFields1 (JDOMAdapter adapter, InputStream inputStream) {
        Object obj;
        JtMessage msg = new JtMessage (JtFactory.JtGET_ATTRIBUTES);
        JtHashTable attributes;
        JtIterator iterator;
        String attrName;
        Element element;
        int index = 0;
        Namespace nameSpace = Namespace.getNamespace("html", "http://struts.apache.org/tags-html");
        BeanProperty prop;
        JtMessage msg1 = new JtMessage (JtHashTable.JtGET);
        Element formElement, fsetElement;
             

        if (inputStream == null)
            return (false);

        attributes = retrieveAttributes (inputStream);    


        formElement = new Element ("form");
        
        fsetElement = new Element ("fieldset");
        
        formElement.addContent(fsetElement);
        
        if (attributes == null) {
            handleWarning ("generateInputFields: no class attributes for " +
                    className);
            return (true);
        }  

        iterator = (JtIterator) attributes.processMessage (new JtMessage (JtHashTable.JtGET_KEYS));

        if (iterator == null)
            return (false); //check

        msg = new JtMessage (JDOMAdapter.ADD_ELEMENT);
        for (;;) {
            attrName = (String) iterator.processMessage(new JtMessage (JtIterator.JtNEXT));

            if (attrName == null)
                break;



            msg1.setMsgData (attrName);
            prop = (BeanProperty) attributes.processMessage(msg1);

            if (!(prop.isPrimitive() || 
                    "String".equals (prop.getType()) || "java.lang.String".equals(prop.getType()) ||
                    "Date".equals(prop.getType()) ||
                    "java.util.Date".equals(prop.getType())))
                continue;


            if (index == 0) {
                element = new Element ("br");
                //msg.setMsgData ("html:form/fieldset");
                //msg.setMsgContent(element);
                //adapter.processMessage(msg);
                fsetElement.addContent(element);
            }

            element = new Element ("label");
            element.setText(capFirstLetter (attrName) + ":");           
            //msg.setMsgContent(element);        

            //msg.setMsgData ("html:form/fieldset");
            //msg.setMsgData ("jsp:root/html:html/html:form/fieldset");
            //adapter.processMessage(msg);
            fsetElement.addContent(element);


            element = new Element ("text");
            element.setNamespace(nameSpace);
            element.setAttribute("property", attrName);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?