Commit 412edb52 authored by Jucelino Fonseca's avatar Jucelino Fonseca

Ajustes

parent 9fd2619c
object ExplorerV2: TExplorerV2 object ExplorerV2: TExplorerV2
Left = 523 Left = 565
Height = 871 Height = 871
Top = 120 Top = 77
Width = 1387 Width = 1387
Caption = 'Model OQL Query' Caption = 'Model OQL Query'
ClientHeight = 871 ClientHeight = 871
...@@ -11751,8 +11751,11 @@ object ExplorerV2: TExplorerV2 ...@@ -11751,8 +11751,11 @@ object ExplorerV2: TExplorerV2
ParentColor = False ParentColor = False
ParentFont = False ParentFont = False
TabOrder = 0 TabOrder = 0
OnQuadClick = SynEditOQLQuadClick
OnDragDrop = memOQLQuery2DragDrop OnDragDrop = memOQLQuery2DragDrop
OnDragOver = memOQLQuery2DragOver OnDragOver = memOQLQuery2DragOver
OnKeyPress = SynEditOQLKeyPress
OnClickLink = SynEditOQLClickLink
BorderStyle = bsNone BorderStyle = bsNone
Gutter.Width = 42 Gutter.Width = 42
Gutter.MouseActions = <> Gutter.MouseActions = <>
...@@ -12212,7 +12215,7 @@ object ExplorerV2: TExplorerV2 ...@@ -12212,7 +12215,7 @@ object ExplorerV2: TExplorerV2
LineHighlightColor.Foreground = clNone LineHighlightColor.Foreground = clNone
OnChange = SynEditOQLChange OnChange = SynEditOQLChange
OnCommandProcessed = SynEditOQLCommandProcessed OnCommandProcessed = SynEditOQLCommandProcessed
OnProcessCommand = SynEditOQLProcessCommand OnProcessUserCommand = SynEditOQLProcessUserCommand
inline SynLeftGutterPartList1: TSynGutterPartList inline SynLeftGutterPartList1: TSynGutterPartList
object SynGutterMarks1: TSynGutterMarks object SynGutterMarks1: TSynGutterMarks
Width = 30 Width = 30
...@@ -13971,6 +13974,7 @@ object ExplorerV2: TExplorerV2 ...@@ -13971,6 +13974,7 @@ object ExplorerV2: TExplorerV2
Top = 10 Top = 10
end end
object scpAtributoCompletion: TSynCompletion object scpAtributoCompletion: TSynCompletion
OnExecute = scpAtributoCompletionExecute
Position = 0 Position = 0
LinesInWindow = 6 LinesInWindow = 6
SelectedColor = clHighlight SelectedColor = clHighlight
...@@ -14281,7 +14285,7 @@ object ExplorerV2: TExplorerV2 ...@@ -14281,7 +14285,7 @@ object ExplorerV2: TExplorerV2
} }
end end
object scpClasseCompletion: TSynCompletion object scpClasseCompletion: TSynCompletion
OnExecute = scpClasseCompletionExecute OnExecute = scpAtributoCompletionExecute
Position = 0 Position = 0
LinesInWindow = 6 LinesInWindow = 6
SelectedColor = clHighlight SelectedColor = clHighlight
......
...@@ -87,15 +87,21 @@ type ...@@ -87,15 +87,21 @@ type
procedure FormShow(Sender: TObject); procedure FormShow(Sender: TObject);
procedure actResultsPanelExecute(Sender: TObject); procedure actResultsPanelExecute(Sender: TObject);
procedure rbSequencialClick(Sender: TObject); procedure rbSequencialClick(Sender: TObject);
procedure scpAtributoCompletionExecute(Sender: TObject);
procedure scpClasseCompletionCodeCompletion(var Value: string; procedure scpClasseCompletionCodeCompletion(var Value: string;
SourceValue: string; var SourceStart, SourceEnd: TPoint; SourceValue: string; var SourceStart, SourceEnd: TPoint;
KeyChar: TUTF8Char; Shift: TShiftState); KeyChar: TUTF8Char; Shift: TShiftState);
procedure scpClasseCompletionExecute(Sender: TObject); procedure scpClasseCompletionExecute(Sender: TObject);
procedure SynEditOQLChange(Sender: TObject); procedure SynEditOQLChange(Sender: TObject);
procedure SynEditOQLClickLink(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure SynEditOQLCommandProcessed(Sender: TObject; procedure SynEditOQLCommandProcessed(Sender: TObject;
var Command: TSynEditorCommand; var AChar: TUTF8Char; Data: pointer); var Command: TSynEditorCommand; var AChar: TUTF8Char; Data: pointer);
procedure SynEditOQLProcessCommand(Sender: TObject; procedure SynEditOQLKeyPress(Sender: TObject; var Key: char);
procedure SynEditOQLProcessUserCommand(Sender: TObject;
var Command: TSynEditorCommand; var AChar: TUTF8Char; Data: pointer); var Command: TSynEditorCommand; var AChar: TUTF8Char; Data: pointer);
procedure SynEditOQLQuadClick(Sender: TObject);
procedure SynEditOQLUTF8KeyPress(Sender: TObject; var UTF8Key: TUTF8Char);
procedure tvModelExplorerGetSelectedIndex(Sender: TObject; Node: TTreeNode); procedure tvModelExplorerGetSelectedIndex(Sender: TObject; Node: TTreeNode);
procedure tvModelExplorerItemExpanding(Sender: TObject; Node: TTreeNode; var AllowExpansion: Boolean); procedure tvModelExplorerItemExpanding(Sender: TObject; Node: TTreeNode; var AllowExpansion: Boolean);
procedure XMLQueryExecute(Sender: TObject); procedure XMLQueryExecute(Sender: TObject);
...@@ -132,7 +138,8 @@ type ...@@ -132,7 +138,8 @@ type
function BuscarParcialChildClass(piClassTicket : acClassTicket; piFiltrar: boolean): boolean; function BuscarParcialChildClass(piClassTicket : acClassTicket; piFiltrar: boolean): boolean;
function FindParcialNodeClass(piClassTicketPai : acClassTicket; piFiltrar: boolean):acClassTicket; function FindParcialNodeClass(piClassTicketPai : acClassTicket; piFiltrar: boolean):acClassTicket;
procedure PreencherSynCompletionClasses(piSynCompletion : TSynCompletion); procedure PreencherSynCompletionClasses(piSynCompletion : TSynCompletion);
procedure PreencherSynCompletionAtributos(piSynCompletion : TSynCompletion); procedure PreencherSynCompletionAtributos(piSynCompletion : TSynCompletion;piClassTicket : acClassTicket = nil);
procedure ExecutarSybCompletion(piSynCompletion : TSynCompletion);
protected protected
procedure CreateParams(var Params : TCreateParams); override; procedure CreateParams(var Params : TCreateParams); override;
function Connect : acPersistenceSession; function Connect : acPersistenceSession;
...@@ -436,6 +443,13 @@ end; ...@@ -436,6 +443,13 @@ end;
procedure TExplorerV2.rbSequencialClick(Sender: TObject); procedure TExplorerV2.rbSequencialClick(Sender: TObject);
begin begin
end;
procedure TExplorerV2.scpAtributoCompletionExecute(Sender: TObject);
begin
end; end;
procedure TExplorerV2.scpClasseCompletionCodeCompletion(var Value: string; procedure TExplorerV2.scpClasseCompletionCodeCompletion(var Value: string;
...@@ -456,28 +470,91 @@ begin ...@@ -456,28 +470,91 @@ begin
end; end;
procedure TExplorerV2.SynEditOQLClickLink(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
end;
procedure TExplorerV2.SynEditOQLCommandProcessed(Sender: TObject; procedure TExplorerV2.SynEditOQLCommandProcessed(Sender: TObject;
var Command: TSynEditorCommand; var AChar: TUTF8Char; Data: pointer); var Command: TSynEditorCommand; var AChar: TUTF8Char; Data: pointer);
var apoint,temppoint:tpoint;
begin begin
if Achar = '.' then if Achar = '.' then
begin begin
PreencherSynCompletionAtributos(scpAtributoCompletion); PreencherSynCompletionAtributos(scpAtributoCompletion);
scpClasseCompletion.Editor := nil; scpClasseCompletion.Editor := nil;
scpAtributoCompletion.Editor := SynEditOQL; scpAtributoCompletion.Editor := SynEditOQL;
//will compare the schema_tablename to a list of available schema names for the current database. ExecutarSybCompletion(scpAtributoCompletion);
temppoint:=TSynEdit(Sender).CaretXY; end;
temppoint.y:=temppoint.y+1;
apoint:= TSynEdit(Sender).ClientToScreen(TSynEdit(Sender).RowColumnToPixels(temppoint));
scpAtributoCompletion.Execute('',apoint);
end; end;
procedure TExplorerV2.SynEditOQLKeyPress(Sender: TObject; var Key: char);
begin
end; end;
procedure TExplorerV2.SynEditOQLProcessCommand(Sender: TObject; procedure TExplorerV2.SynEditOQLProcessUserCommand(Sender: TObject;
var Command: TSynEditorCommand; var AChar: TUTF8Char; Data: pointer); var Command: TSynEditorCommand; var AChar: TUTF8Char; Data: pointer);
var lClassTicket : acClassTicket;
ls_NameClass : string;
lbMostrarClasse : boolean;
ls_Aux : string;
li_Pos : integer;
p1,zeroPoint : TPoint;
begin
{ p1 := SynEdit1.NextTokenPos ;//logical = byte position
zeroPoint := SynEdit1.PrevWordPos;
//ShowMessage(SynEdit1.TextBetweenPoints[zeroPoint ,p1]);
if Assigned(p1) then
ShowMessage(SynEdit1.TextBetweenPoints[zeroPoint,p1]); }
lbMostrarClasse := true;
ls_NameClass := trim(SynEditOQL.GetWordAtRowCol(SynEditOQL.PrevWordPos));
if ls_NameClass <> '' then
begin
lClassTicket := self.MetaModel.GetClassTicketByName(ls_NameClass);
if Assigned(lClassTicket) then
begin
p1 := SynEditOQL.NextTokenPos ;//logical = byte position
zeroPoint := SynEditOQL.PrevWordPos;
ls_Aux := SynEditOQL.TextBetweenPoints[zeroPoint,p1];
li_Pos := Pos('.',ls_Aux);
if li_Pos > 0 then
begin
PreencherSynCompletionAtributos(scpAtributoCompletion,lClassTicket);
if not Assigned(scpAtributoCompletion.Editor) then
begin
scpAtributoCompletion.Editor := SynEditOQL;
scpClasseCompletion.Editor := nil;
end;
lbMostrarClasse := false;
end;
end;
end;
if lbMostrarClasse then
begin
if not Assigned(scpClasseCompletion.Editor) then
begin
scpAtributoCompletion.Editor := nil;
scpClasseCompletion.Editor := SynEditOQL;
ExecutarSybCompletion(scpClasseCompletion);
end;
end;
end;
procedure TExplorerV2.SynEditOQLQuadClick(Sender: TObject);
begin
end;
procedure TExplorerV2.SynEditOQLUTF8KeyPress(Sender: TObject;
var UTF8Key: TUTF8Char);
begin begin
end; end;
...@@ -685,26 +762,33 @@ begin ...@@ -685,26 +762,33 @@ begin
end; end;
procedure TExplorerV2.PreencherSynCompletionAtributos(piSynCompletion: TSynCompletion); procedure TExplorerV2.PreencherSynCompletionAtributos(piSynCompletion: TSynCompletion;piClassTicket : acClassTicket = nil);
var li : integer; var li : integer;
lAttributeTicket : acAttributeTicket; lAttributeTicket : acAttributeTicket;
lClassTicket : acClassTicket; lClassTicket : acClassTicket;
ls_NameClass : string; ls_NameClass : string;
begin begin
ls_NameClass := trim(SynEditOQL.GetWordAtRowCol(SynEditOQL.PrevWordPos)); if not Assigned(piClassTicket) then
if ls_NameClass <> '' then
begin begin
lClassTicket := self.MetaModel.GetClassTicketByName(ls_NameClass); ls_NameClass := trim(SynEditOQL.GetWordAtRowCol(SynEditOQL.PrevWordPos));
if Assigned(lClassTicket) then if ls_NameClass <> '' then
begin
lClassTicket := self.MetaModel.GetClassTicketByName(ls_NameClass);
end;
end
else
begin
lClassTicket := piClassTicket;;
end;
if Assigned(lClassTicket) then
begin
piSynCompletion.ItemList.Clear;
for li := 0 to pred(lClassTicket.Attributes.Count) do
begin begin
piSynCompletion.ItemList.Clear; lAttributeTicket := acAttributeTicket(lClassTicket.Attributes.Objects[li]);
for li := 0 to pred(lClassTicket.Attributes.Count) do if lAttributeTicket.Stereotype = acAttributeStereotype.pvPersistent then
begin begin
lAttributeTicket := acAttributeTicket(lClassTicket.Attributes.Objects[li]); piSynCompletion.ItemList.Add(lAttributeTicket.AttributeName);
if lAttributeTicket.Stereotype = acAttributeStereotype.pvPersistent then
begin
piSynCompletion.ItemList.Add(lAttributeTicket.AttributeName);
end;
end; end;
end; end;
end; end;
...@@ -712,6 +796,16 @@ begin ...@@ -712,6 +796,16 @@ begin
end; end;
procedure TExplorerV2.ExecutarSybCompletion(piSynCompletion: TSynCompletion);
var apoint,temppoint:tpoint;
begin
//will compare the schema_tablename to a list of available schema names for the current database.
temppoint := SynEditOQL.CaretXY;
temppoint.y := temppoint.y+1;
apoint := SynEditOQL.ClientToScreen(SynEditOQL.RowColumnToPixels(temppoint));
piSynCompletion.Execute('',apoint);
end;
procedure TExplorerV2.CreateParams(var Params: TCreateParams); procedure TExplorerV2.CreateParams(var Params: TCreateParams);
begin begin
inherited CreateParams(Params); inherited CreateParams(Params);
...@@ -728,7 +822,6 @@ end; ...@@ -728,7 +822,6 @@ end;
procedure TExplorerV2.FormCreate(Sender: TObject); procedure TExplorerV2.FormCreate(Sender: TObject);
var lMetaModelGenOpt: TMetaModelGenerationOptions; var lMetaModelGenOpt: TMetaModelGenerationOptions;
begin begin
lMetaModelGenOpt.CheckDBAttributeNameLength := true; lMetaModelGenOpt.CheckDBAttributeNameLength := true;
lMetaModelGenOpt.CheckDBTableNameLength := true; lMetaModelGenOpt.CheckDBTableNameLength := true;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment