Wiadomosc od Balaji Chandrasekaran z 2006-05-02 17:38 brzmiala:
In the doView I want to get the no of fragments available in the psml
file for which the portlet class is getting executed...how I do
that...Pls respond ASAP.
Something like this works for me:
protected List listFragments(Fragment rootFragment, String type, List
list)
{
List fragments = rootFragment.getFragments();
for(Iterator iterator = fragments.iterator();
iterator.hasNext();)
{
Fragment fragment = (Fragment)iterator.next();
if(fragment.getType().equals(Fragment.PORTLET))
list.add(fragment);
listFragments(fragment, type, list);
}
return list;
}
This list all fragments, not only portlet fragments, contained within a
"rootFragment".
In order to get all PSML pages, use the methid like:
public List listAllNodes(String path, String type, List list)
{
if(!path.endsWith("/"))
path = path + "/";
Folder folder = getFolder(path);
Iterator iter;
NodeSet nodes = null;
try
{
if(type.equals(Folder.FOLDER_TYPE))
nodes = folder.getFolders();
else if(type.equals(Page.DOCUMENT_TYPE))
nodes = folder.getPages();
else if(type.equals(Link.DOCUMENT_TYPE))
nodes = folder.getLinks();
iter = nodes.iterator();
while(iter.hasNext())
list.add(iter.next());
}
catch(FolderNotFoundException exc)
{
logger.debug(exc);
}
catch(DocumentException exc)
{
logger.debug(exc);
}
catch(NodeException exc)
{
logger.debug(exc);
}
try
{
nodes = folder.getFolders();
iter = nodes.iterator();
while(iter.hasNext())
listAllNodes(((Folder)iter.next()).getPath(),
type, list);
}
catch(FolderNotFoundException exc)
{
logger.debug(exc);
}
catch(DocumentException exc)
{
logger.debug(exc);
}
return list;
}
where a "type" would be "Page.DOCUMENT_TYPE" and a "path" equal to the
root folder "/".
For each page returned from the method get its root fragment and aply
the first method supplied above.
--
pozdrawiam,
Jacek Wislicki
[EMAIL PROTECTED]
tel.: +48 502 408 444
gg: 2540358
skype: jacek_wislicki
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]