protected TemplateContextType getContextType()

in plugins/ldifeditor/src/main/java/org/apache/directory/studio/ldifeditor/editor/text/LdifCompletionProcessor.java [343:414]


    protected TemplateContextType getContextType( ITextViewer viewer, IRegion region )
    {

        int offset = region.getOffset();

        LdifFile model = editor.getLdifModel();
        LdifContainer container = LdifFile.getContainer( model, offset );
        LdifContainer innerContainer = container != null ? LdifFile.getInnerContainer( container, offset ) : null;
        LdifPart part = container != null ? LdifFile.getContainerContent( container, offset ) : null;
        int documentLine = -1;
        int documentLineOffset = -1;
        String prefix = ""; //$NON-NLS-1$
        try
        {
            documentLine = viewer.getDocument().getLineOfOffset( offset );
            documentLineOffset = viewer.getDocument().getLineOffset( documentLine );
            prefix = viewer.getDocument().get( documentLineOffset, offset - documentLineOffset );
        }
        catch ( BadLocationException e )
        {
        }

        // FILE
        if ( container == null && innerContainer == null && part == null )
        {
            return LdifEditorActivator.getDefault().getLdifTemplateContextTypeRegistry().getContextType(
                LdifEditorConstants.LDIF_FILE_TEMPLATE_ID );
        }
        if ( container instanceof LdifSepContainer && innerContainer == null && part instanceof LdifSepLine )
        {
            return LdifEditorActivator.getDefault().getLdifTemplateContextTypeRegistry().getContextType(
                LdifEditorConstants.LDIF_FILE_TEMPLATE_ID );
        }
        if ( ( container instanceof LdifInvalidContainer && part instanceof LdifInvalidPart && "d".equals( prefix ) ) //$NON-NLS-1$
            || ( container instanceof LdifContentRecord && part instanceof LdifInvalidPart && "dn".equals( prefix ) ) //$NON-NLS-1$
            || ( container instanceof LdifContentRecord && part instanceof LdifInvalidPart && "dn:".equals( prefix ) ) ) //$NON-NLS-1$
        {
            return LdifEditorActivator.getDefault().getLdifTemplateContextTypeRegistry().getContextType(
                LdifEditorConstants.LDIF_FILE_TEMPLATE_ID );
        }

        // MODIFICATION RECORD
        if ( container instanceof LdifChangeModifyRecord && innerContainer == null
            && ( part instanceof LdifSepLine || part instanceof LdifInvalidPart ) )
        {
            return LdifEditorActivator.getDefault().getLdifTemplateContextTypeRegistry().getContextType(
                LdifEditorConstants.LDIF_MODIFICATION_RECORD_TEMPLATE_ID );
        }

        // MODIFICATION ITEM
        if ( container instanceof LdifChangeModifyRecord && innerContainer instanceof LdifModSpec )
        {
            return LdifEditorActivator.getDefault().getLdifTemplateContextTypeRegistry().getContextType(
                LdifEditorConstants.LDIF_MODIFICATION_ITEM_TEMPLATE_ID );
        }

        // MODDN RECORD
        if ( container instanceof LdifChangeModDnRecord && innerContainer == null
            && ( part instanceof LdifSepLine || part instanceof LdifInvalidPart ) )
        {
            return LdifEditorActivator.getDefault().getLdifTemplateContextTypeRegistry().getContextType(
                LdifEditorConstants.LDIF_MODDN_RECORD_TEMPLATE_ID );
        }

        // TemplateContextType contextType =
        // Activator.getDefault().getContextTypeRegistry().getContextType(LdifEditorConstants.LDIF_FILE_TEMPLATE_ID);
        // TemplateContextType contextType =
        // Activator.getDefault().getContextTypeRegistry().getContextType(LdifEditorConstants.LDIF_MODIFICATION_RECORD_TEMPLATE_ID);

        return null;

    }