WSDL Type library Editor :

- class editing bug fix
 - Header block are now persisted in wsdl as a documentation

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@210 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
inoussa
2007-07-08 21:43:09 +00:00
parent 549deb3e6d
commit 2418e96d91
15 changed files with 364 additions and 2725 deletions

View File

@ -500,7 +500,8 @@ begin
TPasAliasType(sym).DestType.InheritsFrom(TPasNativeSimpleType)
)
)
)
) and
( not sym.InheritsFrom(TPasNativeSimpleContentClassType) )
then begin
if ( ALs.IndexOfObject(sym) = -1 ) then begin
ALs.AddObject(AContainer.GetExternalName(sym),sym);
@ -541,7 +542,7 @@ begin
decList := mdl.InterfaceSection.Declarations;
for j := 0 to Pred(decList.Count) do begin
sym := TPasElement(decList[j]);
if sym.InheritsFrom(TPasType) then begin
if sym.InheritsFrom(TPasType) and ( not sym.InheritsFrom(TPasNativeSimpleContentClassType) ) then begin
if ( ALs.IndexOfObject(sym) = -1 ) then begin
ALs.AddObject(AContainer.GetExternalName(sym),sym);
end;

View File

@ -7,7 +7,7 @@
<MainUnit Value="0"/>
<IconPath Value="./"/>
<TargetFileExt Value=".exe"/>
<ActiveEditorIndexAtStart Value="1"/>
<ActiveEditorIndexAtStart Value="2"/>
</General>
<VersionInfo>
<ProjectVersion Value=""/>
@ -32,13 +32,13 @@
<PackageName Value="LCL"/>
</Item2>
</RequiredPackages>
<Units Count="69">
<Units Count="70">
<Unit0>
<Filename Value="typ_lib_edtr.lpr"/>
<IsPartOfProject Value="True"/>
<CursorPos X="24" Y="11"/>
<TopLine Value="1"/>
<UsageCount Value="180"/>
<UsageCount Value="186"/>
</Unit0>
<Unit1>
<Filename Value="uwsttypelibraryedit.pas"/>
@ -47,10 +47,10 @@
<IsPartOfProject Value="True"/>
<ResourceFilename Value="uwsttypelibraryedit.lrs"/>
<UnitName Value="uwsttypelibraryedit"/>
<CursorPos X="1" Y="15"/>
<TopLine Value="1"/>
<CursorPos X="24" Y="535"/>
<TopLine Value="531"/>
<EditorIndex Value="0"/>
<UsageCount Value="180"/>
<UsageCount Value="186"/>
<Loaded Value="True"/>
</Unit1>
<Unit2>
@ -63,23 +63,25 @@
<Unit3>
<Filename Value="..\ws_helper\wsdl2pas_imp.pas"/>
<UnitName Value="wsdl2pas_imp"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="1"/>
<UsageCount Value="73"/>
<CursorPos X="8" Y="2027"/>
<TopLine Value="2017"/>
<EditorIndex Value="7"/>
<UsageCount Value="77"/>
<Bookmarks Count="1">
<Item0 X="65" Y="748" ID="2"/>
<Item0 X="65" Y="750" ID="2"/>
</Bookmarks>
<Loaded Value="True"/>
</Unit3>
<Unit4>
<Filename Value="wsdl_generator.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="wsdl_generator"/>
<CursorPos X="2" Y="16"/>
<TopLine Value="3"/>
<EditorIndex Value="1"/>
<UsageCount Value="180"/>
<CursorPos X="45" Y="707"/>
<TopLine Value="684"/>
<EditorIndex Value="9"/>
<UsageCount Value="186"/>
<Bookmarks Count="1">
<Item0 X="49" Y="444" ID="1"/>
<Item0 X="49" Y="446" ID="1"/>
</Bookmarks>
<Loaded Value="True"/>
</Unit4>
@ -92,7 +94,7 @@
<UnitName Value="uabout"/>
<CursorPos X="2" Y="12"/>
<TopLine Value="1"/>
<UsageCount Value="180"/>
<UsageCount Value="186"/>
</Unit5>
<Unit6>
<Filename Value="ufenumedit.pas"/>
@ -103,15 +105,17 @@
<UnitName Value="ufEnumedit"/>
<CursorPos X="2" Y="12"/>
<TopLine Value="1"/>
<UsageCount Value="180"/>
<UsageCount Value="186"/>
</Unit6>
<Unit7>
<Filename Value="view_helper.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="view_helper"/>
<CursorPos X="36" Y="14"/>
<TopLine Value="22"/>
<UsageCount Value="180"/>
<CursorPos X="31" Y="535"/>
<TopLine Value="532"/>
<EditorIndex Value="6"/>
<UsageCount Value="186"/>
<Loaded Value="True"/>
</Unit7>
<Unit8>
<Filename Value="..\ws_helper\source_utils.pas"/>
@ -119,15 +123,17 @@
<UnitName Value="source_utils"/>
<CursorPos X="18" Y="20"/>
<TopLine Value="1"/>
<UsageCount Value="180"/>
<UsageCount Value="186"/>
</Unit8>
<Unit9>
<Filename Value="edit_helper.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="edit_helper"/>
<CursorPos X="36" Y="68"/>
<TopLine Value="49"/>
<UsageCount Value="180"/>
<CursorPos X="68" Y="504"/>
<TopLine Value="483"/>
<EditorIndex Value="1"/>
<UsageCount Value="186"/>
<Loaded Value="True"/>
</Unit9>
<Unit10>
<Filename Value="ufclassedit.pas"/>
@ -136,9 +142,11 @@
<IsPartOfProject Value="True"/>
<ResourceFilename Value="ufclassedit.lrs"/>
<UnitName Value="ufclassedit"/>
<CursorPos X="2" Y="12"/>
<TopLine Value="1"/>
<UsageCount Value="180"/>
<CursorPos X="52" Y="175"/>
<TopLine Value="154"/>
<EditorIndex Value="2"/>
<UsageCount Value="186"/>
<Loaded Value="True"/>
</Unit10>
<Unit11>
<Filename Value="ufpropedit.pas"/>
@ -146,9 +154,11 @@
<IsPartOfProject Value="True"/>
<ResourceFilename Value="ufpropedit.lrs"/>
<UnitName Value="ufpropedit"/>
<CursorPos X="2" Y="12"/>
<TopLine Value="1"/>
<UsageCount Value="180"/>
<CursorPos X="32" Y="149"/>
<TopLine Value="140"/>
<EditorIndex Value="3"/>
<UsageCount Value="186"/>
<Loaded Value="True"/>
</Unit11>
<Unit12>
<Filename Value="..\..\..\..\lazarus23_213\lcl\comctrls.pp"/>
@ -160,9 +170,11 @@
<Unit13>
<Filename Value="..\ws_helper\parserutils.pas"/>
<UnitName Value="parserutils"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="1"/>
<UsageCount Value="61"/>
<CursorPos X="1" Y="93"/>
<TopLine Value="54"/>
<EditorIndex Value="4"/>
<UsageCount Value="64"/>
<Loaded Value="True"/>
</Unit13>
<Unit14>
<Filename Value="..\..\..\..\lazarus23_213\fpc\2.1.3\source\rtl\i386\i386.inc"/>
@ -247,7 +259,7 @@
<UnitName Value="uinterfaceedit"/>
<CursorPos X="2" Y="12"/>
<TopLine Value="1"/>
<UsageCount Value="144"/>
<UsageCount Value="150"/>
</Unit26>
<Unit27>
<Filename Value="uinterfaceedit.lfm"/>
@ -264,7 +276,7 @@
<UnitName Value="udm"/>
<CursorPos X="15" Y="2"/>
<TopLine Value="1"/>
<UsageCount Value="139"/>
<UsageCount Value="145"/>
</Unit28>
<Unit29>
<Filename Value="..\..\..\..\lazarus23_213\lcl\include\treeview.inc"/>
@ -276,17 +288,19 @@
<Filename Value="..\ws_helper\pascal_parser_intf.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="pascal_parser_intf"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="1"/>
<UsageCount Value="102"/>
<CursorPos X="73" Y="148"/>
<TopLine Value="156"/>
<EditorIndex Value="8"/>
<UsageCount Value="108"/>
<Loaded Value="True"/>
</Unit30>
<Unit31>
<Filename Value="..\ws_helper\pparser.pp"/>
<IsPartOfProject Value="True"/>
<UnitName Value="PParser"/>
<CursorPos X="25" Y="22"/>
<TopLine Value="7"/>
<UsageCount Value="102"/>
<CursorPos X="4" Y="2133"/>
<TopLine Value="2127"/>
<UsageCount Value="108"/>
</Unit31>
<Unit32>
<Filename Value="..\ws_helper\logger_intf.pas"/>
@ -299,9 +313,9 @@
<Filename Value="..\ws_helper\pastree.pp"/>
<IsPartOfProject Value="True"/>
<UnitName Value="PasTree"/>
<CursorPos X="3" Y="75"/>
<TopLine Value="1"/>
<UsageCount Value="102"/>
<CursorPos X="33" Y="332"/>
<TopLine Value="315"/>
<UsageCount Value="108"/>
</Unit33>
<Unit34>
<Filename Value="..\..\..\..\lazarus_23_215\lcl\include\treeview.inc"/>
@ -331,9 +345,11 @@
<Unit38>
<Filename Value="..\ws_helper\generator.pas"/>
<UnitName Value="generator"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="10"/>
<UsageCount Value="24"/>
<CursorPos X="2" Y="16"/>
<TopLine Value="1"/>
<EditorIndex Value="5"/>
<UsageCount Value="27"/>
<Loaded Value="True"/>
</Unit38>
<Unit39>
<Filename Value="..\wst_rtti_filter\dom_cursors.pas"/>
@ -359,9 +375,9 @@
<Unit42>
<Filename Value="..\ws_helper\pscanner.pp"/>
<UnitName Value="PScanner"/>
<CursorPos X="19" Y="505"/>
<TopLine Value="491"/>
<UsageCount Value="8"/>
<CursorPos X="1" Y="1"/>
<TopLine Value="322"/>
<UsageCount Value="11"/>
</Unit42>
<Unit43>
<Filename Value="..\ws_helper\metadata_generator.pas"/>
@ -422,7 +438,7 @@
<UnitName Value="uprocedit"/>
<CursorPos X="2" Y="12"/>
<TopLine Value="1"/>
<UsageCount Value="58"/>
<UsageCount Value="64"/>
</Unit50>
<Unit51>
<Filename Value="..\..\..\..\..\lazarus_23_215XX\lcl\comctrls.pp"/>
@ -437,7 +453,7 @@
<UnitName Value="common_gui_utils"/>
<CursorPos X="2" Y="12"/>
<TopLine Value="1"/>
<UsageCount Value="56"/>
<UsageCount Value="62"/>
</Unit52>
<Unit53>
<Filename Value="..\..\..\..\..\DOCUME~1\ADMINI~1\LOCALS~1\Temp\DestBug.pas"/>
@ -454,7 +470,7 @@
<UnitName Value="uargedit"/>
<CursorPos X="2" Y="12"/>
<TopLine Value="1"/>
<UsageCount Value="49"/>
<UsageCount Value="55"/>
</Unit54>
<Unit55>
<Filename Value="..\..\..\..\..\lazarus_23_215XX\lcl\interfaces\win32\win32wscontrols.pp"/>
@ -478,7 +494,7 @@
<UnitName Value="umoduleedit"/>
<CursorPos X="2" Y="12"/>
<TopLine Value="1"/>
<UsageCount Value="41"/>
<UsageCount Value="47"/>
</Unit57>
<Unit58>
<Filename Value="..\..\..\..\..\lazarus_23_215XX\lcl\stdctrls.pp"/>
@ -495,7 +511,7 @@
<UnitName Value="ubindingedit"/>
<CursorPos X="2" Y="12"/>
<TopLine Value="1"/>
<UsageCount Value="31"/>
<UsageCount Value="37"/>
</Unit59>
<Unit60>
<Filename Value="..\..\..\..\..\lazarus_23_215XX\fpc\source\rtl\inc\objpash.inc"/>
@ -536,7 +552,7 @@
<UnitName Value="ufrmsaveoption"/>
<CursorPos X="42" Y="64"/>
<TopLine Value="42"/>
<UsageCount Value="27"/>
<UsageCount Value="33"/>
</Unit65>
<Unit66>
<Filename Value="..\..\..\..\..\lazarus_23_215XX\lcl\dialogs.pp"/>
@ -559,32 +575,134 @@
<TopLine Value="1"/>
<UsageCount Value="10"/>
</Unit68>
<Unit69>
<Filename Value="..\..\..\..\..\lazarus_23_215XX\lcl\include\control.inc"/>
<CursorPos X="1" Y="2403"/>
<TopLine Value="2390"/>
<UsageCount Value="10"/>
</Unit69>
</Units>
<JumpHistory Count="6" HistoryIndex="5">
<JumpHistory Count="30" HistoryIndex="29">
<Position1>
<Filename Value="uwsttypelibraryedit.pas"/>
<Caret Line="13" Column="3" TopLine="1"/>
<Filename Value="wsdl_generator.pas"/>
<Caret Line="654" Column="34" TopLine="650"/>
</Position1>
<Position2>
<Filename Value="uwsttypelibraryedit.pas"/>
<Caret Line="136" Column="52" TopLine="120"/>
<Filename Value="wsdl_generator.pas"/>
<Caret Line="694" Column="32" TopLine="675"/>
</Position2>
<Position3>
<Filename Value="uwsttypelibraryedit.pas"/>
<Caret Line="135" Column="16" TopLine="112"/>
<Filename Value="wsdl_generator.pas"/>
<Caret Line="149" Column="42" TopLine="136"/>
</Position3>
<Position4>
<Filename Value="uwsttypelibraryedit.pas"/>
<Caret Line="135" Column="16" TopLine="112"/>
<Filename Value="wsdl_generator.pas"/>
<Caret Line="695" Column="19" TopLine="677"/>
</Position4>
<Position5>
<Filename Value="uwsttypelibraryedit.pas"/>
<Caret Line="23" Column="18" TopLine="1"/>
<Filename Value="wsdl_generator.pas"/>
<Caret Line="289" Column="20" TopLine="274"/>
</Position5>
<Position6>
<Filename Value="wsdl_generator.pas"/>
<Caret Line="963" Column="5" TopLine="886"/>
<Caret Line="693" Column="81" TopLine="651"/>
</Position6>
<Position7>
<Filename Value="wsdl_generator.pas"/>
<Caret Line="1" Column="1" TopLine="1"/>
</Position7>
<Position8>
<Filename Value="wsdl_generator.pas"/>
<Caret Line="154" Column="30" TopLine="139"/>
</Position8>
<Position9>
<Filename Value="wsdl_generator.pas"/>
<Caret Line="448" Column="23" TopLine="432"/>
</Position9>
<Position10>
<Filename Value="wsdl_generator.pas"/>
<Caret Line="289" Column="10" TopLine="274"/>
</Position10>
<Position11>
<Filename Value="wsdl_generator.pas"/>
<Caret Line="447" Column="40" TopLine="432"/>
</Position11>
<Position12>
<Filename Value="wsdl_generator.pas"/>
<Caret Line="1" Column="1" TopLine="1"/>
</Position12>
<Position13>
<Filename Value="wsdl_generator.pas"/>
<Caret Line="155" Column="33" TopLine="140"/>
</Position13>
<Position14>
<Filename Value="..\ws_helper\wsdl2pas_imp.pas"/>
<Caret Line="2062" Column="14" TopLine="2033"/>
</Position14>
<Position15>
<Filename Value="..\ws_helper\wsdl2pas_imp.pas"/>
<Caret Line="73" Column="35" TopLine="65"/>
</Position15>
<Position16>
<Filename Value="..\ws_helper\wsdl2pas_imp.pas"/>
<Caret Line="2336" Column="16" TopLine="2329"/>
</Position16>
<Position17>
<Filename Value="wsdl_generator.pas"/>
<Caret Line="682" Column="3" TopLine="735"/>
</Position17>
<Position18>
<Filename Value="wsdl_generator.pas"/>
<Caret Line="1" Column="1" TopLine="1"/>
</Position18>
<Position19>
<Filename Value="..\ws_helper\wsdl2pas_imp.pas"/>
<Caret Line="2100" Column="3" TopLine="2012"/>
</Position19>
<Position20>
<Filename Value="..\ws_helper\wsdl2pas_imp.pas"/>
<Caret Line="186" Column="55" TopLine="164"/>
</Position20>
<Position21>
<Filename Value="..\ws_helper\wsdl2pas_imp.pas"/>
<Caret Line="2044" Column="46" TopLine="2011"/>
</Position21>
<Position22>
<Filename Value="..\ws_helper\wsdl2pas_imp.pas"/>
<Caret Line="1" Column="1" TopLine="1"/>
</Position22>
<Position23>
<Filename Value="..\ws_helper\wsdl2pas_imp.pas"/>
<Caret Line="181" Column="45" TopLine="164"/>
</Position23>
<Position24>
<Filename Value="wsdl_generator.pas"/>
<Caret Line="149" Column="44" TopLine="148"/>
</Position24>
<Position25>
<Filename Value="wsdl_generator.pas"/>
<Caret Line="155" Column="33" TopLine="133"/>
</Position25>
<Position26>
<Filename Value="..\ws_helper\wsdl2pas_imp.pas"/>
<Caret Line="2092" Column="80" TopLine="2062"/>
</Position26>
<Position27>
<Filename Value="..\ws_helper\pascal_parser_intf.pas"/>
<Caret Line="269" Column="16" TopLine="234"/>
</Position27>
<Position28>
<Filename Value="edit_helper.pas"/>
<Caret Line="564" Column="16" TopLine="553"/>
</Position28>
<Position29>
<Filename Value="..\ws_helper\pascal_parser_intf.pas"/>
<Caret Line="139" Column="35" TopLine="125"/>
</Position29>
<Position30>
<Filename Value="..\ws_helper\pascal_parser_intf.pas"/>
<Caret Line="145" Column="49" TopLine="130"/>
</Position30>
</JumpHistory>
</ProjectOptions>
<CompilerOptions>

