#include "icons/page-down.xpm"
#include "icons/remove.xpm"
#include "icons/database-add.xpm"
+#include "icons/create-database.xpm"
#include "icons/help.xpm"
#include "icons/synchronize.xpm"
// The ids of the different tools
enum
{
- TOOL_ADDFILES_ID = 1,
- TOOL_ADDDIR_ID = 2,
- TOOL_REMOVE_ID = 3,
- TOOL_ADDDATABASE_ID = 4,
- TOOL_HELP_ID = 5,
- TOOL_SYNCHRONIZE_ID = 6
+ TOOL_CREATEDB_ID = 1,
+ TOOL_ADDFILES_ID = 2,
+ TOOL_ADDDIR_ID = 3,
+ TOOL_ADDDATABASE_ID = 4,
+ TOOL_REMOVE_ID = 5,
+ TOOL_SYNCHRONIZE_ID = 6,
+ TOOL_HELP_ID = 7
};
//======================================================================
Icon_remove,
Icon_database_add,
Icon_help,
- Icon_synchronize
+ Icon_synchronize,
+ Icon_create_database
}
icon_id;
//================================================================
mToolBar = new wxToolBar(this,-1,wxDefaultPosition,wxDefaultSize,
style);
+ mToolAddFile = mToolBar->AddTool( TOOL_CREATEDB_ID,
+ _T("Create database"),
+ mIcon->GetBitmap(Icon_create_database),
+ _T("Create DB from an Attributes Descriptor file")
+ );
mToolAddFile = mToolBar->AddTool( TOOL_ADDFILES_ID,
_T("Add file(s)"),
mIcon->GetBitmap(Icon_page_down),
mIcon->GetBitmap(Icon_folder_down),
_T("Add the content of a folder to database")
);
+ mToolAddDatabase = mToolBar->AddTool( TOOL_ADDDATABASE_ID,
+ _T("Open database"),
+ mIcon->GetBitmap(Icon_database_add),
+ _T("Open a local or distant database")
+ );
mToolRemove = mToolBar->AddTool( TOOL_REMOVE_ID,
_T("Remove"),
mIcon->GetBitmap(Icon_remove),
_T("Remove selected items")
);
- mToolAddDatabase = mToolBar->AddTool( TOOL_ADDDATABASE_ID,
- _T("Open database"),
- mIcon->GetBitmap(Icon_database_add),
- _T("Open a local or distant database")
+ mToolSynchronize = mToolBar->AddTool( TOOL_SYNCHRONIZE_ID,
+ _T("Synchronize"),
+ mIcon->GetBitmap(Icon_synchronize),
+ _T("Synchronizes the database with disk")
);
- mToolHelp = mToolBar->AddTool( TOOL_HELP_ID,
+ mToolHelp = mToolBar->AddTool( TOOL_HELP_ID,
_T("Help"),
mIcon->GetBitmap(Icon_help),
_T("Open help window")
);
- mToolSynchronize = mToolBar->AddTool( TOOL_SYNCHRONIZE_ID,
- _T("Synchronize"),
- mIcon->GetBitmap(Icon_synchronize),
- _T("Synchronizes the database with disk")
- );
//const wxBitmap& bitmap1, const wxString& shortHelpString = "", wxItemKind kind = wxITEM_NORMAL)
mToolBar->Realize();
void WxGimmickView::GetSelectedImages(std::vector<vtkImageData*>& s, int dim)
{
std::vector<std::string> files;
- GetTreeViewMap()["Local database"]->GetSelectedAsString(files);
+ GetTreeViewMap()[crea::wx2std(mNotebook->GetPageText(mNotebook->GetSelection()))]->GetSelectedAsString(files);
ReadImagesNotThreaded(s,files,dim);
}
//======================================================================
//======================================================================
void WxGimmickView::GetSelectedFiles(std::vector<std::string>& s)
{
- GetTreeViewMap()["Local database"]->GetSelectedAsString(s);
+ GetTreeViewMap()[crea::wx2std(mNotebook->GetPageText(mNotebook->GetSelection()))]->GetSelectedAsString(s);
}
//======================================================================
icons[Icon_database_add] = wxIcon(database_add_xpm);
icons[Icon_help] = wxIcon(help_xpm);
icons[Icon_synchronize] = wxIcon(synchronize_xpm);
+ icons[Icon_create_database] = wxIcon(create_database_xpm);
// unsigned int NbIcons = 8;
// Make an image list containing small icons
//Going up
prio = maxprio + 20;
std::vector<tree::Node*> up;
- GetTreeViewMap()["Local database"]->GetNodes(up,true);
+ GetTreeViewMap()[crea::wx2std(mNotebook->GetPageText(mNotebook->GetSelection()))]->GetNodes(up,true);
std::vector<tree::Node*>::iterator iterUp;
for(iterUp=up.begin();iterUp!=up.end();++iterUp)
{
//Going down
prio = maxprio + 19;
std::vector<tree::Node*> down;
- GetTreeViewMap()["Local database"]->GetNodes(down,false);
+ GetTreeViewMap()[crea::wx2std(mNotebook->GetPageText(mNotebook->GetSelection()))]->GetNodes(down,false);
std::vector<tree::Node*>::iterator iterDown;
for(iterDown=down.begin();iterDown!=down.end();++iterDown)
{
{
//TODO Select current tree handler
wxBusyCursor busy;
- GetTreeViewMap()["Local database"]->RemoveSelected();
+ GetTreeViewMap()[crea::wx2std(mNotebook->GetPageText(mNotebook->GetSelection()))]->RemoveSelected();
ClearSelection();
}
//=================================================
void WxGimmickView::OnSynchronize(wxCommandEvent& event)
{
wxBusyCursor busy;
- const wxString choices[] = { _T("Check database for file deletion or addition and give a report."),
- _T("Check database for file deletion or addition and attribute change and give a report."),
- _T("Repair database (removes deleted files and adds new files)."),
- _T("Repair database (removes deleted files, adds new files and resets changed attributes).") } ;
+ const wxString choices[] = { _T("Check database for files deletion and addition and give a report."),
+ _T("Check database for files deletion, addition and attributes change. Then give a report."),
+ _T("Repair database (remove deleted files and add new files)."),
+ _T("Repair database (remove deleted files, add new files and reset changed attributes).") } ;
wxSingleChoiceDialog dialog(this,
_T("Select one of the following synchronization actions:\n")
- _T("Plase note that, due to the heavy amount of operations required, this action might take a while."),
+ _T("Please note that, due to the heavy amount of operations required, this action might take a while."),
_T("Synchronization Settings"),
WXSIZEOF(choices), choices);
std::stringstream st;
for(int i = 0; i< files.size(); i++)
{
- st<< "remote_" << i+1;
+ //get name of DB (file name)
+ size_t pos = files[i].find_last_of("\\");
+ std::string name = crea::wx2std(files[i].substr(pos+1));
+ pos = name.find_last_of(".");
+ name = name.substr(0,pos);
//create TreeHandler
- mGimmick->addDB(st.str(), crea::wx2std(files[i]));
+ mGimmick->addDB(name, crea::wx2std(files[i]));
//create TreeView
- CreateSingleTreeView(st.str());
+ CreateSingleTreeView(name);
}
}
+ }
+ ////////////////////////////////////////////////////
+ // Create a DB from an Attributes Descriptor files //
+ // @param event : WxEvent //
+ // @return : - //
+ //////////////////////////////////////////////////
+ void WxGimmickView::OnCreateDB(wxCommandEvent& event)
+ {
-
+ //Select DB
+ long style = wxDD_DEFAULT_STYLE | wxDD_DIR_MUST_EXIST;
+ std::string wc("*.txt");
+ wxFileDialog* FD = new wxFileDialog( 0,
+ _T("Select file"),
+ _T(""),
+ _T(""),
+ crea::std2wx(wc),
+ style,
+ wxDefaultPosition);
+
+ if (FD->ShowModal()==wxID_OK)
+ {
+ wxBusyCursor busy;
+ wxArrayString afile;
+ FD->GetPaths(afile);
+ //get name of DB (file name)
+ std::string file = crea::wx2std(afile[0]);
+ size_t pos = file.find_last_of("\\");
+ std::string name = file.substr(pos+1);
+ std::string directory = file.substr(0,pos);
+ pos = name.find_last_of(".");
+ name = name.substr(0,pos);
+ //get directory to store DB
+ directory += "\\" + name + ".sqlite3";
+ //create createDB
+ mGimmick->createDB(name, file,directory);
+ //create TreeHandler
+ mGimmick->addDB(name, directory);
+ //create TreeView
+ CreateSingleTreeView(name);
+ }
}
//=================================================
//=================================================
BEGIN_EVENT_TABLE(WxGimmickView, wxPanel)
+ EVT_TOOL(TOOL_CREATEDB_ID, WxGimmickView::OnCreateDB)
+ EVT_TOOL(TOOL_ADDFILES_ID, WxGimmickView::OnCreateDB)
EVT_TOOL(TOOL_ADDFILES_ID, WxGimmickView::OnAddFiles)
EVT_TOOL(TOOL_ADDDIR_ID, WxGimmickView::OnAddDir)
+ EVT_TOOL(TOOL_ADDDATABASE_ID, WxGimmickView::OnAddDB)
EVT_TOOL(TOOL_REMOVE_ID, WxGimmickView::OnRemove)
EVT_TOOL(TOOL_SYNCHRONIZE_ID, WxGimmickView::OnSynchronize)
- EVT_TOOL(TOOL_ADDDATABASE_ID, WxGimmickView::OnAddDB)
END_EVENT_TABLE()
//=================================================