Return-Path: Delivered-To: apmail-directory-commits-archive@www.apache.org Received: (qmail 84011 invoked from network); 4 Oct 2007 09:41:21 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 4 Oct 2007 09:41:21 -0000 Received: (qmail 44764 invoked by uid 500); 4 Oct 2007 09:41:10 -0000 Delivered-To: apmail-directory-commits-archive@directory.apache.org Received: (qmail 44715 invoked by uid 500); 4 Oct 2007 09:41:10 -0000 Mailing-List: contact commits-help@directory.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@directory.apache.org Delivered-To: mailing list commits@directory.apache.org Received: (qmail 44702 invoked by uid 99); 4 Oct 2007 09:41:10 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 04 Oct 2007 02:41:10 -0700 X-ASF-Spam-Status: No, hits=-100.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 04 Oct 2007 09:41:20 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id E3BC41A9832; Thu, 4 Oct 2007 02:40:30 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r581818 - in /directory/studio/trunk/studio-schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor: model/hierarchy/HierarchyManager.java view/views/SchemaViewContentProvider.java Date: Thu, 04 Oct 2007 09:40:30 -0000 To: commits@directory.apache.org From: pamarcelot@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20071004094030.E3BC41A9832@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: pamarcelot Date: Thu Oct 4 02:40:29 2007 New Revision: 581818 URL: http://svn.apache.org/viewvc?rev=581818&view=rev Log: Part of a fix for DIRSTUDIO-200 (Add an OC and AT hierarchical global view) Modified: directory/studio/trunk/studio-schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/hierarchy/HierarchyManager.java directory/studio/trunk/studio-schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/views/SchemaViewContentProvider.java Modified: directory/studio/trunk/studio-schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/hierarchy/HierarchyManager.java URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/hierarchy/HierarchyManager.java?rev=581818&r1=581817&r2=581818&view=diff ============================================================================== --- directory/studio/trunk/studio-schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/hierarchy/HierarchyManager.java (original) +++ directory/studio/trunk/studio-schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/model/hierarchy/HierarchyManager.java Thu Oct 4 02:40:29 2007 @@ -266,8 +266,13 @@ for ( Object value : children ) { childrenMap.put( object, value ); + if ( oid.equals( "2.5.6.0" ) ) + { + childrenMap.remove( root, value ); + } parentsMap.remove( value, oid.toLowerCase() ); parentsMap.put( value, object ); + } childrenMap.remove( oid.toLowerCase() ); } Modified: directory/studio/trunk/studio-schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/views/SchemaViewContentProvider.java URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/views/SchemaViewContentProvider.java?rev=581818&r1=581817&r2=581818&view=diff ============================================================================== --- directory/studio/trunk/studio-schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/views/SchemaViewContentProvider.java (original) +++ directory/studio/trunk/studio-schemaeditor/src/main/java/org/apache/directory/studio/schemaeditor/view/views/SchemaViewContentProvider.java Thu Oct 4 02:40:29 2007 @@ -248,8 +248,27 @@ Collections.reverse( children ); } } - else if ( ( parentElement instanceof AttributeTypeWrapper ) || ( parentElement instanceof ObjectClassWrapper ) - || ( parentElement instanceof SchemaWrapper ) ) + else if ( ( parentElement instanceof AttributeTypeWrapper ) || ( parentElement instanceof ObjectClassWrapper ) ) + { + children = ( ( TreeNode ) parentElement ).getChildren(); + + // Sort by + if ( sortBy == PluginConstants.PREFS_SCHEMA_VIEW_SORTING_BY_FIRSTNAME ) + { + Collections.sort( children, firstNameSorter ); + } + else if ( sortBy == PluginConstants.PREFS_SCHEMA_VIEW_SORTING_BY_OID ) + { + Collections.sort( children, oidSorter ); + } + + // Sort Order + if ( sortOrder == PluginConstants.PREFS_SCHEMA_VIEW_SORTING_ORDER_DESCENDING ) + { + Collections.reverse( children ); + } + } + else if ( parentElement instanceof SchemaWrapper ) { children = ( ( TreeNode ) parentElement ).getChildren(); @@ -862,6 +881,56 @@ */ public void objectClassAddedHierarchicalPresentation( ObjectClassImpl oc ) { + // Removing unattached nodes for "top" + List ocChildren = new ArrayList(); + List ocChildren2 = null; + if ( "2.5.6.0".equals( oc.getOid() ) ) + { + ocChildren2 = hierarchyManager.getChildren( "2.5.6.0" ); + if ( ocChildren2 != null ) + { + ocChildren.addAll( ocChildren2 ); + } + ocChildren2 = hierarchyManager.getChildren( "top" ); + if ( ocChildren2 != null ) + { + ocChildren.addAll( ocChildren2 ); + } + } + ocChildren2 = hierarchyManager.getChildren( oc ); + if ( ocChildren2 != null ) + { + ocChildren.addAll( ocChildren2 ); + } + for ( Object ocChild : ocChildren ) + { + List 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.remove( oc, wrapper ); + } + } + else if ( group == PluginConstants.PREFS_SCHEMA_VIEW_GROUPING_MIXED ) + { + if ( wrapper.getParent().equals( root ) ) + { + wrapper.getParent().removeChild( wrapper ); + elementsToWrappersMap.remove( oc, wrapper ); + } + } + removeRecursiveChildren( wrapper ); + } + } + } + // Propagating the addition to the hierarchy manager hierarchyManager.objectClassAdded( oc ); @@ -932,6 +1001,7 @@ ObjectClassWrapper ocw = new ObjectClassWrapper( ( ObjectClassImpl ) child, createdWrapper ); ocw.getParent().addChild( ocw ); elementsToWrappersMap.put( ( ObjectClassImpl ) child, ocw ); + addHierarchyChildren( ocw, hierarchyManager.getChildren( child ) ); } } } @@ -1181,7 +1251,15 @@ */ private void schemaAddedHierarchicalPresentation( Schema schema ) { - // TODO implement + for ( AttributeTypeImpl at : schema.getAttributeTypes() ) + { + attributeTypeAddedHierarchicalPresentation( at ); + } + + for ( ObjectClassImpl oc : schema.getObjectClasses() ) + { + objectClassAddedHierarchicalPresentation( oc ); + } } @@ -1233,8 +1311,15 @@ */ private void schemaRemovedHierarchicalPresentation( Schema schema ) { - // TODO implement + for ( AttributeTypeImpl at : schema.getAttributeTypes() ) + { + attributeTypeRemovedHierarchicalPresentation( at ); + } + for ( ObjectClassImpl oc : schema.getObjectClasses() ) + { + objectClassRemovedHierarchicalPresentation( oc ); + } }