1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 #ifndef ADC_DISPLAY_HFI_LINKLIST_HXX
25 #define ADC_DISPLAY_HFI_LINKLIST_HXX
26 
27 
28 
29 // USED SERVICES
30     // BASE CLASSES
31 #include "hi_factory.hxx"
32     // COMPONENTS
33     // PARAMETERS
34 #include <ary/idl/i_comrela.hxx>
35 #include <ary_i/ci_text2.hxx>
36 #include <ary/doc/d_oldidldocu.hxx>
37 
38 
39 
40 
41 class HF_CommentedLink_Table : public HtmlFactory_Idl
42 {
43   public:
44                         HF_CommentedLink_Table(
45                             Environment &       io_rEnv,
46                             Xml::Element &      o_rOut,
47                             const String &      i_sTitle,
48                             const String &      i_sLabel,
49                             bool                i_bBorder = false );
50     virtual             ~HF_CommentedLink_Table();
51 
52     void                Add_Line();
53     Xml::Element &      Cur_LinkColumn();
54     Xml::Element &      Cur_CommentColumn();
55 
56   private:
57     // DATA
58     Html::Table *       pTable;
59     Xml::Element *      pCurLinkColumn;
60     Xml::Element *      pCurCommentColumn;
61 };
62 
63 class HF_MemberTable : public HtmlFactory_Idl
64 {
65   public:
66                         HF_MemberTable(
67                             Environment  &      io_rEnv,
68                             Xml::Element &      o_rOut,
69                             const String &      i_sTitle,
70                             const String &      i_sLabel,
71                             bool                i_bInline = false );
72     virtual             ~HF_MemberTable();
73 
74     void                Add_Line();
75     Xml::Element &      Cur_Declaration();
76     Xml::Element &      Cur_Description();
77 
78   private:
79     // DATA
80     Html::Table *       pTable;
81     Xml::Element *      pCurDeclaration;
82     Xml::Element *      pCurDescription;
83     bool            	bInline;
84 };
85 
86 
87 
88 
89 class HF_IdlLinkList : public HtmlFactory_Idl
90 {
91   public:
92     typedef ary::StdConstIterator<ary::idl::CommentedRelation>
93                                             comref_list;
94 
95                         HF_IdlLinkList(
96                             Environment &       io_rEnv,
97                             Xml::Element *      o_pOut );
98     virtual             ~HF_IdlLinkList();
99 
100     void                Produce_NamespaceMembers(
101                             const String &      i_sTitle,
102                             const String &      i_sLabel,
103                             const std::vector<ary::idl::Ce_id> &
104                                                 i_rList,
105                             bool                i_bNestedNamespaces = false ) const;
106     void                Produce_GlobalLinks(
107                             const String &      i_sTitle,
108                             const String &      i_sLabel,
109                             ce_list &           i_rList ) const;
110     void                Produce_GlobalCommentedLinks(
111                             const String &      i_sTitle,
112                             const String &      i_sLabel,
113                             comref_list &       i_rList ) const;
114     void                Produce_MemberLinks(
115                             const String &      i_sTitle,
116                             const String &      i_sLabel,
117                             ce_list &           i_rList ) const;
118   private:
119     void                Get_EntryData_NamespaceMembers(
120                             String &            o_sEntryName,
121                             String &            o_sEntryLink,
122                             const ce_info * &   o_pDocuText,
123                             ce_id               i_nMemberId,
124                             bool                i_bIsNestedNamespace ) const;
125     const ce_info *     Get_EntryDocu(
126                             ce_id               i_nMemberId ) const;
127 };
128 
129 
130 
131 
132 
133 
134 
135 
136 // IMPLEMENTATION
137 
138 
139 #endif
140 
141 
142