Package org.apache.directory.ldapstudio.schemas.view.viewers.wrappers

Examples of org.apache.directory.ldapstudio.schemas.view.viewers.wrappers.IntermediateNode


            expandFromTopToBottom( attributeTypeWrapper.getParent() );
            schemasView.getViewer().setExpandedState( attributeTypeWrapper, true );
        }
        else if ( element instanceof IntermediateNode )
        {
            IntermediateNode intermediateNode = ( IntermediateNode ) element;
            expandFromTopToBottom( intermediateNode.getParent() );
            schemasView.getViewer().setExpandedState( intermediateNode, true );
        }
    }
View Full Code Here


            expandFromTopToBottom( attributeTypeWrapper.getParent() );
            hierarchyView.getViewer().setExpandedState( attributeTypeWrapper, true );
        }
        else if ( element instanceof IntermediateNode )
        {
            IntermediateNode intermediateNode = ( IntermediateNode ) element;
            expandFromTopToBottom( intermediateNode.getParent() );
            hierarchyView.getViewer().setExpandedState( intermediateNode, true );
        }
    }
View Full Code Here

     */
    public Object[] getChildren( Object parentElement )
    {
        if ( parentElement instanceof IntermediateNode )
        {
            IntermediateNode intermediate = ( IntermediateNode ) parentElement;

            if ( intermediate.getName().equals( "**Primary Node**" ) ) { //$NON-NLS-1$
                // clear the primary node (because it's always the same instance we need to
                //refresh it manually)
                intermediate.clearChildrens();

                Schema[] schemas = this.pool.getSchemas();
                for ( int i = 0; i < schemas.length; i++ )
                {
                    Schema schema = schemas[i];
                    SchemaWrapper schemaWrapper = new SchemaWrapper( schema, ( IntermediateNode ) parentElement );
                    intermediate.addElement( schemaWrapper );
                }
            }

            Object[] temp = intermediate.getChildren();
            return temp;
        }

        else if ( parentElement instanceof SchemaWrapper )
        {
            //we are looking for the childrens of the contained objectClass
            Schema schema = ( ( ( SchemaWrapper ) parentElement ).getMySchema() );

            IntermediateNode attributeTypes = new IntermediateNode(
                "Attribute Types", ( SchemaWrapper ) parentElement, this, IntermediateNodeType.ATTRIBUTE_TYPE_FOLDER ); //$NON-NLS-1$
            IntermediateNode objectClasses = new IntermediateNode(
                "Object Classes", ( SchemaWrapper ) parentElement, this, IntermediateNodeType.OBJECT_CLASS_FOLDER ); //$NON-NLS-1$

            // Let's get all Attribute Types defined in the schema
            AttributeType[] attributeTypeList = schema.getAttributeTypesAsArray();
            for ( int i = 0; i < attributeTypeList.length; i++ )
            {
                AttributeType attributeType = attributeTypeList[i];
                attributeTypes.addElement( new PoolManagerAttributeTypeWrapper( attributeType, attributeTypes ) );
            }

            // Let's get all Object Classes defined in the schema
            ObjectClass[] objectClassList = schema.getObjectClassesAsArray();
            for ( int i = 0; i < objectClassList.length; i++ )
            {
                ObjectClass objectClass = objectClassList[i];
                objectClasses.addElement( new PoolManagerObjectClassWrapper( objectClass, objectClasses ) );
            }

            return new Object[]
                { attributeTypes, objectClasses };
        }
View Full Code Here

    public void bindToTreeViewer( TreeViewer viewer )
    {
        viewer.setContentProvider( this );
        viewer.setLabelProvider( new HierarchicalLabelProvider() );

        IntermediateNode invisibleNode = new IntermediateNode( "**Primary Node**", null, this ); //$NON-NLS-1$
        viewer.setInput( invisibleNode );
    }
View Full Code Here

        if ( parentElement instanceof ObjectClassWrapper )
        {
            //we are looking for the childrens of the contained objectClass
            ObjectClass objectClass =  ( ( ObjectClassWrapper ) parentElement ).getMyObjectClass();

            IntermediateNode sub = new IntermediateNode( "Sub-types", ( ObjectClassWrapper ) parentElement, this, IntermediateNodeType.OBJECT_CLASS_FOLDER ); //$NON-NLS-1$
            IntermediateNode may = new IntermediateNode(
                "Optionnal Attributes", ( ObjectClassWrapper ) parentElement, this, IntermediateNodeType.ATTRIBUTE_TYPE_FOLDER ); //$NON-NLS-1$
            IntermediateNode must = new IntermediateNode(
                "Mandatory Attributes", ( ObjectClassWrapper ) parentElement, this, IntermediateNodeType.ATTRIBUTE_TYPE_FOLDER ); //$NON-NLS-1$

            //-> we need to compare each and every other objectClass's sup against them
            //-> we also need to find a better way to do this (complexity wise)

            Collection<ObjectClass> objectClasses = objectClassTable.values();
            for ( Iterator iter = objectClasses.iterator(); iter.hasNext(); )
            {
                ObjectClass oClass = ( ObjectClass ) iter.next();

                //not this object class
                if ( oClass.getOid() != objectClass.getOid() )
                {
                    String[] sups = oClass.getSuperiors();
                    for ( String sup : sups )
                    {
                        ObjectClass oClassSup = objectClassTable.get( sup );
                        if ( oClassSup != null )
                        {
                            //the current object class is a sup of oClass
                            if ( oClassSup.equals( objectClass ) )
                            {
                                //we use an objectClass wrapper
                                sub.addElement( new ObjectClassWrapper( oClass, sub ) );
                                break; //break only the inner for
                            }
                        }
                    }
                }
            }

            //complete optional attributes
            String[] optAttributes = objectClass.getMay();
            for ( String name : optAttributes )
            {
                AttributeType attr = attributeTypeTable.get( name );
                //A CHANGER, ON FAIT SAUTER LES ATTR QUI NE SONT PAS DEFINIS
                //DANS LE SCHEMA COURANT (ATTRS PAR DEFAUT)
                if ( attr == null )
                    continue;
                //we use an attribute-type wrapper
                may.addElement( new AttributeTypeWrapper( attr, may ) );
            }

            //complete mandatory attributes
            String[] mandAttributes = objectClass.getMust();
            for ( String name : mandAttributes )
            {
                AttributeType attr = attributeTypeTable.get( name );
                //A CHANGER, ON FAIT SAUTER LES ATTR QUI NE SONT PAS DEFINIS
                //DANS LE SCHEMA COURANT (ATTRS PAR DEFAUT)
                if ( attr == null )
                    continue;

                //we use an attribute-type wrapper
                must.addElement( new AttributeTypeWrapper( attr, must ) );
            }

            return new Object[]
                { sub, may, must };
        }

        else if ( parentElement instanceof IntermediateNode )
        {
            IntermediateNode intermediate = ( IntermediateNode ) parentElement;

            if ( intermediate.getName().equals( "**Primary Node**" ) ) { //$NON-NLS-1$
                //if we are asked for the primary node it's because the whole viewer
                //is beeing refreshed
                // -> the pool has been modified or it's the first display
                // -> we need to regenerate the hashmaps containing the schemas elements
                refresh();

                //clear the primary node (because it's always the same instance we need to
                //refresh it manually)
                intermediate.clearChildrens();

                //bootstrap the tree exploring process by adding the top node into the tree
                ObjectClass top = schemaPool.getObjectClass( "top" ); //$NON-NLS-1$
                if ( top != null )
                {
                    ObjectClassWrapper topWrapper = new ObjectClassWrapper( top, intermediate );
                    intermediate.addElement( topWrapper );
                }

                //add the unresolved object-classes to the top of the hierarchy
                Collection<ObjectClass> objectClasses = objectClassTable.values();
                for ( Iterator iter = objectClasses.iterator(); iter.hasNext(); )
                {
                    ObjectClass oClass = ( ObjectClass ) iter.next();
                    String[] sups = oClass.getSuperiors();
                    //if no supperiors had been set
                    if ( sups.length == 0 )
                    {
                        ObjectClassWrapper wrapper = new ObjectClassWrapper( oClass, intermediate );
                        wrapper.setState( ObjectClassWrapper.State.unResolved );
                        intermediate.addElement( wrapper );
                    }
                    else
                    {
                        for ( String sup : sups )
                        {
                            ObjectClass oClassSup = objectClassTable.get( sup );
                            if ( oClassSup == null )
                            {
                                ObjectClassWrapper wrapper = new ObjectClassWrapper( oClass, intermediate );
                                wrapper.setState( ObjectClassWrapper.State.unResolved );
                                intermediate.addElement( wrapper );
                            }
                        }
                    }
                }
            }

            return intermediate.getChildren();
        }
        return new Object[0];
    }
View Full Code Here

    public void bindToTreeViewer( TreeViewer viewer )
    {
        viewer.setContentProvider( this );
        viewer.setLabelProvider( new HierarchicalLabelProvider() );

        IntermediateNode invisibleNode = new IntermediateNode( "**Primary Node**", null, this ); //$NON-NLS-1$
        viewer.setInput( invisibleNode );
    }
View Full Code Here

TOP

Related Classes of org.apache.directory.ldapstudio.schemas.view.viewers.wrappers.IntermediateNode

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.