BT-MatML-Editor 0.1.4
Editor for the MatML 3.1 XML Schema
BT_MatML_MatMLTreeItemData.h
1
2// Name: MatMLTreeItemData.h
3// Purpose: MatML Version of the wxTreeItemData.
4// Author: Paul McGrath
5// Modified by:
6// Created:
7// Copyright: (c) Paul McGrath
8// Licence: CC licence
10#pragma once
11
12#include "wx/treebase.h"
13#include "wx/clntdata.h"
14
15#include <boost/any.hpp>
16#include <wx/string.h>
17
18#include "matml31.hxx"
19#include "matml31_strongtypedef.h"
20
21namespace bellshire{
22
29class MatMLTreeItemData : public wxTreeItemData
30{
31public:
32 MatMLTreeItemData() : m_AnyMatMLData(nullptr), voidptr(nullptr) {}
33 MatMLTreeItemData(Associate* MatMLData, const wxString& desc=wxT("Associate")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
34 MatMLTreeItemData(AssociationDetails* MatMLData, const wxString& desc=wxT("AssociationDetails")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
35 MatMLTreeItemData(AuthorityDetails* MatMLData,const wxString& desc=wxT("AuthorityDetails")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
36 MatMLTreeItemData(BulkDetails* MatMLData,const wxString& desc=wxT("BulkDetails")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
37 MatMLTreeItemData(Characterization* MatMLData,const wxString& desc=wxT("Characterization")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
38 MatMLTreeItemData(ChemicalComposition* MatMLData,const wxString& desc=wxT("ChemicalComposition")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
39 MatMLTreeItemData(ChemicalElementSymbol* MatMLData,const wxString& desc=wxT("ChemicalElementSymbol")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
40 MatMLTreeItemData(Class* MatMLData,const wxString& desc=wxT("Class")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
41 MatMLTreeItemData(Subclass* MatMLData,const wxString& desc=wxT("Subclass")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
42 MatMLTreeItemData(Subclass1* MatMLData,const wxString& desc=wxT("Subclass1")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
43 MatMLTreeItemData(ParentMaterial* MatMLData,const wxString& desc=wxT("ParentMaterial")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
44 MatMLTreeItemData(ParentSubClass* MatMLData,const wxString& desc=wxT("ParentSubClass")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
45 MatMLTreeItemData(ComponentDetails* MatMLData,const wxString& desc=wxT("ComponentDetails")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
46 MatMLTreeItemData(Compound* MatMLData,const wxString& desc=wxT("Compound")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
47 MatMLTreeItemData(Concentration* MatMLData,const wxString& desc=wxT("Concentration")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
48 MatMLTreeItemData(CurrencyCode* MatMLData,const wxString& desc=wxT("CurrencyCode")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
49 MatMLTreeItemData(DataFormat* MatMLData,const wxString& desc=wxT("DataFormat")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
50 MatMLTreeItemData(DataSourceDetails* MatMLData,const wxString& desc=wxT("DataSourceDetails")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
51 MatMLTreeItemData(DimensionalDetails* MatMLData,const wxString& desc=wxT("DimensionalDetails")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
52 MatMLTreeItemData(Element* MatMLData,const wxString& desc=wxT("Element")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
53 MatMLTreeItemData(Symbol* MatMLData,const wxString& desc=wxT("Symbol")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
54 MatMLTreeItemData(Form* MatMLData,const wxString& desc=wxT("Form")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
55 MatMLTreeItemData(Formula* MatMLData,const wxString& desc=wxT("Formula")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
56 MatMLTreeItemData(Geometry* MatMLData,const wxString& desc=wxT("Geometry")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
57 MatMLTreeItemData(Shape* MatMLData,const wxString& desc=wxT("Shape")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
58 MatMLTreeItemData(Dimensions* MatMLData,const wxString& desc=wxT("Dimensions")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
59 MatMLTreeItemData(Orientation* MatMLData,const wxString& desc=wxT("Orientation")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
60 MatMLTreeItemData(Glossary* MatMLData,const wxString& desc=wxT("Glossary")) : m_AnyMatMLData(MatMLData), m_desc(desc) , voidptr((void*)MatMLData) { }
61 MatMLTreeItemData(GlossaryTerm* MatMLData,const wxString& desc=wxT("GlossaryTerm")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
62 MatMLTreeItemData(Definition* MatMLData,const wxString& desc=wxT("Definition")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
63 MatMLTreeItemData(Abbreviation* MatMLData,const wxString& desc=wxT("Abbreviation")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
64 MatMLTreeItemData(Synonym* MatMLData,const wxString& desc=wxT("Synonym")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
65// This is the same as xml_schema::string MatMLTreeItemData(GlossaryTerm::Synonym_type* MatMLData,const wxString& desc=wxT("Synonym")) : m_AnyMatMLData(MatMLData), m_desc(desc) { }
66// MatMLTreeItemData(xml_schema::string* MatMLData,const wxString& desc=wxT("String")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
67 MatMLTreeItemData(Graphs* MatMLData,const wxString& desc=wxT("Graphs")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
68 MatMLTreeItemData(Graph* MatMLData,const wxString& desc=wxT("Graph")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
69 MatMLTreeItemData(Material* MatMLData,const wxString& desc=wxT("Material")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
70 MatMLTreeItemData(MatML_Doc* MatMLData,const wxString& desc=wxT("MatML_Doc")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
71 MatMLTreeItemData(MeasurementTechniqueDetails* MatMLData,const wxString& desc=wxT("MeasurementTechniqueDetails")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
72 MatMLTreeItemData(Metadata* MatMLData,const wxString& desc=wxT("Metadata")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
73 MatMLTreeItemData(Name* MatMLData,const wxString& desc=wxT("Name")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
74 MatMLTreeItemData(Notes* MatMLData,const wxString& desc=wxT("Notes")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
75 MatMLTreeItemData(ParameterDetails* MatMLData,const wxString& desc=wxT("ParameterDetails")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
76 MatMLTreeItemData(ParameterValue* MatMLData,const wxString& desc=wxT("ParameterValue")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
77 MatMLTreeItemData(Data* MatMLData,const wxString& desc=wxT("Data")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
78 MatMLTreeItemData(PhaseComposition* MatMLData,const wxString& desc=wxT("PhaseComposition")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
79 MatMLTreeItemData(ProcessingDetails* MatMLData,const wxString& desc=wxT("ProcessingDetails")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
80 MatMLTreeItemData(Result* MatMLData,const wxString& desc=wxT("Result")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
81 MatMLTreeItemData(PropertyData* MatMLData,const wxString& desc=wxT("PropertyData")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
82 MatMLTreeItemData(delimiter* MatMLData,const wxString& desc=wxT("delimiter")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
83 MatMLTreeItemData(PropertyDetails* MatMLData,const wxString& desc=wxT("PropertyDetails")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
84 MatMLTreeItemData(Data1* MatMLData,const wxString& desc=wxT("Data")) : m_AnyMatMLData(MatMLData), m_desc(desc) , voidptr((void*)MatMLData) { }
85 MatMLTreeItemData(Qualifier* MatMLData,const wxString& desc=wxT("Qualifier")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
86 MatMLTreeItemData(Relationship* MatMLData,const wxString& desc=wxT("Relationship")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
87 MatMLTreeItemData(Source* MatMLData,const wxString& desc=wxT("Source")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
88 MatMLTreeItemData(SourceDetails* MatMLData,const wxString& desc=wxT("SourceDetails")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
89 MatMLTreeItemData(Specification* MatMLData,const wxString& desc=wxT("Specification")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
90 MatMLTreeItemData(SpecimenDetails* MatMLData,const wxString& desc=wxT("SpecimenDetails")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
91 MatMLTreeItemData(TestConditionDetails* MatMLData,const wxString& desc=wxT("TestConditionDetails")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
92 MatMLTreeItemData(Uncertainty* MatMLData,const wxString& desc=wxT("Uncertainty")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
93 MatMLTreeItemData(Scale* MatMLData,const wxString& desc=wxT("Scale")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
94 MatMLTreeItemData(Unit* MatMLData,const wxString& desc=wxT("Unit")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
95 MatMLTreeItemData(Unitless* MatMLData,const wxString& desc=wxT("Unitless")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
96 MatMLTreeItemData(Units* MatMLData,const wxString& desc=wxT("Units")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
97 MatMLTreeItemData(Value* MatMLData,const wxString& desc=wxT("Value")) : m_AnyMatMLData(MatMLData), m_desc(desc), voidptr((void*)MatMLData) { }
98
99 virtual ~MatMLTreeItemData() {
100 DeleteStrongType< Definition>();
101 DeleteStrongType< Abbreviation>();
102 DeleteStrongType< Synonym>();
103 DeleteStrongType< Shape>();
104 DeleteStrongType< Dimensions>();
105 DeleteStrongType< Orientation>();
106 DeleteStrongType< Result>();
107 DeleteStrongType< ParentSubClass>();
108 DeleteStrongType< Description>();
109 DeleteStrongType< Subclass>();
110 DeleteStrongType< Subclass1>();
111 };
112
113 template<class T>
114 void DeleteStrongType() {
115
116 if (!m_AnyMatMLData.empty()) {
117 if (m_AnyMatMLData.type() == typeid(T*)) {
118 T* strongtype = boost::any_cast<T*>(m_AnyMatMLData);
119 delete strongtype;
120 }
121 }
122 }
123
124 const boost::any GetAnyMatMLDataPointer() const { return m_AnyMatMLData; }
125
126 template<class T>
127 void SetAnyMatMLDataPointer(T* MatMLData)
128 {
129 this->m_AnyMatMLData=MatMLData;
130 this->voidptr=(void*)MatMLData;
131 }
132
133 void NullAnyMatMLDataPointer()
134 {
135 this->m_AnyMatMLData=nullptr;
136 this->voidptr=(void*)nullptr;
137 }
138
139 const wxChar *GetDesc() const { return m_desc.c_str(); }
140// const bool operator==(MatMLTreeItemData& in) {return (in.voidptr==voidptr);}
141 const bool operator==(const MatMLTreeItemData& in) {return (in.voidptr==voidptr);}
142
143private:
144 boost::any m_AnyMatMLData;
145 wxString m_desc;
146 void* voidptr;
147
148};
149}//namespace bellshire
150
151
152
153
154
Definition: matml31.hxx:321
Definition: matml31.hxx:359
Definition: matml31.hxx:4202
Definition: matml31.hxx:460
Definition: matml31.hxx:693
Definition: matml31.hxx:826
Definition: matml31.hxx:5172
Definition: matml31.hxx:897
Definition: matml31.hxx:990
Definition: matml31.hxx:1259
Definition: matml31.hxx:1356
Definition: matml31.hxx:5341
Definition: matml31.hxx:5863
Definition: matml31.hxx:1489
Definition: matml31.hxx:5800
Definition: matml31.hxx:4299
Definition: matml31.hxx:1548
Definition: matml31.hxx:1705
Definition: matml31.hxx:1804
Definition: matml31.hxx:1903
Definition: matml31.hxx:1941
Definition: matml31.hxx:2060
Definition: matml31.hxx:2113
Definition: matml31.hxx:5768
Definition: matml31.hxx:2246
Definition: matml31.hxx:5577
Definition: matml31.hxx:2299
Definition: matml31.hxx:4418
Definition: matml31.hxx:2479
Definition: matml31.hxx:2658
Definition: matml31.hxx:2721
Definition: matml31.hxx:4515
Definition: matml31.hxx:2759
Definition: matml31.hxx:5652
Definition: matml31.hxx:2912
Definition: matml31.hxx:3029
Definition: matml31.hxx:3146
Definition: matml31.hxx:4656
Definition: matml31.hxx:3429
Definition: matml31.hxx:3467
Definition: matml31.hxx:5963
Definition: matml31.hxx:4819
Definition: matml31.hxx:3505
Definition: matml31.hxx:3562
Definition: matml31.hxx:4938
Definition: matml31.hxx:5705
Definition: matml31.hxx:5079
Definition: matml31.hxx:3625
Definition: matml31.hxx:3850
Definition: matml31.hxx:3970
Definition: matml31.hxx:4002
Definition: matml31.hxx:4140
This allows MatML data to be pulled from the wxTreeCtrl selection and boost::any_cast back into MatML...
Definition: BT_MatML_MatMLTreeItemData.h:30
Definition: matml31.hxx:5925
Contains the GUI and GUI associated classes. OnInit() calls the creation of the MaterialFrame GUI
Definition: BT_MatML_App.h:39