if ( parents != null )
{
for ( Object parent : parents )
{
ObjectClassWrapper parentOCW = ( ObjectClassWrapper ) getWrapper( parent );
ObjectClassWrapper ocw = null;
if ( parentOCW == null )
{
int group = store.getInt( PluginConstants.PREFS_SCHEMA_VIEW_GROUPING );
if ( group == PluginConstants.PREFS_SCHEMA_VIEW_GROUPING_FOLDERS )
{
for ( TreeNode child : root.getChildren() )
{
if ( child instanceof Folder )
{
Folder folder = ( Folder ) child;
if ( folder.getType().equals( FolderType.OBJECT_CLASS ) )
{
ocw = new ObjectClassWrapper( oc, folder );
break;
}
}
}
}
else if ( group == PluginConstants.PREFS_SCHEMA_VIEW_GROUPING_MIXED )
{
ocw = new ObjectClassWrapper( oc, root );
}
}
else
{
ocw = new ObjectClassWrapper( oc, parentOCW );
}
ocw.getParent().addChild( ocw );
createdWrappers.add( ocw );
elementsToWrappersMap.put( oc, ocw );
}
}
List<Object> children = hierarchyManager.getChildren( oc );
if ( children != null )
{
for ( Object child : children )
{
List<TreeNode> childOCWs = getWrappers( child );
if ( childOCWs != null )
{
for ( TreeNode childOCW : childOCWs )
{
if ( root.equals( childOCW.getParent() ) )
{
elementsToWrappersMap.remove( child );
childOCW.getParent().removeChild( childOCW );
}
}
}
for ( TreeNode createdWrapper : createdWrappers )
{
ObjectClassWrapper ocw = new ObjectClassWrapper( ( MutableObjectClass ) child, createdWrapper );
ocw.getParent().addChild( ocw );
elementsToWrappersMap.put( child, ocw );
addHierarchyChildren( ocw, hierarchyManager.getChildren( child ) );
}
}
}