7#ifndef __MaterialFrame__
8#define __MaterialFrame__
13#include <wx/confbase.h>
14#include <wx/fileconf.h>
16#include <wx/msw/regconf.h>
19#include <wx/stdpaths.h>
21#include <boost/multi_index_container.hpp>
22#include <boost/multi_index/ordered_index.hpp>
23#include <boost/multi_index/identity.hpp>
24#include <boost/multi_index/member.hpp>
26#include "PreferenceFrame.h"
29#include <wx/settings.h>
31#include "BT_MatML_TreeCtrlSorted.h"
32#include "BT_MatML_MaterialFrameBase.h"
33#include "BT_MatML_Utilities_GUI.h"
34#include "BT_MatML_MatMLTreeItemData.h"
37#include <boost/any.hpp>
38#include <boost/shared_ptr.hpp>
43#include <boost/serialization/strong_typedef.hpp>
48typedef ::std::list<boost::any> many;
63 boost::any m_MatMLItemToCopy;
66 bool Warning(::std::string msg)
68 wxMessageDialog WarningDialog(NULL, msg, _(
"MatML Editer"), wxOK | wxICON_EXCLAMATION, wxDefaultPosition);
69 return (WarningDialog.ShowModal() == wxID_YES);
83 boost::shared_ptr<MatML_Doc>
doc;
106 void OnNewSel( wxCommandEvent& event );
123 void XSLT2HTMLviewer(
const wxString XMLfilename,
const wxString XSLTFile,
const wxString HTMLDir,
const wxString HTMLFileName);
124 void XSLTProcessing(
const wxString XMLfilename,
const wxString XSLTFile,
const wxString OutDir,
const wxString OutFileName,
const wxString XSLTParameters);
125 void OnAbout(wxCommandEvent& event);
130 template<
typename EventTag,
typename Class,
typename EventArg,
typename EventHandler >
131 void PopupLinkBind(wxMenu& menu, ::std::string desc,
const EventTag& eventType,
void(
Class::* method)(EventArg&), EventHandler* handler);
133 template<
typename MatMLClass,
typename Parent_GUIClass,
typename EventTag,
typename ParentBase_GUIClass,
typename EventArg,
typename EventHandler >
134 void Popup_Paste(
const boost::any& MatMLItemToCopy, Parent_GUIClass* Parent_GUI, wxMenu& menu, ::std::string desc,
const EventTag& eventType,
void(ParentBase_GUIClass::* method)(EventArg&), EventHandler* handler);
141 void OnCopy(wxCommandEvent& event);
207 template<
class MatML>
212 MatML* matml(
nullptr);
214 matml=GetMatML<MatML>(treeitemdata);
219 template<
class MatML>
222 const boost::any anyptr(treeitemdata->GetAnyMatMLDataPointer());
223 MatML* matml =
nullptr;
225 if (anyptr.type() ==
typeid(MatML*)) {
226 matml = boost::any_cast<MatML*>(anyptr);
229 catch (
const boost::bad_any_cast&) {}
237 wxWindowID
id = wxID_MATERIAL,
238 const wxString& title = wxT(
"MatML Editer"),
239 const wxPoint& pos = wxDefaultPosition,
240 const wxSize& size = wxSize(770, 628),
241 long style = wxCAPTION | wxCLOSE_BOX | wxMAXIMIZE_BOX | wxMINIMIZE_BOX | wxRESIZE_BORDER | wxSYSTEM_MENU | wxTAB_TRAVERSAL
245 wxTreeItemId
findTreeItem(wxTreeCtrl* pTreeCtrl,
const wxTreeItemId& root,
const wxString& text,
bool bCaseSensitive,
bool bExactMatch);
248 void OnClassInsertRelatedElementsButton( wxCommandEvent& event );
252 void LoadTemplateDoc(wxString& TemplateName);
253 void CopyTemplateMetadata();
258 void CopyComponentNameToParentMaterial();
Definition: matml31.hxx:897
Definition: matml31.hxx:990
Definition: matml31.hxx:1705
Definition: matml31.hxx:5577
Definition: matml31.hxx:2299
Definition: matml31.hxx:3029
Definition: HTMLFrame.h:11
This allows MatML data to be pulled from the wxTreeCtrl selection and boost::any_cast back into MatML...
Definition: BT_MatML_MatMLTreeItemData.h:30
Contains:
Definition: BT_MatML_MaterialFrameBase.h:86
Application's GUIs (not directly associated with the MatML data classes) e.g. File Menu,...
Definition: BT_MatML_MaterialFrame.h:60
void OnDeleteProcessingDetails(wxCommandEvent &event)
Call parents to delete MatML data Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:2819
void OnEditMenuPreferencesItem(wxCommandEvent &event)
On Edit Menu Preferences Item Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:755
bool reEstabilishTreeCtrlSizer()
Definition: BT_MatML_MaterialFrame.cpp:71
void OnCopy(wxCommandEvent &event)
On Copy Event Handler Function Sets the MatML Item To Copy
Definition: BT_MatML_MaterialFrame.cpp:2421
void OnImportMaterialBranch(wxCommandEvent &event)
On Import of Material Branch Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:589
MaterialFrame(wxWindow *parent, wxWindowID id=wxID_MATERIAL, const wxString &title=wxT("MatML Editer"), const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(770, 628), long style=wxCAPTION|wxCLOSE_BOX|wxMAXIMIZE_BOX|wxMINIMIZE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU|wxTAB_TRAVERSAL)
Definition: BT_MatML_MaterialFrame.cpp:53
void OnDeleteForm(wxCommandEvent &event)
Call parents to delete MatML data Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:2598
void OnDeleteCurrencyCode(wxCommandEvent &event)
Call parents to delete MatML data Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:2560
void OnElementActivated(wxTreeEvent &event)
On Element Activated. Event Handlers Function
Definition: BT_MatML_MaterialFrame.cpp:810
void OnDeleteQualifier(wxCommandEvent &event)
Call parents to delete MatML data Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:2858
void OnDeleteUnitless(wxCommandEvent &event)
Call parents to delete MatML data Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:2956
void OnDeleteCompound(wxCommandEvent &event)
Call parents to delete MatML data Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:2540
void OnDeleteSubclass(wxCommandEvent &event)
Call parents to delete MatML data Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:2510
void OnDeleteChemicalElementSymbol(wxCommandEvent &event)
Call parents to delete MatML data Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:2493
void OnOpenSel(wxCommandEvent &event)
On Open Selection Event Handler Function for opening a MatML_Doc
Definition: BT_MatML_MaterialFrame.cpp:182
void PopupLinkBind(wxMenu &menu, ::std::string desc, const EventTag &eventType, void(Class::*method)(EventArg &), EventHandler *handler)
Pop-up menu linking and binding Links the Menu Item to the context menu. Binds the Event Handler Func...
Definition: BT_MatML_MaterialFrame.cpp:884
void OnDeleteSynonym(wxCommandEvent &event)
Call parents to delete MatML data Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:2665
void OnNewSel(wxCommandEvent &event)
Event Handler Function for new MatML_Doc
Definition: BT_MatML_MaterialFrame.cpp:142
void OnDeleteSource(wxCommandEvent &event)
Call parents to delete MatML data Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:2898
void SetTreeCtrlConnect()
Sets the Connection of the wxTreeCtrl event handler from an instant of a wxTreeCtrl to events associa...
Definition: BT_MatML_MaterialFrame.cpp:92
void OnDeleteAuthorityDetails(wxCommandEvent &event)
Call parents to delete MatML data Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:2454
void OnDeleteValue(wxCommandEvent &event)
Call parents to delete MatML data Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:2980
void OnDeleteParameterDetails(wxCommandEvent &event)
Call parents to delete MatML data Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:2790
std::auto_ptr< MatML_Doc > template_doc
Definition: BT_MatML_MaterialFrame.h:89
void OnDeleteChemicalComposition(wxCommandEvent &event)
Call parents to delete MatML data Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:2484
void backup()
Perform a file backup
Definition: BT_MatML_MaterialFrame.cpp:2345
void OnDeleteUnit(wxCommandEvent &event)
Call parents to delete MatML data Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:2947
void OnDeleteRelationship(wxCommandEvent &event)
Call parents to delete MatML data Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:2870
void OnDeleteConcentration(wxCommandEvent &event)
Call parents to delete MatML data Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:2549
boost::shared_ptr< MatML_Doc > doc
Definition: BT_MatML_MaterialFrame.h:83
void OnDeleteComponentDetails(wxCommandEvent &event)
Call parents to delete MatML data Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:2530
void OnDeleteCharacterization(wxCommandEvent &event)
Call parents to delete MatML data Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:2474
void OnSortMenuItem(wxCommandEvent &event)
On Sort Menu Item Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:769
void OnDeletePropertyData(wxCommandEvent &event)
Call parents to delete MatML data Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:2838
void ImportFile(const char *File)
Import File
Definition: BT_MatML_MaterialFrame.cpp:2175
void OnDeleteGraphs(wxCommandEvent &event)
Call parents to delete MatML data Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:2675
void OnDeleteUnits(wxCommandEvent &event)
Call parents to delete MatML data Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:2967
void OnExitSel(wxCommandEvent &event)
On Exit Selection Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:740
void ShowContextMenu(wxTreeItemId id, const wxPoint &pt)
Shows/Creates the wxTreeCtrl context menu Event Handler functions polymorphicly associated with the c...
Definition: BT_MatML_MaterialFrame.cpp:930
void OnDeleteAssociate(wxCommandEvent &event)
following functions are for the Deletion of the wxTreeCtrl elements
Definition: BT_MatML_MaterialFrame.cpp:2435
void OnDeleteDefinition(wxCommandEvent &event)
Call parents to delete MatML data Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:2646
void MaterialSetParentMaterial(::vector< ParentMaterial * > compparentmateriallist, Material *material)
Given a Material Set the ParentMaterial from a list.
Definition: BT_MatML_MaterialFrame.cpp:2119
void OnExportMaterialBranch(wxCommandEvent &event)
On Export Material Branch Selection Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:476
void OnDeletePropertyDetails(wxCommandEvent &event)
Call parents to delete MatML data Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:2849
void OnDeleteTestConditionDetails(wxCommandEvent &event)
Call parents to delete MatML data Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:2917
void OnDeleteScale(wxCommandEvent &event)
Call parents to delete MatML data Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:2938
void OnElementExpanded(wxTreeEvent &event)
On Element Expanded Event Handlers functions
Definition: BT_MatML_MaterialFrame.cpp:834
void UpdateCurrentPanel()
This function Updates the wxTreeCtrl's Current selected element's polymorhically associated wxNoteboo...
Definition: BT_MatML_MaterialFrame.cpp:2393
void OnExitIsolateMaterialBranch(wxCommandEvent &event)
On Exit Isolate of the Material Branch Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:691
void OnDeleteNotes(wxCommandEvent &event)
Call parents to delete MatML data Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:2741
void OnDeleteName(wxCommandEvent &event)
Call parents to delete MatML data Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:2718
void OnDeleteDimensionalDetails(wxCommandEvent &event)
Call parents to delete MatML data Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:2579
void OnGotoParentMaterial(wxCommandEvent &event)
On Component Details Goto Parent Material Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:3087
void SortMenuItem()
On Sort Menu Item
Definition: BT_MatML_MaterialFrame.cpp:781
void OnDeleteElement(wxCommandEvent &event)
Call parents to delete MatML data Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:2588
void OnDeleteBulkDetails(wxCommandEvent &event)
Call parents to delete MatML data Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:2464
void OnDeleteUncertainty(wxCommandEvent &event)
Call parents to delete MatML data Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:2926
void OnDeleteSpecification(wxCommandEvent &event)
Call parents to delete MatML data Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:2879
void OnCloseSel(wxCloseEvent &event)
Event Handler Function for Closing MatML_Doc
Definition: BT_MatML_MaterialFrame.cpp:104
wxTreeItemId findTreeItem(wxTreeCtrl *pTreeCtrl, const wxTreeItemId &root, const wxString &text, bool bCaseSensitive, bool bExactMatch)
Based on the pointer to wxTreeCtrl and the root element, finds the matching wxString content....
Definition: BT_MatML_MaterialFrame.cpp:2998
void OnSaveAsSel(wxCommandEvent &event)
On SaveAs Selection Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:295
void OnDeleteFormula(wxCommandEvent &event)
Call parents to delete MatML data Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:2608
void OnDeleteGlossaryTerm(wxCommandEvent &event)
Call parents to delete MatML data Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:2636
void IsolateMaterialBranch()
Isolate to the Material Branch This function:
Definition: BT_MatML_MaterialFrame.cpp:630
void OnDeleteAbbreviation(wxCommandEvent &event)
Call parents to delete MatML data Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:2655
void OnDeleteParameterValue(wxCommandEvent &event)
Call parents to delete MatML data Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:2799
::vector< ParentMaterial * > MaterialGatherAssociatedComponentParentMaterial(Material *material)
Given a Material Gather Associate ComponentDetails ParentMaterials
Definition: BT_MatML_MaterialFrame.cpp:2082
void LoadFile()
Load File
Definition: BT_MatML_MaterialFrame.cpp:2133
void OnElementCollapsed(wxTreeEvent &event)
On Element Collapsed Event Handlers functions
Definition: BT_MatML_MaterialFrame.cpp:844
virtual ~MaterialFrame()
Definition: BT_MatML_MaterialFrame.cpp:60
void OnMatMLItemMenu(wxTreeEvent &event)
On MatML Item Selection Event Handlers functions
Definition: BT_MatML_MaterialFrame.cpp:855
void OnIsolateMaterialBranch(wxCommandEvent &event)
On Isolate to the Material Branch Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:617
void OnSaveSel(wxCommandEvent &event)
On Save Selection Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:237
void OnDeleteParentMaterial(wxCommandEvent &event)
Call parents to delete MatML data Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:2772
void OnDeleteSpecimenDetails(wxCommandEvent &event)
Call parents to delete MatML data Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:2889
void OnDeleteGraph(wxCommandEvent &event)
Call parents to delete MatML data Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:2684
void OnDeleteSourceDetails(wxCommandEvent &event)
Call parents to delete MatML data Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:2908
void OnDeleteSubclass1(wxCommandEvent &event)
Call parents to delete MatML data Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:2520
void OnDeleteGeometry(wxCommandEvent &event)
Call parents to delete MatML data Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:2617
void OnDeleteParentSubClass(wxCommandEvent &event)
Call parents to delete MatML data Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:2781
void OnDeleteClass(wxCommandEvent &event)
Call parents to delete MatML data Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:2500
void OnLeftDown(wxTreeEvent &event)
void OnDeleteMetadata(wxCommandEvent &event)
Call parents to delete MatML data Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:2711
void OnAbout(wxCommandEvent &event)
Definition: BT_MatML_MaterialFrame.cpp:791
void OnExportMaterial(wxCommandEvent &event)
On Export Material Selection Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:372
void Popup_Paste(const boost::any &MatMLItemToCopy, Parent_GUIClass *Parent_GUI, wxMenu &menu, ::std::string desc, const EventTag &eventType, void(ParentBase_GUIClass::*method)(EventArg &), EventHandler *handler)
Pop-up menu For Pasting Places the MatML Item To Copy. Pop-up menu linking and binding Polymorphicly ...
Definition: BT_MatML_MaterialFrame.cpp:912
void OnDeleteMaterial(wxCommandEvent &event)
Call parents to delete MatML data Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:2693
std::stack< TreeCtrlSorted * > m_MatMLTreeCtrlStack
Definition: BT_MatML_MaterialFrame.h:85
void SetupMaterialBranch(MatML_Doc &element, std::vector< Material * > &materials)
//The following functions setup wxTreeCtrl branches and assigns a MatML element pointer to the wxTree...
Definition: BT_MatML_MaterialFrame.cpp:2411
void OnDeleteResult(wxCommandEvent &event)
Call parents to delete MatML data Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:2829
void OnDeleteAssociationDetails(wxCommandEvent &event)
Call parents to delete MatML data Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:2444
void ExitIsolateMaterialBranch()
Exit Isolate of the Material Branch
Definition: BT_MatML_MaterialFrame.cpp:699
void OnDeleteDataSourceDetails(wxCommandEvent &event)
Call parents to delete MatML data Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:2570
void OnDeletePhaseComposition(wxCommandEvent &event)
Call parents to delete MatML data Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:2810
void OnDeleteGlossary(wxCommandEvent &event)
Call parents to delete MatML data Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:2627
void OnDeleteMeasurementTechniqueDetails(wxCommandEvent &event)
Call parents to delete MatML data Event Handler Function
Definition: BT_MatML_MaterialFrame.cpp:2702
Definition: PreferenceFrame.h:19
Definition: BT_MatML_TreeCtrlSorted.h:19
Definition: BT_MatML_Utilities_GUI.h:38
Contains the GUI and GUI associated classes. OnInit() calls the creation of the MaterialFrame GUI
Definition: BT_MatML_App.h:39