Commit fd27e393 authored by Jucelino Fonseca's avatar Jucelino Fonseca

Ajustes

parent 1a931289
......@@ -678,18 +678,22 @@ begin
end;
procedure TExplorerV2.MontarModelExploreHieraquia(Sender: TObject; Node: TTreeNode);
var lClassTicket: acClassTicket;
var lClassTicketChild,
lClassTicketPatriarc,
lClassTicket: acClassTicket;
lAttributeTicket: acAttributeTicket;
lRelationTicket: acRelationTicket;
lCardinality: string;
lEnumeratorChild,
lEnumerator: acEnumerator;
li: integer;
lNodeParent,
targetNode : TTreeNode;
lAchei,
lFiltro : boolean;
begin
lFiltro := trim(edtClasse.Text) <> '';
if Node.HasChildren {and (Node.Count = 0)}then
if Node.HasChildren and (Node.Count = 0) then
begin
Node.Owner.BeginUpdate;
try
......@@ -701,54 +705,50 @@ begin
while not lEnumerator.EOL do
begin
lClassTicket := acClassTicket(lEnumerator.Current);
lAchei := false;
if not Assigned(lClassTicket.ParentClassTicket) then
begin
if BuscaParcialClasse(lClassTicket.PersistentObjectClassName,lFiltro) then
begin
targetNode := Node.Owner.AddChildObject(Node, lClassTicket.PersistentObjectClassName, lClassTicket);
targetNode.ImageIndex := 6;
targetNode.HasChildren := True;
lAchei := true;
end
else if lClassTicket.HasDescendants then
begin
lEnumeratorChild := lClassTicket.DirectDescendants.GetEnumerator;
try
while not lEnumeratorChild.EOL do
begin
lClassTicketChild := acClassTicket(lEnumeratorChild.Current);
if BuscaParcialClasse(lClassTicketChild.PersistentObjectClassName,lFiltro) then
begin
if not Assigned(Node.Owner.FindNodeWithData(lClassTicket)) then
begin
lAchei := true;
end;
end;
lEnumerator.MoveNext;
lEnumeratorChild.MoveNext;
end;
finally
lEnumerator.Free;
lEnumeratorChild.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
end;
end;
if lAchei then
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
else if (TObject(Node.Data) is acClassTicket) then
begin
lClassTicket := acClassTicket(Node.Data);
//repeat
for li := 0 to pred(lClassTicket.Attributes.Count) do
begin
lAttributeTicket := acAttributeTicket(lClassTicket.Attributes.Objects[li]);
......@@ -814,8 +814,23 @@ begin
end;
end;
end;
//lClassTicket := lClassTicket.ParentClassTicket;
//until lClassTicket = nil;
if lClassTicket.HasDescendants then
begin
//Carrega os filhos
lEnumerator := lClassTicket.DirectDescendants.GetEnumerator;
try
while not lEnumerator.EOL do
begin
lClassTicketChild := acClassTicket(lEnumerator.Current);
targetNode := Node.Owner.AddChildObject(Node, lClassTicketChild.PersistentObjectClassName, lClassTicketChild);
targetNode.ImageIndex := 6;
targetNode.HasChildren := True;
lEnumerator.MoveNext;
end;
finally
lEnumerator.Free;
end;
end;
end;
finally
Node.Owner.EndUpdate;
......
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