View File

@ -1,3 +1,5 @@
{ Ceci est un fichier ressource g�n�r� automatiquement par Lazarus }
LazarusResources.Add('TfClassEdit','FORMDATA',[
'TPF0'#11'TfClassEdit'#10'fClassEdit'#4'Left'#3#190#2#6'Height'#3'#'#2#3'Top'
+#3#150#0#5'Width'#3#6#2#18'HorzScrollBar.Page'#3#5#2#18'VertScrollBar.Page'#3

View File

@ -164,14 +164,15 @@ begin
sym := TPasElement(decList[j]);
if sym.InheritsFrom(TPasType) and
( sym.InheritsFrom(TPasClassType) or
sym.InheritsFrom(TPasNativeSimpleType) or
sym.InheritsFrom(TPasNativeSimpleContentClassType) or
( sym.InheritsFrom(TPasAliasType) and
Assigned(TPasAliasType(sym).DestType) and
( TPasAliasType(sym).DestType.InheritsFrom(TPasClassType) or
TPasAliasType(sym).DestType.InheritsFrom(TPasNativeSimpleType)
)
)
)
) and
( not sym.InheritsFrom(TPasNativeSimpleType) )
then begin
if ( ALs.IndexOfObject(sym) = -1 ) then begin
ALs.AddObject(AContainer.GetExternalName(sym),sym);
@ -286,6 +287,7 @@ begin
if ( FOldAncestor <> nil ) then
FOldAncestor.Release();
locObj.AncestorType := trueParent;
locObj.AncestorType.AddRef();
end;
end;
@ -301,6 +303,7 @@ begin
FObject := AObject;
if ( UpdateType = etCreate ) and ( FObject = nil ) then begin
FObject := TPasClassType(FSymbolTable.CreateElement(TPasClassType,'new_class',FSymbolTable.CurrentModule.InterfaceSection,visDefault,'',0));
FObject.ObjKind := okClass;
FSymbolTable.CurrentModule.InterfaceSection.Declarations.Add(FObject);
FSymbolTable.CurrentModule.InterfaceSection.Types.Add(FObject);
FSymbolTable.CurrentModule.InterfaceSection.Classes.Add(FObject);

View File

@ -1,20 +1,20 @@
object fPropEdit: TfPropEdit
Left = 306
Height = 272
Height = 326
Top = 266
Width = 324
HorzScrollBar.Page = 323
VertScrollBar.Page = 271
VertScrollBar.Page = 325
ActiveControl = Button1
BorderIcons = [biSystemMenu]
BorderStyle = bsDialog
Caption = 'fPropEdit'
ClientHeight = 272
ClientHeight = 326
ClientWidth = 324
Position = poDesktopCenter
object Panel1: TPanel
Height = 50
Top = 222
Top = 276
Width = 324
Align = alBottom
ClientHeight = 50
@ -45,7 +45,7 @@ object fPropEdit: TfPropEdit
end
end
object PageControl1: TPageControl
Height = 222
Height = 276
Width = 324
ActivePage = TabSheet1
Align = alClient
@ -53,7 +53,7 @@ object fPropEdit: TfPropEdit
TabOrder = 1
object TabSheet1: TTabSheet
Caption = 'Property'
ClientHeight = 196
ClientHeight = 250
ClientWidth = 316
object Label1: TLabel
Left = 20
@ -97,6 +97,15 @@ object fPropEdit: TfPropEdit
Caption = 'Attribute Property'
TabOrder = 2
end
object edtOptional: TCheckBox
Left = 20
Height = 13
Top = 218
Width = 100
Caption = 'Optional property'
Font.Style = [fsItalic]
TabOrder = 3
end
end
end
object ActionList1: TActionList

View File

@ -1,12 +1,12 @@
{ Ceci est un fichier ressource g�n�r� automatiquement par Lazarus }
LazarusResources.Add('TfPropEdit','FORMDATA',[
'TPF0'#10'TfPropEdit'#9'fPropEdit'#4'Left'#3'2'#1#6'Height'#3#16#1#3'Top'#3#10
+#1#5'Width'#3'D'#1#18'HorzScrollBar.Page'#3'C'#1#18'VertScrollBar.Page'#3#15
'TPF0'#10'TfPropEdit'#9'fPropEdit'#4'Left'#3'2'#1#6'Height'#3'F'#1#3'Top'#3#10
+#1#5'Width'#3'D'#1#18'HorzScrollBar.Page'#3'C'#1#18'VertScrollBar.Page'#3'E'
+#1#13'ActiveControl'#7#7'Button1'#11'BorderIcons'#11#12'biSystemMenu'#0#11'B'
+'orderStyle'#7#8'bsDialog'#7'Caption'#6#9'fPropEdit'#12'ClientHeight'#3#16#1
+'orderStyle'#7#8'bsDialog'#7'Caption'#6#9'fPropEdit'#12'ClientHeight'#3'F'#1
+#11'ClientWidth'#3'D'#1#8'Position'#7#15'poDesktopCenter'#0#6'TPanel'#6'Pane'
+'l1'#6'Height'#2'2'#3'Top'#3#222#0#5'Width'#3'D'#1#5'Align'#7#8'alBottom'#12
+'l1'#6'Height'#2'2'#3'Top'#3#20#1#5'Width'#3'D'#1#5'Align'#7#8'alBottom'#12
+'ClientHeight'#2'2'#11'ClientWidth'#3'D'#1#8'TabOrder'#2#0#0#7'TButton'#7'Bu'
+'tton1'#4'Left'#3#236#0#6'Height'#2#25#3'Top'#2#10#5'Width'#2'K'#7'Anchors'
+#11#5'akTop'#7'akRight'#0#25'BorderSpacing.InnerBorder'#2#4#6'Cancel'#9#7'Ca'
@ -14,9 +14,9 @@ LazarusResources.Add('TfPropEdit','FORMDATA',[
+'ton2'#4'Left'#3#146#0#6'Height'#2#25#3'Top'#2#10#5'Width'#2'K'#6'Action'#7#5
+'actOK'#7'Anchors'#11#5'akTop'#7'akRight'#0#25'BorderSpacing.InnerBorder'#2#4
+#7'Default'#9#8'TabOrder'#2#1#0#0#0#12'TPageControl'#12'PageControl1'#6'Heig'
+'ht'#3#222#0#5'Width'#3'D'#1#10'ActivePage'#7#9'TabSheet1'#5'Align'#7#8'alCl'
+'ient'#8'TabIndex'#2#0#8'TabOrder'#2#1#0#9'TTabSheet'#9'TabSheet1'#7'Caption'
+#6#8'Property'#12'ClientHeight'#3#196#0#11'ClientWidth'#3'<'#1#0#6'TLabel'#6
+'ht'#3#20#1#5'Width'#3'D'#1#10'ActivePage'#7#9'TabSheet1'#5'Align'#7#8'alCli'
+'ent'#8'TabIndex'#2#0#8'TabOrder'#2#1#0#9'TTabSheet'#9'TabSheet1'#7'Caption'
+#6#8'Property'#12'ClientHeight'#3#250#0#11'ClientWidth'#3'<'#1#0#6'TLabel'#6
+'Label1'#4'Left'#2#20#6'Height'#2#14#3'Top'#2#24#5'Width'#2#28#7'Caption'#6#4
+'Name'#11'ParentColor'#8#0#0#6'TLabel'#6'Label2'#4'Left'#2#20#6'Height'#2#14
+#3'Top'#2'b'#5'Width'#2#25#7'Caption'#6#4'Type'#11'ParentColor'#8#0#0#5'TEdi'
@ -26,7 +26,10 @@ LazarusResources.Add('TfPropEdit','FORMDATA',[
+'actSearchAscending'#0#10'ItemHeight'#2#13#9'MaxLength'#2#0#5'Style'#7#14'cs'
+'DropDownList'#8'TabOrder'#2#1#0#0#9'TCheckBox'#12'edtAttribute'#4'Left'#2#20
+#6'Height'#2#13#3'Top'#3#170#0#5'Width'#2'e'#7'Caption'#6#18'Attribute Prope'
+'rty'#8'TabOrder'#2#2#0#0#0#0#11'TActionList'#11'ActionList1'#4'left'#2'h'#3
+'top'#2'h'#0#7'TAction'#5'actOK'#7'Caption'#6#2'OK'#18'DisableIfNoHandler'#9
+#9'OnExecute'#7#12'actOKExecute'#8'OnUpdate'#7#11'actOKUpdate'#0#0#0#0
+'rty'#8'TabOrder'#2#2#0#0#9'TCheckBox'#11'edtOptional'#4'Left'#2#20#6'Height'
+#2#13#3'Top'#3#218#0#5'Width'#2'd'#7'Caption'#6#17'Optional property'#10'Fon'
+'t.Style'#11#8'fsItalic'#0#8'TabOrder'#2#3#0#0#0#0#11'TActionList'#11'Action'
+'List1'#4'left'#2'h'#3'top'#2'h'#0#7'TAction'#5'actOK'#7'Caption'#6#2'OK'#18
+'DisableIfNoHandler'#9#9'OnExecute'#7#12'actOKExecute'#8'OnUpdate'#7#11'actO'
+'KUpdate'#0#0#0#0
]);

View File

@ -32,6 +32,7 @@ type
Button1: TButton;
Button2: TButton;
Button4: TButton;
edtOptional : TCheckBox;
edtAttribute: TCheckBox;
edtType: TComboBox;
edtName: TEdit;
@ -130,6 +131,7 @@ begin
edtName.Text := FSymbolTable.GetExternalName(FObject);
edtType.ItemIndex := edtType.Items.IndexOfObject(FObject.VarType);
edtAttribute.Checked := FSymbolTable.IsAttributeProperty(FObject);
edtOptional.Checked := AnsiSameText('Has',Copy(FObject.StoredAccessorName,1,3)) ;
end else begin
Self.Caption := 'New';
end;
@ -151,6 +153,7 @@ begin
FObject := locObj;
locObj.VarType := propType;
locObj.VarType.AddRef();
ClassObject.Members.Add(FObject);
end else begin
locObj := FObject;
if ( propType <> locObj.VarType ) then begin
@ -161,6 +164,12 @@ begin
end;
locObj.Name := typIntName;
end;
if edtOptional.Checked then
locObj.StoredAccessorName := 'Has' + locObj.Name
else
locObj.StoredAccessorName := 'True';
locObj.ReadAccessorName := 'F' + locObj.Name;
locObj.WriteAccessorName := 'F' + locObj.Name;
FSymbolTable.RegisterExternalAlias(locObj,typExtName);
//if ( edtAttribute.Checked <> FSymbolTable.IsAttributeProperty(locObj) ) then
FSymbolTable.SetPropertyAsAttribute(locObj,edtAttribute.Checked);

File diff suppressed because it is too large Load Diff

View File

@ -1,303 +0,0 @@
{ Ceci est un fichier ressource g�n�r� automatiquement par Lazarus }
LazarusResources.Add('TfMain','FORMDATA',[
'TPF0'#6'TfMain'#5'fMain'#4'Left'#2'r'#6'Height'#3#132#2#3'Top'#3#209#0#5'Wid'
+'th'#3'A'#3#18'HorzScrollBar.Page'#3'@'#3#18'VertScrollBar.Page'#3'o'#2#13'A'
+'ctiveControl'#7#9'trvSchema'#7'Caption'#6'+[Web Services Toolkit ] Type Lib'
+'rary Editor'#12'ClientHeight'#3'p'#2#11'ClientWidth'#3'A'#3#4'Menu'#7#9'Mai'
+'nMenu1'#6'OnShow'#7#8'FormShow'#8'Position'#7#15'poDesktopCenter'#0#10'TSta'
+'tusBar'#2'SB'#6'Height'#2#23#3'Top'#3'Y'#2#5'Width'#3'A'#3#6'Panels'#14#1#5
+'Width'#3#200#0#0#1#5'Width'#2'2'#0#0#11'SimplePanel'#8#0#0#6'TPanel'#6'Pane'
+'l1'#6'Height'#3'Y'#2#5'Width'#3':'#1#5'Align'#7#6'alLeft'#12'ClientHeight'#3
+'Y'#2#11'ClientWidth'#3':'#1#8'TabOrder'#2#0#0#9'TTreeView'#9'trvSchema'#4'L'
+'eft'#2#1#6'Height'#3'W'#2#3'Top'#2#1#5'Width'#3'8'#1#5'Align'#7#8'alClient'
+#17'DefaultItemHeight'#2#15#9'PopupMenu'#7#10'PopupMenu1'#8'TabOrder'#2#0#0#0
+#0#6'TPanel'#6'Panel2'#4'Left'#3'B'#1#6'Height'#3'Y'#2#5'Width'#3#255#1#5'Al'
+'ign'#7#8'alClient'#12'ClientHeight'#3'Y'#2#11'ClientWidth'#3#255#1#8'TabOrd'
+'er'#2#1#0#12'TPageControl'#2'PC'#4'Left'#2#1#6'Height'#3'W'#2#3'Top'#2#1#5
+'Width'#3#253#1#10'ActivePage'#7#11'tsInterface'#5'Align'#7#8'alClient'#8'Ta'
+'bIndex'#2#0#8'TabOrder'#2#0#0#9'TTabSheet'#11'tsInterface'#7'Caption'#6#10
+'&Interface'#12'ClientHeight'#3'='#2#11'ClientWidth'#3#245#1#0#8'TSynEdit'#12
+'srcInterface'#6'Height'#3'='#2#5'Width'#3#245#1#5'Align'#7#8'alClient'#12'F'
+'ont.CharSet'#7#12'ANSI_CHARSET'#10'Font.Color'#7#7'clBlack'#11'Font.Height'
+#2#236#9'Font.Name'#6#7'Courier'#10'Font.Pitch'#7#7'fpFixed'#11'ParentColor'
+#8#9'PopupMenu'#7#10'PopupMenu2'#8'TabOrder'#2#0#23'BookMarkOptions.Xoffset'
+#2'Q'#17'Gutter.DigitCount'#2#5#22'Gutter.ShowLineNumbers'#9#22'Gutter.ShowC'
+'odeFolding'#9#23'Gutter.CodeFoldingWidth'#2#14#11'Highlighter'#7#10'SynPasS'
+'yn1'#10'Keystrokes'#14#1#7'Command'#2#3#8'ShortCut'#2'&'#0#1#7'Command'#2'g'
+#8'ShortCut'#3'& '#0#1#7'Command'#3#211#0#8'ShortCut'#3'&@'#0#1#7'Command'#2
+#4#8'ShortCut'#2'('#0#1#7'Command'#2'h'#8'ShortCut'#3'( '#0#1#7'Command'#3
+#212#0#8'ShortCut'#3'(@'#0#1#7'Command'#2#1#8'ShortCut'#2'%'#0#1#7'Command'#2
+'e'#8'ShortCut'#3'% '#0#1#7'Command'#2#5#8'ShortCut'#3'%@'#0#1#7'Command'#2
+'i'#8'ShortCut'#3'%`'#0#1#7'Command'#2#2#8'ShortCut'#2''''#0#1#7'Command'#2
+'f'#8'ShortCut'#3''' '#0#1#7'Command'#2#6#8'ShortCut'#3'''@'#0#1#7'Command'#2
+'j'#8'ShortCut'#3'''`'#0#1#7'Command'#2#10#8'ShortCut'#2'"'#0#1#7'Command'#2
+'n'#8'ShortCut'#3'" '#0#1#7'Command'#2#14#8'ShortCut'#3'"@'#0#1#7'Command'#2
+'r'#8'ShortCut'#3'"`'#0#1#7'Command'#2#9#8'ShortCut'#2'!'#0#1#7'Command'#2'm'
+#8'ShortCut'#3'! '#0#1#7'Command'#2#13#8'ShortCut'#3'!@'#0#1#7'Command'#2'q'
+#8'ShortCut'#3'!`'#0#1#7'Command'#2#7#8'ShortCut'#2'$'#0#1#7'Command'#2'k'#8
+'ShortCut'#3'$ '#0#1#7'Command'#2#15#8'ShortCut'#3'$@'#0#1#7'Command'#2's'#8
+'ShortCut'#3'$`'#0#1#7'Command'#2#8#8'ShortCut'#2'#'#0#1#7'Command'#2'l'#8'S'
+'hortCut'#3'# '#0#1#7'Command'#2#16#8'ShortCut'#3'#@'#0#1#7'Command'#2't'#8
+'ShortCut'#3'#`'#0#1#7'Command'#3#223#0#8'ShortCut'#2'-'#0#1#7'Command'#3#201
+#0#8'ShortCut'#3'-@'#0#1#7'Command'#3'\'#2#8'ShortCut'#3'- '#0#1#7'Command'#3
+#246#1#8'ShortCut'#2'.'#0#1#7'Command'#3'['#2#8'ShortCut'#3'. '#0#1#7'Comman'
+'d'#3#245#1#8'ShortCut'#2#8#0#1#7'Command'#3#245#1#8'ShortCut'#3#8' '#0#1#7
+'Command'#3#248#1#8'ShortCut'#3#8'@'#0#1#7'Command'#3'Y'#2#8'ShortCut'#4#8
+#128#0#0#0#1#7'Command'#3'Z'#2#8'ShortCut'#4#8#160#0#0#0#1#7'Command'#3#253#1
+#8'ShortCut'#2#13#0#1#7'Command'#3#199#0#8'ShortCut'#3'A@'#0#1#7'Command'#3
+#201#0#8'ShortCut'#3'C@'#0#1#7'Command'#3'b'#2#8'ShortCut'#3'I`'#0#1#7'Comma'
+'nd'#3#253#1#8'ShortCut'#3'M@'#0#1#7'Command'#3#254#1#8'ShortCut'#3'N@'#0#1#7
+'Command'#3#247#1#8'ShortCut'#3'T@'#0#1#7'Command'#3'c'#2#8'ShortCut'#3'U`'#0
+#1#7'Command'#3'\'#2#8'ShortCut'#3'V@'#0#1#7'Command'#3'['#2#8'ShortCut'#3'X'
+'@'#0#1#7'Command'#3#251#1#8'ShortCut'#3'Y@'#0#1#7'Command'#3#250#1#8'ShortC'
+'ut'#3'Y`'#0#1#7'Command'#3'Y'#2#8'ShortCut'#3'Z@'#0#1#7'Command'#3'Z'#2#8'S'
+'hortCut'#3'Z`'#0#1#7'Command'#3'-'#1#8'ShortCut'#3'0@'#0#1#7'Command'#3'.'#1
+#8'ShortCut'#3'1@'#0#1#7'Command'#3'/'#1#8'ShortCut'#3'2@'#0#1#7'Command'#3
+'0'#1#8'ShortCut'#3'3@'#0#1#7'Command'#3'1'#1#8'ShortCut'#3'4@'#0#1#7'Comman'
+'d'#3'2'#1#8'ShortCut'#3'5@'#0#1#7'Command'#3'3'#1#8'ShortCut'#3'6@'#0#1#7'C'
+'ommand'#3'4'#1#8'ShortCut'#3'7@'#0#1#7'Command'#3'5'#1#8'ShortCut'#3'8@'#0#1
+#7'Command'#3'6'#1#8'ShortCut'#3'9@'#0#1#7'Command'#3'_'#1#8'ShortCut'#3'0`'
+#0#1#7'Command'#3'`'#1#8'ShortCut'#3'1`'#0#1#7'Command'#3'a'#1#8'ShortCut'#3
+'2`'#0#1#7'Command'#3'b'#1#8'ShortCut'#3'3`'#0#1#7'Command'#3'c'#1#8'ShortCu'
+'t'#3'4`'#0#1#7'Command'#3'd'#1#8'ShortCut'#3'5`'#0#1#7'Command'#3'e'#1#8'Sh'
+'ortCut'#3'6`'#0#1#7'Command'#3'f'#1#8'ShortCut'#3'7`'#0#1#7'Command'#3'g'#1
+#8'ShortCut'#3'8`'#0#1#7'Command'#3'h'#1#8'ShortCut'#3'9`'#0#1#7'Command'#3
+#231#0#8'ShortCut'#3'N`'#0#1#7'Command'#3#232#0#8'ShortCut'#3'C`'#0#1#7'Comm'
+'and'#3#233#0#8'ShortCut'#3'L`'#0#1#7'Command'#3'd'#2#8'ShortCut'#2#9#0#1#7
,'Command'#3'e'#2#8'ShortCut'#3#9' '#0#1#7'Command'#3#250#0#8'ShortCut'#3'B`'
+#0#0#8'ReadOnly'#9#0#0#0#9'TTabSheet'#7'tsProxy'#7'Caption'#6#6'&Proxy'#12'C'
+'lientHeight'#3'='#2#11'ClientWidth'#3#245#1#0#8'TSynEdit'#8'srcProxy'#6'Hei'
+'ght'#3'='#2#5'Width'#3#245#1#5'Align'#7#8'alClient'#12'Font.CharSet'#7#12'A'
+'NSI_CHARSET'#10'Font.Color'#7#7'clBlack'#11'Font.Height'#2#236#9'Font.Name'
+#6#7'Courier'#10'Font.Pitch'#7#7'fpFixed'#11'ParentColor'#8#9'PopupMenu'#7#10
+'PopupMenu2'#8'TabOrder'#2#0#23'BookMarkOptions.Xoffset'#2'Q'#24'BookMarkOpt'
+'ions.OnChange'#13#17'Gutter.DigitCount'#2#5#22'Gutter.ShowLineNumbers'#9#22
+'Gutter.ShowCodeFolding'#9#15'Gutter.OnChange'#13#23'Gutter.CodeFoldingWidth'
+#2#14#11'Highlighter'#7#10'SynPasSyn1'#10'Keystrokes'#14#1#7'Command'#2#3#8
+'ShortCut'#2'&'#0#1#7'Command'#2'g'#8'ShortCut'#3'& '#0#1#7'Command'#3#211#0
+#8'ShortCut'#3'&@'#0#1#7'Command'#2#4#8'ShortCut'#2'('#0#1#7'Command'#2'h'#8
+'ShortCut'#3'( '#0#1#7'Command'#3#212#0#8'ShortCut'#3'(@'#0#1#7'Command'#2#1
+#8'ShortCut'#2'%'#0#1#7'Command'#2'e'#8'ShortCut'#3'% '#0#1#7'Command'#2#5#8
+'ShortCut'#3'%@'#0#1#7'Command'#2'i'#8'ShortCut'#3'%`'#0#1#7'Command'#2#2#8
+'ShortCut'#2''''#0#1#7'Command'#2'f'#8'ShortCut'#3''' '#0#1#7'Command'#2#6#8
+'ShortCut'#3'''@'#0#1#7'Command'#2'j'#8'ShortCut'#3'''`'#0#1#7'Command'#2#10
+#8'ShortCut'#2'"'#0#1#7'Command'#2'n'#8'ShortCut'#3'" '#0#1#7'Command'#2#14#8
+'ShortCut'#3'"@'#0#1#7'Command'#2'r'#8'ShortCut'#3'"`'#0#1#7'Command'#2#9#8
+'ShortCut'#2'!'#0#1#7'Command'#2'm'#8'ShortCut'#3'! '#0#1#7'Command'#2#13#8
+'ShortCut'#3'!@'#0#1#7'Command'#2'q'#8'ShortCut'#3'!`'#0#1#7'Command'#2#7#8
+'ShortCut'#2'$'#0#1#7'Command'#2'k'#8'ShortCut'#3'$ '#0#1#7'Command'#2#15#8
+'ShortCut'#3'$@'#0#1#7'Command'#2's'#8'ShortCut'#3'$`'#0#1#7'Command'#2#8#8
+'ShortCut'#2'#'#0#1#7'Command'#2'l'#8'ShortCut'#3'# '#0#1#7'Command'#2#16#8
+'ShortCut'#3'#@'#0#1#7'Command'#2't'#8'ShortCut'#3'#`'#0#1#7'Command'#3#223#0
+#8'ShortCut'#2'-'#0#1#7'Command'#3#201#0#8'ShortCut'#3'-@'#0#1#7'Command'#3
+'\'#2#8'ShortCut'#3'- '#0#1#7'Command'#3#246#1#8'ShortCut'#2'.'#0#1#7'Comman'
+'d'#3'['#2#8'ShortCut'#3'. '#0#1#7'Command'#3#245#1#8'ShortCut'#2#8#0#1#7'Co'
+'mmand'#3#245#1#8'ShortCut'#3#8' '#0#1#7'Command'#3#248#1#8'ShortCut'#3#8'@'
+#0#1#7'Command'#3'Y'#2#8'ShortCut'#4#8#128#0#0#0#1#7'Command'#3'Z'#2#8'Short'
+'Cut'#4#8#160#0#0#0#1#7'Command'#3#253#1#8'ShortCut'#2#13#0#1#7'Command'#3
+#199#0#8'ShortCut'#3'A@'#0#1#7'Command'#3#201#0#8'ShortCut'#3'C@'#0#1#7'Comm'
+'and'#3'b'#2#8'ShortCut'#3'I`'#0#1#7'Command'#3#253#1#8'ShortCut'#3'M@'#0#1#7
+'Command'#3#254#1#8'ShortCut'#3'N@'#0#1#7'Command'#3#247#1#8'ShortCut'#3'T@'
+#0#1#7'Command'#3'c'#2#8'ShortCut'#3'U`'#0#1#7'Command'#3'\'#2#8'ShortCut'#3
+'V@'#0#1#7'Command'#3'['#2#8'ShortCut'#3'X@'#0#1#7'Command'#3#251#1#8'ShortC'
+'ut'#3'Y@'#0#1#7'Command'#3#250#1#8'ShortCut'#3'Y`'#0#1#7'Command'#3'Y'#2#8
+'ShortCut'#3'Z@'#0#1#7'Command'#3'Z'#2#8'ShortCut'#3'Z`'#0#1#7'Command'#3'-'
+#1#8'ShortCut'#3'0@'#0#1#7'Command'#3'.'#1#8'ShortCut'#3'1@'#0#1#7'Command'#3
+'/'#1#8'ShortCut'#3'2@'#0#1#7'Command'#3'0'#1#8'ShortCut'#3'3@'#0#1#7'Comman'
+'d'#3'1'#1#8'ShortCut'#3'4@'#0#1#7'Command'#3'2'#1#8'ShortCut'#3'5@'#0#1#7'C'
+'ommand'#3'3'#1#8'ShortCut'#3'6@'#0#1#7'Command'#3'4'#1#8'ShortCut'#3'7@'#0#1
+#7'Command'#3'5'#1#8'ShortCut'#3'8@'#0#1#7'Command'#3'6'#1#8'ShortCut'#3'9@'
+#0#1#7'Command'#3'_'#1#8'ShortCut'#3'0`'#0#1#7'Command'#3'`'#1#8'ShortCut'#3
+'1`'#0#1#7'Command'#3'a'#1#8'ShortCut'#3'2`'#0#1#7'Command'#3'b'#1#8'ShortCu'
+'t'#3'3`'#0#1#7'Command'#3'c'#1#8'ShortCut'#3'4`'#0#1#7'Command'#3'd'#1#8'Sh'
+'ortCut'#3'5`'#0#1#7'Command'#3'e'#1#8'ShortCut'#3'6`'#0#1#7'Command'#3'f'#1
+#8'ShortCut'#3'7`'#0#1#7'Command'#3'g'#1#8'ShortCut'#3'8`'#0#1#7'Command'#3
+'h'#1#8'ShortCut'#3'9`'#0#1#7'Command'#3#231#0#8'ShortCut'#3'N`'#0#1#7'Comma'
+'nd'#3#232#0#8'ShortCut'#3'C`'#0#1#7'Command'#3#233#0#8'ShortCut'#3'L`'#0#1#7
+'Command'#3'd'#2#8'ShortCut'#2#9#0#1#7'Command'#3'e'#2#8'ShortCut'#3#9' '#0#1
+#7'Command'#3#250#0#8'ShortCut'#3'B`'#0#0#8'ReadOnly'#9#22'SelectedColor.OnC'
+'hange'#13#0#0#0#9'TTabSheet'#5'tsImp'#7'Caption'#6#24'Im&plementation Skele'
+'ton'#12'ClientHeight'#3'='#2#11'ClientWidth'#3#245#1#0#8'TSynEdit'#6'srcImp'
+#6'Height'#3'='#2#5'Width'#3#245#1#5'Align'#7#8'alClient'#12'Font.CharSet'#7
+#12'ANSI_CHARSET'#10'Font.Color'#7#7'clBlack'#11'Font.Height'#2#236#9'Font.N'
+'ame'#6#7'Courier'#10'Font.Pitch'#7#7'fpFixed'#11'ParentColor'#8#9'PopupMenu'
+#7#10'PopupMenu2'#8'TabOrder'#2#0#23'BookMarkOptions.Xoffset'#2'Q'#24'BookMa'
+'rkOptions.OnChange'#13#17'Gutter.DigitCount'#2#5#22'Gutter.ShowLineNumbers'
+#9#22'Gutter.ShowCodeFolding'#9#15'Gutter.OnChange'#13#23'Gutter.CodeFolding'
+'Width'#2#14#11'Highlighter'#7#10'SynPasSyn1'#10'Keystrokes'#14#1#7'Command'
+#2#3#8'ShortCut'#2'&'#0#1#7'Command'#2'g'#8'ShortCut'#3'& '#0#1#7'Command'#3
+#211#0#8'ShortCut'#3'&@'#0#1#7'Command'#2#4#8'ShortCut'#2'('#0#1#7'Command'#2
+'h'#8'ShortCut'#3'( '#0#1#7'Command'#3#212#0#8'ShortCut'#3'(@'#0#1#7'Command'
,#2#1#8'ShortCut'#2'%'#0#1#7'Command'#2'e'#8'ShortCut'#3'% '#0#1#7'Command'#2
+#5#8'ShortCut'#3'%@'#0#1#7'Command'#2'i'#8'ShortCut'#3'%`'#0#1#7'Command'#2#2
+#8'ShortCut'#2''''#0#1#7'Command'#2'f'#8'ShortCut'#3''' '#0#1#7'Command'#2#6
+#8'ShortCut'#3'''@'#0#1#7'Command'#2'j'#8'ShortCut'#3'''`'#0#1#7'Command'#2
+#10#8'ShortCut'#2'"'#0#1#7'Command'#2'n'#8'ShortCut'#3'" '#0#1#7'Command'#2
+#14#8'ShortCut'#3'"@'#0#1#7'Command'#2'r'#8'ShortCut'#3'"`'#0#1#7'Command'#2
+#9#8'ShortCut'#2'!'#0#1#7'Command'#2'm'#8'ShortCut'#3'! '#0#1#7'Command'#2#13
+#8'ShortCut'#3'!@'#0#1#7'Command'#2'q'#8'ShortCut'#3'!`'#0#1#7'Command'#2#7#8
+'ShortCut'#2'$'#0#1#7'Command'#2'k'#8'ShortCut'#3'$ '#0#1#7'Command'#2#15#8
+'ShortCut'#3'$@'#0#1#7'Command'#2's'#8'ShortCut'#3'$`'#0#1#7'Command'#2#8#8
+'ShortCut'#2'#'#0#1#7'Command'#2'l'#8'ShortCut'#3'# '#0#1#7'Command'#2#16#8
+'ShortCut'#3'#@'#0#1#7'Command'#2't'#8'ShortCut'#3'#`'#0#1#7'Command'#3#223#0
+#8'ShortCut'#2'-'#0#1#7'Command'#3#201#0#8'ShortCut'#3'-@'#0#1#7'Command'#3
+'\'#2#8'ShortCut'#3'- '#0#1#7'Command'#3#246#1#8'ShortCut'#2'.'#0#1#7'Comman'
+'d'#3'['#2#8'ShortCut'#3'. '#0#1#7'Command'#3#245#1#8'ShortCut'#2#8#0#1#7'Co'
+'mmand'#3#245#1#8'ShortCut'#3#8' '#0#1#7'Command'#3#248#1#8'ShortCut'#3#8'@'
+#0#1#7'Command'#3'Y'#2#8'ShortCut'#4#8#128#0#0#0#1#7'Command'#3'Z'#2#8'Short'
+'Cut'#4#8#160#0#0#0#1#7'Command'#3#253#1#8'ShortCut'#2#13#0#1#7'Command'#3
+#199#0#8'ShortCut'#3'A@'#0#1#7'Command'#3#201#0#8'ShortCut'#3'C@'#0#1#7'Comm'
+'and'#3'b'#2#8'ShortCut'#3'I`'#0#1#7'Command'#3#253#1#8'ShortCut'#3'M@'#0#1#7
+'Command'#3#254#1#8'ShortCut'#3'N@'#0#1#7'Command'#3#247#1#8'ShortCut'#3'T@'
+#0#1#7'Command'#3'c'#2#8'ShortCut'#3'U`'#0#1#7'Command'#3'\'#2#8'ShortCut'#3
+'V@'#0#1#7'Command'#3'['#2#8'ShortCut'#3'X@'#0#1#7'Command'#3#251#1#8'ShortC'
+'ut'#3'Y@'#0#1#7'Command'#3#250#1#8'ShortCut'#3'Y`'#0#1#7'Command'#3'Y'#2#8
+'ShortCut'#3'Z@'#0#1#7'Command'#3'Z'#2#8'ShortCut'#3'Z`'#0#1#7'Command'#3'-'
+#1#8'ShortCut'#3'0@'#0#1#7'Command'#3'.'#1#8'ShortCut'#3'1@'#0#1#7'Command'#3
+'/'#1#8'ShortCut'#3'2@'#0#1#7'Command'#3'0'#1#8'ShortCut'#3'3@'#0#1#7'Comman'
+'d'#3'1'#1#8'ShortCut'#3'4@'#0#1#7'Command'#3'2'#1#8'ShortCut'#3'5@'#0#1#7'C'
+'ommand'#3'3'#1#8'ShortCut'#3'6@'#0#1#7'Command'#3'4'#1#8'ShortCut'#3'7@'#0#1
+#7'Command'#3'5'#1#8'ShortCut'#3'8@'#0#1#7'Command'#3'6'#1#8'ShortCut'#3'9@'
+#0#1#7'Command'#3'_'#1#8'ShortCut'#3'0`'#0#1#7'Command'#3'`'#1#8'ShortCut'#3
+'1`'#0#1#7'Command'#3'a'#1#8'ShortCut'#3'2`'#0#1#7'Command'#3'b'#1#8'ShortCu'
+'t'#3'3`'#0#1#7'Command'#3'c'#1#8'ShortCut'#3'4`'#0#1#7'Command'#3'd'#1#8'Sh'
+'ortCut'#3'5`'#0#1#7'Command'#3'e'#1#8'ShortCut'#3'6`'#0#1#7'Command'#3'f'#1
+#8'ShortCut'#3'7`'#0#1#7'Command'#3'g'#1#8'ShortCut'#3'8`'#0#1#7'Command'#3
+'h'#1#8'ShortCut'#3'9`'#0#1#7'Command'#3#231#0#8'ShortCut'#3'N`'#0#1#7'Comma'
+'nd'#3#232#0#8'ShortCut'#3'C`'#0#1#7'Command'#3#233#0#8'ShortCut'#3'L`'#0#1#7
+'Command'#3'd'#2#8'ShortCut'#2#9#0#1#7'Command'#3'e'#2#8'ShortCut'#3#9' '#0#1
+#7'Command'#3#250#0#8'ShortCut'#3'B`'#0#0#8'ReadOnly'#9#22'SelectedColor.OnC'
+'hange'#13#0#0#0#9'TTabSheet'#8'tsBinder'#7'Caption'#6#7'&Binder'#12'ClientH'
+'eight'#3'='#2#11'ClientWidth'#3#245#1#0#8'TSynEdit'#9'srcBinder'#6'Height'#3
+'='#2#5'Width'#3#245#1#5'Align'#7#8'alClient'#12'Font.CharSet'#7#12'ANSI_CHA'
+'RSET'#10'Font.Color'#7#7'clBlack'#11'Font.Height'#2#236#9'Font.Name'#6#7'Co'
+'urier'#10'Font.Pitch'#7#7'fpFixed'#11'ParentColor'#8#9'PopupMenu'#7#10'Popu'
+'pMenu2'#8'TabOrder'#2#0#23'BookMarkOptions.Xoffset'#2'Q'#24'BookMarkOptions'
+'.OnChange'#13#15'Gutter.AutoSize'#9#17'Gutter.DigitCount'#2#5#22'Gutter.Sho'
+'wLineNumbers'#9#22'Gutter.ShowCodeFolding'#9#15'Gutter.OnChange'#13#23'Gutt'
+'er.CodeFoldingWidth'#2#14#11'Highlighter'#7#10'SynPasSyn1'#10'Keystrokes'#14
+#1#7'Command'#2#3#8'ShortCut'#2'&'#0#1#7'Command'#2'g'#8'ShortCut'#3'& '#0#1
+#7'Command'#3#211#0#8'ShortCut'#3'&@'#0#1#7'Command'#2#4#8'ShortCut'#2'('#0#1
+#7'Command'#2'h'#8'ShortCut'#3'( '#0#1#7'Command'#3#212#0#8'ShortCut'#3'(@'#0
+#1#7'Command'#2#1#8'ShortCut'#2'%'#0#1#7'Command'#2'e'#8'ShortCut'#3'% '#0#1
+#7'Command'#2#5#8'ShortCut'#3'%@'#0#1#7'Command'#2'i'#8'ShortCut'#3'%`'#0#1#7
+'Command'#2#2#8'ShortCut'#2''''#0#1#7'Command'#2'f'#8'ShortCut'#3''' '#0#1#7
+'Command'#2#6#8'ShortCut'#3'''@'#0#1#7'Command'#2'j'#8'ShortCut'#3'''`'#0#1#7
+'Command'#2#10#8'ShortCut'#2'"'#0#1#7'Command'#2'n'#8'ShortCut'#3'" '#0#1#7
+'Command'#2#14#8'ShortCut'#3'"@'#0#1#7'Command'#2'r'#8'ShortCut'#3'"`'#0#1#7
+'Command'#2#9#8'ShortCut'#2'!'#0#1#7'Command'#2'm'#8'ShortCut'#3'! '#0#1#7'C'
+'ommand'#2#13#8'ShortCut'#3'!@'#0#1#7'Command'#2'q'#8'ShortCut'#3'!`'#0#1#7
+'Command'#2#7#8'ShortCut'#2'$'#0#1#7'Command'#2'k'#8'ShortCut'#3'$ '#0#1#7'C'
+'ommand'#2#15#8'ShortCut'#3'$@'#0#1#7'Command'#2's'#8'ShortCut'#3'$`'#0#1#7
+'Command'#2#8#8'ShortCut'#2'#'#0#1#7'Command'#2'l'#8'ShortCut'#3'# '#0#1#7'C'
+'ommand'#2#16#8'ShortCut'#3'#@'#0#1#7'Command'#2't'#8'ShortCut'#3'#`'#0#1#7
+'Command'#3#223#0#8'ShortCut'#2'-'#0#1#7'Command'#3#201#0#8'ShortCut'#3'-@'#0
,#1#7'Command'#3'\'#2#8'ShortCut'#3'- '#0#1#7'Command'#3#246#1#8'ShortCut'#2
+'.'#0#1#7'Command'#3'['#2#8'ShortCut'#3'. '#0#1#7'Command'#3#245#1#8'ShortCu'
+'t'#2#8#0#1#7'Command'#3#245#1#8'ShortCut'#3#8' '#0#1#7'Command'#3#248#1#8'S'
+'hortCut'#3#8'@'#0#1#7'Command'#3'Y'#2#8'ShortCut'#4#8#128#0#0#0#1#7'Command'
+#3'Z'#2#8'ShortCut'#4#8#160#0#0#0#1#7'Command'#3#253#1#8'ShortCut'#2#13#0#1#7
+'Command'#3#199#0#8'ShortCut'#3'A@'#0#1#7'Command'#3#201#0#8'ShortCut'#3'C@'
+#0#1#7'Command'#3'b'#2#8'ShortCut'#3'I`'#0#1#7'Command'#3#253#1#8'ShortCut'#3
+'M@'#0#1#7'Command'#3#254#1#8'ShortCut'#3'N@'#0#1#7'Command'#3#247#1#8'Short'
+'Cut'#3'T@'#0#1#7'Command'#3'c'#2#8'ShortCut'#3'U`'#0#1#7'Command'#3'\'#2#8
+'ShortCut'#3'V@'#0#1#7'Command'#3'['#2#8'ShortCut'#3'X@'#0#1#7'Command'#3#251
+#1#8'ShortCut'#3'Y@'#0#1#7'Command'#3#250#1#8'ShortCut'#3'Y`'#0#1#7'Command'
+#3'Y'#2#8'ShortCut'#3'Z@'#0#1#7'Command'#3'Z'#2#8'ShortCut'#3'Z`'#0#1#7'Comm'
+'and'#3'-'#1#8'ShortCut'#3'0@'#0#1#7'Command'#3'.'#1#8'ShortCut'#3'1@'#0#1#7
+'Command'#3'/'#1#8'ShortCut'#3'2@'#0#1#7'Command'#3'0'#1#8'ShortCut'#3'3@'#0
+#1#7'Command'#3'1'#1#8'ShortCut'#3'4@'#0#1#7'Command'#3'2'#1#8'ShortCut'#3'5'
+'@'#0#1#7'Command'#3'3'#1#8'ShortCut'#3'6@'#0#1#7'Command'#3'4'#1#8'ShortCut'
+#3'7@'#0#1#7'Command'#3'5'#1#8'ShortCut'#3'8@'#0#1#7'Command'#3'6'#1#8'Short'
+'Cut'#3'9@'#0#1#7'Command'#3'_'#1#8'ShortCut'#3'0`'#0#1#7'Command'#3'`'#1#8
+'ShortCut'#3'1`'#0#1#7'Command'#3'a'#1#8'ShortCut'#3'2`'#0#1#7'Command'#3'b'
+#1#8'ShortCut'#3'3`'#0#1#7'Command'#3'c'#1#8'ShortCut'#3'4`'#0#1#7'Command'#3
+'d'#1#8'ShortCut'#3'5`'#0#1#7'Command'#3'e'#1#8'ShortCut'#3'6`'#0#1#7'Comman'
+'d'#3'f'#1#8'ShortCut'#3'7`'#0#1#7'Command'#3'g'#1#8'ShortCut'#3'8`'#0#1#7'C'
+'ommand'#3'h'#1#8'ShortCut'#3'9`'#0#1#7'Command'#3#231#0#8'ShortCut'#3'N`'#0
+#1#7'Command'#3#232#0#8'ShortCut'#3'C`'#0#1#7'Command'#3#233#0#8'ShortCut'#3
+'L`'#0#1#7'Command'#3'd'#2#8'ShortCut'#2#9#0#1#7'Command'#3'e'#2#8'ShortCut'
+#3#9' '#0#1#7'Command'#3#250#0#8'ShortCut'#3'B`'#0#0#8'ReadOnly'#9#22'Select'
+'edColor.OnChange'#13#0#0#0#9'TTabSheet'#5'tsLog'#7'Caption'#6#4'&Log'#12'Cl'
+'ientHeight'#3'='#2#11'ClientWidth'#3#245#1#0#5'TMemo'#6'mmoLog'#6'Height'#3
+'='#2#5'Width'#3#245#1#5'Align'#7#8'alClient'#13'Lines.Strings'#1#6#0#0#10'S'
+'crollBars'#7#6'ssBoth'#8'TabOrder'#2#0#0#0#0#0#0#9'TSplitter'#9'Splitter1'#4
+'Left'#3':'#1#6'Height'#3'Y'#2#5'Width'#2#8#5'Color'#7#7'clBlack'#11'ParentC'
+'olor'#8#0#0#9'TMainMenu'#9'MainMenu1'#4'left'#3'`'#1#3'top'#2'p'#0#9'TMenuI'
+'tem'#9'MenuItem1'#7'Caption'#6#6'&Files'#0#9'TMenuItem'#10'MenuItem16'#6'Ac'
+'tion'#7#10'actNewFile'#7'OnClick'#7#17'actNewFileExecute'#0#0#9'TMenuItem'#9
+'MenuItem2'#7'Caption'#6#1'-'#7'OnClick'#7#18'actOpenFileExecute'#0#0#9'TMen'
+'uItem'#9'MenuItem5'#6'Action'#7#11'actOpenFile'#7'OnClick'#7#18'actOpenFile'
+'Execute'#0#0#9'TMenuItem'#9'MenuItem3'#6'Action'#7#9'actExport'#7'OnClick'#7
+#16'actExportExecute'#0#0#9'TMenuItem'#9'MenuItem7'#6'Action'#7#9'actSaveAs'
+#7'OnClick'#7#16'actSaveAsExecute'#0#0#9'TMenuItem'#10'MenuItem17'#7'Caption'
+#6#1'-'#0#0#9'TMenuItem'#9'MenuItem4'#6'Action'#7#7'actExit'#7'OnClick'#7#14
+'actExitExecute'#0#0#0#9'TMenuItem'#10'MenuItem14'#7'Caption'#6#5'&View'#0#9
+'TMenuItem'#10'MenuItem15'#6'Action'#7#14'actRefreshView'#7'OnClick'#7#21'ac'
+'tRefreshViewExecute'#0#0#9'TMenuItem'#10'MenuItem29'#7'Caption'#6#1'-'#0#0#9
+'TMenuItem'#10'MenuItem30'#6'Action'#7#13'actFullExpand'#7'OnClick'#7#20'act'
+'FullExpandExecute'#0#0#9'TMenuItem'#10'MenuItem31'#6'Action'#7#15'actFullCo'
+'llapse'#7'OnClick'#7#22'actFullCollapseExecute'#0#0#0#9'TMenuItem'#10'MenuI'
+'tem10'#7'Caption'#6#8'&Edition'#0#9'TMenuItem'#10'MenuItem11'#6'Action'#7#13
+'actEnumCreate'#7'OnClick'#7#20'actEnumCreateExecute'#0#0#9'TMenuItem'#10'Me'
+'nuItem23'#6'Action'#7#17'actCompoundCreate'#7'OnClick'#7#24'actCompoundCrea'
+'teExecute'#0#0#9'TMenuItem'#10'MenuItem25'#6'Action'#7#13'actIntfCreate'#7
+'OnClick'#7#20'actIntfCreateExecute'#0#0#9'TMenuItem'#10'MenuItem12'#7'Capti'
+'on'#6#1'-'#0#0#9'TMenuItem'#10'MenuItem13'#6'Action'#7#15'actUpdateObject'#7
+'Caption'#6#13'Update Object'#7'OnClick'#7#22'actUpdateObjectExecute'#0#0#0#9
+'TMenuItem'#9'MenuItem6'#6'Action'#7#8'actAbout'#7'Caption'#6#6'&About'#7'On'
+'Click'#7#15'actAboutExecute'#0#0#0#11'TActionList'#2'AL'#4'left'#3'X'#1#3't'
+'op'#2'8'#0#7'TAction'#11'actOpenFile'#7'Caption'#6#9'Open File'#18'DisableI'
+'fNoHandler'#9#9'OnExecute'#7#18'actOpenFileExecute'#0#0#7'TAction'#7'actExi'
+'t'#7'Caption'#6#4'Exit'#18'DisableIfNoHandler'#9#9'OnExecute'#7#14'actExitE'
+'xecute'#0#0#7'TAction'#9'actExport'#7'Caption'#6#24'Save generated files ..'
+'.'#18'DisableIfNoHandler'#9#9'OnExecute'#7#16'actExportExecute'#8'OnUpdate'
+#7#15'actExportUpdate'#0#0#7'TAction'#8'actAbout'#7'Caption'#6#5'About'#18'D'
+'isableIfNoHandler'#9#9'OnExecute'#7#15'actAboutExecute'#0#0#7'TAction'#9'ac'
+'tSaveAs'#7'Caption'#6#11'Save As ...'#18'DisableIfNoHandler'#9#9'OnExecute'
+#7#16'actSaveAsExecute'#8'OnUpdate'#7#15'actExportUpdate'#0#0#7'TAction'#13
,'actEnumCreate'#7'Caption'#6#18'Create Enumeration'#18'DisableIfNoHandler'#9
+#9'OnExecute'#7#20'actEnumCreateExecute'#0#0#7'TAction'#15'actUpdateObject'#7
+'Caption'#6#6'Update'#18'DisableIfNoHandler'#9#9'OnExecute'#7#22'actUpdateOb'
+'jectExecute'#8'OnUpdate'#7#21'actUpdateObjectUpdate'#0#0#7'TAction'#14'actR'
+'efreshView'#7'Caption'#6#14'&Refresh Views'#18'DisableIfNoHandler'#9#9'OnEx'
+'ecute'#7#21'actRefreshViewExecute'#0#0#7'TAction'#10'actNewFile'#7'Caption'
+#6#8'New File'#18'DisableIfNoHandler'#9#9'OnExecute'#7#17'actNewFileExecute'
+#0#0#7'TAction'#17'actCompoundCreate'#7'Caption'#6#20'Create Compound Type'
+#18'DisableIfNoHandler'#9#9'OnExecute'#7#24'actCompoundCreateExecute'#0#0#7
+'TAction'#13'actIntfCreate'#7'Caption'#6#16'Create Interface'#18'DisableIfNo'
+'Handler'#9#9'OnExecute'#7#20'actIntfCreateExecute'#0#0#7'TAction'#13'actFul'
+'lExpand'#7'Caption'#6#11'Full expand'#18'DisableIfNoHandler'#9#9'OnExecute'
+#7#20'actFullExpandExecute'#0#0#7'TAction'#15'actFullCollapse'#7'Caption'#6
+#13'Full Collapse'#18'DisableIfNoHandler'#9#9'OnExecute'#7#22'actFullCollaps'
+'eExecute'#0#0#0#11'TOpenDialog'#2'OD'#5'Title'#6#26'Ouvrir un fichier exist'
+'ant'#6'Filter'#6#25'WDSL files(*.WSDL)|*.WSDL'#11'FilterIndex'#2#0#10'Initi'
+'alDir'#6#2'.\'#7'Options'#11#15'ofPathMustExist'#15'ofFileMustExist'#14'ofE'
+'nableSizing'#12'ofViewDetail'#0#4'left'#3#153#1#3'top'#2'X'#0#0#10'TSynPasS'
+'yn'#10'SynPasSyn1'#7'Enabled'#8#23'CommentAttri.Foreground'#7#6'clBlue'#18
+'CommentAttri.Style'#11#6'fsBold'#0#22'StringAttri.Foreground'#7#8'clMaroon'
+#17'SymbolAttri.Style'#11#6'fsBold'#0#25'DirectiveAttri.Foreground'#7#7'clGr'
+'een'#20'DirectiveAttri.Style'#11#6'fsBold'#0#14'NestedComments'#9#4'left'#3
+#183#1#3'top'#2'h'#0#0#22'TSelectDirectoryDialog'#3'SDD'#5'Title'#6#16'Selec'
+'t Directory'#11'FilterIndex'#2#0#7'Options'#11#15'ofPathMustExist'#14'ofEna'
+'bleSizing'#12'ofViewDetail'#0#4'left'#3#176#1#3'top'#3#152#0#0#0#11'TSaveDi'
+'alog'#2'SD'#5'Title'#6#27'Enregistrer le fichier sous'#10'DefaultExt'#6#5'.'
+'WSDL'#6'Filter'#6#25'WDSL files(*.WSDL)|*.WSDL'#11'FilterIndex'#2#0#7'Optio'
+'ns'#11#15'ofPathMustExist'#14'ofEnableSizing'#12'ofViewDetail'#0#4'left'#3
+#242#1#3'top'#3#174#0#0#0#10'TPopupMenu'#10'PopupMenu1'#4'left'#3#128#1#3'to'
+'p'#3#8#1#0#9'TMenuItem'#10'MenuItem28'#6'Action'#7#13'actFullExpand'#7'OnCl'
+'ick'#7#20'actFullExpandExecute'#0#0#9'TMenuItem'#10'MenuItem27'#6'Action'#7
+#15'actFullCollapse'#7'OnClick'#7#22'actFullCollapseExecute'#0#0#9'TMenuItem'
+#10'MenuItem26'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#9'MenuItem8'#6'Action'#7
+#13'actEnumCreate'#7'OnClick'#7#20'actEnumCreateExecute'#0#0#9'TMenuItem'#10
+'MenuItem21'#6'Action'#7#17'actCompoundCreate'#7'OnClick'#7#24'actCompoundCr'
+'eateExecute'#0#0#9'TMenuItem'#10'MenuItem24'#6'Action'#7#13'actIntfCreate'#7
+'OnClick'#7#20'actIntfCreateExecute'#0#0#9'TMenuItem'#10'MenuItem22'#7'Capti'
+'on'#6#1'-'#0#0#9'TMenuItem'#9'MenuItem9'#6'Action'#7#15'actUpdateObject'#7
+'OnClick'#7#22'actUpdateObjectExecute'#0#0#0#10'TPopupMenu'#10'PopupMenu2'#4
+'left'#3#16#2#3'top'#3#235#0#0#9'TMenuItem'#10'MenuItem18'#6'Action'#7#14'ac'
+'tRefreshView'#7'OnClick'#7#21'actRefreshViewExecute'#0#0#9'TMenuItem'#10'Me'
+'nuItem19'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#10'MenuItem20'#6'Action'#7#9'a'
+'ctExport'#7'OnClick'#7#16'actExportExecute'#0#0#0#0
]);

View File

@ -1,552 +0,0 @@
unit umain;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, ComCtrls,
ExtCtrls, Menus, ActnList,
pastree, pascal_parser_intf, logger_intf,
SynHighlighterPas, SynEdit, StdCtrls;
type
{ TfMain }
TfMain = class(TForm)
actExit: TAction;
actExport: TAction;
actAbout: TAction;
actEnumCreate: TAction;
actCompoundCreate: TAction;
actIntfCreate: TAction;
actFullExpand: TAction;
actFullCollapse: TAction;
actNewFile: TAction;
actRefreshView: TAction;
actUpdateObject: TAction;
actSaveAs: TAction;
actOpenFile: TAction;
AL: TActionList;
MainMenu1: TMainMenu;
MenuItem10: TMenuItem;
MenuItem11: TMenuItem;
MenuItem12: TMenuItem;
MenuItem13: TMenuItem;
MenuItem14: TMenuItem;
MenuItem15: TMenuItem;
MenuItem16: TMenuItem;
MenuItem17: TMenuItem;
MenuItem18: TMenuItem;
MenuItem19: TMenuItem;
MenuItem20: TMenuItem;
MenuItem21: TMenuItem;
MenuItem22: TMenuItem;
MenuItem23: TMenuItem;
MenuItem24: TMenuItem;
MenuItem25: TMenuItem;
MenuItem26: TMenuItem;
MenuItem27: TMenuItem;
MenuItem28: TMenuItem;
MenuItem29: TMenuItem;
MenuItem30: TMenuItem;
MenuItem31: TMenuItem;
MenuItem5: TMenuItem;
MenuItem6: TMenuItem;
MenuItem7: TMenuItem;
MenuItem8: TMenuItem;
MenuItem9: TMenuItem;
mmoLog: TMemo;
MenuItem1: TMenuItem;
MenuItem2: TMenuItem;
MenuItem3: TMenuItem;
MenuItem4: TMenuItem;
OD: TOpenDialog;
PC: TPageControl;
Panel1: TPanel;
Panel2: TPanel;
PopupMenu1: TPopupMenu;
PopupMenu2: TPopupMenu;
SD: TSaveDialog;
SDD: TSelectDirectoryDialog;
Splitter1: TSplitter;
srcInterface: TSynEdit;
SB: TStatusBar;
srcImp: TSynEdit;
srcBinder: TSynEdit;
srcProxy: TSynEdit;
SynPasSyn1: TSynPasSyn;
tsLog: TTabSheet;
tsImp: TTabSheet;
tsBinder: TTabSheet;
tsInterface: TTabSheet;
tsProxy: TTabSheet;
trvSchema: TTreeView;
procedure actAboutExecute(Sender: TObject);
procedure actCompoundCreateExecute(Sender: TObject);
procedure actEnumCreateExecute(Sender: TObject);
procedure actExitExecute(Sender: TObject);
procedure actExportExecute(Sender: TObject);
procedure actExportUpdate(Sender: TObject);
procedure actFullCollapseExecute(Sender: TObject);
procedure actFullExpandExecute(Sender: TObject);
procedure actIntfCreateExecute(Sender: TObject);
procedure actNewFileExecute(Sender: TObject);
procedure actOpenFileExecute(Sender: TObject);
procedure actRefreshViewExecute(Sender: TObject);
procedure actSaveAsExecute(Sender: TObject);
procedure actUpdateObjectExecute(Sender: TObject);
procedure actUpdateObjectUpdate(Sender: TObject);
procedure FormShow(Sender: TObject);
private
FSymbolTable : TwstPasTreeContainer;
FStatusMessageTag : PtrInt;
private
function GetTypeNode() : TTreeNode;
function GetInterfaceNode() : TTreeNode;
private
procedure ShowStatusMessage(const AMsgType : TMessageType;const AMsg : string);
procedure RenderSymbols();
procedure RenderSources();
public
constructor Create(AOwner : TComponent);override;
destructor Destroy();override;
end;
var
fMain: TfMain;
implementation
uses view_helper, DOM, XMLRead, XMLWrite, HeapTrc,
wsdl2pas_imp, source_utils, command_line_parser, generator, metadata_generator,
binary_streamer, wst_resources_utils, wsdl_generator,
uabout, edit_helper, udm;
const
DEF_FILE_NAME = 'library1';
sWST_META = 'wst_meta';
type
TSourceType = cloInterface .. cloBinder;
TSourceTypes = set of TSourceType;
function ParseWsdlFile(
const AFileName : string;
const ANotifier : TOnParserMessage
):TwstPasTreeContainer;
var
locDoc : TXMLDocument;
prsr : TWsdlParser;
symName : string;
begin
Result := nil;
if FileExists(AFileName) then begin
symName := ChangeFileExt(ExtractFileName(AFileName),'');
if ( symName[Length(symName)] = '.' ) then begin
Delete(symName,Length(symName),1);
end;
prsr := nil;
ReadXMLFile(locDoc,AFileName);
try
Result := TwstPasTreeContainer.Create();
try
prsr := TWsdlParser.Create(locDoc,Result);
prsr.OnMessage := ANotifier;
prsr.Parse(pmAllTypes,symName);
except
FreeAndNil(Result);
raise;
end;
finally
FreeAndNil(prsr);
FreeAndNil(locDoc);
end;
end;
end;
type TOutputType = ( otMemory, otFileSystem );
function GenerateSource(
ASymbolTable : TwstPasTreeContainer;
AOptions : TSourceTypes;
const AOutputType : TOutputType;
const AOutPath : string;
const ANotifier : TOnParserMessage
) : ISourceManager;
procedure Notify(const AMsg : string);
begin
if Assigned(ANotifier) then begin
ANotifier(mtInfo, AMsg);
end;
end;
var
mtdaFS: TMemoryStream;
g : TBaseGenerator;
mg : TMetadataGenerator;
rsrcStrm : TMemoryStream;
begin
Result := CreateSourceManager();
rsrcStrm := nil;
mtdaFS := nil;
mg := nil;
g := Nil;
try
if ( cloInterface in AOptions ) then begin
Notify('Interface file generation...');
g := TInftGenerator.Create(ASymbolTable,Result);
g.Execute();
FreeAndNil(g);
end;
if ( cloProxy in AOptions ) then begin
Notify('Proxy file generation...');
g := TProxyGenerator.Create(ASymbolTable,Result);
g.Execute();
FreeAndNil(g);
end;
if ( cloBinder in AOptions ) then begin
Notify('Binder file generation...');
g := TBinderGenerator.Create(ASymbolTable,Result);
g.Execute();
FreeAndNil(g);
end;
if ( cloImp in AOptions ) then begin
Notify('Implementation file generation...');
g := TImplementationGenerator.Create(ASymbolTable,Result);
g.Execute();
FreeAndNil(g);
end;
if ( AOutputType = otFileSystem ) and ( [cloBinder,cloProxy]*AOptions <> [] ) then begin
Notify('Metadata file generation...');
mtdaFS := TMemoryStream.Create();
mg := TMetadataGenerator.Create(ASymbolTable,CreateBinaryWriter(mtdaFS));
mg.Execute();
mtdaFS.SaveToFile(AOutPath + Format('%s.%s',[ASymbolTable.CurrentModule.Name,sWST_META]));
rsrcStrm := TMemoryStream.Create();
mtdaFS.Position := 0;
BinToWstRessource(UpperCase(ASymbolTable.CurrentModule.Name),mtdaFS,rsrcStrm);
rsrcStrm.SaveToFile(AOutPath + Format('%s.%s',[ASymbolTable.CurrentModule.Name,sWST_EXTENSION]));
end;
if ( AOutputType = otFileSystem ) then begin
Result.SaveToFile(AOutPath);
end;
finally
rsrcStrm.Free();
mg.Free();;
mtdaFS.Free();;
g.Free();
end;
end;
procedure GenerateWSDL_ToStream(ASymbol : TwstPasTreeContainer; ADest : TStream);
var
doc : TXMLDocument;
begin
doc := TXMLDocument.Create();
try
GenerateWSDL(ASymbol,doc);
WriteXML(doc,ADest);
finally
FreeAndNil(doc);
end;
end;
function CreateSymbolTable(const AName : string):TwstPasTreeContainer ;
begin
Result := TwstPasTreeContainer.Create();
try
CreateWstInterfaceSymbolTable(Result);
Result.CreateElement(TPasModule,AName,Result.Package,visDefault,'',0);
Result.CurrentModule.InterfaceSection := TPasSection(Result.CreateElement(TPasSection,'',Result.CurrentModule,visDefault,'',0));
except
FreeAndNil(Result);
raise;
end;
end;
{ TfMain }
procedure TfMain.actOpenFileExecute(Sender: TObject);
var
tmpTable : TwstPasTreeContainer;
curLok : IInterface;
begin
if OD.Execute() then begin
mmoLog.Clear();
PC.ActivePage := tsLog;
curLok := SetCursorHourGlass();
tmpTable := ParseWsdlFile(OD.FileName,@ShowStatusMessage);
if Assigned(tmpTable) then begin
trvSchema.Items.Clear();
FreeAndNil(FSymbolTable);
FSymbolTable := tmpTable;
RenderSymbols();
PC.ActivePage := tsInterface;
end;
end;
curLok := nil;
end;
procedure TfMain.actRefreshViewExecute(Sender: TObject);
begin
RenderSymbols();
end;
procedure TfMain.actSaveAsExecute(Sender: TObject);
var
mstrm : TMemoryStream;
begin
if SD.Execute() then begin
mstrm := TMemoryStream.Create();
try
GenerateWSDL_ToStream(FSymbolTable,mstrm);
mstrm.SaveToFile(SD.FileName);
finally
FreeAndNil(mstrm);
end;
end;
end;
procedure TfMain.actUpdateObjectExecute(Sender: TObject);
var
o : TPasElement;
nd, nd_1 : TTreeNode;
begin
nd := trvSchema.Selected;
if Assigned(nd) and Assigned(nd.Data) then begin
o := TPasElement(nd.Data);
if HasEditor(o) then begin
UpdateObject(o,FSymbolTable);
nd_1 := nd;
trvSchema.BeginUpdate();
try
nd := FindPainter(o).Paint(FSymbolTable,o,GetTypeNode());
nd.MoveTo(nd_1,naInsertBehind);
FreeAndNil(nd_1);
finally
trvSchema.EndUpdate();
end;
end;
end;
end;
procedure TfMain.actUpdateObjectUpdate(Sender: TObject);
begin
TAction(Sender).Enabled :=
Assigned(trvSchema.Selected) and
Assigned(trvSchema.Selected.Data) and
HasEditor(TPasElement(trvSchema.Selected.Data));
end;
procedure TfMain.FormShow(Sender: TObject);
begin
RenderSymbols();
end;
function TfMain.GetTypeNode(): TTreeNode;
begin
Result := trvSchema.TopItem.GetFirstChild().Items[1];
end;
function TfMain.GetInterfaceNode(): TTreeNode;
begin
Result := trvSchema.TopItem.GetFirstChild().Items[2];
end;
procedure TfMain.ShowStatusMessage(const AMsgType : TMessageType;const AMsg: string);
begin
mmoLog.Lines.Add(Format('%s : %s',[MessageTypeNames[AMsgType],AMsg]));
SB.Panels[1].Text := AMsg;
Inc(FStatusMessageTag);
if ( (FStatusMessageTag) > 23 ) then begin
FStatusMessageTag := 0;
Application.ProcessMessages();
end;
end;
procedure TfMain.actExitExecute(Sender: TObject);
begin
Close();
end;
procedure TfMain.actAboutExecute(Sender: TObject);
var
fa : TfAbout;
begin
fa := TfAbout.Create(Self);
try
fa.ShowModal();
finally
fa.Release();
end;
end;
procedure TfMain.actCompoundCreateExecute(Sender: TObject);
var
e : TPasClassType;
begin
e := CreateCompoundObject(FSymbolTable);
if Assigned(e) then begin
FindPainter(e).Paint(FSymbolTable,e,GetTypeNode());
end;
end;
procedure TfMain.actEnumCreateExecute(Sender: TObject);
var
e : TPasEnumType;
begin
e := CreateEnum(FSymbolTable);
if Assigned(e) then begin
FindPainter(e).Paint(FSymbolTable,e,GetTypeNode());
end;
end;
procedure TfMain.actExportExecute(Sender: TObject);
var
curLok : IInterface;
begin
if SDD.Execute() then begin
curLok := SetCursorHourGlass();
GenerateSource(
FSymbolTable,
[cloInterface,cloProxy,cloImp,cloBinder],
otFileSystem,
IncludeTrailingBackslash(SDD.FileName),
nil
);
curLok := nil;
end;
end;
procedure TfMain.actExportUpdate(Sender: TObject);
begin
TAction(Sender).Enabled := Assigned(FSymbolTable) and ( FSymbolTable.CurrentModule.InterfaceSection.Declarations.Count > 0 );
end;
procedure TfMain.actFullCollapseExecute(Sender: TObject);
begin
trvSchema.FullCollapse();
end;
procedure TfMain.actFullExpandExecute(Sender: TObject);
begin
trvSchema.FullExpand();
end;
procedure TfMain.actIntfCreateExecute(Sender: TObject);
var
e : TPasClassType;
begin
e := CreateInterface(FSymbolTable);
if Assigned(e) then begin
FindPainter(e).Paint(FSymbolTable,e,GetInterfaceNode());
end;
end;
procedure TfMain.actNewFileExecute(Sender: TObject);
var
res : Integer;
begin
res := MessageDlg(Application.Title,'Save the current file before ?',mtConfirmation,mbYesNoCancel,0,mbYes);
if ( res = mrCancel ) then begin
Exit;
end;
if ( res = mrYes ) then begin
actSaveAs.Execute();
end;
FreeAndNil(FSymbolTable);
FSymbolTable := CreateSymbolTable(ExtractFileName(DEF_FILE_NAME));
RenderSymbols();
end;
procedure TfMain.RenderSymbols();
var
objPtr : ISymbolPainter;
nd : TTreeNode;
begin
trvSchema.BeginUpdate();
try
trvSchema.Items.Clear();
srcInterface.ClearAll();
nd := trvSchema.Items.AddFirst(nil,'Type Library Editor');
nd.ImageIndex := -1;
nd.StateIndex := -1;
nd.SelectedIndex := -1;
if Assigned(FSymbolTable) then begin
objPtr := FindPainter(FSymbolTable.Package);
if Assigned(objPtr) then begin
objPtr.Paint(FSymbolTable,FSymbolTable.Package,trvSchema.TopItem);
end;
RenderSources();
end;
trvSchema.Items[0].Expand(False);
trvSchema.Items[0].Items[0].Expand(False);
finally
trvSchema.EndUpdate();
end;
ShowStatusMessage(mtInfo,'');
end;
procedure TfMain.RenderSources();
procedure LoadText(const AList : TStrings; ASrc : ISourceStream);
var
srcItemSV : ISavableSourceStream;
begin
if Supports(ASrc,ISavableSourceStream,srcItemSV) then begin
srcItemSV.GetStream().Position := 0;
AList.LoadFromStream(srcItemSV.GetStream());
end;
end;
var
srcMngr : ISourceManager;
begin
if Assigned(FSymbolTable) then begin
if ( FSymbolTable.CurrentModule.InterfaceSection.Declarations.Count > 0 ) then begin
srcMngr := GenerateSource(FSymbolTable,[cloInterface,cloProxy,cloBinder,cloImp],otMemory,'',@ShowStatusMessage);
if Assigned(srcMngr) and ( srcMngr.GetCount() > 0 ) then begin
LoadText(srcInterface.Lines,srcMngr.GetItem(0));
LoadText(srcProxy.Lines,srcMngr.GetItem(1));
LoadText(srcBinder.Lines,srcMngr.GetItem(2));
LoadText(srcImp.Lines,srcMngr.GetItem(3));
end;
end else begin
srcInterface.ClearAll();
srcProxy.ClearAll();
srcBinder.ClearAll();
srcImp.ClearAll();
end;
end;
ShowStatusMessage(mtInfo,'');
end;
constructor TfMain.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FSymbolTable := CreateSymbolTable(ExtractFileName(DEF_FILE_NAME));
trvSchema.Images := DM.IM;
end;
destructor TfMain.Destroy();
begin
trvSchema.Items.Clear();
FreeAndNil(FSymbolTable);
inherited Destroy();
end;
initialization
SetHeapTraceOutput('heap_trace.txt');
{$I umain.lrs}
end.

View File

@ -1,7 +1,7 @@
object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
Left = 142
Left = 217
Height = 644
Top = 192
Top = 507
Width = 833
HorzScrollBar.Page = 832
VertScrollBar.Page = 623
@ -1985,7 +1985,7 @@ object fWstTypeLibraryEdit: TfWstTypeLibraryEdit
end
object OD: TOpenDialog
Title = 'Ouvrir un fichier existant'
Filter = 'WDSL files(*.WSDL)|*.WSDL'
Filter = 'WDSL files(*.WSDL)|*.WSDL|Pascal file (*.pas)|*.pas'
FilterIndex = 0
InitialDir = '.\'
Options = [ofPathMustExist, ofFileMustExist, ofEnableSizing, ofViewDetail]

View File

@ -1,8 +1,8 @@
{ Ceci est un fichier ressource g�n�r� automatiquement par Lazarus }
LazarusResources.Add('TfWstTypeLibraryEdit','FORMDATA',[
'TPF0'#20'TfWstTypeLibraryEdit'#19'fWstTypeLibraryEdit'#4'Left'#3#142#0#6'Hei'
+'ght'#3#132#2#3'Top'#3#192#0#5'Width'#3'A'#3#18'HorzScrollBar.Page'#3'@'#3#18
'TPF0'#20'TfWstTypeLibraryEdit'#19'fWstTypeLibraryEdit'#4'Left'#3#217#0#6'Hei'
+'ght'#3#132#2#3'Top'#3#251#1#5'Width'#3'A'#3#18'HorzScrollBar.Page'#3'@'#3#18
+'VertScrollBar.Page'#3'o'#2#13'ActiveControl'#7#9'trvSchema'#7'Caption'#6'+['
+'Web Services Toolkit ] Type Library Editor'#12'ClientHeight'#3'p'#2#11'Clie'
+'ntWidth'#3'A'#3#4'Menu'#7#9'MainMenu1'#7'OnClose'#7#9'FormClose'#6'OnShow'#7
@ -324,33 +324,33 @@ LazarusResources.Add('TfWstTypeLibraryEdit','FORMDATA',[
,'DisableIfNoHandler'#9#9'OnExecute'#7#22'actFullCollapseExecute'#0#0#7'TActi'
+'on'#7'actSave'#7'Caption'#6#4'Save'#18'DisableIfNoHandler'#9#9'OnExecute'#7
+#14'actSaveExecute'#0#0#0#11'TOpenDialog'#2'OD'#5'Title'#6#26'Ouvrir un fich'
+'ier existant'#6'Filter'#6#25'WDSL files(*.WSDL)|*.WSDL'#11'FilterIndex'#2#0
+#10'InitialDir'#6#2'.\'#7'Options'#11#15'ofPathMustExist'#15'ofFileMustExist'
+#14'ofEnableSizing'#12'ofViewDetail'#0#4'left'#3#153#1#3'top'#2'X'#0#0#10'TS'
+'ynPasSyn'#10'SynPasSyn1'#7'Enabled'#8#23'CommentAttri.Foreground'#7#6'clBlu'
+'e'#18'CommentAttri.Style'#11#6'fsBold'#0#22'StringAttri.Foreground'#7#8'clM'
+'aroon'#17'SymbolAttri.Style'#11#6'fsBold'#0#25'DirectiveAttri.Foreground'#7
+#7'clGreen'#20'DirectiveAttri.Style'#11#6'fsBold'#0#14'NestedComments'#9#4'l'
+'eft'#3#183#1#3'top'#2'h'#0#0#11'TSaveDialog'#2'SD'#5'Title'#6#27'Enregistre'
+'r le fichier sous'#10'DefaultExt'#6#5'.WSDL'#6'Filter'#6#25'WDSL files(*.WS'
+'DL)|*.WSDL'#11'FilterIndex'#2#0#7'Options'#11#15'ofPathMustExist'#14'ofEnab'
+'leSizing'#12'ofViewDetail'#0#4'left'#3#242#1#3'top'#3#176#0#0#0#10'TPopupMe'
+'nu'#10'PopupMenu1'#4'left'#3#128#1#3'top'#3#8#1#0#9'TMenuItem'#10'MenuItem2'
+'8'#6'Action'#7#13'actFullExpand'#7'OnClick'#7#20'actFullExpandExecute'#0#0#9
+'TMenuItem'#10'MenuItem27'#6'Action'#7#15'actFullCollapse'#7'OnClick'#7#22'a'
+'ctFullCollapseExecute'#0#0#9'TMenuItem'#10'MenuItem26'#7'Caption'#6#1'-'#0#0
+#9'TMenuItem'#9'MenuItem8'#6'Action'#7#13'actEnumCreate'#7'OnClick'#7#20'act'
+'EnumCreateExecute'#0#0#9'TMenuItem'#10'MenuItem21'#6'Action'#7#17'actCompou'
+'ndCreate'#7'OnClick'#7#24'actCompoundCreateExecute'#0#0#9'TMenuItem'#10'Men'
+'uItem24'#6'Action'#7#13'actIntfCreate'#7'OnClick'#7#20'actIntfCreateExecute'
+#0#0#9'TMenuItem'#10'MenuItem22'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#9'MenuIt'
+'em9'#6'Action'#7#15'actUpdateObject'#7'OnClick'#7#22'actUpdateObjectExecute'
+#0#0#0#10'TPopupMenu'#10'PopupMenu2'#4'left'#3#16#2#3'top'#3#235#0#0#9'TMenu'
+'Item'#10'MenuItem18'#6'Action'#7#14'actRefreshView'#7'OnClick'#7#21'actRefr'
+'eshViewExecute'#0#0#9'TMenuItem'#10'MenuItem19'#7'Caption'#6#1'-'#0#0#9'TMe'
+'nuItem'#10'MenuItem20'#6'Action'#7#9'actExport'#7'OnClick'#7#16'actExportEx'
+'ecute'#0#0#0#10'TSynXMLSyn'#10'SynXMLSyn1'#13'DefaultFilter'#6#30'Documents'
+' WSDL (*.wsdl)|*.wsdl'#7'Enabled'#8#23'ElementAttri.Foreground'#7#6'clNavy'
+#30'AttributeValueAttri.Foreground'#7#8'clPurple'#16'WantBracesParsed'#8#4'l'
+'eft'#3#210#1#3'top'#3#252#0#0#0#0
+'ier existant'#6'Filter'#6'3WDSL files(*.WSDL)|*.WSDL|Pascal file (*.pas)|*.'
+'pas'#11'FilterIndex'#2#0#10'InitialDir'#6#2'.\'#7'Options'#11#15'ofPathMust'
+'Exist'#15'ofFileMustExist'#14'ofEnableSizing'#12'ofViewDetail'#0#4'left'#3
+#153#1#3'top'#2'X'#0#0#10'TSynPasSyn'#10'SynPasSyn1'#7'Enabled'#8#23'Comment'
+'Attri.Foreground'#7#6'clBlue'#18'CommentAttri.Style'#11#6'fsBold'#0#22'Stri'
+'ngAttri.Foreground'#7#8'clMaroon'#17'SymbolAttri.Style'#11#6'fsBold'#0#25'D'
+'irectiveAttri.Foreground'#7#7'clGreen'#20'DirectiveAttri.Style'#11#6'fsBold'
+#0#14'NestedComments'#9#4'left'#3#183#1#3'top'#2'h'#0#0#11'TSaveDialog'#2'SD'
+#5'Title'#6#27'Enregistrer le fichier sous'#10'DefaultExt'#6#5'.WSDL'#6'Filt'
+'er'#6#25'WDSL files(*.WSDL)|*.WSDL'#11'FilterIndex'#2#0#7'Options'#11#15'of'
+'PathMustExist'#14'ofEnableSizing'#12'ofViewDetail'#0#4'left'#3#242#1#3'top'
+#3#176#0#0#0#10'TPopupMenu'#10'PopupMenu1'#4'left'#3#128#1#3'top'#3#8#1#0#9
+'TMenuItem'#10'MenuItem28'#6'Action'#7#13'actFullExpand'#7'OnClick'#7#20'act'
+'FullExpandExecute'#0#0#9'TMenuItem'#10'MenuItem27'#6'Action'#7#15'actFullCo'
+'llapse'#7'OnClick'#7#22'actFullCollapseExecute'#0#0#9'TMenuItem'#10'MenuIte'
+'m26'#7'Caption'#6#1'-'#0#0#9'TMenuItem'#9'MenuItem8'#6'Action'#7#13'actEnum'
+'Create'#7'OnClick'#7#20'actEnumCreateExecute'#0#0#9'TMenuItem'#10'MenuItem2'
+'1'#6'Action'#7#17'actCompoundCreate'#7'OnClick'#7#24'actCompoundCreateExecu'
+'te'#0#0#9'TMenuItem'#10'MenuItem24'#6'Action'#7#13'actIntfCreate'#7'OnClick'
+#7#20'actIntfCreateExecute'#0#0#9'TMenuItem'#10'MenuItem22'#7'Caption'#6#1'-'
+#0#0#9'TMenuItem'#9'MenuItem9'#6'Action'#7#15'actUpdateObject'#7'OnClick'#7
+#22'actUpdateObjectExecute'#0#0#0#10'TPopupMenu'#10'PopupMenu2'#4'left'#3#16
+#2#3'top'#3#235#0#0#9'TMenuItem'#10'MenuItem18'#6'Action'#7#14'actRefreshVie'
+'w'#7'OnClick'#7#21'actRefreshViewExecute'#0#0#9'TMenuItem'#10'MenuItem19'#7
+'Caption'#6#1'-'#0#0#9'TMenuItem'#10'MenuItem20'#6'Action'#7#9'actExport'#7
+'OnClick'#7#16'actExportExecute'#0#0#0#10'TSynXMLSyn'#10'SynXMLSyn1'#13'Defa'
+'ultFilter'#6#30'Documents WSDL (*.wsdl)|*.wsdl'#7'Enabled'#8#23'ElementAttr'
+'i.Foreground'#7#6'clNavy'#30'AttributeValueAttri.Foreground'#7#8'clPurple'
+#16'WantBracesParsed'#8#4'left'#3#210#1#3'top'#3#252#0#0#0#0
]);

View File

@ -12,7 +12,7 @@
}
unit uwsttypelibraryedit;
{$DEFINE WST_IDE}
//{$DEFINE WST_IDE}
{$mode objfpc}{$H+}
interface
@ -146,7 +146,7 @@ implementation
uses view_helper, DOM, XMLRead, XMLWrite, //HeapTrc,
wsdl2pas_imp, source_utils, command_line_parser, generator, metadata_generator,
binary_streamer, wst_resources_utils, wsdl_generator,
uabout, edit_helper, udm, ufrmsaveoption
uabout, edit_helper, udm, ufrmsaveoption, pparser
{$IFDEF WST_IDE},LazIDEIntf,IDEMsgIntf{$ENDIF};
@ -173,7 +173,51 @@ const
type
TSourceType = cloInterface .. cloBinder;
TSourceTypes = set of TSourceType;
function ParsePascalFile(
const AFileName : string;
const ANotifier : TOnParserMessage
) : TwstPasTreeContainer;overload;
const
s_ostype =
{$IFDEF WINDOWS}
'WINDOWS'
{$ELSE}
{$IFDEF LINUX}
'LINUX'
{$ELSE}
''
{$ENDIF}
{$ENDIF};
procedure DoNotify(const AMsgType : TMessageType; const AMsg : string);
begin
if ( ANotifier <> nil ) then
ANotifier(AMsgType,AMsg);
end;
var
symName : string;
begin
symName := ChangeFileExt(ExtractFileName(AFileName),'');
if ( symName[Length(symName)] = '.' ) then begin
Delete(symName,Length(symName),1);
end;
Result := TwstPasTreeContainer.Create();
try
DoNotify(mtInfo,Format('Parsing file %s ...',[AFileName]));
CreateWstInterfaceSymbolTable(Result);
ParseSource(Result,AFileName,s_ostype,'');
DoNotify(mtInfo,Format('File parsed %s .',[AFileName]));
except
on e : Exception do begin
FreeAndNil(Result);
DoNotify(mtError,e.Message);
raise;
end;
end;
end;
function ParseWsdlFile(
const AFileName : string;
AContent : TStream;
@ -448,12 +492,12 @@ end;
function TfWstTypeLibraryEdit.GetTypeNode(): TTreeNode;
begin
Result := trvSchema.TopItem.GetFirstChild().Items[1];
Result := trvSchema.TopItem.GetFirstChild().Items[0];
end;
function TfWstTypeLibraryEdit.GetInterfaceNode(): TTreeNode;
begin
Result := trvSchema.TopItem.GetFirstChild().Items[2];
Result := trvSchema.TopItem.GetFirstChild().Items[1];
end;
procedure TfWstTypeLibraryEdit.ShowStatusMessage(const AMsgType : TMessageType;const AMsg: string);
@ -672,12 +716,17 @@ begin
mmoLog.Clear();
PC.ActivePage := tsLog;
curLok := SetCursorHourGlass();
if ( AContent = nil ) then
tmpTable := ParseWsdlFile(AFileName,@ShowStatusMessage)
else
tmpTable := ParseWsdlFile(AFileName,AContent,@ShowStatusMessage);
if AnsiSameText('.pas',ExtractFileExt(AFileName)) then begin
tmpTable := ParsePascalFile(AFileName,@ShowStatusMessage);
end else begin
if ( AContent = nil ) then
tmpTable := ParseWsdlFile(AFileName,@ShowStatusMessage)
else
tmpTable := ParseWsdlFile(AFileName,AContent,@ShowStatusMessage);
end;
if Assigned(tmpTable) then begin
FCurrentFileName := AFileName;
if AnsiSameText('.pas',ExtractFileExt(AFileName)) then
FCurrentFileName := ChangeFileExt(AFileName,'.wsdl');
trvSchema.Items.Clear();
FreeAndNil(FSymbolTable);
FSymbolTable := tmpTable;

View File

@ -539,7 +539,7 @@ end;
class function TClassTypeDefinitionPainter.CanHandle(AObj : TObject): Boolean;
begin
Result := ( inherited CanHandle(AObj) ) and
( AObj.InheritsFrom(TPasClassType) and ( TPasClassType(AObj).ObjKind = okClass ) )and
( AObj.InheritsFrom(TPasClassType) and ( TPasClassType(AObj).ObjKind = okClass ) ) and
( not AObj.InheritsFrom(TPasNativeClassType) );
end;
@ -704,7 +704,7 @@ initialization
FPainterRegistryInst.RegisterHandler(TTypeAliasDefinitionPainter);
FPainterRegistryInst.RegisterHandler(TEnumTypeDefinitionPainter);
FPainterRegistryInst.RegisterHandler(TClassTypeDefinitionPainter);
FPainterRegistryInst.RegisterHandler(TAbstractConstantDefinitionPainter);
//FPainterRegistryInst.RegisterHandler(TAbstractConstantDefinitionPainter);
FPainterRegistryInst.RegisterHandler(TInterfaceDefinitionPainter);
FPainterRegistryInst.RegisterHandler(TMethodDefinitionPainter);
FPainterRegistryInst.RegisterHandler(TPasNativeSimpleTypePainter);

View File

@ -40,7 +40,7 @@ type
IWsdlTypeHandlerRegistry = Interface
['{C5666646-3426-4696-93EE-AFA8EE7CAE53}']
function Find(
ASymbol : TPTreeElement;
ASymbol : TPasElement;
out AHandler : IWsdlTypeHandler
) : Boolean;
procedure Register(AFactory : TBaseTypeHandlerClass);
@ -53,7 +53,7 @@ type
const ASymbol : TPasElement;
AWsdlDocument : TDOMDocument
);virtual;abstract;
class function CanHandle(ASymbol : TClass) : Boolean;virtual;abstract;
class function CanHandle(ASymbol : TObject) : Boolean;virtual;abstract;
end;
{ TTypeDefinition_TypeHandler }
@ -65,7 +65,7 @@ type
const ASymbol : TPasElement;
AWsdlDocument : TDOMDocument
);override;
class function CanHandle(ASymbol : TClass) : Boolean;override;
class function CanHandle(ASymbol : TObject) : Boolean;override;
end;
{ TTypeAliasDefinition_TypeHandler }
@ -77,7 +77,7 @@ type
const ASymbol : TPasElement;
AWsdlDocument : TDOMDocument
);override;
class function CanHandle(ASymbol : TClass) : Boolean;override;
class function CanHandle(ASymbol : TObject) : Boolean;override;
end;
{ TEnumTypeHandler }
@ -89,7 +89,7 @@ type
const ASymbol : TPasElement;
AWsdlDocument : TDOMDocument
);override;
class function CanHandle(ASymbol : TClass) : Boolean;override;
class function CanHandle(ASymbol : TObject) : Boolean;override;
end;
{ TClassTypeDefinition_TypeHandler }
@ -101,7 +101,7 @@ type
const ASymbol : TPasElement;
AWsdlDocument : TDOMDocument
);override;
class function CanHandle(ASymbol : TClass) : Boolean;override;
class function CanHandle(ASymbol : TObject) : Boolean;override;
end;
{ TBaseArrayRemotable_TypeHandler }
@ -113,7 +113,7 @@ type
const ASymbol : TPasElement;
AWsdlDocument : TDOMDocument
);override;
class function CanHandle(ASymbol : TClass) : Boolean;override;
class function CanHandle(ASymbol : TObject) : Boolean;override;
end;
procedure GenerateWSDL(ASymbolTable : TwstPasTreeContainer; ADoc : TDOMDocument);
@ -146,11 +146,13 @@ const
sBINDING = 'binding';
sBODY = 'body';
sCOMPLEX_TYPE = 'complexType';
sCUSTOM_ATTRIBUTE = 'customAttributes';
sDOCUMENT = 'document';
sELEMENT = 'element';
sENUMERATION = 'enumeration';
sEXTENSION = 'extension';
sGUID = 'GUID';
sHEADER_Block = 'headerBlock';
sITEM = 'item';
sLOCATION = 'location';
sMIN_OCCURS = 'minOccurs';
@ -222,10 +224,10 @@ type
private
FList : TClassList;
private
function FindIndexOfHandler(ASymbol : TPTreeElement) : Integer;
function FindIndexOfHandler(ASymbol : TPasElement) : Integer;
protected
function Find(
ASymbol : TPTreeElement;
ASymbol : TPasElement;
out AHandler : IWsdlTypeHandler
) : Boolean;
procedure Register(AFactory : TBaseTypeHandlerClass);
@ -236,7 +238,7 @@ type
{ TWsdlTypeHandlerRegistry }
function TWsdlTypeHandlerRegistry.FindIndexOfHandler(ASymbol: TPTreeElement): Integer;
function TWsdlTypeHandlerRegistry.FindIndexOfHandler(ASymbol: TPasElement): Integer;
Var
i, c : Integer;
begin
@ -251,7 +253,7 @@ begin
end;
function TWsdlTypeHandlerRegistry.Find(
ASymbol : TPTreeElement;
ASymbol : TPasElement;
out AHandler : IWsdlTypeHandler
) : Boolean;
var
@ -564,7 +566,7 @@ procedure GenerateWSDL(ASymbolTable : TwstPasTreeContainer; ADoc : TDOMDocument)
( not tri.InheritsFrom(TPasNativeClassType) ) and
( not tri.InheritsFrom(TPasNativeSimpleType) )
then begin
if gr.Find(TPTreeElement(tri.ClassType),g) then
if gr.Find(tri,g) then
g.Generate(ASymbolTable, tri,ADoc);
end;
end;
@ -649,11 +651,21 @@ procedure TClassTypeDefinition_TypeHandler.Generate(
const ASymbol : TPasElement;
AWsdlDocument : TDOMDocument
);
var
cplxNode, docNode : TDOMElement;
procedure CreateDocNode();
begin
if ( docNode = nil ) then begin
docNode := CreateElement(sDOCUMENT,cplxNode,AWsdlDocument);
end;
end;
var
typItm : TPasClassType;
propTypItm : TPasType;
s, prop_ns_shortName : string;
defTypesNode, defSchemaNode, cplxNode, sqcNode, propNode, derivationNode : TDOMElement;
defTypesNode, defSchemaNode, sqcNode, propNode, derivationNode : TDOMElement;
i : Integer;
p : TPasProperty;
typeCategory : TTypeCategory;
@ -661,6 +673,7 @@ var
trueParent : TPasType;
begin
inherited;
docNode := nil;
typItm := ASymbol as TPasClassType;
if Assigned(typItm) then begin
GetNameSpaceShortName(AContainer.GetExternalName(AContainer.CurrentModule) ,AWsdlDocument);
@ -677,6 +690,12 @@ begin
hasSequence := True;
if Assigned(typItm.AncestorType) then begin
trueParent := typItm.AncestorType;
if trueParent.InheritsFrom(TPasNativeClassType) and AnsiSameText('THeaderBlock',trueParent.Name) then begin
CreateDocNode();
CreateElement(sCUSTOM_ATTRIBUTE,docNode,AWsdlDocument).SetAttribute(sHEADER_Block,'true');
end;
if trueParent.InheritsFrom(TPasAliasType) then begin
trueParent := GetUltimeType(trueParent);
end;
@ -755,7 +774,7 @@ begin
end;
end;
class function TClassTypeDefinition_TypeHandler.CanHandle(ASymbol: TClass): Boolean;
class function TClassTypeDefinition_TypeHandler.CanHandle(ASymbol: TObject): Boolean;
begin
Result := inherited CanHandle(ASymbol) and
( ASymbol.InheritsFrom(TPasClassType) and ( TPasClassType(ASymbol).ObjKind = okClass ));
@ -808,7 +827,7 @@ begin
end;
end;
class function TEnumTypeHandler.CanHandle(ASymbol: TClass): Boolean;
class function TEnumTypeHandler.CanHandle(ASymbol: TObject): Boolean;
begin
Result := inherited CanHandle(ASymbol) and ASymbol.InheritsFrom(TPasEnumType);
end;
@ -879,7 +898,7 @@ begin
end;
end;
class function TBaseArrayRemotable_TypeHandler.CanHandle(ASymbol: TClass): Boolean;
class function TBaseArrayRemotable_TypeHandler.CanHandle(ASymbol: TObject): Boolean;
begin
Result := inherited CanHandle(ASymbol) and ASymbol.InheritsFrom(TPasArrayType);
end;
@ -895,7 +914,7 @@ begin
Assert(ASymbol.InheritsFrom(TPasType));
end;
class function TTypeDefinition_TypeHandler.CanHandle(ASymbol: TClass): Boolean;
class function TTypeDefinition_TypeHandler.CanHandle(ASymbol: TObject): Boolean;
begin
Result := Assigned(ASymbol) and ASymbol.InheritsFrom(TPasType);
end;
@ -948,7 +967,7 @@ begin
end;
end;
class function TTypeAliasDefinition_TypeHandler.CanHandle(ASymbol: TClass): Boolean;
class function TTypeAliasDefinition_TypeHandler.CanHandle(ASymbol: TObject): Boolean;
begin
Result := Assigned(ASymbol) and ASymbol.InheritsFrom(TPasAliasType);
end;