31. EPMO Open Source Coordination Office Redaction File Detail Report

Produced by Araxis Merge on 3/31/2017 10:45:42 AM Central Daylight Time. See www.araxis.com for information about Merge. This report uses XHTML and CSS2, and is best viewed with a modern standards-compliant browser. For optimum results when printing this report, use landscape orientation and enable printing of background images and colours in your browser.

31.1 Files compared

# Location File Last Modified
1 CPRS v31A.zip\CPRS v31A\VITL5_P34_src.zip\Source\VITALSCOMMON mGMV_EditTemplate.pas Tue Dec 13 18:26:00 2016 UTC
2 CPRS v31A.zip\CPRS v31A\VITL5_P34_src.zip\Source\VITALSCOMMON mGMV_EditTemplate.pas Fri Mar 31 15:01:23 2017 UTC

31.2 Comparison summary

Description Between
Files 1 and 2
Text Blocks Lines
Unchanged 2 1528
Changed 1 2
Inserted 0 0
Removed 0 0

31.3 Comparison options

Whitespace
Character case Differences in character case are significant
Line endings Differences in line endings (CR and LF characters) are ignored
CR/LF characters Not shown in the comparison detail

31.4 Active regular expressions

No regular expressions were active.

31.5 Comparison detail

  1   unit mGMV_ EditTempla te;
  2   {
  3   ========== ========== ========== ========== ========== ========== ========== ==========
  4   *
  5   *       Ap plication:   Vitals
  6   *       Re vision:      $Revisio n: 1 $  $M odtime: 3/ 05/09 10:3 1a $
  7          Developer:       PII                   
  8   *       Si te:          Hines OI FO
  9   *
  10   *       De scription:   Frame us ed to edit /save vita ls templat es
  11   *
  12   *       No tes:         Used on  the Vitals  User and  Manager ap plication
  13   *
  14   ========== ========== ========== ========== ========== ========== ========== ==========
  15   *       $A rchive: /V itals/5.0  (Version 5 .0)/5.0.23  (Patch 23 )/VITALS_5 _0_23_8/So urce/VITAL SCOMMON/mG MV_EditTem plate.pas  $
  16   *
  17   * $History : mGMV_Edi tTemplate. pas $
  18    * 
  19    * ******* **********   Version  1  ******* **********
  20    * User: V haishandri a Date: 8/ 12/09    T ime: 8:29a
  21    * Created  in $/Vita ls/5.0 (Ve rsion 5.0) /5.0.23 (P atch 23)/V ITALS_5_0_ 23_8/Sourc e/VITALSCO MMON
  22    * 
  23    * ******* **********   Version  1  ******* **********
  24    * User: V haishandri a Date: 3/ 09/09    T ime: 3:38p
  25    * Created  in $/Vita ls/5.0 (Ve rsion 5.0) /5.0.23 (P atch 23)/V ITALS_5_0_ 23_6/Sourc e/VITALSCO MMON
  26    *
  27    * ******* **********   Version  1  ******* **********
  28    * User: V haishandri a Date: 1/ 13/09    T ime: 1:26p
  29    * Created  in $/Vita ls/5.0 (Ve rsion 5.0) /5.0.23 (P atch 23)/V ITALS_5_0_ 23_4/Sourc e/VITALSCO MMON
  30    * 
  31    * ******* **********   Version  1  ******* **********
  32    * User: V haishandri a Date: 5/ 14/07    T ime: 10:29 a
  33    * Created  in $/Vita ls GUI 200 7/Vitals-5 -0-18/VITA LSCOMMON
  34    * 
  35    * ******* **********   Version  1  ******* **********
  36    * User: V haishandri a Date: 5/ 16/06    T ime: 5:43p
  37    * Created  in $/Vita ls/VITALS- 5-0-18/Vit alsCommon
  38    * GUI v.  5.0.18 upd ates the d efault vit al type IE Ns with th e local
  39    * values.
  40    *
  41    * ******* **********   Version  1  ******* **********
  42    * User: V haishandri a Date: 5/ 16/06    T ime: 5:33p
  43    * Created  in $/Vita ls/Vitals- 5-0-18/VIT ALS-5-0-18 /VitalsCom mon
  44    * 
  45    * ******* **********   Version  1  ******* **********
  46    * User: V haishandri a Date: 5/ 24/05    T ime: 3:33p
  47    * Created  in $/Vita ls/Vitals  GUI  v 5.0 .2.1 -5.0. 3.1 - Patc h GMVR-5-7  (CASMed,  No CCOW) -  Delphi 6/ VitalsComm on
  48    * 
  49    * ******* **********   Version  1  ******* **********
  50    * User: V haishandri a Date: 4/ 16/04    T ime: 4:18p
  51    * Created  in $/Vita ls/Vitals  GUI Versio n 5.0.3 (C COW, CPRS,  Delphi 7) /VITALSCOM MON
  52    * 
  53    * ******* **********   Version  1  ******* **********
  54    * User: V haishandri a Date: 1/ 26/04    T ime: 1:06p
  55    * Created  in $/Vita ls/Vitals  GUI Versio n 5.0.3 (C COW, Delph i7)/V5031- D7/Common
  56    * 
  57    * ******* **********   Version  1  ******* **********
  58    * User: V haishandri a Date: 10 /29/03   T ime: 4:14p
  59    * Created  in $/Vita ls503/Comm on
  60    * Version  5.0.3
  61    * 
  62    * ******* **********   Version  11  ****** ********** *
  63    * User: V haishandri a Date: 5/ 02/03    T ime: 9:33a
  64    * Updated  in $/Vita ls GUI Ver sion 5.0/C ommon
  65    * Sentill ion CCOW I mmersion u pdates
  66    * 
  67    * ******* **********   Version  10  ****** ********** *
  68    * User: V haishandri a Date: 11 /04/02   T ime: 9:15a
  69    * Updated  in $/Vita ls GUI Ver sion 5.0/C ommon
  70    * Version  5.0.0.0
  71    *
  72    * ******* **********   Version  9  ******* **********
  73    * User: V haishandri a Date: 10 /04/02   T ime: 4:50p
  74    * Updated  in $/Vita ls GUI Ver sion 5.0/C ommon
  75    * Version  T32 
  76    * 
  77    * ******* **********   Version  8  ******* **********
  78    * User: V haishandri a Date: 9/ 06/02    T ime: 3:58p
  79    * Updated  in $/Vita ls GUI Ver sion 5.0/C ommon
  80    * Version  T31
  81    *
  82    * ******* **********   Version  7  ******* **********
  83    * User: V haishandri a Date: 7/ 12/02    T ime: 5:01p
  84    * Updated  in $/Vita ls GUI Ver sion 5.0/C ommon
  85    * GUI Ver sion T28
  86    * 
  87    * ******* **********   Version  6  ******* **********
  88    * User: V haishandri a Date: 6/ 13/02    T ime: 5:14p
  89    * Updated  in $/Vita ls GUI Ver sion 5.0/C ommon
  90    * 
  91    * ******* **********   Version  5  ******* **********
  92    * User: V haishandri a Date: 6/ 11/02    T ime: 4:47p
  93    * Updated  in $/Vita ls GUI Ver sion 5.0/C ommon
  94    * 
  95    * ******* **********   Version  4  ******* **********
  96    * User: V haishpetit d Date: 6/ 06/02    T ime: 11:08 a
  97    * Updated  in $/Vita ls GUI Ver sion 5.0/C ommon
  98    * Roll-up  to 5.0.0. 27
  99    *
  100    * ******* **********   Version  3  ******* **********
  101    * User: V haishpetit d Date: 4/ 26/02    T ime: 11:31 a
  102    * Updated  in $/Vita ls GUI Ver sion 5.0/C ommon
  103    *
  104    * ******* **********   Version  2  ******* **********
  105    * User: V haishpetit d Date: 4/ 15/02    T ime: 12:16 p
  106    * Updated  in $/Vita ls GUI Ver sion 5.0/C ommon
  107    *
  108    * ******* **********   Version  1  ******* **********
  109    * User: V haishpetit d Date: 4/ 04/02    T ime: 4:01p
  110    * Created  in $/Vita ls GUI Ver sion 5.0/C ommon
  111    *
  112    *
  113   *
  114   ========== ========== ========== ========== ========== ========== ========== ==========
  115   }
  116  
  117   interface
  118  
  119   uses
  120     Windows,
  121     Messages ,
  122     SysUtils ,
  123     Classes,
  124     Graphics ,
  125     Controls ,
  126     Forms,
  127     Dialogs,
  128     Buttons,
  129     StdCtrls ,
  130     ExtCtrls ,
  131     ComCtrls ,
  132     CheckLst ,
  133     uGMV_Com mon,
  134     fGMV_Add VCQ
  135     , uGMV_Q ualifyBox
  136     , uGMV_T emplate
  137     , ActnLi st, ImgLis t, System. Actions;
  138  
  139   type
  140     TfraGMV_ EditTempla te = class (TFrame)
  141       pnlQua lifiers: T Panel;
  142       pnlVit als: TPane l;
  143       rgMetr ic: TRadio Group;
  144       Splitt er1: TSpli tter;
  145       pnlHea der: TPane l;
  146       pnlNam eDescripti on: TPanel ;
  147       edtTem plateDescr iption: TE dit;
  148       Label2 : TLabel;
  149       Label1 : TLabel;
  150       edtTem plateName:  TEdit;
  151       pnlLis tView: TPa nel;
  152       Action List1: TAc tionList;
  153       acUp:  TAction;
  154       acDown : TAction;
  155       acAdd:  TAction;
  156       acDele te: TActio n;
  157       Panel1 : TPanel;
  158       Panel3 : TPanel;
  159       lblVit als: TLabe l;
  160       Panel5 : TPanel;
  161       ImageL ist1: TIma geList;
  162       Panel7 : TPanel;
  163       pnlDef aults: TPa nel;
  164       Panel8 : TPanel;
  165       lblQua lifiers: T Label;
  166       pnlDef aultQualif iers: TPan el;
  167       Panel2 : TPanel;
  168       SpeedB utton1: TS peedButton ;
  169       SpeedB utton2: TS peedButton ;
  170       SpeedB utton3: TS peedButton ;
  171       SpeedB utton4: TS peedButton ;
  172       gb: TG roupBox;
  173       Panel4 : TPanel;
  174       lvVita ls: TListV iew;
  175       proced ure QBChec k(Sender:  TObject);
  176       proced ure lvVita lsSelectIt em(Sender:  TObject;  Item: TLis tItem; Sel ected: Boo lean);
  177       proced ure pnlQua lifiersRes ize(Sender : TObject) ;
  178       proced ure rgMetr icClick(Se nder: TObj ect);
  179       proced ure pnlLis tViewResiz e(Sender:  TObject);
  180       proced ure Change Made(Sende r: TObject );
  181       proced ure edtTem plateNameK eyDown(Sen der: TObje ct; var Ke y: Word;
  182         Shif t: TShiftS tate);
  183       proced ure acUpEx ecute(Send er: TObjec t);
  184       proced ure acDown Execute(Se nder: TObj ect);
  185       proced ure acAddE xecute(Sen der: TObje ct);
  186       proced ure acDele teExecute( Sender: TO bject);
  187       proced ure edtTem plateNameE nter(Sende r: TObject );
  188       proced ure edtTem plateNameE xit(Sender : TObject) ;
  189       proced ure edtTem plateDescr iptionEnte r(Sender:  TObject);
  190       proced ure edtTem plateDescr iptionExit (Sender: T Object);
  191       proced ure lvVita lsExit(Sen der: TObje ct);
  192       proced ure lvVita lsEnter(Se nder: TObj ect);
  193       proced ure rgMetr icEnter(Se nder: TObj ect);
  194       proced ure rgMetr icExit(Sen der: TObje ct);
  195       proced ure gbDefa ultEnter(S ender: TOb ject);
  196       proced ure gbDefa ultExit(Se nder: TObj ect);
  197     private
  198       fQualB oxes: TLis t;
  199       fEditT emplate: T GMV_Templa te;
  200       fIgnor e:Boolean;
  201       fChang ingOrder:  Boolean;
  202       fChang esMade: Bo olean;
  203       fQCanv as: TWinCo ntrol;
  204       proced ure AddVit al(Vital:  TGMV_Templ ateVital);
  205       proced ure ClearA llQualBoxe s(Keep:Boo lean=False );
  206       proced ure LoadQu alifiers(V italIEN: s tring);
  207       functi on GetEdit Template:  TGMV_Templ ate;
  208       proced ure SetEdi tTemplate( const Valu e: TGMV_Te mplate);
  209       proced ure getTem plate(Sele cted:Boole an;aCaptio n:String;a Template:T GMV_Templa teVital);
  210       proced ure btnMov eUp;
  211       proced ure btnMov eDown;
  212       proced ure btnAdd Vital;
  213       proced ure btnDel eteVital;
  214     public
  215       proced ure SaveTe mplate;
  216       proced ure SaveTe mplateIfCh anged;
  217     publishe d
  218       proper ty EditTem plate: TGM V_Template
  219         read  GetEditTe mplate wri te SetEdit Template;
  220       proper ty Changes Made: Bool ean
  221         read  FChangesM ade;
  222     end;
  223  
  224   implementa tion
  225  
  226   uses uGMV_ GlobalVars , uGMV_Con st, uGMV_F ileEntry
  227     , uGMV_E ngine, mGM V_DefaultS elector;
  228  
  229  
  230   {$R *.DFM}
  231  
  232   //AAN 06/1 1/02------ ---------- ---------- ---------- ---------- ---------- ----Begin
  233   function M etricCapti on(sVitalN ame:String ;bVitalMet ric:Boolea n):String;
  234   begin
  235     if pos(U pperCase(s VitalName) ,upperCase (MetricLis t)) <> 0 t hen
  236       result  :=BOOLEAN UM[bVitalM etric]
  237     else
  238       result  := 'N/A';
  239   end;
  240   //AAN 06/1 1/02------ ---------- ---------- ---------- ---------- ---------- ------End
  241  
  242   procedure  TfraGMV_Ed itTemplate .AddVital( Vital: TGM V_Template Vital);
  243   begin
  244     try
  245       with l vVitals.It ems.Add do
  246         begi n
  247           Ca ption := V ital.Vital Name;
  248           Su bItems.Add (MetricCap tion(Capti on,Vital.M etric));// AAN 06/11/ 02
  249           tr y
  250              SubItems.A dd(Vital.D isplayQual ifiers);
  251              Data := Vi tal;
  252           ex cept
  253              Data := ni l;
  254           en d;
  255         end;
  256     except
  257     end;
  258   end;
  259  
  260   procedure  TfraGMV_Ed itTemplate .ClearAllQ ualBoxes(K eep:Boolea n=False);
  261   var
  262     pnlQB: T Panel;
  263   begin
  264     if fQual Boxes <> n il then
  265       while  fQualBoxes .Count > 0  do
  266         begi n
  267           pn lQB := TPa nel(fQualB oxes[0]);
  268           fQ ualBoxes.D elete(0);
  269           Fr eeAndNil(p nlQB);
  270         end
  271     else
  272       fQualB oxes := TL ist.Create ;
  273  
  274     rgMetric .ItemIndex  := -1;
  275   end;
  276  
  277   procedure  TfraGMV_Ed itTemplate .QBCheck(S ender: TOb ject);
  278   var
  279     i, j: in teger;
  280     s, defQu als: strin g;
  281     defQuals Text: stri ng;
  282   begin
  283     for i :=  0 to FQua lBoxes.Cou nt - 1 do
  284       with T GMV_Templa teQualifie rBox(FQual Boxes[i])  do
  285         begi n
  286           s  := Default QualifierI EN;
  287           if  StrToIntD ef(s, -1)  > 0 then
  288              begin
  289                j := GMV Quals.Inde xOfIEN(Def aultQualif ierIEN);
  290                if j > - 1 then
  291                  begin
  292                    if d efQuals <>  '' then
  293                      de fQuals :=  defQuals +  '~';
  294                    if d efQualsTex t <> '' th en
  295                      de fQualsText  := defQua lsText + ' ,';
  296                    defQ uals := de fQuals + C ategoryIEN  + ',' + D efaultQual ifierIEN;
  297                    defQ ualsText : = defQuals Text +
  298                      GM VQuals.Ent ries[GMVQu als.IndexO fIEN(Defau ltQualifie rIEN)];
  299                  end;
  300              end
  301         end;
  302     TGMV_Tem plateVital (lvVitals. Selected.D ata).Quali fiers := d efQuals;
  303     lvVitals .Selected. SubItems[1 ] := TGMV_ TemplateVi tal(lvVita ls.Selecte d.Data).Di splayQuali fiers;
  304     FChanges Made := Tr ue;
  305     GetParen tForm(Self ).Perform( CM_TEMPLAT EUPDATED,  0, 0)    / /AAN 06/11 /02
  306   end;
  307  
  308   function T fraGMV_Edi tTemplate. GetEditTem plate: TGM V_Template ;
  309   begin
  310     Result : = FEditTem plate;
  311   end;
  312  
  313   procedure  TfraGMV_Ed itTemplate .SaveTempl ate;
  314   var
  315     x: strin g;
  316     i: integ er;
  317   begin
  318     {Is it r enamed?}
  319     if edtTe mplateName .Text <> F EditTempla te.Templat eName then
  320       if not  FEditTemp late.Renam e(edtTempl ateName.Te xt) then
  321         begi n
  322           Me ssageDlg(' Sorry, ' +  edtTempla teName.Tex t + ' is n ot a valid  template  name.', mt Error, [mb ok], 0);
  323           ed tTemplateN ame.Text : = FEditTem plate.Temp lateName;
  324           Ex it;
  325         end;
  326  
  327     x := edt TemplateDe scription. Text + '|' ;
  328     for i :=  0 to lvVi tals.Items .Count - 1  do
  329       with T GMV_Templa teVital(lv Vitals.Ite ms[i].Data ) do
  330         begi n
  331           if  i > 0 the n
  332              x := x + ' ;';
  333           x  := x + IEN  + ':' + I ntToStr(BO OLEAN01[Me tric]);
  334           if  Qualifier s <> '' th en
  335              x := x + ' :' + Quali fiers;
  336         end;
  337     FEditTem plate.XPAR Value := x ;
  338     FChanges Made := Fa lse;
  339     GetParen tForm(Self ).Perform( CM_TEMPLAT EREFRESHED , 0, 0)     //AAN 06/ 11/02
  340   end;
  341  
  342   procedure  TfraGMV_Ed itTemplate .pnlQualif iersResize (Sender: T Object);
  343   var
  344     i: integ er;
  345   begin
  346   Exit;
  347     if FQual Boxes <> n il then
  348       for i  := 0 to FQ ualBoxes.C ount - 1 d o
  349         TGMV _TemplateQ ualifierBo x(FQualBox es[i]).Wid th := (pnl Qualifiers .Width div  FQualBoxe s.Count);
  350   end;
  351  
  352   procedure  TfraGMV_Ed itTemplate .btnMoveUp ;
  353   var
  354     tmpItem:  TGMV_Temp lateVital;
  355     i: integ er;
  356   begin
  357     lvVitals .Items.Beg inUpdate;
  358     FChangin gOrder :=  True;
  359     FChanges Made := Tr ue;
  360     GetParen tForm(Self ).Perform( CM_TEMPLAT EUPDATED,  0, 0);     //AAN 06/1 1/02
  361     if lvVit als.Select ed.Index >  0 then
  362       begin
  363         i :=  lvVitals. Items.Inde xOf(lvVita ls.Selecte d);
  364         tmpI tem := lvV itals.Item s[i].Data;
  365         lvVi tals.Items [i].Data : = lvVitals .Items[i -  1].Data;
  366         lvVi tals.Items [i - 1].Da ta := tmpI tem;
  367  
  368         with  TGMV_Temp lateVital( lvVitals.I tems[i].Da ta) do
  369           be gin
  370              lvVitals.I tems[i].Ca ption := V italName;
  371              lvVitals.I tems[i].Su bItems[1]  := Display Qualifiers ;
  372              lvVitals.I tems[i].Su bItems[0]  := MetricC aption(            // AAN 06/11/ 02
  373                  VitalN ame, //AAN  06/11/02
  374                  Metric );   //AAN  06/11/02
  375           en d;
  376  
  377         with  TGMV_Temp lateVital( lvVitals.I tems[i - 1 ].Data) do
  378           be gin
  379              lvVitals.I tems[i - 1 ].Caption  := VitalNa me;
  380              lvVitals.I tems[i - 1 ].SubItems [1] := Dis playQualif iers;
  381              lvVitals.I tems[i - 1 ].SubItems [0] := Met ricCaption (            //AAN 06 /11/02
  382                  VitalN ame, //AAN  06/11/02
  383                  Metric );   //AAN  06/11/02
  384           en d;
  385  
  386         lvVi tals.Items [i].Select ed := Fals e;
  387         lvVi tals.Items [i - 1].Se lected :=  True;
  388         lvVi tals.Updat eItems(i -  1, i);
  389         lvVi tals.ItemF ocused :=  lvVitals.I tems[i - 1 ];
  390       end;
  391     FChangin gOrder :=  False;
  392     lvVitals .Items.End Update;
  393   end;
  394  
  395   procedure  TfraGMV_Ed itTemplate .btnMoveDo wn;
  396   var
  397     tmpItem:  TGMV_Temp lateVital;
  398     i: integ er;
  399   begin
  400     lvVitals .Items.Beg inUpdate;
  401     FChangin gOrder :=  True;
  402     FChanges Made := Tr ue;
  403     GetParen tForm(Self ).Perform( CM_TEMPLAT EUPDATED,  0, 0);     //AAN 06/1 1/02
  404     if lvVit als.Select ed.Index <  lvVitals. Items.Coun t - 1 then
  405       begin
  406         i :=  lvVitals. Items.Inde xOf(lvVita ls.Selecte d);
  407         tmpI tem := lvV itals.Item s[i].Data;
  408         lvVi tals.Items [i].Data : = lvVitals .Items[i +  1].Data;
  409         lvVi tals.Items [i + 1].Da ta := tmpI tem;
  410  
  411         with  TGMV_Temp lateVital( lvVitals.I tems[i].Da ta) do
  412           be gin
  413              lvVitals.I tems[i].Ca ption := V italName;
  414              lvVitals.I tems[i].Su bItems[1]  := Display Qualifiers ;
  415              lvVitals.I tems[i].Su bItems[0]  := MetricC aption(            // AAN 06/11/ 02
  416                  VitalN ame, //AAN  06/11/02
  417                  Metric );   //AAN  06/11/02
  418           en d;
  419  
  420         with  TGMV_Temp lateVital( lvVitals.I tems[i + 1 ].Data) do
  421           be gin
  422              lvVitals.I tems[i + 1 ].Caption  := VitalNa me;
  423              lvVitals.I tems[i + 1 ].SubItems [1] := Dis playQualif iers;
  424              lvVitals.I tems[i + 1 ].SubItems [0] := Met ricCaption (            //AAN 06 /11/02
  425                  VitalN ame, //AAN  06/11/02
  426                  Metric );   //AAN  06/11/02
  427           en d;
  428  
  429         lvVi tals.Items [i].Select ed := Fals e;
  430         lvVi tals.Items [i + 1].Se lected :=  True;
  431         lvVi tals.Updat eItems(i,  i + 1);
  432         lvVi tals.ItemF ocused :=  lvVitals.I tems[i + 1 ];
  433       end;
  434     FChangin gOrder :=  False;
  435     lvVitals .Items.End Update;
  436   end;
  437  
  438   procedure  TfraGMV_Ed itTemplate .btnAddVit al;
  439   var
  440     i: integ er;
  441   begin
  442     with Tfr mGMV_AddVC Q.Create(S elf) do
  443       try
  444         Load Vitals;
  445         Show Modal;
  446         if M odalResult  = mrOk th en
  447           fo r i := 0 t o lbxVital s.Items.Co unt - 1 do
  448              if lbxVita ls.Selecte d[i] then
  449                AddVital (TGMV_Temp lateVital. CreateFrom XPAR(
  450                  TGMV_F ileEntry(l bxVitals.I tems.Objec ts[i]).IEN  +
  451                  ':' +  lbxVitals. Items[i] +  '::')
  452                  );
  453         FCha ngesMade : = True;
  454         GetP arentForm( Self).Perf orm(CM_TEM PLATEUPDAT ED, 0, 0)     //AAN 0 6/11/02
  455       finall y
  456         free ;
  457       end;
  458   end;
  459  
  460   procedure  TfraGMV_Ed itTemplate .btnDelete Vital;
  461   var
  462     i: integ er;
  463   begin
  464     i := lvV itals.Item s.IndexOf( lvVitals.S elected);  {Where are  we now}
  465  
  466     if lvVit als.Select ed <> nil  then
  467       begin
  468         FCha ngesMade : = True;
  469         GetP arentForm( Self).Perf orm(CM_TEM PLATEUPDAT ED, 0, 0);     //AAN  06/11/02
  470         if l vVitals.Se lected.Dat a <> nil t hen
  471           TG MV_Templat eVital(lvV itals.Sele cted.Data) .Free;
  472         lvVi tals.Selec ted.Delete ;
  473         if i  > lvVital s.Items.Co unt - 1 th en
  474           i  := lvVital s.Items.Co unt - 1; { Deleted la st one, ge t new last  item}
  475         if i  > -1 then
  476           lv Vitals.Ite ms[i].Sele cted := Tr ue;
  477       end;
  478   end;
  479  
  480   procedure  TfraGMV_Ed itTemplate .rgMetricC lick(Sende r: TObject );
  481   begin
  482     if lvVit als.Select ed <> nil  then
  483       begin
  484         FCha ngesMade : = True;
  485         GetP arentForm( Self).Perf orm(CM_TEM PLATEUPDAT ED, 0, 0);     //AAN  06/11/02
  486   //AAN 06/1 1/02       lvVitals.S elected.Su bItems[0]  := rgMetri c.Items[rg Metric.Ite mIndex];
  487         TGMV _TemplateV ital(lvVit als.Select ed.Data).M etric := ( rgMetric.I temIndex =  1);
  488         lvVi tals.Selec ted.SubIte ms[0] := M etricCapti on(            //AAN  06/11/02
  489              TGMV_Templ ateVital(l vVitals.Se lected.Dat a).VitalNa me, //AAN  06/11/02
  490              TGMV_Templ ateVital(l vVitals.Se lected.Dat a).Metric) ;   //AAN  06/11/02
  491       end;
  492   end;
  493  
  494   procedure  TfraGMV_Ed itTemplate .pnlListVi ewResize(S ender: TOb ject);
  495   begin
  496     lvVitals .Width :=  pnlListVie w.Width -  (lvVitals. Left * 2);
  497     lvVitals .Height :=  pnlListVi ew.Height  - (lvVital s.Top * 2) ;
  498   end;
  499  
  500   procedure  TfraGMV_Ed itTemplate .ChangeMad e(Sender:  TObject);
  501   begin
  502     FChanges Made := Tr ue;
  503     GetParen tForm(Self ).Perform( CM_TEMPLAT EUPDATED,  0, 0)    / /AAN 06/11 /02
  504   end;
  505  
  506   //AAN 06/1 1/02 ----- ---------- ---------- ---------- ---------- ---------- --- Begin
  507   procedure  TfraGMV_Ed itTemplate .edtTempla teNameKeyD own(Sender : TObject;
  508     var Key:  Word; Shi ft: TShift State);
  509   begin
  510     if Key < > VK_Escap e then
  511       Change Made(Sende r);
  512   end;
  513  
  514   procedure  TfraGMV_Ed itTemplate .SaveTempl ateIfChang ed;
  515   begin
  516     if FChan gesMade th en
  517       if Mes sageDlg('T he templat e <' + FEd itTemplate .TemplateN ame + '> h as been ch anged.'+
  518         #13# 10+ 'Save  changes?',  mtConfirm ation, [mb Yes, mbNo] , 0) = mrY es then
  519         Save Template;
  520   end;
  521   //AAN 06/1 1/02 ----- ---------- ---------- ---------- ---------- ---------- ----- End
  522  
  523   procedure  TfraGMV_Ed itTemplate .acUpExecu te(Sender:  TObject);
  524   begin
  525     btnMoveU p;
  526   end;
  527  
  528   procedure  TfraGMV_Ed itTemplate .acDownExe cute(Sende r: TObject );
  529   begin
  530     btnMoveD own;
  531   end;
  532  
  533   procedure  TfraGMV_Ed itTemplate .acAddExec ute(Sender : TObject) ;
  534   begin
  535     btnAddVi tal;
  536   end;
  537  
  538   procedure  TfraGMV_Ed itTemplate .acDeleteE xecute(Sen der: TObje ct);
  539   begin
  540     if Messa geDlg('Are  you sure  you want t o delete'+ #13+
  541        '<'+l vVitals.Se lected.Cap tion+'>?'  ,
  542       mtConf irmation,  [mbYes, mb No], 0) =  mrYes then
  543     btnDelet eVital;
  544   end;
  545  
  546   procedure  TfraGMV_Ed itTemplate .edtTempla teNameEnte r(Sender:  TObject);
  547   begin
  548      label1. Font.Style  := [fsBol d];
  549   end;
  550  
  551   procedure  TfraGMV_Ed itTemplate .edtTempla teNameExit (Sender: T Object);
  552   begin
  553      label1. Font.Style  := [];
  554   end;
  555  
  556   procedure  TfraGMV_Ed itTemplate .edtTempla teDescript ionEnter(
  557     Sender:  TObject);
  558   begin
  559      label2. Font.Style  := [fsBol d];
  560   end;
  561  
  562   procedure  TfraGMV_Ed itTemplate .edtTempla teDescript ionExit(Se nder: TObj ect);
  563   begin
  564      label2. Font.Style  := [];
  565   end;
  566  
  567   procedure  TfraGMV_Ed itTemplate .lvVitalsE xit(Sender : TObject) ;
  568   begin
  569     lblVital s.Font.Sty le := [];
  570   end;
  571  
  572   procedure  TfraGMV_Ed itTemplate .lvVitalsE nter(Sende r: TObject );
  573   begin
  574     lblVital s.Font.Sty le := [fsB old];
  575   end;
  576  
  577   procedure  TfraGMV_Ed itTemplate .gbDefault Enter(Send er: TObjec t);
  578   begin
  579     gb.Font. Style := [ fsBold];
  580   end;
  581  
  582   procedure  TfraGMV_Ed itTemplate .gbDefault Exit(Sende r: TObject );
  583   begin
  584     gb.Font. Style := [ ];
  585   end;
  586  
  587   procedure  TfraGMV_Ed itTemplate .rgMetricE xit(Sender : TObject) ;
  588   begin
  589     rgMetric .Font.Styl e := [];
  590   end;
  591  
  592   procedure  TfraGMV_Ed itTemplate .rgMetricE nter(Sende r: TObject );
  593   var
  594     i: Integ er;
  595   begin
  596     rgMetric .font.Styl e := [fsBo ld];
  597     for i :=  0 to rgMe tric.Contr olCount -  1 do
  598       if rgM etric.Cont rols[i] is  TRadioBut ton then
  599         TRad ioButton(r gMetric.Co ntrols[i]) .Font.Styl e := [];
  600   end;
  601  
  602   procedure  TfraGMV_Ed itTemplate .LoadQuali fiers(Vita lIEN: stri ng);
  603   var
  604     iOrder,
  605     i: integ er;
  606     retList:  TStrings;
  607  
  608     function  AddQualif ierBox(QBV italIEN: s tring;
  609       QBCatI EN: string ; DefaultQ ualIEN: st ring = '') : TGMV_Tem plateQuali fierBox;
  610     begin
  611       if FQu alBoxes =  nil then
  612         FQua lBoxes :=  TList.Crea te;
  613       Result  := TGMV_T emplateQua lifierBox. CreatePare nted(Self, fQCanvas,
  614         QBVi talIEN, QB CatIEN, De faultQualI EN); // vh aishandria  20090219
  615       Result .OnClick : = QBCheck;
  616       Result .Visible : = True;
  617       Result .setDDWidt h;
  618       FQualB oxes.Add(R esult);
  619     end;
  620  
  621   begin
  622     fQCanvas  := gb;
  623  
  624     lblQuali fiers.Capt ion := 'De fault Qual ifiers: (L oading...) ';
  625     Applicat ion.Proces sMessages;
  626     ClearAll QualBoxes;
  627     Applicat ion.Proces sMessages;
  628  
  629     RetList  := getCate goryQualif iers(Vital IEN);
  630     for i :=  RetList.C ount - 1 d ownto 1  d o
  631       AddQua lifierBox( VitalIEN,  Piece(RetL ist[i], '^ ', 1));
  632     RetList. Free;
  633  
  634     for i :=  0 to fQCa nvas.Contr olCount -  1 do
  635       if fQC anvas.Cont rols[i] is  tGMV_Temp lateQualif ierBox the n
  636         begi n
  637           iO rder := fQ Canvas.Con trolCount  - 1 - i;
  638           TG MV_Templat eQualifier Box(fQCanv as.Control s[i]).TabO rder := iO rder;
  639         end;
  640     lblQuali fiers.Capt ion := 'De fault Qual ifiers:';
  641  
  642     if not F ChangesMad e then  // AAN 06/12/ 02
  643       GetPar entForm(Se lf).Perfor m(CM_TEMPL ATEREFRESH ED, 0, 0)     //AAN 0 6/11/02
  644   end;
  645  
  646   procedure  TfraGMV_Ed itTemplate .getTempla te(Selecte d:Boolean; aCaption:S tring;aTem plate:TGMV _TemplateV ital);
  647   var
  648     CatIEN:  string;
  649     QualIEN:  string;
  650     i, j: in teger;
  651     bTmp: Bo olean; //A AN 06/12/0 2
  652   begin
  653     lvVitals .Enabled : = False;
  654     if not f ChangingOr der then
  655       if Sel ected then
  656         begi n
  657           lb lQualifier s.Caption  := aCaptio n + ' Defa ult Qualif iers';
  658           wi th aTempla te do
  659              begin
  660                LoadQual ifiers(IEN );
  661                i := 1;
  662                while Pi ece(Qualif iers, '~',  i) <> ''  do
  663                  begin
  664                    CatI EN := Piec e(Piece(Qu alifiers,  '~', i), ' ,', 1);
  665                    Qual IEN := Pie ce(Piece(Q ualifiers,  '~', i),  ',', 2);
  666                    for  j := 0 to  fQualBoxes .Count - 1  do
  667                      wi th TGMV_Te mplateQual ifierBox(f QualBoxes[ j]) do
  668                         begin
  669                           if Categ oryIEN = C atIEN then
  670                             Defaul tQualifier IEN := Qua lIEN;
  671                           OnQualEx it(nil);
  672                         end;
  673                    inc( i);
  674                  end;
  675                bTmp :=  FChangesMa de;        //AAN 06/1 2/02
  676                rgMetric .ItemIndex  := BOOLEA N01[Metric ];
  677                rgMetric .Enabled : = True;
  678                fChanges Made := bT mp;        //AAN 06/1 2/02
  679              end;
  680         end
  681       else
  682         Clea rAllQualBo xes;
  683  
  684     acUp.Ena bled := Se lected;
  685     acDown.E nabled :=  Selected;
  686     acDelete .Enabled : = Selected ;
  687     rgMetric .Enabled : = Selected ;
  688  
  689   //AAN 06/1 1/02 ----- ---------- ---------- ---------- ---------- ---------- ----Begin
  690     try
  691       rgMetr ic.Enabled  := (pos(a Template.V italName,M etricList)  <> 0);
  692     except
  693     end;
  694  
  695     if not f ChangesMad e then
  696       GetPar entForm(Se lf).Perfor m(CM_TEMPL ATEREFRESH ED, 0, 0);     //AAN  06/11/02
  697   //AAN 06/1 1/02 ----- ---------- ---------- ---------- ---------- ---------- ------End
  698     try
  699       lvVita ls.Enabled  := True;
  700       lvVita ls.SetFocu s;
  701     except
  702     end;
  703   end;
  704  
  705   procedure  TfraGMV_Ed itTemplate .SetEditTe mplate(con st Value:  TGMV_Templ ate);
  706   var
  707     XPAR: st ring;
  708     i: integ er;
  709   begin
  710     if FChan gesMade th en
  711       if Mes sageDlg('S ave templa te ' + FEd itTemplate .TemplateN ame + '?',
  712         mtCo nfirmation , [mbYes,  mbNo], 0)  = mrYes th en
  713         Save Template;
  714  
  715     ClearAll QualBoxes;
  716     fIgnore  := True;
  717     lvVitals .Items.Cle ar;
  718     fIgnore  := False;
  719  
  720     rgMetric .ItemIndex  := -1;
  721     rgMetric .Enabled : = False;
  722  
  723     acUp.Ena bled := Fa lse;
  724     acDown.E nabled :=  False;
  725     acDelete .Enabled : = False;
  726  
  727     if Value  <> nil th en
  728       begin
  729         fEdi tTemplate  := Value;
  730         fCha ngingOrder  := False;
  731         XPAR  := FEditT emplate.XP ARValue;
  732         edtT emplateNam e.Text :=  FEditTempl ate.Templa teName;
  733         edtT emplateDes cription.T ext := Pie ce(XPAR, ' |', 1);
  734         XPAR  := Piece( XPAR, '|',  2);
  735         i :=  1;
  736         whil e Piece(XP AR, ';', i ) <> '' do
  737           be gin
  738              AddVital(T GMV_Templa teVital.Cr eateFromXP AR(Piece(X PAR, ';',  i)));
  739              inc(i);
  740           en d;
  741         if l vVitals.It ems.Count  > 0 then
  742           lv Vitals.Ite ms[0].Sele cted := Tr ue; // res ults in ca ll to relo ad
  743       end
  744     else
  745       begin
  746         edtT emplateNam e.Text :=  '';
  747         edtT emplateDes cription.T ext := '';
  748       end;
  749     Enabled  := (Value  <> nil);
  750     fChanges Made := Fa lse;
  751     GetParen tForm(Self ).Perform( CM_TEMPLAT EREFRESHED , 0, 0);     //AAN 06 /11/02
  752   end;
  753  
  754   procedure  TfraGMV_Ed itTemplate .lvVitalsS electItem( Sender: TO bject; Ite m: TListIt em; Select ed: Boolea n);
  755   begin
  756     if fIgno re then
  757       exit
  758     else
  759       fIgnor e := True;
  760     getTempl ate(Select ed,Item.Ca ption,TGMV _TemplateV ital(Item. Data));
  761     fIgnore  := False;
  762   end;
  763  
  764   end.
  765