Subversion Repositories DevTools

Rev

Rev 2228 | Blame | Compare with Previous | Last modification | View Log | RSS feed

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "GenerationProperties.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "AdvDirectoryEdit"
#pragma link "AdvEdBtn"
#pragma link "AdvEdit"
#pragma link "AdvPanel"
#pragma link "advlued"
#pragma link "dbadvle"
#pragma resource "*.dfm"
TGenerationPropertiesForm *GenerationPropertiesForm;
//---------------------------------------------------------------------------
__fastcall TGenerationPropertiesForm::TGenerationPropertiesForm(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TGenerationPropertiesForm::FormShow(TObject *Sender)
{
        TRegistry * registry = 0;

        try
        {
                registry = new TRegistry();
                registry->RootKey = HKEY_CURRENT_USER;

                // Create the key if it doesn't exist.
                registry->OpenKey( "Software\\ERG\\TxnTestManager", true );

                AnsiString      profile;
                AnsiString      securityServer;
                AnsiString      keyNumber;
                AnsiString      keyVersion;
                AnsiString      macAlgorithm;

                profile = registry->ReadString( "Profile" );
                if ( profile.IsEmpty() )
                {
                        profile = "TDS";
                }

                securityServer = registry->ReadString( "SecurityServerPipe" );
                if ( securityServer.IsEmpty() )
                {
                        securityServer = "CryptoServer";
                }

                keyNumber = registry->ReadString( "KeyNumber" );
                if ( keyNumber.IsEmpty() )
                {
                        keyNumber = "5";
                }

                keyVersion = registry->ReadString( "KeyVersion" );
                if ( keyVersion.IsEmpty() )
                {
                        keyVersion = "-2";
                }

                GenerationProfileComboBox->Text = profile;
                GenerationProfileComboBox->ItemIndex = -1;
                int index = 0;
                for ( index = 0; index < GenerationProfileComboBox->Items->Count; ++index )
                {
                        if ( GenerationProfileComboBox->Items->Strings[ index ] == profile )
                        {
                                GenerationProfileComboBox->ItemIndex = index;
                                break;
                        }
                }

                SecurityServerPipeEdit->Text = securityServer;
                KeyNumberEdit->Text = keyNumber;
                KeyVersionEdit->Text = keyVersion;

                macAlgorithm = registry->ReadString( "MacAlgorithm" );
                if ( macAlgorithm.IsEmpty() )
                {
                        macAlgorithm = "MAC";
                }
                
                for ( index = 0; index < MacAlgorithmComboBox->Items->Count; ++index )
                {
                        if ( MacAlgorithmComboBox->Items->Strings[ index ] == macAlgorithm )
                        {
                                MacAlgorithmComboBox->ItemIndex = index;
                                break;
                        }
                }

                readProfile( *registry, profile );
        }
        __finally
        {
                delete registry;
        }
}
//---------------------------------------------------------------------------

void __fastcall TGenerationPropertiesForm::OKClick(TObject *Sender)
{
    TRegistry * registry = 0;

    try
    {
                registry = new TRegistry();
        registry->RootKey = HKEY_CURRENT_USER;

                // Create the key if it doesn't exist.
                registry->OpenKey( "Software\\ERG\\TxnTestManager", true );
                registry->WriteString( "Profile", GenerationProfileComboBox->Text );

                registry->WriteString( "SecurityServerPipe", SecurityServerPipeEdit->Text );
                registry->WriteString( "KeyNumber", KeyNumberEdit->Text );
                registry->WriteString( "KeyVersion", KeyVersionEdit->Text );
                registry->WriteString( "MacAlgorithm", MacAlgorithmComboBox->Text );

                if ( registry->OpenKey( GenerationProfileComboBox->Text, true ) )
                {
                        registry->WriteString( "Folder", GenerationFolderDirectoryEdit->Text );
                        
                        registry->WriteBool( "GenerateHeaders", GenerateHeadersCheckBox->Checked );
                        registry->WriteString( "DrainFilePrefix", DrainFilePrefixEdit->Text );
                        registry->WriteString( "DrainFileSuffix", DrainFileSuffixEdit->Text );

                        registry->WriteBool( "BuildManifest", BuildManifestCheckBox->Checked );
                        registry->WriteString( "ManifestPrefix", ManifestPrefixEdit->Text );
                        registry->WriteString( "ManifestSuffix", ManifestSuffixEdit->Text );
                        registry->WriteString( "PathmapTarget", PathmapTargetEdit->Text );
                }
        }
        __finally
        {
                delete registry;
        }
}
//---------------------------------------------------------------------------

void __fastcall TGenerationPropertiesForm::GenerationProfileComboBoxChange(
          TObject *Sender)
{
        TRegistry * registry = 0;

        try
        {
                registry = new TRegistry();
                registry->RootKey = HKEY_CURRENT_USER;

                // Create the key if it doesn't exist.
                registry->OpenKey( "Software\\ERG\\TxnTestManager", true );

                readProfile( *registry, GenerationProfileComboBox->Text );
        }
        __finally
        {
                delete registry;
        }
}
//---------------------------------------------------------------------------

void __fastcall TGenerationPropertiesForm::readProfile( TRegistry & registry, const AnsiString & profile )
{
        if ( registry.OpenKey( profile, true ) )
        {
                AnsiString      folder;
                bool            generateHeaders         = true;
                AnsiString      drainFilePrefix;
                AnsiString      drainFileSuffix         = ".devud";
                bool            buildManifest           = true;
                AnsiString      manifestPrefix          = "udMan";
                AnsiString      manifestSuffix          = ".txt";
                AnsiString      pathmapTarget           = "/afc/ergdce/var/DCE/ud/drained";

                folder = registry.ReadString( "Folder" );

                try
                {
                        generateHeaders = registry.ReadBool( "GenerateHeaders" );
                }
                catch ( ... )
                {
                        generateHeaders = true;
                }
                drainFilePrefix = registry.ReadString( "DrainFilePrefix" );
                drainFileSuffix = registry.ReadString( "DrainFileSuffix" );
                if ( drainFileSuffix.IsEmpty() )
                {
                        drainFileSuffix = ".devud";
                }

                try
                {
                        buildManifest = registry.ReadBool( "BuildManifest" );
                }
                catch ( ... )
                {
                        buildManifest = false;
                }
                manifestPrefix = registry.ReadString( "ManifestPrefix" );
                if ( manifestPrefix.IsEmpty() )
                {
                        manifestPrefix = "udMan";
                }
                manifestSuffix = registry.ReadString( "ManifestSuffix" );
                if ( manifestSuffix.IsEmpty() )
                {
                        manifestSuffix = ".txt";
                }
                pathmapTarget = registry.ReadString( "PathmapTarget" );
                if ( pathmapTarget.IsEmpty() )
                {
                        pathmapTarget = "/afc/ergdce/var/DCE/ud/drained";
                }

                GenerationFolderDirectoryEdit->Text = folder;
                GenerateHeadersCheckBox->Checked = generateHeaders;
                DrainFilePrefixEdit->Text = drainFilePrefix;
                DrainFileSuffixEdit->Text = drainFileSuffix;

                BuildManifestCheckBox->Checked = buildManifest;
                ManifestPrefixEdit->Text = manifestPrefix;
                ManifestSuffixEdit->Text = manifestSuffix;
                PathmapTargetEdit->Text = pathmapTarget;
                ManifestPrefixEdit->Enabled = BuildManifestCheckBox->Checked;
                ManifestSuffixEdit->Enabled = BuildManifestCheckBox->Checked;
                PathmapTargetEdit->Enabled = BuildManifestCheckBox->Checked;
        }
}
//---------------------------------------------------------------------------

void __fastcall TGenerationPropertiesForm::BuildManifestCheckBoxClick(
          TObject *Sender)
{
        ManifestPrefixEdit->Enabled = BuildManifestCheckBox->Checked;
        ManifestSuffixEdit->Enabled = BuildManifestCheckBox->Checked;
        PathmapTargetEdit->Enabled = BuildManifestCheckBox->Checked;
}
//---------------------------------------------------------------------------