Remove include functionality by <object appliction/xid way.
This commit is contained in:
parent
6511b04085
commit
5456caece2
2 changed files with 78 additions and 210 deletions
Binary file not shown.
|
@ -301,121 +301,6 @@ public class Presenter
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Includes another file into the current page.
|
|
||||||
*
|
|
||||||
* @param node
|
|
||||||
* @param attrMap
|
|
||||||
* @param idAttr
|
|
||||||
*/
|
|
||||||
static protected StringBuffer processObjectTag (Node node,
|
|
||||||
NamedNodeMap attrMap,
|
|
||||||
Node idAttr,
|
|
||||||
IdsDataById datas,
|
|
||||||
String webappPath,
|
|
||||||
StringBuffer errorOutput)
|
|
||||||
{
|
|
||||||
StringBuffer result;
|
|
||||||
|
|
||||||
result = new StringBuffer ();
|
|
||||||
|
|
||||||
// Find codetype.
|
|
||||||
String codetype;
|
|
||||||
if (attrMap == null)
|
|
||||||
{
|
|
||||||
codetype = null;
|
|
||||||
}
|
|
||||||
else if (attrMap.getNamedItem ("codetype") == null)
|
|
||||||
{
|
|
||||||
codetype = null;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
codetype = attrMap.getNamedItem ("codetype").getNodeValue ();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check tag requirements.
|
|
||||||
if ((attrMap == null) ||
|
|
||||||
(codetype == null) ||
|
|
||||||
(!codetype.equals ("application/xid")) ||
|
|
||||||
(attrMap.getNamedItem ("data") == null))
|
|
||||||
{
|
|
||||||
// STU: do default action.
|
|
||||||
Presenter.processElementBasically (node, datas, webappPath, errorOutput);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
logger.debug ("object action");
|
|
||||||
result.append ("<!-- STARTING INCLUDE XID FILE " + attrMap.getNamedItem ("data") + " -->");
|
|
||||||
|
|
||||||
// Build the file name.
|
|
||||||
String htmlFileName = webappPath + attrMap.getNamedItem ("data").getNodeValue ();
|
|
||||||
|
|
||||||
|
|
||||||
// Load file in tree.
|
|
||||||
Document childDoc = null;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
childDoc = fileToTree (htmlFileName, errorOutput);
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
errorOutput.append ("unable to build the file tree");
|
|
||||||
logger.debug ("unable to build the file tree");
|
|
||||||
}
|
|
||||||
|
|
||||||
// Extract the 'body' section.
|
|
||||||
Node body = null;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
NodeList nodes = childDoc.getElementsByTagName ("body");
|
|
||||||
|
|
||||||
if (nodes.getLength () == 0)
|
|
||||||
{
|
|
||||||
errorOutput.append ("no body tag in include html");
|
|
||||||
logger.debug ("no body tag in include html");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
body = nodes.item(0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
errorOutput.append ("error getting child");
|
|
||||||
logger.debug ("error getting child");
|
|
||||||
}
|
|
||||||
|
|
||||||
// Process the body child as part of the primary tree.
|
|
||||||
if (body == null)
|
|
||||||
{
|
|
||||||
errorOutput.append ("xid object body empty.");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
NodeList bodyChildren = body.getChildNodes ();
|
|
||||||
|
|
||||||
if (bodyChildren != null)
|
|
||||||
{
|
|
||||||
int childCount = bodyChildren.getLength ();
|
|
||||||
for (int childCounter = 0; childCounter < childCount; childCounter++)
|
|
||||||
{
|
|
||||||
result.append (process (bodyChildren.item (childCounter), datas, webappPath, errorOutput));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
result.append ("<!-- ENDING INCLUDE XID FILE " + attrMap.getNamedItem ("data") + " -->");
|
|
||||||
}
|
|
||||||
logger.debug ("end of object action");
|
|
||||||
//
|
|
||||||
return (result);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Processes a node that has dynamic content. Calls the appropriate code
|
* Processes a node that has dynamic content. Calls the appropriate code
|
||||||
* generator method, depending on the tag.
|
* generator method, depending on the tag.
|
||||||
|
@ -468,62 +353,103 @@ public class Presenter
|
||||||
|
|
||||||
String tag = node.getNodeName();
|
String tag = node.getNodeName();
|
||||||
|
|
||||||
if (tag.equals ("object"))
|
String idValue = idAttr.getNodeValue();
|
||||||
|
|
||||||
|
logger.debug ("tag=" + tag);
|
||||||
|
|
||||||
|
// Get data of this id.
|
||||||
|
IdDataCore dataCore = datas.get (idAttr.getNodeValue ());
|
||||||
|
|
||||||
|
if (dataCore == null)
|
||||||
{
|
{
|
||||||
result.append (processObjectTag (node, attrs, idAttr, datas, webappPath, errorOutput));
|
result.append (Presenter.processElementBasically (node, datas, webappPath, suffix, errorOutput));
|
||||||
}
|
}
|
||||||
else
|
else if (dataCore instanceof IdData)
|
||||||
{
|
{
|
||||||
String idValue = idAttr.getNodeValue();
|
IdData data = (IdData) dataCore;
|
||||||
|
|
||||||
logger.debug ("tag=" + tag);
|
String theClass;
|
||||||
|
if (data == null)
|
||||||
// Get data of this id.
|
|
||||||
IdDataCore dataCore = datas.get (idAttr.getNodeValue ());
|
|
||||||
|
|
||||||
if (dataCore == null)
|
|
||||||
{
|
{
|
||||||
result.append (Presenter.processElementBasically (node, datas, webappPath, suffix, errorOutput));
|
theClass = null;
|
||||||
}
|
}
|
||||||
else if (dataCore instanceof IdData)
|
else
|
||||||
{
|
{
|
||||||
IdData data = (IdData) dataCore;
|
theClass = data.getAttributes ().getAttribute ("class");
|
||||||
|
}
|
||||||
|
|
||||||
String theClass;
|
if ((theClass == null) ||
|
||||||
if (data == null)
|
(!theClass.equals ("xid:nodisplay")))
|
||||||
|
{
|
||||||
|
// Open the tag.
|
||||||
|
result.append ("<");
|
||||||
|
result.append (node.getNodeName());
|
||||||
|
|
||||||
|
// Build attributes.
|
||||||
|
result.append (processAttributes (attrs, data.getAttributes (), suffix));
|
||||||
|
|
||||||
|
if ((node.getChildNodes () == null) &&
|
||||||
|
((data == null) || (data.display () == null)))
|
||||||
{
|
{
|
||||||
theClass = null;
|
// Close the tag.
|
||||||
|
result.append (" />");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
theClass = data.getAttributes ().getAttribute ("class");
|
result.append ('>');
|
||||||
}
|
|
||||||
|
|
||||||
if ((theClass == null) ||
|
// CHANGED, cpm:
|
||||||
(!theClass.equals ("xid:nodisplay")))
|
|
||||||
|
// Insert data.
|
||||||
|
if ((data == null) ||
|
||||||
|
(data.display () == null))
|
||||||
|
{
|
||||||
|
result.append (processChildren (node, datas, webappPath, suffix, errorOutput));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
result.append (data.display ());
|
||||||
|
}
|
||||||
|
|
||||||
|
// Close the tag.
|
||||||
|
result.append ("</");
|
||||||
|
result.append (node.getNodeName());
|
||||||
|
result.append ('>');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (dataCore instanceof IdsDataByIndex)
|
||||||
|
{
|
||||||
|
IdsDataByIndex tags = (IdsDataByIndex) dataCore;
|
||||||
|
|
||||||
|
int nbLines = tags.size ();
|
||||||
|
for (int nLine = 0; nLine < nbLines; nLine++)
|
||||||
|
{
|
||||||
|
if (tags.elementAt (nLine) instanceof IdData)
|
||||||
{
|
{
|
||||||
|
IdData data = (IdData) tags.elementAt (nLine);
|
||||||
|
|
||||||
// Open the tag.
|
// Open the tag.
|
||||||
result.append ("<");
|
result.append ("<");
|
||||||
result.append (node.getNodeName());
|
result.append (node.getNodeName());
|
||||||
|
|
||||||
// Build attributes.
|
result.append (processAttributes (attrs, data.getAttributes (), Integer.toString (nLine)));
|
||||||
result.append (processAttributes (attrs, data.getAttributes (), suffix));
|
|
||||||
|
|
||||||
if ((node.getChildNodes () == null) &&
|
if ((node.getChildNodes () == null) &&
|
||||||
((data == null) || (data.display () == null)))
|
((data == null) || (data.display () == null)))
|
||||||
{
|
{
|
||||||
// Close the tag.
|
// Close the tag.
|
||||||
result.append (" />");
|
result.append (" />\n");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
result.append ('>');
|
result.append ('>');
|
||||||
|
|
||||||
// CHANGED, cpm:
|
|
||||||
|
// CHANGED, cpm
|
||||||
|
|
||||||
// Insert data.
|
// Insert data.
|
||||||
if ((data == null) ||
|
if ((data == null) || (data.display () == null))
|
||||||
(data.display () == null))
|
|
||||||
{
|
{
|
||||||
result.append (processChildren (node, datas, webappPath, suffix, errorOutput));
|
result.append (processChildren (node, datas, webappPath, suffix, errorOutput));
|
||||||
}
|
}
|
||||||
|
@ -535,70 +461,22 @@ public class Presenter
|
||||||
// Close the tag.
|
// Close the tag.
|
||||||
result.append ("</");
|
result.append ("</");
|
||||||
result.append (node.getNodeName());
|
result.append (node.getNodeName());
|
||||||
result.append ('>');
|
result.append (">\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
else
|
||||||
else if (dataCore instanceof IdsDataByIndex)
|
|
||||||
{
|
|
||||||
IdsDataByIndex tags = (IdsDataByIndex) dataCore;
|
|
||||||
|
|
||||||
int nbLines = tags.size ();
|
|
||||||
for (int nLine = 0; nLine < nbLines; nLine++)
|
|
||||||
{
|
{
|
||||||
if (tags.elementAt (nLine) instanceof IdData)
|
// Manage a Hashmap.
|
||||||
{
|
IdsDataById data = (IdsDataById) tags.elementAt (nLine);
|
||||||
IdData data = (IdData) tags.elementAt (nLine);
|
|
||||||
|
|
||||||
// Open the tag.
|
result.append (Presenter.processElementWithId (node, attrs, idAttr, data, webappPath, Integer.toString (nLine), errorOutput));
|
||||||
result.append ("<");
|
result.append ('\n');
|
||||||
result.append (node.getNodeName());
|
|
||||||
|
|
||||||
result.append (processAttributes (attrs, data.getAttributes (), Integer.toString (nLine)));
|
|
||||||
|
|
||||||
if ((node.getChildNodes () == null) &&
|
|
||||||
((data == null) || (data.display () == null)))
|
|
||||||
{
|
|
||||||
// Close the tag.
|
|
||||||
result.append (" />\n");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
result.append ('>');
|
|
||||||
|
|
||||||
|
|
||||||
// CHANGED, cpm
|
|
||||||
|
|
||||||
// Insert data.
|
|
||||||
if ((data == null) || (data.display () == null))
|
|
||||||
{
|
|
||||||
result.append (processChildren (node, datas, webappPath, suffix, errorOutput));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
result.append (data.display ());
|
|
||||||
}
|
|
||||||
|
|
||||||
// Close the tag.
|
|
||||||
result.append ("</");
|
|
||||||
result.append (node.getNodeName());
|
|
||||||
result.append (">\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// Manage a Hashmap.
|
|
||||||
IdsDataById data = (IdsDataById) tags.elementAt (nLine);
|
|
||||||
|
|
||||||
result.append (Presenter.processElementWithId (node, attrs, idAttr, data, webappPath, Integer.toString (nLine), errorOutput));
|
|
||||||
result.append ('\n');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
}
|
||||||
{
|
else
|
||||||
logger.warn ("Unknow type of IdDataId");
|
{
|
||||||
}
|
logger.warn ("Unknow type of IdDataId");
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -694,17 +572,7 @@ public class Presenter
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
result.append (Presenter.processElementBasically (node, datas, webappPath, suffix, errorOutput));
|
||||||
String tag = node.getNodeName();
|
|
||||||
|
|
||||||
if (tag.equals ("object"))
|
|
||||||
{
|
|
||||||
result.append (processObjectTag (node, attrs, idAttr, datas, webappPath, errorOutput));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
result.append (Presenter.processElementBasically (node, datas, webappPath, suffix, errorOutput));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in a new issue