1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
|
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
//
// Copyright : (C) 2015 Eran Ifrah
// File name : tree_item_data.h
//
// -------------------------------------------------------------------------
// A
// _____ _ _ _ _
// / __ \ | | | | (_) |
// | / \/ ___ __| | ___| | _| |_ ___
// | | / _ \ / _ |/ _ \ | | | __/ _ )
// | \__/\ (_) | (_| | __/ |___| | || __/
// \____/\___/ \__,_|\___\_____/_|\__\___|
//
// F i l e
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
#ifndef PHPVIEWMODEL_H
#define PHPVIEWMODEL_H
#include <map>
#include <wx/treebase.h>
#include <wx/filename.h>
class ItemData : public wxTreeItemData
{
public:
enum kKIND { Kind_Unknown = -1, Kind_Workspace, Kind_Project, Kind_Folder, Kind_File };
protected:
kKIND kind;
bool active; // make sense only if kind == Kind_Project
wxString projectName; // make sense only if kind == Kind_Project
wxString file; // make sense only if kind == Kind_File
wxString folderPath; // make sense only if kind == Kind_Folder
wxString folderName; // make sense only if kind == Kind_Folder
public:
ItemData(kKIND k)
: kind(k)
, active(false)
{
}
void SetFolderName(const wxString& folderName) { this->folderName = folderName; }
virtual ~ItemData() {}
void SetProjectName(const wxString& projectName) { this->projectName = projectName; }
const wxString& GetProjectName() const { return projectName; }
void SetActive(bool active) { this->active = active; }
void SetFile(const wxString& file) { this->file = file; }
void SetFolderPath(const wxString& folderPath)
{
this->folderPath = folderPath;
if(this->folderPath.EndsWith("/")) {
this->folderPath.RemoveLast();
}
}
void SetKind(kKIND kind) { this->kind = kind; }
bool IsActive() const { return active; }
const wxString& GetFile() const { return file; }
const wxString& GetFolderPath() const { return folderPath; }
const wxString& GetFolderName() const { return folderName; }
kKIND GetKind() const { return kind; }
bool IsProject() const { return kind == Kind_Project; }
bool IsFolder() const { return kind == Kind_Folder; }
bool IsFile() const { return kind == Kind_File; }
bool IsWorkspace() const { return kind == Kind_Workspace; }
wxString GetDisplayName() const
{
switch(kind) {
case Kind_File: {
wxFileName fn(GetFile());
return fn.GetFullName();
}
case Kind_Folder:
return GetFolderName();
case Kind_Project:
return GetProjectName();
case Kind_Workspace:
default:
return "";
}
}
};
#endif // PHPVIEWMODEL_H
|