#include "modelCDMFile.h"
+#include <fstream>
+#include <creaWx.h>
+#include <wx/dir.h>
+
+#include "CDMUtilities.h"
+
modelCDMFile::modelCDMFile()
{
}
-modelCDMFile::modelCDMFile(const std::string& path, const int& level)
+modelCDMFile::modelCDMFile(modelCDMIProjectTreeNode* parent, const std::string& path, const std::string& name, const int& level)
{
+ std::cout << "creating file: " + path + "\n";
+ this->parent = parent;
+ this->children.clear();
+ this->level = level;
+ this->name = name;
+ this->path = path;
+ this->type = wxDIR_FILES;
+
+ std::ifstream in(path.c_str(), std::ifstream::in | std::ifstream::binary);
+ in.seekg(0, std::ifstream::end);
+ this->length = in.tellg();
+ in.close();
+
}
modelCDMFile::~modelCDMFile()
{
}
-bool modelCDMFile::OpenFile(std::string*& result)
+bool modelCDMFile::OpenFile(std::string*& result, const std::string& command)
{
- //TODO: implement method
+ if (!CDMUtilities::openFileWithCommand(path, command))
return true;
+ else
+ {
+ result = new std::string("Couldn't open file with command " + command + ".");
+ return false;
+ }
}
const bool modelCDMFile::Refresh(std::string*& result)
{
- //TODO: implement method
+ //std::cout << "refreshing file " << this->name << std::endl;
+ std::ifstream in((this->path).c_str());
+ if(!in.is_open())
+ {
+ in.close();
+ return false;
+ }
+ std::ifstream in2(path.c_str(), std::ifstream::in | std::ifstream::binary);
+ in2.seekg(0, std::ifstream::end);
+ this->length = in2.tellg();
+ in2.close();
+ return true;
+}
+
+const bool modelCDMFile::OpenInFileExplorer(std::string*& result) const
+{
+ std::string pth = this->path.substr(0, path.size() - name.size() - 1);
+ if (!CDMUtilities::openFileExplorer(pth))
return true;
+ else
+ {
+ result = new std::string("Couldn't open file.");
+ return false;
+ }
}