Commit 1a931289 authored by Jucelino Fonseca's avatar Jucelino Fonseca

Ajustes, criação do filtro

parent c12f432b
...@@ -11754,7 +11754,7 @@ object ExplorerV2: TExplorerV2 ...@@ -11754,7 +11754,7 @@ object ExplorerV2: TExplorerV2
OnDragDrop = memOQLQuery2DragDrop OnDragDrop = memOQLQuery2DragDrop
OnDragOver = memOQLQuery2DragOver OnDragOver = memOQLQuery2DragOver
BorderStyle = bsNone BorderStyle = bsNone
Gutter.Width = 29 Gutter.Width = 42
Gutter.MouseActions = <> Gutter.MouseActions = <>
RightGutter.Width = 0 RightGutter.Width = 0
RightGutter.MouseActions = <> RightGutter.MouseActions = <>
...@@ -12941,8 +12941,8 @@ object ExplorerV2: TExplorerV2 ...@@ -12941,8 +12941,8 @@ object ExplorerV2: TExplorerV2
TabOrder = 1 TabOrder = 1
object tvModelExplorer: TTreeView object tvModelExplorer: TTreeView
Left = 0 Left = 0
Height = 719 Height = 751
Top = 152 Top = 120
Width = 450 Width = 450
Align = alClient Align = alClient
BorderStyle = bsNone BorderStyle = bsNone
...@@ -12968,51 +12968,43 @@ object ExplorerV2: TExplorerV2 ...@@ -12968,51 +12968,43 @@ object ExplorerV2: TExplorerV2
end end
object pnFiltroClasse: TPanel object pnFiltroClasse: TPanel
Left = 0 Left = 0
Height = 152 Height = 120
Top = 0 Top = 0
Width = 450 Width = 450
Align = alTop Align = alTop
ClientHeight = 152 ClientHeight = 120
ClientWidth = 450 ClientWidth = 450
TabOrder = 1 TabOrder = 1
object edtClasse: TEdit object edtClasse: TEdit
Left = 11 Left = 11
Height = 28 Height = 28
Top = 101 Top = 83
Width = 419 Width = 419
OnChange = edtClasseChange OnChange = edtClasseChange
TabOrder = 0 TabOrder = 0
end end
object Label1: TLabel object gbAgrupamento: TGroupBox
Left = 11 Left = 11
Height = 20 Height = 56
Top = 80 Top = 3
Width = 31 Width = 419
Caption = 'Class' Caption = 'Group'
ClientHeight = 31
ClientWidth = 415
Font.CharSet = ANSI_CHARSET Font.CharSet = ANSI_CHARSET
Font.Color = clBlack Font.Color = clBlack
Font.Height = -15 Font.Height = -15
Font.Name = 'Segoe UI Light' Font.Name = 'Segoe UI'
Font.Pitch = fpVariable Font.Pitch = fpVariable
Font.Quality = fqDraft Font.Quality = fqDraft
ParentColor = False
ParentFont = False ParentFont = False
end
object gbAgrupamento: TGroupBox
Left = 11
Height = 64
Top = 16
Width = 419
Caption = 'Agrupamento'
ClientHeight = 39
ClientWidth = 415
TabOrder = 1 TabOrder = 1
object rbHieraquia: TRadioButton object rbHieraquia: TRadioButton
Left = 200 Left = 200
Height = 24 Height = 24
Top = 0 Top = 0
Width = 89 Width = 87
Caption = 'Hieraquia' Caption = 'Hierarchy'
OnClick = edtClasseChange OnClick = edtClasseChange
TabOrder = 0 TabOrder = 0
end end
...@@ -13020,14 +13012,29 @@ object ExplorerV2: TExplorerV2 ...@@ -13020,14 +13012,29 @@ object ExplorerV2: TExplorerV2
Left = 16 Left = 16
Height = 24 Height = 24
Top = 0 Top = 0
Width = 96 Width = 48
Caption = 'Sequencial' Caption = 'Flat'
Checked = True Checked = True
OnClick = edtClasseChange OnClick = edtClasseChange
TabOrder = 1 TabOrder = 1
TabStop = True TabStop = True
end end
end end
object Label2: TLabel
Left = 15
Height = 20
Top = 61
Width = 33
Caption = 'Class'
Font.CharSet = ANSI_CHARSET
Font.Color = clBlack
Font.Height = -15
Font.Name = 'Segoe UI'
Font.Pitch = fpVariable
Font.Quality = fqDraft
ParentColor = False
ParentFont = False
end
end end
end end
object il1: TImageList object il1: TImageList
......
...@@ -29,7 +29,7 @@ type ...@@ -29,7 +29,7 @@ type
edtClasse: TEdit; edtClasse: TEdit;
gbAgrupamento: TGroupBox; gbAgrupamento: TGroupBox;
ilModel: TImageList; ilModel: TImageList;
Label1: TLabel; Label2: TLabel;
lvXMLListResult: TListView; lvXMLListResult: TListView;
memXMLTextResult: TMemo; memXMLTextResult: TMemo;
OQLObjects: TObjectExplorer; OQLObjects: TObjectExplorer;
...@@ -118,7 +118,7 @@ type ...@@ -118,7 +118,7 @@ type
function GetStringEntreParenteses(piString : string) : string; function GetStringEntreParenteses(piString : string) : string;
function GetNumeroDeStringOID (piString : string) : string; function GetNumeroDeStringOID (piString : string) : string;
procedure CopiaTextoObjeto (piObjeto : TTreeNode); procedure CopiaTextoObjeto (piObjeto : TTreeNode);
function BuscaParcialClasse(piCLasse: string; piItemPai: TTreeNode; piFiltrar: boolean): boolean; function BuscaParcialClasse(piCLasse: string; piFiltrar: boolean): boolean;
protected protected
procedure CreateParams(var Params : TCreateParams); override; procedure CreateParams(var Params : TCreateParams); override;
function Connect : acPersistenceSession; function Connect : acPersistenceSession;
...@@ -520,8 +520,7 @@ begin ...@@ -520,8 +520,7 @@ begin
Clipbrd.Clipboard.AsText := lString; Clipbrd.Clipboard.AsText := lString;
end; end;
function TExplorerV2.BuscaParcialClasse(piCLasse: string; function TExplorerV2.BuscaParcialClasse(piCLasse: string; piFiltrar: boolean): boolean;
piItemPai: TTreeNode; piFiltrar: boolean): boolean;
var lClasseTree, var lClasseTree,
lClasseP : string; lClasseP : string;
begin begin
...@@ -590,7 +589,7 @@ begin ...@@ -590,7 +589,7 @@ begin
while not lEnumerator.EOL do while not lEnumerator.EOL do
begin begin
lClassTicket := acClassTicket(lEnumerator.Current); lClassTicket := acClassTicket(lEnumerator.Current);
if BuscaParcialClasse(lClassTicket.PersistentObjectClassName,Node,lFiltro) then if BuscaParcialClasse(lClassTicket.PersistentObjectClassName,lFiltro) then
begin begin
targetNode := Node.Owner.AddChildObject(Node, lClassTicket.PersistentObjectClassName, lClassTicket); targetNode := Node.Owner.AddChildObject(Node, lClassTicket.PersistentObjectClassName, lClassTicket);
targetNode.ImageIndex := 6; targetNode.ImageIndex := 6;
...@@ -685,33 +684,71 @@ var lClassTicket: acClassTicket; ...@@ -685,33 +684,71 @@ var lClassTicket: acClassTicket;
lCardinality: string; lCardinality: string;
lEnumerator: acEnumerator; lEnumerator: acEnumerator;
li: integer; li: integer;
lNodeParent,
targetNode : TTreeNode; targetNode : TTreeNode;
lFiltro : boolean; lFiltro : boolean;
begin begin
lFiltro := trim(edtClasse.Text) <> ''; lFiltro := trim(edtClasse.Text) <> '';
if Node.HasChildren and (Node.Count = 0)then if Node.HasChildren {and (Node.Count = 0)}then
begin begin
Node.Owner.BeginUpdate; Node.Owner.BeginUpdate;
try try
if (TObject(Node.Data) is acMetaModel) then if (TObject(Node.Data) is acMetaModel) then
begin begin
//Carregas o pai
lEnumerator := acMetaModel(Node.Data).ClassTickets.GetEnumerator; lEnumerator := acMetaModel(Node.Data).ClassTickets.GetEnumerator;
while not lEnumerator.EOL do try
begin while not lEnumerator.EOL do
lClassTicket := acClassTicket(lEnumerator.Current);
if BuscaParcialClasse(lClassTicket.PersistentObjectClassName,Node,lFiltro) then
begin begin
targetNode := Node.Owner.AddChildObject(Node, lClassTicket.PersistentObjectClassName, lClassTicket); lClassTicket := acClassTicket(lEnumerator.Current);
targetNode.ImageIndex := 6; if not Assigned(lClassTicket.ParentClassTicket) then
targetNode.HasChildren := True; begin
if BuscaParcialClasse(lClassTicket.PersistentObjectClassName,lFiltro) then
begin
targetNode := Node.Owner.AddChildObject(Node, lClassTicket.PersistentObjectClassName, lClassTicket);
targetNode.ImageIndex := 6;
targetNode.HasChildren := True;
end;
end;
lEnumerator.MoveNext;
end; end;
lEnumerator.MoveNext; finally
lEnumerator.Free;
end;
//Carrega os filhos
lEnumerator := acMetaModel(Node.Data).ClassTickets.GetEnumerator;
try
while not lEnumerator.EOL do
begin
lClassTicket := acClassTicket(lEnumerator.Current);
if Assigned(lClassTicket.ParentClassTicket) then
begin
if BuscaParcialClasse(lClassTicket.PersistentObjectClassName,lFiltro) then
begin
lNodeParent := Node.Owner.FindNodeWithData(lClassTicket.ParentClassTicket);
if Assigned(lNodeParent) then
begin
targetNode := Node.Owner.AddChildObject(lNodeParent, lClassTicket.PersistentObjectClassName, lClassTicket);
end
else
begin
targetNode := Node.Owner.AddChildObject(Node, lClassTicket.PersistentObjectClassName, lClassTicket);
end;
targetNode.ImageIndex := 6;
targetNode.HasChildren := True;
end;
end;
lEnumerator.MoveNext;
end;
finally
lEnumerator.Free;
end; end;
end end
else if (TObject(Node.Data) is acClassTicket) then else if (TObject(Node.Data) is acClassTicket) then
begin begin
lClassTicket := acClassTicket(Node.Data); lClassTicket := acClassTicket(Node.Data);
repeat //repeat
for li := 0 to pred(lClassTicket.Attributes.Count) do for li := 0 to pred(lClassTicket.Attributes.Count) do
begin begin
lAttributeTicket := acAttributeTicket(lClassTicket.Attributes.Objects[li]); lAttributeTicket := acAttributeTicket(lClassTicket.Attributes.Objects[li]);
...@@ -777,15 +814,14 @@ begin ...@@ -777,15 +814,14 @@ begin
end; end;
end; end;
end; end;
lClassTicket := lClassTicket.ParentClassTicket; //lClassTicket := lClassTicket.ParentClassTicket;
until lClassTicket = nil; //until lClassTicket = nil;
end; end;
finally finally
Node.Owner.EndUpdate; Node.Owner.EndUpdate;
end; end;
end; end;
end; end;
procedure TExplorerV2.FormShow(Sender: TObject); procedure TExplorerV2.FormShow(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