Changeset 4fc41a
- Timestamp:
- Mar 11, 2010, 10:37:32 AM (15 years ago)
- Children:
- ff1812
- Parents:
- 4c60ef
- Location:
- molecuilder/src
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
molecuilder/src/Actions/small_actions.cpp
r4c60ef r4fc41a 27 27 string filename; 28 28 molecule *mol = NULL; 29 Dialog *dialog = UIFactory::get ()->makeDialog();29 Dialog *dialog = UIFactory::getInstance().makeDialog(); 30 30 31 31 dialog->queryMolecule("Enter index of molecule: ",&mol,molecules); -
molecuilder/src/Legacy/oldmenu.cpp
r4c60ef r4fc41a 912 912 void oldmenu::SimpleAddMolecules(MoleculeListClass *molecules) { 913 913 molecule *srcmol = NULL, *destmol = NULL; 914 Dialog *dialog = UIFactory::get ()->makeDialog();914 Dialog *dialog = UIFactory::getInstance().makeDialog(); 915 915 dialog->queryMolecule("Enter index of destination molecule: ",&destmol, molecules); 916 916 dialog->queryMolecule("Enter index of source molecule to add from: ",&srcmol, molecules); … … 926 926 void oldmenu::embeddMolecules(MoleculeListClass *molecules) { 927 927 molecule *srcmol = NULL, *destmol = NULL; 928 Dialog *dialog = UIFactory::get ()->makeDialog();928 Dialog *dialog = UIFactory::getInstance().makeDialog(); 929 929 dialog->queryMolecule("Enter index of matrix molecule (the variable one): ",&srcmol,molecules); 930 930 dialog->queryMolecule("Enter index of molecule to merge into (the fixed one): ",&destmol,molecules); -
molecuilder/src/Patterns/Singleton.hpp
r4c60ef r4fc41a 9 9 #define SINGLETON_HPP_ 10 10 11 #include <memory> 11 #include <cassert> 12 #include <boost/thread.hpp> 12 13 13 14 #include "defs.hpp" -
molecuilder/src/Patterns/Singleton_impl.hpp
r4c60ef r4fc41a 9 9 #define SINGLETON_IMPL_HPP_ 10 10 11 #include <cassert>11 #include "Patterns/Singleton.hpp" 12 12 13 13 template <class T,bool _may_create> -
molecuilder/src/UIElements/UIFactory.cpp
r4c60ef r4fc41a 8 8 9 9 #include <cassert> 10 #include "Patterns/Singleton_impl.hpp" 10 11 #include "UIElements/UIFactory.hpp" 11 12 12 13 // all factories that can be used: 13 14 #include "UIElements/TextUIFactory.hpp" 14 15 UIFactory *UIFactory::theFactory = 0;16 15 17 16 UIFactory::UIFactory() … … 27 26 28 27 void UIFactory::makeUserInterface(InterfaceTypes type) { 29 assert(theFactory == 0 && "makeUserInterface should only be called once");30 28 switch(type) { 31 29 case Text : 32 theFactory = new TextUIFactory();30 setInstance(new TextUIFactory()); 33 31 break; 34 32 … … 39 37 } 40 38 41 UIFactory* UIFactory::get(){ 42 assert(theFactory != 0 && "No UserInterface created prior to factory access"); 43 return theFactory; 44 } 45 46 47 void UIFactory::purgeInstance(){ 48 if(theFactory) { 49 delete theFactory; 50 theFactory = 0; 51 } 52 } 39 CONSTRUCT_SINGLETON(UIFactory) -
molecuilder/src/UIElements/UIFactory.hpp
r4c60ef r4fc41a 17 17 18 18 struct menuPopulaters; 19 20 #include "Patterns/Singleton.hpp" 21 19 22 /** 20 23 * Abstract Factory to create any kind of User interface object needed by the programm. … … 24 27 * UIs can be handled in a concise abstract way. 25 28 */ 26 class UIFactory 29 class UIFactory : public Singleton<UIFactory,false> 27 30 { 28 31 … … 45 48 UIFactory(); 46 49 47 // singleton stuff48 private:49 static UIFactory *theFactory;50 51 50 public: 52 51 /** … … 55 54 static void makeUserInterface(InterfaceTypes type); 56 55 57 /**58 * get the previously created factory59 */60 static UIFactory* get();61 62 /**63 * Destroy the created factory.64 *65 * Make sure that all UIElements that were created by the factory are destroyed before calling this method.66 */67 static void purgeInstance();68 56 }; 69 57 -
molecuilder/src/builder.cpp
r4c60ef r4fc41a 2225 2225 2226 2226 UIFactory::makeUserInterface(UIFactory::Text); 2227 MainWindow *mainWindow = UIFactory::get ()->makeMainWindow(populaters,World::getInstance().getMolecules(), configuration, World::getInstance().getPeriode(), ConfigFileName);2227 MainWindow *mainWindow = UIFactory::getInstance().makeMainWindow(populaters,World::getInstance().getMolecules(), configuration, World::getInstance().getPeriode(), ConfigFileName); 2228 2228 mainWindow->display(); 2229 2229 delete mainWindow;
Note:
See TracChangeset
for help on using the changeset viewer.