Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
StarUML Evológica Plugin
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
3
Merge Requests
3
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
evologica
StarUML Evológica Plugin
Commits
01e2f5b7
Commit
01e2f5b7
authored
Oct 01, 2020
by
Jucelino Fonseca
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ajustes
parent
90c1a185
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
91 additions
and
238 deletions
+91
-238
ituExplorerV2.dfm
EvoUMLPlugin/src/ituExplorerV2.dfm
+2
-25
ituExplorerV2.pas
EvoUMLPlugin/src/ituExplorerV2.pas
+89
-213
No files found.
EvoUMLPlugin/src/ituExplorerV2.dfm
View file @
01e2f5b7
...
@@ -11751,11 +11751,6 @@ object ExplorerV2: TExplorerV2
...
@@ -11751,11 +11751,6 @@ object ExplorerV2: TExplorerV2
ParentColor = False
ParentColor = False
ParentFont = False
ParentFont = False
TabOrder = 0
TabOrder = 0
OnQuadClick = SynEditOQLQuadClick
OnDragDrop = memOQLQuery2DragDrop
OnDragOver = memOQLQuery2DragOver
OnKeyPress = SynEditOQLKeyPress
OnClickLink = SynEditOQLClickLink
BorderStyle = bsNone
BorderStyle = bsNone
Gutter.Width = 42
Gutter.Width = 42
Gutter.MouseActions = <>
Gutter.MouseActions = <>
...
@@ -12213,8 +12208,8 @@ object ExplorerV2: TExplorerV2
...
@@ -12213,8 +12208,8 @@ object ExplorerV2: TExplorerV2
MouseLinkColor.Foreground = clBlue
MouseLinkColor.Foreground = clBlue
LineHighlightColor.Background = clNone
LineHighlightColor.Background = clNone
LineHighlightColor.Foreground = clNone
LineHighlightColor.Foreground = clNone
OnChange = SynEditOQLChange
OnCommandProcessed = SynEditOQLCommandProcessed
OnCommandProcessed = SynEditOQLCommandProcessed
OnProcessCommand = SynEditOQLProcessCommand
OnProcessUserCommand = SynEditOQLProcessUserCommand
OnProcessUserCommand = SynEditOQLProcessUserCommand
inline SynLeftGutterPartList1: TSynGutterPartList
inline SynLeftGutterPartList1: TSynGutterPartList
object SynGutterMarks1: TSynGutterMarks
object SynGutterMarks1: TSynGutterMarks
...
@@ -13973,22 +13968,6 @@ object ExplorerV2: TExplorerV2
...
@@ -13973,22 +13968,6 @@ object ExplorerV2: TExplorerV2
Left = 1400
Left = 1400
Top = 10
Top = 10
end
end
object scpAtributoCompletion: TSynCompletion
OnExecute = scpAtributoCompletionExecute
Position = 0
LinesInWindow = 6
SelectedColor = clHighlight
CaseSensitive = False
Width = 262
AutoUseSingleIdent = True
ShortCut = 16416
EndOfTokenChr = '()[].'
ExecCommandID = ecSynCompletionExecute
Editor = SynEditOQL
ToggleReplaceWhole = False
Left = 744
Top = 208
end
object ilModel: TImageList
object ilModel: TImageList
Left = 140
Left = 140
Top = 210
Top = 210
...
@@ -14284,8 +14263,7 @@ object ExplorerV2: TExplorerV2
...
@@ -14284,8 +14263,7 @@ object ExplorerV2: TExplorerV2
0000000000000000000000000000
0000000000000000000000000000
}
}
end
end
object scpClasseCompletion: TSynCompletion
object scpListCompletion: TSynCompletion
OnExecute = scpAtributoCompletionExecute
Position = 0
Position = 0
LinesInWindow = 6
LinesInWindow = 6
SelectedColor = clHighlight
SelectedColor = clHighlight
...
@@ -14294,7 +14272,6 @@ object ExplorerV2: TExplorerV2
...
@@ -14294,7 +14272,6 @@ object ExplorerV2: TExplorerV2
AutoUseSingleIdent = True
AutoUseSingleIdent = True
ShortCut = 16416
ShortCut = 16416
EndOfTokenChr = '()[].'
EndOfTokenChr = '()[].'
OnCodeCompletion = scpClasseCompletionCodeCompletion
ExecCommandID = ecSynCompletionExecute
ExecCommandID = ecSynCompletionExecute
Editor = SynEditOQL
Editor = SynEditOQL
ToggleReplaceWhole = False
ToggleReplaceWhole = False
...
...
EvoUMLPlugin/src/ituExplorerV2.pas
View file @
01e2f5b7
...
@@ -9,6 +9,10 @@ uses
...
@@ -9,6 +9,10 @@ uses
acuObjectExplorer
,
Menus
,
Buttons
,
SynEdit
,
SynHighlighterSQL
,
SynCompletion
,
acuObjectExplorer
,
Menus
,
Buttons
,
SynEdit
,
SynHighlighterSQL
,
SynCompletion
,
acuModel
,
acuRepositorySQL
,
SynEditKeyCmds
,
SynHighlighterPython
,
Types
;
acuModel
,
acuRepositorySQL
,
SynEditKeyCmds
,
SynHighlighterPython
,
Types
;
const
__WHERE
=
'WHERE'
;
__SELECT
=
'SELECT'
;
__FROM
=
'FROM'
;
type
type
TDLLDialog
=
class
(
TForm
)
TDLLDialog
=
class
(
TForm
)
...
@@ -41,8 +45,7 @@ type
...
@@ -41,8 +45,7 @@ type
sbStatusBar
:
TStatusBar
;
sbStatusBar
:
TStatusBar
;
spResultXML
:
TSplitter
;
spResultXML
:
TSplitter
;
spResultObject
:
TSplitter
;
spResultObject
:
TSplitter
;
scpAtributoCompletion
:
TSynCompletion
;
scpListCompletion
:
TSynCompletion
;
scpClasseCompletion
:
TSynCompletion
;
SynEditOQL
:
TSynEdit
;
SynEditOQL
:
TSynEdit
;
SynEditSQL
:
TSynEdit
;
SynEditSQL
:
TSynEdit
;
SynSQLSyn1
:
TSynSQLSyn
;
SynSQLSyn1
:
TSynSQLSyn
;
...
@@ -91,13 +94,14 @@ type
...
@@ -91,13 +94,14 @@ type
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
SynEditOQLChange
(
Sender
:
TObject
);
procedure
SynEditOQLChange
(
Sender
:
TObject
);
procedure
SynEditOQLClickLink
(
Sender
:
TObject
;
Button
:
TMouseButton
;
procedure
SynEditOQLClickLink
(
Sender
:
TObject
;
Button
:
TMouseButton
;
Shift
:
TShiftState
;
X
,
Y
:
Integer
);
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
SynEditOQLKeyPress
(
Sender
:
TObject
;
var
Key
:
char
);
procedure
SynEditOQLKeyPress
(
Sender
:
TObject
;
var
Key
:
char
);
procedure
SynEditOQLProcessCommand
(
Sender
:
TObject
;
var
Command
:
TSynEditorCommand
;
var
AChar
:
TUTF8Char
;
Data
:
pointer
);
procedure
SynEditOQLProcessUserCommand
(
Sender
:
TObject
;
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
SynEditOQLQuadClick
(
Sender
:
TObject
);
...
@@ -139,13 +143,9 @@ type
...
@@ -139,13 +143,9 @@ 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
;
function
GetClassTicketRelation
(
piSynCompletion
:
TSynCompletion
):
acClassTicket
;
procedure
PreencherSynCompletionRelacionamentos
(
piClassTicket
:
acClassTicket
;
piSynCompletion
:
TSynCompletion
);
procedure
PreencherSynCompletionClasses
(
piSynCompletion
:
TSynCompletion
);
procedure
PreencherSynCompletionAtributos
(
piSynCompletion
:
TSynCompletion
;
piClassTicket
:
acClassTicket
);
procedure
ExecutarSybCompletion
(
piSynCompletion
:
TSynCompletion
);
procedure
ExecutarSybCompletion
(
piSynCompletion
:
TSynCompletion
);
procedure
PreencherAposDigitarPonto
(
piSynCompletion
:
TSynCompletion
;
piClassTicketPai
:
acClassTicket
=
nil
);
procedure
LoadListCompletion
(
piLinha
:
string
;
piAceitaAtributo
:
boolean
;
piLista
:
TStrings
);
procedure
AlimentarListaCompletion
(
piLinha
:
string
;
piAceitaAtributo
:
boolean
;
piLista
:
TStrings
)
;
procedure
PreparaSynCompletion
;
protected
protected
procedure
CreateParams
(
var
Params
:
TCreateParams
);
override
;
procedure
CreateParams
(
var
Params
:
TCreateParams
);
override
;
function
Connect
:
acPersistenceSession
;
function
Connect
:
acPersistenceSession
;
...
@@ -462,14 +462,9 @@ procedure TExplorerV2.scpClasseCompletionCodeCompletion(var Value: string;
...
@@ -462,14 +462,9 @@ procedure TExplorerV2.scpClasseCompletionCodeCompletion(var Value: string;
SourceValue
:
string
;
var
SourceStart
,
SourceEnd
:
TPoint
;
KeyChar
:
TUTF8Char
;
SourceValue
:
string
;
var
SourceStart
,
SourceEnd
:
TPoint
;
KeyChar
:
TUTF8Char
;
Shift
:
TShiftState
);
Shift
:
TShiftState
);
begin
begin
end
;
end
;
procedure
TExplorerV2
.
scpClasseCompletionExecute
(
Sender
:
TObject
);
begin
end
;
procedure
TExplorerV2
.
SynEditOQLChange
(
Sender
:
TObject
);
procedure
TExplorerV2
.
SynEditOQLChange
(
Sender
:
TObject
);
begin
begin
...
@@ -485,12 +480,11 @@ end;
...
@@ -485,12 +480,11 @@ 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
);
begin
begin
if
Achar
=
'.'
then
if
AChar
=
'.'
then
begin
begin
PreencherAposDigitarPonto
(
scpAtributoCompletion
);
PreparaSynCompletion
;
ExecutarSybCompletion
(
scpAtributoCompletion
);
ExecutarSybCompletion
(
scpListCompletion
);
end
;
end
;
end
;
end
;
procedure
TExplorerV2
.
SynEditOQLKeyPress
(
Sender
:
TObject
;
var
Key
:
char
);
procedure
TExplorerV2
.
SynEditOQLKeyPress
(
Sender
:
TObject
;
var
Key
:
char
);
...
@@ -498,51 +492,17 @@ begin
...
@@ -498,51 +492,17 @@ begin
end
;
end
;
procedure
TExplorerV2
.
SynEditOQLProcessUserCommand
(
Sender
:
TObject
;
procedure
TExplorerV2
.
SynEditOQLProcessCommand
(
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
begin
{ p1 := SynEdit1.NextTokenPos ;//logical = byte position
end
;
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
PreencherAposDigitarPonto
(
scpAtributoCompletion
,
lClassTicket
);
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
;
procedure
TExplorerV2
.
SynEditOQLProcessUserCommand
(
Sender
:
TObject
;
var
Command
:
TSynEditorCommand
;
var
AChar
:
TUTF8Char
;
Data
:
pointer
);
begin
PreparaSynCompletion
;
// ExecutarSybCompletion(scpListCompletion);
end
;
end
;
...
@@ -758,154 +718,18 @@ begin
...
@@ -758,154 +718,18 @@ begin
end
;
end
;
function
TExplorerV2
.
GetClassTicketRelation
(
piSynCompletion
:
TSynCompletion
):
acClassTicket
;
var
p1
,
zeroPoint
:
TPoint
;
ls_aux
:
string
;
lPropertyName
:
string
;
begin
//http://wiki.lazarus.freepascal.org/SynEdit#Logical.2FPhysical_caret_position
{p1 := SynEdit1.CaretXY ;
ls_aux := SynEdit1.LineText;
li_Pos := Pos('ng',ls_aux);
zeroPoint.X := li_pos;
zeroPoint.y := SynEdit1.CaretY;
ls_aux := trim(SynEdit1.TextBetweenPoints[zeroPoint,p1]);
lPropertyName := trim(SynEditOQL.GetWordAtRowCol(SynEditOQL.PrevWordPos)); }
result
:=
GetClassTicket
(
ls_aux
,
lPropertyName
);
end
;
procedure
TExplorerV2
.
PreencherSynCompletionRelacionamentos
(
piClassTicket
:
acClassTicket
;
piSynCompletion
:
TSynCompletion
);
var
li
:
integer
;
lRelationTicket
:
acRelationTicket
;
ls_NameRelacionamento
:
string
;
lClassTicketRelation
:
acClassTicket
;
begin
piSynCompletion
.
ItemList
.
Clear
;
if
not
Assigned
(
piClassTicket
)
then
begin
lClassTicketRelation
:=
GetClassTicketRelation
(
piSynCompletion
);
exit
;
end
else
begin
lClassTicketRelation
:=
piClassTicket
;
end
;
for
li
:=
0
to
pred
(
lClassTicketRelation
.
RelationTicketsIn
.
Count
)
do
begin
lRelationTicket
:=
acRelationTicket
(
lClassTicketRelation
.
RelationTicketsIn
.
Objects
[
li
]);
piSynCompletion
.
ItemList
.
Add
(
lRelationTicket
.
DestinationPropertyName
);
end
;
for
li
:=
0
to
pred
(
lClassTicketRelation
.
RelationTicketsOut
.
Count
)
do
begin
lRelationTicket
:=
acRelationTicket
(
lClassTicketRelation
.
RelationTicketsOut
.
Objects
[
li
]);
piSynCompletion
.
ItemList
.
Add
(
lRelationTicket
.
OriginPropertyName
);
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
;
piClassTicket
:
acClassTicket
);
var
li
:
integer
;
lAttributeTicket
:
acAttributeTicket
;
begin
if
Assigned
(
piClassTicket
)
then
begin
piSynCompletion
.
ItemList
.
Clear
;
for
li
:=
0
to
pred
(
piClassTicket
.
Attributes
.
Count
)
do
begin
lAttributeTicket
:=
acAttributeTicket
(
piClassTicket
.
Attributes
.
Objects
[
li
]);
if
lAttributeTicket
.
Stereotype
=
acAttributeStereotype
.
pvPersistent
then
begin
piSynCompletion
.
ItemList
.
Add
(
lAttributeTicket
.
AttributeName
);
end
;
end
;
end
;
end
;
procedure
TExplorerV2
.
ExecutarSybCompletion
(
piSynCompletion
:
TSynCompletion
);
procedure
TExplorerV2
.
ExecutarSybCompletion
(
piSynCompletion
:
TSynCompletion
);
var
apoint
,
temppoint
:
tpoint
;
var
apoint
,
temppoint
:
tpoint
;
begin
begin
//will compare the schema_tablename to a list of available schema names for the current database.
//will compare the schema_tablename to a list of available schema names for the current database.
temppoint
:=
SynEditOQL
.
CaretXY
;
temppoint
:=
SynEditOQL
.
CaretXY
;
temppoint
.
y
:=
temppoint
.
y
+
1
;
temppoint
.
y
:=
temppoint
.
y
+
1
;
apoint
:=
SynEditOQL
.
ClientToScreen
(
SynEditOQL
.
RowColumnToPixels
(
temppoint
));
apoint
:=
SynEditOQL
.
ClientToScreen
(
SynEditOQL
.
RowColumnToPixels
(
temppoint
));
piSynCompletion
.
Execute
(
''
,
apoint
);
piSynCompletion
.
Execute
(
''
,
apoint
);
end
;
procedure
TExplorerV2
.
PreencherAposDigitarPonto
(
piSynCompletion
:
TSynCompletion
;
piClassTicketPai
:
acClassTicket
=
nil
);
var
li
,
li_Pos
:
integer
;
lAttributeTicket
:
acAttributeTicket
;
lClassTicket
:
acClassTicket
;
ls_Aux
,
ls_NameClass
:
string
;
p1
,
zeroPoint
:
TPoint
;
begin
piSynCompletion
.
ItemList
.
Clear
;
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
exit
;
end
;
if
not
Assigned
(
piClassTicketPai
)
then
begin
ls_NameClass
:=
trim
(
SynEditOQL
.
GetWordAtRowCol
(
SynEditOQL
.
PrevWordPos
));
if
ls_NameClass
<>
''
then
begin
lClassTicket
:=
self
.
MetaModel
.
GetClassTicketByName
(
ls_NameClass
);
end
;
end
else
begin
lClassTicket
:=
piClassTicketPai
;
end
;
ls_Aux
:=
LowerCase
(
SynEditOQL
.
LineText
);
li_Pos
:=
Pos
(
'from'
,
ls_Aux
);
if
li_Pos
>
0
then
begin
PreencherSynCompletionRelacionamentos
(
lClassTicket
,
piSynCompletion
)
end
else
begin
PreencherSynCompletionAtributos
(
piSynCompletion
,
lClassTicket
);
end
;
if
not
Assigned
(
piSynCompletion
.
Editor
)
then
begin
piSynCompletion
.
Editor
:=
SynEditOQL
;
scpClasseCompletion
.
Editor
:=
nil
;
end
;
end
;
end
;
procedure
TExplorerV2
.
AlimentarLista
Completion
(
piLinha
:
string
;
piAceitaAtributo
:
boolean
;
piLista
:
TStrings
);
procedure
TExplorerV2
.
LoadList
Completion
(
piLinha
:
string
;
piAceitaAtributo
:
boolean
;
piLista
:
TStrings
);
var
lClassTicketCurrent
,
var
lClassTicketCurrent
,
lClassTicketAux
:
acClassTicket
;
lClassTicketAux
:
acClassTicket
;
...
@@ -918,13 +742,17 @@ var lClassTicketCurrent,
...
@@ -918,13 +742,17 @@ var lClassTicketCurrent,
lbAchei
:
boolean
;
lbAchei
:
boolean
;
lAttributeTicket
:
acAttributeTicket
;
lAttributeTicket
:
acAttributeTicket
;
begin
begin
li_Pos
:=
Pos
(
'.'
,
piLinha
);
piLista
.
Clear
;
piLista
.
Clear
;
if
li_Pos
<=
0
then
li_Pos
:=
Pos
(
'..'
,
piLinha
);
if
li_Pos
>
0
then
begin
exit
;
end
;
li_Pos
:=
Pos
(
'.'
,
piLinha
);
if
li_Pos
<=
0
then
begin
begin
lEnumerator
:=
self
.
MetaModel
.
ClassTickets
.
GetEnumerator
;
lEnumerator
:=
self
.
MetaModel
.
ClassTickets
.
GetEnumerator
;
try
try
piLista
.
Clear
;
while
not
lEnumerator
.
EOL
do
while
not
lEnumerator
.
EOL
do
begin
begin
lClassTicketCurrent
:=
acClassTicket
(
lEnumerator
.
Current
);
lClassTicketCurrent
:=
acClassTicket
(
lEnumerator
.
Current
);
...
@@ -966,20 +794,19 @@ begin
...
@@ -966,20 +794,19 @@ begin
begin
begin
for
li
:=
0
to
pred
(
lClassTicketCurrent
.
RelationTicketsOut
.
Count
)
do
for
li
:=
0
to
pred
(
lClassTicketCurrent
.
RelationTicketsOut
.
Count
)
do
begin
begin
if
SameText
(
lRelationTicket
.
DestinationPropertyName
,
ls_Objeto
)
then
lRelationTicket
:=
acRelationTicket
(
lClassTicketCurrent
.
RelationTicketsOut
.
Objects
[
li
]);
if
SameText
(
lRelationTicket
.
OriginPropertyName
,
ls_Objeto
)
then
begin
begin
lClassTicketAux
:=
lRelationTicket
.
Origi
nClassTicket
;
lClassTicketAux
:=
lRelationTicket
.
Destinatio
nClassTicket
;
break
;
break
;
end
;
end
;
end
;
end
;
end
;
end
;
lClassTicketCurrent
:=
lClassTicketAux
;
end
;
end
;
end
;
end
;
if
Assigned
(
lClassTicketAux
)
then
begin
lClassTicketCurrent
:=
lClassTicketAux
;
end
;
if
Assigned
(
lClassTicketCurrent
)
then
if
Assigned
(
lClassTicketCurrent
)
then
begin
begin
if
piAceitaAtributo
then
if
piAceitaAtributo
then
...
@@ -996,19 +823,68 @@ begin
...
@@ -996,19 +823,68 @@ begin
for
li
:=
0
to
pred
(
lClassTicketCurrent
.
RelationTicketsIn
.
Count
)
do
for
li
:=
0
to
pred
(
lClassTicketCurrent
.
RelationTicketsIn
.
Count
)
do
begin
begin
lRelationTicket
:=
acRelationTicket
(
lClassTicketCurrent
.
RelationTicketsIn
.
Objects
[
li
]);
lRelationTicket
:=
acRelationTicket
(
lClassTicketCurrent
.
RelationTicketsIn
.
Objects
[
li
]);
piLista
.
Add
(
lRelationTicket
.
DestinationPropertyName
);
if
trim
(
lRelationTicket
.
DestinationPropertyName
)
<>
''
then
piLista
.
Add
(
lRelationTicket
.
DestinationPropertyName
);
end
;
end
;
for
li
:=
0
to
pred
(
lClassTicketCurrent
.
RelationTicketsOut
.
Count
)
do
for
li
:=
0
to
pred
(
lClassTicketCurrent
.
RelationTicketsOut
.
Count
)
do
begin
begin
lRelationTicket
:=
acRelationTicket
(
lClassTicketCurrent
.
RelationTicketsOut
.
Objects
[
li
]);
lRelationTicket
:=
acRelationTicket
(
lClassTicketCurrent
.
RelationTicketsOut
.
Objects
[
li
]);
piLista
.
Add
(
lRelationTicket
.
OriginPropertyName
);
if
trim
(
lRelationTicket
.
OriginPropertyName
)
<>
''
then
piLista
.
Add
(
lRelationTicket
.
OriginPropertyName
);
end
;
end
;
end
;
end
;
end
;
end
;
end
;
end
;
procedure
TExplorerV2
.
PreparaSynCompletion
;
var
lAceitaAtributo
:
boolean
;
ls_espaco
,
ls_Aux
:
string
;
li_Pos
:
integer
;
p1
,
zeroPoint
:
TPoint
;
begin
scpListCompletion
.
ItemList
.
Clear
;
p1
:=
SynEditOQL
.
CaretXY
;
zeroPoint
.
X
:=
0
;
zeroPoint
.
y
:=
SynEditOQL
.
CaretY
;
ls_aux
:=
trim
(
SynEditOQL
.
TextBetweenPoints
[
zeroPoint
,
p1
]);
ls_espaco
:=
' '
;
lAceitaAtributo
:=
true
;
li_Pos
:=
Pos
(
__FROM
,
uppercase
(
ls_aux
));
if
li_Pos
>
0
then
begin
ls_aux
:=
trim
(
Copy
(
ls_aux
,
li_Pos
+
Length
(
__FROM
),
Length
(
ls_aux
)));
lAceitaAtributo
:=
false
;
end
;
li_Pos
:=
Pos
(
__SELECT
,
uppercase
(
ls_aux
));
if
li_Pos
>
0
then
begin
ls_aux
:=
trim
(
Copy
(
ls_aux
,
li_Pos
+
Length
(
__SELECT
),
Length
(
ls_aux
)));
lAceitaAtributo
:=
false
;;
end
;
li_Pos
:=
Pos
(
__WHERE
,
uppercase
(
ls_aux
));
if
li_Pos
>
0
then
begin
ls_aux
:=
trim
(
Copy
(
ls_aux
,
li_Pos
+
Length
(
__WHERE
),
Length
(
ls_aux
)));
lAceitaAtributo
:=
true
;;
end
;
li_Pos
:=
Pos
(
ls_espaco
,
trim
(
ls_aux
));
while
li_Pos
>
0
do
begin
ls_aux
:=
trim
(
Copy
(
ls_aux
,
li_Pos
+
1
,
Length
(
ls_aux
)));
li_Pos
:=
Pos
(
ls_espaco
,
ls_aux
);
end
;
LoadListCompletion
(
ls_aux
,
lAceitaAtributo
,
scpListCompletion
.
ItemList
);
end
;
procedure
TExplorerV2
.
CreateParams
(
var
Params
:
TCreateParams
);
procedure
TExplorerV2
.
CreateParams
(
var
Params
:
TCreateParams
);
begin
begin
inherited
CreateParams
(
Params
);
inherited
CreateParams
(
Params
);
...
@@ -1032,8 +908,8 @@ begin
...
@@ -1032,8 +908,8 @@ begin
fUtil
.
AlimentarMetamodel
(
lMetaModelGenOpt
,
nil
);
fUtil
.
AlimentarMetamodel
(
lMetaModelGenOpt
,
nil
);
FMetaModelPersistenceMap
:=
fUtil
.
MetaModelPersistenceMap
;
FMetaModelPersistenceMap
:=
fUtil
.
MetaModelPersistenceMap
;
MetaModel
:=
fUtil
.
MetaModel
;
MetaModel
:=
fUtil
.
MetaModel
;
PreencherSynCompletionClasses
(
scpClasse
Completion
);
// PreencherSynCompletionClasses(scpList
Completion);
scpAtributoCompletion
.
Editor
:=
nil
;
end
;
end
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment