📄 defaultdebugpagegenerator.java
字号:
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 + -