Commit 9fd2619c authored by Jucelino Fonseca's avatar Jucelino Fonseca

Teste e ajustes de synedit

parent 14689dec
...@@ -12211,6 +12211,8 @@ object ExplorerV2: TExplorerV2 ...@@ -12211,6 +12211,8 @@ object ExplorerV2: TExplorerV2
LineHighlightColor.Background = clNone LineHighlightColor.Background = clNone
LineHighlightColor.Foreground = clNone LineHighlightColor.Foreground = clNone
OnChange = SynEditOQLChange OnChange = SynEditOQLChange
OnCommandProcessed = SynEditOQLCommandProcessed
OnProcessCommand = SynEditOQLProcessCommand
inline SynLeftGutterPartList1: TSynGutterPartList inline SynLeftGutterPartList1: TSynGutterPartList
object SynGutterMarks1: TSynGutterMarks object SynGutterMarks1: TSynGutterMarks
Width = 30 Width = 30
...@@ -13968,7 +13970,7 @@ object ExplorerV2: TExplorerV2 ...@@ -13968,7 +13970,7 @@ object ExplorerV2: TExplorerV2
Left = 1400 Left = 1400
Top = 10 Top = 10
end end
object SynCompletion1: TSynCompletion object scpAtributoCompletion: TSynCompletion
Position = 0 Position = 0
LinesInWindow = 6 LinesInWindow = 6
SelectedColor = clHighlight SelectedColor = clHighlight
...@@ -13978,9 +13980,10 @@ object ExplorerV2: TExplorerV2 ...@@ -13978,9 +13980,10 @@ object ExplorerV2: TExplorerV2
ShortCut = 16416 ShortCut = 16416
EndOfTokenChr = '()[].' EndOfTokenChr = '()[].'
ExecCommandID = ecSynCompletionExecute ExecCommandID = ecSynCompletionExecute
Editor = SynEditOQL
ToggleReplaceWhole = False ToggleReplaceWhole = False
Left = 1300 Left = 744
Top = 10 Top = 208
end end
object ilModel: TImageList object ilModel: TImageList
Left = 140 Left = 140
...@@ -14277,4 +14280,21 @@ object ExplorerV2: TExplorerV2 ...@@ -14277,4 +14280,21 @@ object ExplorerV2: TExplorerV2
0000000000000000000000000000 0000000000000000000000000000
} }
end end
object scpClasseCompletion: TSynCompletion
OnExecute = scpClasseCompletionExecute
Position = 0
LinesInWindow = 6
SelectedColor = clHighlight
CaseSensitive = False
Width = 262
AutoUseSingleIdent = True
ShortCut = 16416
EndOfTokenChr = '()[].'
OnCodeCompletion = scpClasseCompletionCodeCompletion
ExecCommandID = ecSynCompletionExecute
Editor = SynEditOQL
ToggleReplaceWhole = False
Left = 648
Top = 320
end
end end
...@@ -7,7 +7,7 @@ uses ...@@ -7,7 +7,7 @@ uses
Clipbrd, Dialogs, ExtCtrls, StdCtrls, ComCtrls, ActnList, Clipbrd, Dialogs, ExtCtrls, StdCtrls, ComCtrls, ActnList,
LCLType, acuSQLDialectManager, ImgList, acuframework, utuMessage, LCLType, acuSQLDialectManager, ImgList, acuframework, utuMessage,
IntegracaoDelphiSUML, acuObjectExplorer, Menus, Buttons, SynEdit, IntegracaoDelphiSUML, acuObjectExplorer, Menus, Buttons, SynEdit,
SynHighlighterSQL, SynCompletion, acuModel, acuRepositorySQL; SynHighlighterSQL, SynCompletion, acuModel, acuRepositorySQL, SynEditKeyCmds, Types;
type type
...@@ -41,7 +41,8 @@ type ...@@ -41,7 +41,8 @@ type
sbStatusBar: TStatusBar; sbStatusBar: TStatusBar;
spResultXML: TSplitter; spResultXML: TSplitter;
spResultObject: TSplitter; spResultObject: TSplitter;
SynCompletion1: TSynCompletion; scpAtributoCompletion: TSynCompletion;
scpClasseCompletion: TSynCompletion;
SynEditOQL: TSynEdit; SynEditOQL: TSynEdit;
SynEditSQL: TSynEdit; SynEditSQL: TSynEdit;
SynSQLSyn1: TSynSQLSyn; SynSQLSyn1: TSynSQLSyn;
...@@ -86,7 +87,15 @@ type ...@@ -86,7 +87,15 @@ 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 scpClasseCompletionCodeCompletion(var Value: string;
SourceValue: string; var SourceStart, SourceEnd: TPoint;
KeyChar: TUTF8Char; Shift: TShiftState);
procedure scpClasseCompletionExecute(Sender: TObject);
procedure SynEditOQLChange(Sender: TObject); procedure SynEditOQLChange(Sender: TObject);
procedure SynEditOQLCommandProcessed(Sender: TObject;
var Command: TSynEditorCommand; var AChar: TUTF8Char; Data: pointer);
procedure SynEditOQLProcessCommand(Sender: TObject;
var Command: TSynEditorCommand; var AChar: TUTF8Char; Data: pointer);
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);
...@@ -122,6 +131,8 @@ type ...@@ -122,6 +131,8 @@ type
function BuscaParcialClasse(piCLasse: string; piFiltrar: boolean): boolean; function BuscaParcialClasse(piCLasse: string; piFiltrar: boolean): boolean;
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 PreencherSynCompletionAtributos(piSynCompletion : TSynCompletion);
protected protected
procedure CreateParams(var Params : TCreateParams); override; procedure CreateParams(var Params : TCreateParams); override;
function Connect : acPersistenceSession; function Connect : acPersistenceSession;
...@@ -425,6 +436,19 @@ end; ...@@ -425,6 +436,19 @@ end;
procedure TExplorerV2.rbSequencialClick(Sender: TObject); procedure TExplorerV2.rbSequencialClick(Sender: TObject);
begin begin
end;
procedure TExplorerV2.scpClasseCompletionCodeCompletion(var Value: string;
SourceValue: string; var SourceStart, SourceEnd: TPoint; KeyChar: TUTF8Char;
Shift: TShiftState);
begin
end;
procedure TExplorerV2.scpClasseCompletionExecute(Sender: TObject);
begin
end; end;
procedure TExplorerV2.SynEditOQLChange(Sender: TObject); procedure TExplorerV2.SynEditOQLChange(Sender: TObject);
...@@ -432,6 +456,32 @@ begin ...@@ -432,6 +456,32 @@ begin
end; end;
procedure TExplorerV2.SynEditOQLCommandProcessed(Sender: TObject;
var Command: TSynEditorCommand; var AChar: TUTF8Char; Data: pointer);
var apoint,temppoint:tpoint;
begin
if Achar = '.' then
begin
PreencherSynCompletionAtributos(scpAtributoCompletion);
scpClasseCompletion.Editor := nil;
scpAtributoCompletion.Editor := SynEditOQL;
//will compare the schema_tablename to a list of available schema names for the current database.
temppoint:=TSynEdit(Sender).CaretXY;
temppoint.y:=temppoint.y+1;
apoint:= TSynEdit(Sender).ClientToScreen(TSynEdit(Sender).RowColumnToPixels(temppoint));
scpAtributoCompletion.Execute('',apoint);
end;
end;
procedure TExplorerV2.SynEditOQLProcessCommand(Sender: TObject;
var Command: TSynEditorCommand; var AChar: TUTF8Char; Data: pointer);
begin
end;
procedure TExplorerV2.tvModelExplorerGetSelectedIndex(Sender: TObject; Node: TTreeNode); procedure TExplorerV2.tvModelExplorerGetSelectedIndex(Sender: TObject; Node: TTreeNode);
...@@ -616,6 +666,52 @@ begin ...@@ -616,6 +666,52 @@ begin
end; end;
procedure TExplorerV2.PreencherSynCompletionClasses(piSynCompletion : TSynCompletion);
var lEnumerator : acEnumerator;
lClassTicket : acClassTicket;
begin
lEnumerator := self.MetaModel.ClassTickets.GetEnumerator;
try
piSynCompletion.ItemList.Clear;
while not lEnumerator.EOL do
begin
lClassTicket := acClassTicket(lEnumerator.Current);
piSynCompletion.ItemList.Add(lClassTicket.PersistentObjectClassName);
lEnumerator.MoveNext;
end;
finally
lEnumerator.Free;
end;
end;
procedure TExplorerV2.PreencherSynCompletionAtributos(piSynCompletion: TSynCompletion);
var li : integer;
lAttributeTicket : acAttributeTicket;
lClassTicket : acClassTicket;
ls_NameClass : string;
begin
ls_NameClass := trim(SynEditOQL.GetWordAtRowCol(SynEditOQL.PrevWordPos));
if ls_NameClass <> '' then
begin
lClassTicket := self.MetaModel.GetClassTicketByName(ls_NameClass);
if Assigned(lClassTicket) then
begin
piSynCompletion.ItemList.Clear;
for li := 0 to pred(lClassTicket.Attributes.Count) do
begin
lAttributeTicket := acAttributeTicket(lClassTicket.Attributes.Objects[li]);
if lAttributeTicket.Stereotype = acAttributeStereotype.pvPersistent then
begin
piSynCompletion.ItemList.Add(lAttributeTicket.AttributeName);
end;
end;
end;
end;
end;
procedure TExplorerV2.CreateParams(var Params: TCreateParams); procedure TExplorerV2.CreateParams(var Params: TCreateParams);
begin begin
inherited CreateParams(Params); inherited CreateParams(Params);
...@@ -640,6 +736,9 @@ begin ...@@ -640,6 +736,9 @@ begin
fUtil.AlimentarMetamodel(lMetaModelGenOpt, nil); fUtil.AlimentarMetamodel(lMetaModelGenOpt, nil);
FMetaModelPersistenceMap := fUtil.MetaModelPersistenceMap; FMetaModelPersistenceMap := fUtil.MetaModelPersistenceMap;
MetaModel := fUtil.MetaModel; MetaModel := fUtil.MetaModel;
PreencherSynCompletionClasses(scpClasseCompletion);
scpAtributoCompletion.Editor := nil;
end; end;
procedure TExplorerV2.FormDestroy(Sender: TObject); procedure TExplorerV2.FormDestroy(Sender: TObject);
......
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