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;
}