00001 /*========================================================================= 00002 Program: bbtk 00003 Module: $RCSfile: GObjectsMVCFactory.h,v $ 00004 Language: C++ 00005 Date: $Date: 2012/05/22 15:13:36 $ 00006 Version: $Revision: 1.4 $ 00007 =========================================================================*/ 00008 00009 /* --------------------------------------------------------------------- 00010 00011 * Copyright (c) CREATIS-LRMN (Centre de Recherche en Imagerie Medicale) 00012 * Authors : Eduardo Davila, Laurent Guigues, Jean-Pierre Roux 00013 * 00014 * This software is governed by the CeCILL-B license under French law and 00015 * abiding by the rules of distribution of free software. You can use, 00016 * modify and/ or redistribute the software under the terms of the CeCILL-B 00017 * license as circulated by CEA, CNRS and INRIA at the following URL 00018 * http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html 00019 * or in the file LICENSE.txt. 00020 * 00021 * As a counterpart to the access to the source code and rights to copy, 00022 * modify and redistribute granted by the license, users are provided only 00023 * with a limited warranty and the software's author, the holder of the 00024 * economic rights, and the successive licensors have only limited 00025 * liability. 00026 * 00027 * The fact that you are presently reading this means that you have had 00028 * knowledge of the CeCILL-B license and that you accept its terms. 00029 * ------------------------------------------------------------------------ */ 00030 00031 00032 00038 /**** 00039 * Design and Developpement of BBTK GEditor 00040 * Ricardo A Corredor J <ra.corredor67@uniandes.edu.co> 00041 * RaC - 2010 00042 ****/ 00043 00044 #ifndef __GObjectsMVCFactory_h__ 00045 #define __GObjectsMVCFactory_h__ 00046 00047 //Includes same project 00048 #include "GlobalConstants.h" 00049 00050 #include "GObjectController.h" 00051 #include "GObjectModel.h" 00052 #include "vtkGObjectView.h" 00053 00054 #include "GBlackBoxController.h" 00055 #include "vtkGBlackBoxView.h" 00056 #include "GBlackBoxModel.h" 00057 00058 #include "GPortController.h" 00059 #include "vtkGPortView.h" 00060 #include "GPortModel.h" 00061 00062 #include "GBoxController.h" 00063 #include "vtkGComplexBoxPortView.h" 00064 #include "GComplexBoxPortModel.h" 00065 00066 00067 //Includes creaMaracasVisu 00068 00069 //Includes std 00070 #include <iostream> 00071 00072 //Includes bbtk 00073 #include <bbtkInterpreter.h> 00074 #include <bbtkFactory.h> 00075 #include <bbtkPackage.h> 00076 namespace bbtk 00077 { 00078 00079 class GObjectsMVCFactory 00080 { 00081 00082 public: 00083 00084 //Constructors 00085 GObjectsMVCFactory(); 00086 ~GObjectsMVCFactory(); 00087 00088 //Public methods 00089 00090 // Singleton to access to the Factory 00091 static GObjectsMVCFactory* getInstance(); 00092 static void destroyInstance(); 00093 00094 // Access to the BBTK library to get the descriptor of a box with the package and box names 00095 BlackBoxDescriptor::Pointer getBlackBoxDescriptor(std::string packageName, std::string boxName); 00096 00097 // Creates the MVC of the graphical objects depending on the object type 00098 vtkGObjectView* createGObjectView(int type); 00099 GObjectController* createGObjectController(int type); 00100 GObjectModel* createGObjectModel(int type); 00101 00102 //Public attributes 00103 Interpreter::Pointer _interpreter; 00104 00105 private: 00106 00107 //Private Methods 00108 00109 //Private Attributes 00110 static GObjectsMVCFactory* instance; 00111 00112 00113 protected: 00114 00115 }; 00116 00117 00118 } 00119 // namespace bbtk 00120 #endif 00121