⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 defaultdebugpagegenerator.java

📁 Ajax 框架,可以用来做数型菜单或者联动下拉列表
💻 JAVA
📖 第 1 页 / 共 2 页
字号:

            String onclick = scriptName + '.' + methodName + "("; //$NON-NLS-1$
            for (int j = 0; j < paramTypes.length; j++)
            {
                if (!LocalUtil.isServletClass(paramTypes[j]))
                {
                    onclick += "objectEval($(\"p" + i + j + "\").value), "; //$NON-NLS-1$ //$NON-NLS-2$
                }
            }
            onclick += "reply" + i + ");"; //$NON-NLS-1$ //$NON-NLS-2$

            buffer.append("  <input class='ibutton' type='button' onclick='" + onclick + "' value='Execute'  title='Calls " + scriptName + '.' + methodName + "(). View source for details.'/>\n"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$

            buffer.append("  <script type='text/javascript'>\n"); //$NON-NLS-1$
            buffer.append("    var reply" + i + " = function(data)\n"); //$NON-NLS-1$ //$NON-NLS-2$
            buffer.append("    {\n"); //$NON-NLS-1$
            buffer.append("      if (data != null && typeof data == 'object') alert(DWRUtil.toDescriptiveString(data, 2));\n"); //$NON-NLS-1$
            buffer.append("      else DWRUtil.setValue('d" + i + "', DWRUtil.toDescriptiveString(data, 1));\n"); //$NON-NLS-1$ //$NON-NLS-2$
            buffer.append("    }\n"); //$NON-NLS-1$
            buffer.append("  </script>\n"); //$NON-NLS-1$
            buffer.append("  <span id='d" + i + "' class='reply'></span>\n"); //$NON-NLS-1$ //$NON-NLS-2$

            // Print a warning if this method is overloaded
            boolean overloaded = false;
            for (int j = 0; j < methods.length; j++)
            {
                if (j != i && methods[j].getName().equals(methodName))
                {
                    overloaded = true;
                }
            }
            if (overloaded)
            {
                buffer.append("<br/><span class='warning'>(Warning: overloaded methods are not recommended. See <a href='#overloadedMethod'>below</a>)</span>\n"); //$NON-NLS-1$
            }

            // Print a warning if the method uses un-marshallable types
            for (int j = 0; j < paramTypes.length; j++)
            {
                if (!converterManager.isConvertable(paramTypes[j]))
                {
                    buffer.append("<br/><span class='warning'>(Warning: No Converter for " + paramTypes[j].getName() + ". See <a href='#missingConverter'>below</a>)</span>\n"); //$NON-NLS-1$ //$NON-NLS-2$
                }
            }

            if (!converterManager.isConvertable(method.getReturnType()))
            {
                buffer.append("<br/><span class='warning'>(Warning: No Converter for " + method.getReturnType().getName() + ". See <a href='#missingConverter'>below</a>)</span>\n"); //$NON-NLS-1$ //$NON-NLS-2$
            }

            // See also the call to getReasonToNotDisplay() above
            String warning = accessControl.getReasonToNotExecute(creator, scriptName, method);
            if (warning != null)
            {
                buffer.append("<br/><span class='warning'>(Warning: Role restructions in place: " + warning + ".)</span>\n"); //$NON-NLS-1$ //$NON-NLS-2$
            }

            buffer.append("</li>\n"); //$NON-NLS-1$
        }

        buffer.append(BLANK);
        buffer.append("</ul>\n"); //$NON-NLS-1$

        buffer.append("<h2>Other Links</h2>\n"); //$NON-NLS-1$
        buffer.append("<ul>\n"); //$NON-NLS-1$
        buffer.append("<li>Back to <a href='" + root + "/'>class index</a>.</li>\n"); //$NON-NLS-1$ //$NON-NLS-2$
        buffer.append("</ul>\n"); //$NON-NLS-1$

        synchronized (scriptCache)
        {
            String output = (String) scriptCache.get(PathConstants.FILE_HELP);
            if (output == null)
            {
                InputStream raw = getClass().getResourceAsStream(DwrConstants.PACKAGE + PathConstants.FILE_HELP);
                if (raw == null)
                {
                    log.error(Messages.getString("DefaultProcessor.MissingHelp", PathConstants.FILE_HELP)); //$NON-NLS-1$
                    output = "<p>Failed to read help text from resource file. Check dwr.jar is built to include html files.</p>"; //$NON-NLS-1$
                }
                else
                {
                    StringBuffer fileBuffer = new StringBuffer();

                    BufferedReader in = new BufferedReader(new InputStreamReader(raw));
                    while (true)
                    {
                        try
                        {
                            String line = in.readLine();
                            if (line == null)
                            {
                                break;
                            }

                            fileBuffer.append(line);
                            fileBuffer.append('\n');
                        }
                        catch (IOException ex)
                        {
                            fileBuffer.append(ex.toString());
                            fileBuffer.append('\n');
                            break;
                        }
                    }

                    output = fileBuffer.toString();
                }

                scriptCache.put(PathConstants.FILE_HELP, output);
            }

            buffer.append(output);
        }

        buffer.append("</body></html>\n"); //$NON-NLS-1$

        return buffer.toString();
    }

    /* (non-Javadoc)
     * @see org.directwebremoting.DebugPageGenerator#generateInterfaceUrl(java.lang.String, java.lang.String)
     */
    public String generateInterfaceUrl(String root, String scriptName)
    {
        return root + PathConstants.PATH_INTERFACE + scriptName + PathConstants.EXTENSION_JS;
    }

    /* (non-Javadoc)
     * @see org.directwebremoting.DebugPageGenerator#generateEngineUrl(java.lang.String)
     */
    public String generateEngineUrl(String root)
    {
        return root + PathConstants.FILE_ENGINE;
    }

    /* (non-Javadoc)
     * @see org.directwebremoting.DebugPageGenerator#generateLibraryUrl(java.lang.String, java.lang.String)
     */
    public String generateLibraryUrl(String root, String library)
    {
        return root + library;
    }

    /* (non-Javadoc)
     * @see org.directwebremoting.DebugPageGenerator#getAvailableLibraries()
     */
    public Collection getAvailableLibraries()
    {
        return availableLibraries;
    }

    /**
     * Accessor for the DefaultCreatorManager that we configure
     * @param converterManager The new DefaultConverterManager
     */
    public void setConverterManager(ConverterManager converterManager)
    {
        this.converterManager = converterManager;
    }

    /**
     * Accessor for the DefaultCreatorManager that we configure
     * @param creatorManager The new DefaultConverterManager
     */
    public void setCreatorManager(CreatorManager creatorManager)
    {
        this.creatorManager = creatorManager;
    }

    /**
     * Accessor for the security manager
     * @param accessControl The accessControl to set.
     */
    public void setAccessControl(AccessControl accessControl)
    {
        this.accessControl = accessControl;
    }

    /**
     * Do we allow impossible tests for debug purposes
     * @param allowImpossibleTests The allowImpossibleTests to set.
     */
    public void setAllowImpossibleTests(boolean allowImpossibleTests)
    {
        this.allowImpossibleTests = allowImpossibleTests;
    }

    /**
     * 2 dots
     */
    private static final String PATH_UP = ".."; //$NON-NLS-1$

    /**
     * Empty string
     */
    public static final String BLANK = ""; //$NON-NLS-1$

    /**
     * How we convert parameters
     */
    protected ConverterManager converterManager = null;

    /**
     * How we create new beans
     */
    protected CreatorManager creatorManager = null;

    /**
     * The security manager
     */
    protected AccessControl accessControl = null;

    /**
     * This helps us test that access rules are being followed
     */
    private boolean allowImpossibleTests = false;

    /**
     * We cache the script output for speed
     */
    protected final Map scriptCache = new HashMap();

    /**
     * For getAvailableLibraries() - just a RO Collection that currently returns
     * only util.js, but may be expanded in the future.
     */
    private Collection availableLibraries = Collections.unmodifiableCollection(Arrays.asList(new String[] { PathConstants.FILE_UTIL }));

    /**
     * The log stream
     */
    private static final Logger log = Logger.getLogger(DefaultDebugPageGenerator.class);
}

⌨️ 快捷键说明

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