home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 September / Chip_2002-09_cd1.bin / zkuste / delphi / kolekce / d56 / XMLCOMP.ZIP / DnXmlEditors.pas < prev    next >
Pascal/Delphi Source File  |  2002-06-07  |  3KB  |  140 lines

  1. unit DnXmlEditors;
  2.  
  3. interface
  4.  
  5. {$I DnXml.inc}
  6.  
  7. uses
  8.   Controls, {$ifdef DNXML_D6} DesignEditors, DesignIntf {$else} DsgnIntf {$endif}; 
  9.  
  10. type
  11.   TDnXmlWriterEditor = class(TComponentEditor)
  12.   public
  13.     function GetVerbCount: Integer; override;
  14.     function GetVerb(aIndex: Integer): string; override;
  15.     procedure ExecuteVerb(aIndex: Integer); override;
  16.   end;
  17.  
  18.   TDnXmlReaderEditor = class(TComponentEditor)
  19.   public
  20.     function GetVerbCount: Integer; override;
  21.     function GetVerb(aIndex: Integer): string; override;
  22.     procedure ExecuteVerb(aIndex: Integer); override;
  23.   end;
  24.  
  25.   TDnXmlDictionaryEditor = class(TComponentEditor)
  26.   public
  27.     function GetVerbCount: Integer; override;
  28.     function GetVerb(aIndex: Integer): string; override;
  29.     procedure ExecuteVerb(aIndex: Integer); override;
  30.   end;
  31.  
  32. procedure Register;
  33.  
  34. implementation
  35.  
  36. uses
  37.   Forms, SysUtils, Dialogs, DnXmlDictionaryEditorForm, DnXmlComponentChooserForm,
  38.   DnXml;
  39.  
  40. procedure Register;
  41. begin
  42.   RegisterComponentEditor(TDnXmlWriter, TDnXmlWriterEditor);
  43.   RegisterComponentEditor(TDnXmlReader, TDnXmlReaderEditor);
  44.   RegisterComponentEditor(TDnXmlDictionary, TDnXmlDictionaryEditor);
  45. end;
  46.  
  47. { TDnXmlWriterEditor }
  48.  
  49. procedure TDnXmlWriterEditor.ExecuteVerb(aIndex: Integer);
  50. var dlg: TSaveDialog;
  51. begin
  52.   Assert(Component is TDnXmlWriter);
  53.   dlg := nil;
  54.   with TfmDnXmlComponentChooser.Create(Application) do
  55.   try
  56.     Designer := Self.Designer;
  57.     if (ShowModal = mrOk) and (Selected <> nil) then
  58.     begin
  59.       dlg := TSaveDialog.Create(Application);
  60.       dlg.DefaultExt := 'xml';
  61.       dlg.Filter := 'Xml Files (*.xml)|*.xml';
  62.       if dlg.Execute then
  63.         TDnXmlWriter(Component).ToXmlFile(dlg.Filename, Selected);
  64.     end;
  65.   finally
  66.     dlg.Free;
  67.     Free;
  68.   end;
  69. end;
  70.  
  71. function TDnXmlWriterEditor.GetVerb(aIndex: Integer): string;
  72. begin
  73.   result := 'Save to xml...';
  74. end;
  75.  
  76. function TDnXmlWriterEditor.GetVerbCount: Integer;
  77. begin
  78.   result := 1;
  79. end;
  80.  
  81. { TDnXmlReaderEditor }
  82.  
  83. procedure TDnXmlReaderEditor.ExecuteVerb(aIndex: Integer);
  84. var dlg: TOpenDialog;
  85. begin
  86.   Assert(Component is TDnXmlReader);
  87.   dlg := nil;
  88.   with TfmDnXmlComponentChooser.Create(Application) do
  89.   try
  90.     Designer := Self.Designer;
  91.     if (ShowModal = mrOk) and (Selected <> nil) then
  92.     begin
  93.       dlg := TOpenDialog.Create(Application);
  94.       dlg.DefaultExt := 'xml';
  95.       dlg.Filter := 'Xml Files (*.xml)|*.xml';
  96.       if dlg.Execute then
  97.         TDnXmlReader(Component).FromXmlFileAssign(dlg.FileName, Selected);
  98.     end;
  99.   finally
  100.     dlg.Free;
  101.     Free;
  102.   end;
  103. end;
  104.  
  105. function TDnXmlReaderEditor.GetVerb(aIndex: Integer): string;
  106. begin
  107.   result := 'Load from xml...';
  108. end;
  109.  
  110. function TDnXmlReaderEditor.GetVerbCount: Integer;
  111. begin
  112.   result := 1;
  113. end;
  114.  
  115. { TDnXmlDictionaryEditor }
  116.  
  117. procedure TDnXmlDictionaryEditor.ExecuteVerb(aIndex: Integer);
  118. var form: TfmDnXmlDictionaryEditor;
  119. begin
  120.   form := TfmDnXmlDictionaryEditor.Create(Application);
  121.   try
  122.     form.Dictionary := Component as TDnXmlDictionary;
  123.     form.ShowModal;
  124.   finally
  125.     form.Free;
  126.   end;
  127. end;
  128.  
  129. function TDnXmlDictionaryEditor.GetVerb(aIndex: Integer): string;
  130. begin
  131.   result := 'Show contents...';
  132. end;
  133.  
  134. function TDnXmlDictionaryEditor.GetVerbCount: Integer;
  135. begin
  136.   result := 1;
  137. end;
  138.  
  139. end.
  140.