11 #ifndef smtk_view_ViewWidgetFactory_h
12 #define smtk_view_ViewWidgetFactory_h
14 #include "smtk/CoreExports.h"
16 #include "smtk/common/Factory.h"
18 #include "smtk/view/BaseView.h"
19 #include "smtk/view/Information.h"
34 template<
typename Type>
35 void addAlias(
const std::string& alias)
37 addAlias(smtk::view::typeIndex<Type>(), alias);
41 void addAlias(
const std::size_t& typeIndex,
const std::string& alias)
43 m_aliases[alias] = typeIndex;
49 return m_aliases.find(alias) != m_aliases.end();
53 template<
typename... Args>
54 std::unique_ptr<BaseView>
createFromAlias(
const std::string& alias, Args&&... args)
const
56 auto found = m_aliases.find(alias);
57 if (found != m_aliases.end())
59 return createFromIndex(found->second, std::forward<Args>(args)...);
61 return std::unique_ptr<BaseView>();
65 std::map<std::string, std::size_t> m_aliases;