blob: 02785cc1636955ff187ba94b3c6a64069cb80935 [file] [log] [blame]
/**************************************************************
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*************************************************************/
#include <precomp.h>
#include "hfi_linklist.hxx"
// NOT FULLY DEFINED SERVICES
#include <ary/idl/i_ce.hxx>
#include <ary/idl/i_gate.hxx>
#include <ary/idl/ip_ce.hxx>
#include <ary/idl/ip_type.hxx>
#include <toolkit/hf_docentry.hxx>
#include <toolkit/hf_title.hxx>
#include "hfi_doc.hxx"
#include "hfi_tag.hxx"
#include "hfi_typetext.hxx"
#include "hi_ary.hxx"
#include "hi_env.hxx"
//******************* HF_CommentedLink_Table **********************************//
HF_CommentedLink_Table::HF_CommentedLink_Table( Environment & io_rEnv,
Xml::Element & o_rOut,
const String & i_sTitle,
const String & i_sLabel,
bool i_bBorder )
: HtmlFactory_Idl(io_rEnv,&o_rOut),
pTable( new Html::Table( (i_bBorder ? "1" : "0"), "100%", "5", "0") ),
pCurLinkColumn(0),
pCurCommentColumn(0)
{
*pTable
<< new Html::ClassAttr("commentedlinks");
CurOut()
>> *new Html::Label(i_sLabel)
<< new Html::LineBreak;
CurOut()
<< pTable;
// HF_SubTitle aTitle(*pTable);
// aTitle.Produce_it(i_sTitle);
}
HF_CommentedLink_Table::~HF_CommentedLink_Table()
{
}
void
HF_CommentedLink_Table::Add_Line()
{
Html::TableRow &
rRow = pTable->AddRow();
pCurLinkColumn = & (rRow.AddCell()
<< new Html::WidthAttr("30%")
<< new Xml::AnAttribute("valign","top") );
pCurCommentColumn = & rRow.AddCell();
}
Xml::Element &
HF_CommentedLink_Table::Cur_LinkColumn()
{
csv_assert(pCurLinkColumn != 0);
return *pCurLinkColumn;
}
Xml::Element &
HF_CommentedLink_Table::Cur_CommentColumn()
{
csv_assert(pCurCommentColumn != 0);
return *pCurCommentColumn;
}
//******************* HF_MemberTable **********************************//
HF_MemberTable::HF_MemberTable( Environment & io_rEnv,
Xml::Element & o_rOut,
const String & i_sTitle,
const String & i_sLabel,
bool i_bInline )
: HtmlFactory_Idl(io_rEnv,&o_rOut),
pTable( new Html::Table("1", "100%", "5", "0") ),
pCurDeclaration(0),
pCurDescription(0),
bInline(i_bInline)
{
*pTable
<< new Html::ClassAttr("memberlist");
CurOut()
>> *new Html::Label(i_sLabel)
<< new Html::LineBreak;
CurOut()
<< pTable;
// HF_SubTitle aTitle(*pTable);
// aTitle.Produce_it(i_sTitle);
}
HF_MemberTable::~HF_MemberTable()
{
}
void
HF_MemberTable::Add_Line()
{
if (bInline)
{
Html::TableRow & rRow = pTable->AddRow();
pCurDeclaration = &( rRow.AddCell()
<< new Xml::AnAttribute("valign","top")
<< new Html::WidthAttr("30%") );
pCurDescription = & rRow.AddCell();
}
else
{
Html::DefList *
pMemberSpace = new Html::DefList;
*pMemberSpace
<< new Html::ClassAttr("member");
pTable->AddRow().AddCell() << pMemberSpace;
pCurDeclaration =
& ( *pMemberSpace
>> *new Html::DefListTerm
<< new Html::ClassAttr("member") );
pCurDescription =
& ( *pMemberSpace
>> *new Html::DefListDefinition()
<< new Html::ClassAttr("member") );
}
}
Xml::Element &
HF_MemberTable::Cur_Declaration()
{
csv_assert(pCurDeclaration != 0);
return *pCurDeclaration;
}
Xml::Element &
HF_MemberTable::Cur_Description()
{
csv_assert(pCurDescription != 0);
return *pCurDescription;
}
//******************* HF_IdlLinkList **********************************//
HF_IdlLinkList::HF_IdlLinkList( Environment & io_rEnv,
Xml::Element * o_pOut )
: HtmlFactory_Idl(io_rEnv,o_pOut)
{
}
HF_IdlLinkList::~HF_IdlLinkList()
{
}
void
HF_IdlLinkList::Produce_NamespaceMembers( const String & i_sTitle,
const String & i_sLabel,
const std::vector<ary::idl::Ce_id> & i_rList,
bool i_bNestedNamespaces ) const
{
HF_CommentedLink_Table
aTableMaker( Env(), CurOut(),
i_sTitle, i_sLabel,
true );
std::vector<ary::idl::Ce_id>::const_iterator itEnd = i_rList.end();
for ( std::vector<ary::idl::Ce_id>::const_iterator it = i_rList.begin();
it != itEnd;
++it )
{
static String sEntryName;
static String sEntryLink;
const ce_info *
pDocu = 0;
Get_EntryData_NamespaceMembers( sEntryName, sEntryLink, pDocu, *it, i_bNestedNamespaces );
aTableMaker.Add_Line();
aTableMaker.Cur_LinkColumn()
>> *new Html::Link(sEntryLink)
<< sEntryName;
if ( pDocu != 0 )
{
HF_IdlShortDocu
aTextDisplay(Env(), aTableMaker.Cur_CommentColumn() );
aTextDisplay.Produce_byData( pDocu );
}
} // end for
}
void
HF_IdlLinkList::Produce_GlobalLinks( const String & i_sTitle,
const String & i_sLabel,
ce_list & i_rList ) const
{
HF_CommentedLink_Table
aTableMaker( Env(), CurOut(),
i_sTitle, i_sLabel,
true );
for ( ; i_rList; ++i_rList )
{
aTableMaker.Add_Line();
HF_IdlTypeText
aLinkText( Env(), aTableMaker.Cur_LinkColumn(), true );
aLinkText.Produce_byData(*i_rList);
const ce_info *
pDocu = Get_EntryDocu(*i_rList);
if ( pDocu != 0 )
{
HF_IdlShortDocu
aTextDisplay(Env(), aTableMaker.Cur_CommentColumn() );
aTextDisplay.Produce_byData( pDocu, *i_rList );
}
}
}
void
HF_IdlLinkList::Produce_GlobalCommentedLinks( const String & i_sTitle,
const String & i_sLabel,
comref_list & i_rList ) const
{
HF_CommentedLink_Table
aTableMaker( Env(), CurOut(),
i_sTitle, i_sLabel,
true );
/*
for ( ; i_rList; ++i_rList )
{
aTableMaker.Add_Line();
HF_IdlTypeText
aLinkText( Env(), aTableMaker.Cur_LinkColumn(), true );
aLinkText.Produce_byData( (*i_rList).first );
HF_DocEntryList
aDocList( aTableMaker.Cur_CommentColumn() );
if ( (*i_rList).second != 0 )
{
HF_IdlDocu
aDocuDisplay( Env(), aDocList );
aDocuDisplay.Produce_byData( (*i_rList).second );
}
else
{
const ce_info *
pShort = Get_EntryDocu(
Env().Gate().Types().Search_CeRelatedTo(
(*i_rList).first) );
if ( pShort != 0 )
{
if (pShort->IsDeprecated())
{
aDocList.Produce_Term()
<< "[ DEPRECATED ]";
}
if (pShort->IsOptional())
{
aDocList.Produce_Term()
<< "[ OPTIONAL ]";
}
aDocList.Produce_Term()
<< "Description";
HF_IdlDocuTextDisplay
aShortDisplay( Env(), &aDocList.Produce_Definition() );
aShortDisplay.Set_CurScopeTo(
Env().Gate().Types().Search_CeRelatedTo((*i_rList).first) );
pShort->Short().DisplayAt(aShortDisplay);
}
}
}
*/
}
void
HF_IdlLinkList::Produce_MemberLinks( const String & i_sTitle,
const String & i_sLabel,
ce_list & i_rList ) const
{
HF_CommentedLink_Table
aTableMaker( Env(), CurOut(),
i_sTitle, i_sLabel,
true );
/*
for ( ; i_rList; ++i_rList )
{
const ary::idl::CodeEntity &
rCe = Env().Gate().Ces().Find_Ce(*i_rList);
aTableMaker.Add_Line();
aTableMaker.Cur_LinkColumn()
>> *new Html::Link(
StreamLock(200)() << "#" << rCe.LocalName() << c_str)
<< rCe.LocalName();
const ce_info *
pDocu = rCe.Docu();
if ( pDocu != 0 )
{
HF_IdlShortDocu
aTextDisplay(Env(), aTableMaker.Cur_CommentColumn() );
aTextDisplay.Produce_byData( *pDocu );
}
} // end for
*/
}
void
HF_IdlLinkList::Get_EntryData_NamespaceMembers(
String & o_sEntryName,
String & o_sEntryLink,
const ce_info * & o_pDocu,
ce_id i_nMemberId,
bool i_bIsNestedNamespace ) const
{
const ary::idl::CodeEntity &
rCe = Env().Data().Find_Ce(i_nMemberId);
o_sEntryName = rCe.LocalName();
o_sEntryLink = StreamLock(200)() << rCe.LocalName()
<< ( i_bIsNestedNamespace
? "/module-ix"
: "" )
<< ".html"
<< c_str;
o_pDocu = rCe.Docu();
}
const ary::doc::OldIdlDocu *
HF_IdlLinkList::Get_EntryDocu(ce_id i_nMemberId) const
{
if (i_nMemberId.IsValid())
return Env().Data().Find_Ce(i_nMemberId).Docu();
else
return 0;
}