Commit b74604ab authored by Jucelino Fonseca's avatar Jucelino Fonseca

Ajustes e testes

parent fd27e393
...@@ -119,6 +119,7 @@ type ...@@ -119,6 +119,7 @@ type
function GetNumeroDeStringOID (piString : string) : string; function GetNumeroDeStringOID (piString : string) : string;
procedure CopiaTextoObjeto (piObjeto : TTreeNode); procedure CopiaTextoObjeto (piObjeto : TTreeNode);
function BuscaParcialClasse(piCLasse: string; piFiltrar: boolean): boolean; function BuscaParcialClasse(piCLasse: string; piFiltrar: boolean): boolean;
function BuscarParcialNodeClasse(piClassTicket : acClassTicket; piFiltrar: boolean): boolean;
protected protected
procedure CreateParams(var Params : TCreateParams); override; procedure CreateParams(var Params : TCreateParams); override;
function Connect : acPersistenceSession; function Connect : acPersistenceSession;
...@@ -537,6 +538,36 @@ begin ...@@ -537,6 +538,36 @@ begin
end; end;
function TExplorerV2.BuscarParcialNodeClasse( piClassTicket : acClassTicket;
piFiltrar: boolean): boolean;
var lEnumeratorChild : acEnumerator;
lClassTicketChild : acClassTicket;
begin
result := false;
lEnumeratorChild := piClassTicket.DirectDescendants.GetEnumerator;
try
while not lEnumeratorChild.EOL do
begin
lClassTicketChild := acClassTicket(lEnumeratorChild.Current);
if BuscaParcialClasse(lClassTicketChild.PersistentObjectClassName,piFiltrar) then
begin
result := true;
break;
end
else if BuscarParcialNodeClasse(lClassTicketChild,piFiltrar) then
begin
result := true;
break;
end;
lEnumeratorChild.MoveNext;
end;
finally
lEnumeratorChild.Free;
end;
end;
procedure TExplorerV2.CreateParams(var Params: TCreateParams); procedure TExplorerV2.CreateParams(var Params: TCreateParams);
begin begin
inherited CreateParams(Params); inherited CreateParams(Params);
...@@ -687,8 +718,11 @@ var lClassTicketChild, ...@@ -687,8 +718,11 @@ var lClassTicketChild,
lEnumeratorChild, lEnumeratorChild,
lEnumerator: acEnumerator; lEnumerator: acEnumerator;
li: integer; li: integer;
lNodeParent, lNodePatriarc,
targetNode : TTreeNode; targetNode : TTreeNode;
lFiltroIgualFilho,
lbIncluir,
lFiltroIgualPai,
lAchei, lAchei,
lFiltro : boolean; lFiltro : boolean;
begin begin
...@@ -706,6 +740,7 @@ begin ...@@ -706,6 +740,7 @@ begin
begin begin
lClassTicket := acClassTicket(lEnumerator.Current); lClassTicket := acClassTicket(lEnumerator.Current);
lAchei := false; lAchei := false;
lFiltroIgualFilho := false;
if not Assigned(lClassTicket.ParentClassTicket) then if not Assigned(lClassTicket.ParentClassTicket) then
begin begin
if BuscaParcialClasse(lClassTicket.PersistentObjectClassName,lFiltro) then if BuscaParcialClasse(lClassTicket.PersistentObjectClassName,lFiltro) then
...@@ -714,7 +749,15 @@ begin ...@@ -714,7 +749,15 @@ begin
end end
else if lClassTicket.HasDescendants then else if lClassTicket.HasDescendants then
begin begin
lEnumeratorChild := lClassTicket.DirectDescendants.GetEnumerator; if BuscarParcialNodeClasse(lClassTicket,lFiltro) then
begin
if not Assigned(Node.Owner.FindNodeWithData(lClassTicket)) then
begin
lAchei := true;
lFiltroIgualFilho := true;
end;
end;
{lEnumeratorChild := lClassTicket.DirectDescendants.GetEnumerator;
try try
while not lEnumeratorChild.EOL do while not lEnumeratorChild.EOL do
begin begin
...@@ -724,13 +767,14 @@ begin ...@@ -724,13 +767,14 @@ begin
if not Assigned(Node.Owner.FindNodeWithData(lClassTicket)) then if not Assigned(Node.Owner.FindNodeWithData(lClassTicket)) then
begin begin
lAchei := true; lAchei := true;
lFiltroIgualFilho := true;
end; end;
end; end;
lEnumeratorChild.MoveNext; lEnumeratorChild.MoveNext;
end; end;
finally finally
lEnumeratorChild.Free; lEnumeratorChild.Free;
end; end; }
end; end;
end; end;
if lAchei then if lAchei then
...@@ -738,6 +782,10 @@ begin ...@@ -738,6 +782,10 @@ begin
targetNode := Node.Owner.AddChildObject(Node, lClassTicket.PersistentObjectClassName, lClassTicket); targetNode := Node.Owner.AddChildObject(Node, lClassTicket.PersistentObjectClassName, lClassTicket);
targetNode.ImageIndex := 6; targetNode.ImageIndex := 6;
targetNode.HasChildren := True; targetNode.HasChildren := True;
if lFiltroIgualFilho then
begin
targetNode.Expanded := true;
end;
end; end;
lEnumerator.MoveNext; lEnumerator.MoveNext;
end; end;
...@@ -819,12 +867,25 @@ begin ...@@ -819,12 +867,25 @@ begin
//Carrega os filhos //Carrega os filhos
lEnumerator := lClassTicket.DirectDescendants.GetEnumerator; lEnumerator := lClassTicket.DirectDescendants.GetEnumerator;
try try
if Assigned(lClassTicket.PatriarcClassTicket) then
begin
lFiltroIgualPai := BuscaParcialClasse(lClassTicket.PatriarcClassTicket.PersistentObjectClassName,lFiltro);
end
else
begin
lFiltroIgualPai := BuscaParcialClasse(lClassTicket.PersistentObjectClassName,lFiltro);
end;
while not lEnumerator.EOL do while not lEnumerator.EOL do
begin begin
lClassTicketChild := acClassTicket(lEnumerator.Current); lClassTicketChild := acClassTicket(lEnumerator.Current);
lFiltroIgualFilho := BuscaParcialClasse(lClassTicketChild.PersistentObjectClassName,lFiltro);
lbIncluir := lFiltroIgualPai or lFiltroIgualFilho;
if lbIncluir then
begin
targetNode := Node.Owner.AddChildObject(Node, lClassTicketChild.PersistentObjectClassName, lClassTicketChild); targetNode := Node.Owner.AddChildObject(Node, lClassTicketChild.PersistentObjectClassName, lClassTicketChild);
targetNode.ImageIndex := 6; targetNode.ImageIndex := 6;
targetNode.HasChildren := True; targetNode.HasChildren := True;
end;
lEnumerator.MoveNext; lEnumerator.MoveNext;
end; end;
finally finally
......
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