in plugins/schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/views/SchemaViewContentProvider.java [881:1007]
public void objectClassAddedHierarchicalPresentation( ObjectClass oc )
{
// Removing unattached nodes for "top"
List<Object> ocChildren = new ArrayList<Object>();
List<Object> ocChildren2 = null;
if ( "2.5.6.0".equals( oc.getOid() ) ) //$NON-NLS-1$
{
ocChildren2 = hierarchyManager.getChildren( "2.5.6.0" ); //$NON-NLS-1$
if ( ocChildren2 != null )
{
ocChildren.addAll( ocChildren2 );
}
ocChildren2 = hierarchyManager.getChildren( "top" ); //$NON-NLS-1$
if ( ocChildren2 != null )
{
ocChildren.addAll( ocChildren2 );
}
}
ocChildren2 = hierarchyManager.getChildren( oc );
if ( ocChildren2 != null )
{
ocChildren.addAll( ocChildren2 );
}
for ( Object ocChild : ocChildren )
{
List<TreeNode> wrappers = getWrappers( ocChild );
if ( wrappers != null )
{
for ( TreeNode wrapper : wrappers )
{
int group = store.getInt( PluginConstants.PREFS_SCHEMA_VIEW_GROUPING );
if ( group == PluginConstants.PREFS_SCHEMA_VIEW_GROUPING_FOLDERS )
{
if ( wrapper.getParent().getParent().equals( root ) )
{
wrapper.getParent().removeChild( wrapper );
elementsToWrappersMap.removeMapping( oc, wrapper );
}
}
else if ( group == PluginConstants.PREFS_SCHEMA_VIEW_GROUPING_MIXED )
{
if ( wrapper.getParent().equals( root ) )
{
wrapper.getParent().removeChild( wrapper );
elementsToWrappersMap.removeMapping( oc, wrapper );
}
}
removeRecursiveChildren( wrapper );
}
}
}
// Propagating the addition to the hierarchy manager
hierarchyManager.objectClassAdded( oc );
List<TreeNode> createdWrappers = new ArrayList<TreeNode>();
List<Object> parents = hierarchyManager.getParents( oc );
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( ( ObjectClass ) child, createdWrapper );
ocw.getParent().addChild( ocw );
elementsToWrappersMap.put( child, ocw );
addHierarchyChildren( ocw, hierarchyManager.getChildren( child ) );
}
}
}
}