ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/branches/journaling/design/IBDBReg.pas
(Generate patch)

Comparing ibx/trunk/design/IBDBReg.pas (file contents):
Revision 107 by tony, Thu Jan 18 14:37:40 2018 UTC vs.
Revision 263 by tony, Thu Dec 6 15:55:01 2018 UTC

# Line 27 | Line 27
27   {    IBX For Lazarus (Firebird Express)                                  }
28   {    Contributor: Tony Whyman, MWA Software http://www.mwasoftware.co.uk }
29   {    Portions created by MWA Software are copyright McCallum Whyman      }
30 < {    Associates Ltd 2011                                                 }
30 > {    Associates Ltd 2011 - 2018                                               }
31   {************************************************************************}
32  
33   unit IBDBReg;
# Line 63 | Line 63 | type
63    Property editor the DataBase Name property.  Brings up the Open dialog }
64  
65    TIBFileNameProperty = class(TStringProperty)
66 +  protected
67 +    function GetFilter: string; virtual;
68    public
69      procedure Edit; override;
70      function GetAttributes: TPropertyAttributes; override;
71    end;
72  
73 +  { TIBLibraryNameProperty }
74 +
75 +  TIBLibraryNameProperty = class(TIBFileNameProperty)
76 +  protected
77 +    function GetFilter: string; override;
78 +  end;
79 +
80    { TIBNameProperty
81    }
82    TIBNameProperty = class(TStringProperty)
# Line 203 | Line 212 | type
212     function GetVerbCount: Integer; override;
213    end;
214  
215 +  { TIBXServiceEditor }
216 +
217 +  TIBXServiceEditor = class(TComponentEditor)
218 +  public
219 +    procedure ExecuteVerb(Index: Integer); override;
220 +    function GetVerb(Index: Integer): string; override;
221 +    function GetVerbCount: Integer; override;
222 +  end;
223 +
224    TIBStoredProcParamsProperty = class(TCollectionPropertyEditor)
225    end;
226  
# Line 322 | Line 340 | type
340      procedure Edit; override;
341    end;
342  
343 +  { TIBUpdateRefreshSQLProperty }
344 +
345 +  TIBUpdateRefreshSQLProperty = class(TSQLPropertyEditor)
346 +  protected
347 +    FIBUpdate: TIBUpdate;
348 +    FDatabase: TIBDatabase;
349 +    function GetObjects: boolean;
350 +  public
351 +    procedure Edit; override;
352 +  end;
353 +
354 +
355   { TIBEventListProperty }
356  
357    TIBEventListProperty = class(TClassProperty)
# Line 389 | Line 419 | implementation
419  
420   uses IB, IBQuery, IBStoredProc, IBCustomDataSet, FBMessages,
421       IBSQL, IBSQLMonitor, IBDatabaseInfo, IBEvents, IBTypes,
422 <     IBServices, IBDatabaseEdit, IBTransactionEdit,
422 >     IBServices, IBXServices, IBDatabaseEdit, IBTransactionEdit,
423       IBBatchMove, IBExtract,LResources, IBSelectSQLEditor,
424       IBModifySQLEditor,IBDeleteSQLEditor,IBRefreshSQLEditor,
425       IBInsertSQLEditor, IBGeneratorEditor, IBUpdateSQLEditor, IBDataSetEditor,
426       IBSQLEditor, ibserviceeditor, LCLVersion, IBDynamicGrid, IBLookupComboEditBox,
427       IBTreeView, DBControlGrid, ibxscript, IBLocalDBSupport, IBDSDialogs,
428 <     IBArrayGrid, IBVersion, IBDataOutput;
428 >     IBArrayGrid, IBVersion, IBDataOutput, IBXServiceEditor;
429  
430   const
431    IBPalette1 = 'Firebird'; {do not localize}
432 <  IBPalette2 = 'Firebird Admin'; {do not localize}
432 >  IBPalette2 = 'Firebird Legacy Admin'; {do not localize}
433    IBPalette3 = 'Firebird Data Controls';   {do not localize}
434 <  
434 >  IBPalette4 = 'Firebird Admin'; {do not localize}
435 >
436   resourcestring
437     SInterbaseExpressVersion = 'Firebird Express for Lazarus ' + IBX_VERSION;
438     SEditSQL = 'Edit SQL';
# Line 416 | Line 447 | const
447  
448   procedure Register;
449   begin
450 +  AllowUseOfFBLIB := true;
451    if not TryIBLoad then
452    begin
453      MessageDlg('IBX is unable to locate the Firebird Library - have you remembered to install it?',mtError,[mbOK],0);
# Line 434 | Line 466 | begin
466         TIBStoredProc,TIBBatchMove,  TIBTable,TIBExtract, TIBXScript, TIBLocalDBSupport,
467         TIBBlockFormatOut,TIBCSVDataOut,TIBInsertStmtsOut]);
468    if FirebirdAPI.HasServiceAPI  then
469 +  begin
470 +    RegisterComponents(IBPalette4, [TIBXServicesConnection, TIBXConfigService,
471 +      TIBXClientSideBackupService, TIBXServerSideBackupService,
472 +      TIBXClientSideRestoreService, TIBXServerSideRestoreService,
473 +      TIBXValidationService, TIBXOnlineValidationService, TIBXStatisticalService,
474 +      TIBXLogService, TIBXSecurityService, TIBXServerProperties,
475 +      TIBXLimboTransactionResolutionService,TIBXServicesUserList, TIBXServicesLimboTransactionsList]);
476      RegisterComponents(IBPalette2, [TIBConfigService, TIBBackupService,
477 <      TIBRestoreService, TIBValidationService, TIBStatisticalService,
477 >      TIBRestoreService, TIBValidationService,
478 >      TIBOnlineValidationService, TIBStatisticalService,
479        TIBLogService, TIBSecurityService, TIBServerProperties]);
480 <
480 >  end;
481  
482    RegisterComponents(IBPalette3,[TIBLookupComboEditBox,TIBDynamicGrid,TIBTreeView,TDBControlGrid, TIBArrayGrid]);
483 +
484    RegisterPropertyEditor(TypeInfo(TIBFileName), TIBDatabase, 'DatabaseName', TIBFileNameProperty); {do not localize}
485 +  RegisterPropertyEditor(TypeInfo(TIBFileName), TIBDatabase, 'FirebirdLibraryPathName', TIBLibraryNameProperty); {do not localize}
486 +  RegisterPropertyEditor(TypeInfo(TIBFileName), TIBXServicesConnection, 'FirebirdLibraryPathName', TIBLibraryNameProperty); {do not localize}
487    RegisterPropertyEditor(TypeInfo(string), TIBStoredProc, 'StoredProcName', TIBStoredProcNameProperty); {do not localize}
488    RegisterPropertyEditor(TypeInfo(string), TIBStoredProc, 'PackageName', TIBPackageNameProperty); {do not localize}
489    RegisterPropertyEditor(TypeInfo(TParams), TIBStoredProc, 'Params', TIBStoredProcParamsProperty);
# Line 461 | Line 504 | begin
504    RegisterPropertyEditor(TypeInfo(TStrings), TIBUpdateSQL, 'ModifySQL', TIBUpdateSQLUpdateProperty); {do not localize}
505    RegisterPropertyEditor(TypeInfo(TStrings), TIBUpdateSQL, 'InsertSQL', TIBUpdateSQLInsertSQLProperty); {do not localize}
506    RegisterPropertyEditor(TypeInfo(TStrings), TIBUpdateSQL, 'DeleteSQL', TIBUpdateSQLDeleteProperty); {do not localize}
507 +  RegisterPropertyEditor(TypeInfo(TStrings), TIBUpdate, 'RefreshSQL', TIBUpdateRefreshSQLProperty); {do not localize}
508    RegisterPropertyEditor(TypeInfo(TStrings), TIBEvents, 'Events', TIBEventListProperty); {do not localize}
509    RegisterPropertyEditor(TypeInfo(TPersistent), TIBDataSet, 'GeneratorField', TIBGeneratorProperty);  {do not localize}
510    RegisterPropertyEditor(TypeInfo(TPersistent), TIBQuery, 'GeneratorField', TIBGeneratorProperty);  {do not localize}
# Line 475 | Line 519 | begin
519    RegisterComponentEditor(TIBSQL, TIBSQLEditor);
520    RegisterComponentEditor(TIBCustomService, TIBServiceEditor);
521    RegisterComponentEditor(TIBArrayGrid, TIBArrayGridEditor);
522 +  RegisterComponentEditor(TIBXServicesConnection, TIBXServiceEditor);
523  
524  
525    {Firebird Data Access Controls}
# Line 486 | Line 531 | begin
531    RegisterPropertyEditor(TypeInfo(string), TIBTreeView, 'TextField', TIBTreeViewFieldProperty);
532    RegisterPropertyEditor(TypeInfo(string), TIBTreeView, 'ParentField', TIBTreeViewFieldProperty);
533    RegisterPropertyEditor(TypeInfo(string), TIBTreeView, 'HasChildField', TIBTreeViewFieldProperty);
534 +  RegisterPropertyEditor(TypeInfo(string), TIBTreeView, 'ImageIndexField', TIBTreeViewFieldProperty);
535 +  RegisterPropertyEditor(TypeInfo(string), TIBTreeView, 'SelectedIndexField', TIBTreeViewFieldProperty);
536  
537    IBGUIInterface :=  TIBDSLCLInterface.Create;
538   end;
# Line 512 | Line 559 | begin
559    end;
560   end;
561  
562 + { TIBLibraryNameProperty }
563 +
564 + function TIBLibraryNameProperty.GetFilter: string;
565 + begin
566 +  Result := SLibraryNameFilter; {do not localise}
567 + end;
568 +
569 + { TIBXServiceEditor }
570 +
571 + procedure TIBXServiceEditor.ExecuteVerb(Index: Integer);
572 + begin
573 +  if Index < inherited GetVerbCount then
574 +    inherited ExecuteVerb(Index) else
575 +  begin
576 +    Dec(Index, inherited GetVerbCount);
577 +    case Index of
578 +      0 : if IBXServiceEditor.EditIBXService(TIBXServicesConnection(Component)) then Designer.Modified;
579 +    end;
580 +  end;
581 + end;
582 +
583 + function TIBXServiceEditor.GetVerb(Index: Integer): string;
584 + begin
585 +  if Index < inherited GetVerbCount then
586 +    Result := inherited GetVerb(Index) else
587 +  begin
588 +    Dec(Index, inherited GetVerbCount);
589 +    case Index of
590 +      0: Result := SIBServiceEditor;
591 +      1 : Result := SInterbaseExpressVersion;
592 +    end;
593 +  end;
594 + end;
595 +
596 + function TIBXServiceEditor.GetVerbCount: Integer;
597 + begin
598 +  Result := inherited GetVerbCount + 2;
599 + end;
600 +
601 + { TIBUpdateRefreshSQLProperty }
602 +
603 + function TIBUpdateRefreshSQLProperty.GetObjects: boolean;
604 + begin
605 +  Result := false;
606 +  FIBUpdate := GetComponent(0) as TIBUpdate;
607 +  if not assigned(FIBUpdate) or not assigned(FIBUpdate.DataSet) then
608 +    Exit;
609 +  FDatabase := nil;
610 +  if FIBUpdate.DataSet is TIBQuery then
611 +  begin
612 +    FDatabase := (FIBUpdate.DataSet as TIBQuery).Database;
613 +    Result := true
614 +  end;
615 + end;
616 +
617 + procedure TIBUpdateRefreshSQLProperty.Edit;
618 + begin
619 +  GetObjects;
620 +  if IBRefreshSQLEditor.EditSQL(FIBUpdate.DataSet,FIBUpdate.RefreshSQL) then Modified;
621 + end;
622 +
623   { TIBPackageNameProperty }
624  
625   procedure TIBPackageNameProperty.GetValues(Proc: TGetStrProc);
# Line 674 | Line 782 | begin
782    Result := inherited GetVerbCount + 2;
783   end;
784  
785 + function TIBFileNameProperty.GetFilter: string;
786 + begin
787 +  Result := SDatabaseFilter; {do not localize}
788 + end;
789 +
790   { TIBFileNameProperty }
791   procedure TIBFileNameProperty.Edit;
792   begin
793    with TOpenDialog.Create(Application) do
794      try
795        InitialDir := ExtractFilePath(GetStrValue);
796 <      Filter := SDatabaseFilter; {do not localize}
796 >      Filter := GetFilter;
797        if Execute then
798          SetStrValue(FileName);
799      finally

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines