gb_manage_dlg.cpp
上传用户:yhdzpy8989
上传日期:2007-06-13
资源大小:13604k
文件大小:5k
源码类别:

生物技术

开发平台:

C/C++

  1. /*
  2.  * ===========================================================================
  3.  * PRODUCTION $Log: gb_manage_dlg.cpp,v $
  4.  * PRODUCTION Revision 1000.2  2004/06/01 20:57:43  gouriano
  5.  * PRODUCTION PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.9
  6.  * PRODUCTION
  7.  * ===========================================================================
  8.  */
  9. /*  $Id: gb_manage_dlg.cpp,v 1000.2 2004/06/01 20:57:43 gouriano Exp $
  10.  * ===========================================================================
  11.  *
  12.  *                            PUBLIC DOMAIN NOTICE
  13.  *               National Center for Biotechnology Information
  14.  *
  15.  *  This software/database is a "United States Government Work" under the
  16.  *  terms of the United States Copyright Act.  It was written as part of
  17.  *  the author's official duties as a United States Government employee and
  18.  *  thus cannot be copyrighted.  This software/database is freely available
  19.  *  to the public for use. The National Library of Medicine and the U.S.
  20.  *  Government have not placed any restriction on its use or reproduction.
  21.  *
  22.  *  Although all reasonable efforts have been taken to ensure the accuracy
  23.  *  and reliability of the software and data, the NLM and the U.S.
  24.  *  Government do not and cannot warrant the performance or results that
  25.  *  may be obtained by using this software or data. The NLM and the U.S.
  26.  *  Government disclaim all warranties, express or implied, including
  27.  *  warranties of performance, merchantability or fitness for any particular
  28.  *  purpose.
  29.  *
  30.  *  Please cite the author in any work or product based on this material.
  31.  *
  32.  * ===========================================================================
  33.  *
  34.  * Authors:  Mike DiCuccio
  35.  *
  36.  * File Description:
  37.  *
  38.  */
  39. #include <ncbi_pch.hpp>
  40. #include <corelib/ncbiapp.hpp>
  41. #include <corelib/ncbireg.hpp>
  42. #include "gb_manage_dlg.hpp"
  43. #include <bdb/bdb_blobcache.hpp>
  44. #include <gui/core/data_store.hpp>
  45. #include <gui/utils/system_path.hpp>
  46. #include <gui/dialogs/file_browser.hpp>
  47. BEGIN_NCBI_SCOPE
  48. #include "gb_manage_dlg_.cpp"
  49. CGBManageDlg::CGBManageDlg()
  50. {
  51.     m_Window.reset(x_CreateWindow());
  52. }
  53. void CGBManageDlg::Show()
  54. {
  55.     CNcbiApplication* app = CNcbiApplication::Instance();
  56.     _ASSERT(app);
  57.     CNcbiRegistry& reg = app->GetConfig();
  58.     // basic GenBank settings
  59.     string gc_size = reg.GetString("GBLOADER", "GcSize", "10000");
  60.     m_GCSize->value(gc_size.c_str());
  61.     string priority = reg.GetString("GBLOADER", "Priority", "99");
  62.     m_Priority->value(priority.c_str());
  63.     bool snps = reg.GetBool("GBLOADER", "LoadVariations", false);
  64.     m_Variations->value(snps);
  65.     // cache settings
  66.     string cache_path = CSystemPath::ResolvePath("<home>", "cache");
  67.     cache_path    = reg.GetString("GBLOADER", "Path", cache_path);
  68.     m_CacheDir->value(cache_path.c_str());
  69.     int cache_age = reg.GetInt("GBLOADER", "Age", 5);
  70.     m_CacheLifespan->value(NStr::IntToString(cache_age).c_str());
  71.     CDialog::Show();
  72. }
  73. void CGBManageDlg::x_OnClearCache()
  74. {
  75.     if (CDataStore::HasObject("BDB_Cache")) {
  76.         CObject& obj = CDataStore::GetObject("BDB_Cache");
  77.         CBDB_CacheHolder* ch = dynamic_cast<CBDB_CacheHolder*>(&obj);
  78.         if (ch) {
  79.             ICache* cache = ch->GetBlobCache();
  80.             if (cache) {
  81.                 cache->Purge(0);
  82.             }
  83.             cache = ch->GetIdCache();
  84.             if (cache) {
  85.                 cache->Purge(0);
  86.             }
  87.         }
  88.     }
  89. }
  90. void CGBManageDlg::x_OnBrowseCacheDir()
  91. {
  92.     string path = NcbiDirBrowser("Select the cache directory", "");
  93.     m_CacheDir->value(path.c_str());
  94.     m_CacheDir->redraw();
  95. }
  96. void CGBManageDlg::x_OnOK()
  97. {
  98.     CDialog::x_OnOK();
  99.     CNcbiApplication* app = CNcbiApplication::Instance();
  100.     _ASSERT(app);
  101.     CNcbiRegistry& reg = app->GetConfig();
  102.     reg.Set("GBLOADER", "GcSize", m_GCSize->value(),
  103.             CNcbiRegistry::ePersistent);
  104.     reg.Set("GBLOADER", "Priority", m_Priority->value(),
  105.             CNcbiRegistry::ePersistent);
  106.     reg.Set("GBLOADER", "LoadVariations",
  107.             m_Variations->value() ? "true" : "false",
  108.             CNcbiRegistry::ePersistent);
  109.     reg.Set("GBLOADER", "Path",
  110.             m_CacheDir->value(),
  111.             CNcbiRegistry::ePersistent);
  112. }
  113. END_NCBI_SCOPE
  114. /*
  115.  * ===========================================================================
  116.  * $Log: gb_manage_dlg.cpp,v $
  117.  * Revision 1000.2  2004/06/01 20:57:43  gouriano
  118.  * PRODUCTION: UPGRADED [GCC34_MSVC7] Dev-tree R1.9
  119.  *
  120.  * Revision 1.9  2004/05/21 22:27:48  gorelenk
  121.  * Added PCH ncbi_pch.hpp
  122.  *
  123.  * Revision 1.8  2004/03/11 17:42:30  dicuccio
  124.  * Use new file chooser
  125.  *
  126.  * Revision 1.7  2004/03/01 15:13:07  dicuccio
  127.  * Use correct registry entry for genbank loader.  Make sure to set all possible
  128.  * fields in dialog (cache age was missing)
  129.  *
  130.  * Revision 1.6  2004/02/27 17:56:30  kuznets
  131.  * Implemented CGBManageDlg::x_OnClearCache()
  132.  *
  133.  * Revision 1.5  2004/02/17 20:35:27  rsmith
  134.  * moved core/settings.[ch]pp and core/system_path.[ch]pp to config and utils, respectively.
  135.  *
  136.  * Revision 1.4  2004/02/17 17:20:29  dicuccio
  137.  * Added handling of cache directory
  138.  *
  139.  * Revision 1.3  2003/10/10 17:38:19  dicuccio
  140.  * Fixed compilation errors
  141.  *
  142.  * Revision 1.2  2003/10/10 17:17:57  dicuccio
  143.  * Added cache params
  144.  *
  145.  * Revision 1.1  2003/09/29 15:38:18  dicuccio
  146.  * Initial revision
  147.  *
  148.  * ===========================================================================
  149.  */