1 /*=========================================================================
7 =========================================================================*/
9 /* ---------------------------------------------------------------------
11 * Copyright (c) CREATIS-LRMN (Centre de Recherche en Imagerie Medicale)
12 * Authors : Eduardo Davila, Laurent Guigues, Jean-Pierre Roux
14 * This software is governed by the CeCILL-B license under French law and
15 * abiding by the rules of distribution of free software. You can use,
16 * modify and/ or redistribute the software under the terms of the CeCILL-B
17 * license as circulated by CEA, CNRS and INRIA at the following URL
18 * http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
19 * or in the file LICENSE.txt.
21 * As a counterpart to the access to the source code and rights to copy,
22 * modify and redistribute granted by the license, users are provided only
23 * with a limited warranty and the software's author, the holder of the
24 * economic rights, and the successive licensors have only limited
27 * The fact that you are presently reading this means that you have had
28 * knowledge of the CeCILL-B license and that you accept its terms.
29 * ------------------------------------------------------------------------ */
33 * \brief Class bbtk::GObjectsMVCFactory
37 #include "GObjectsMVCFactory.h"
43 //=========================================================================
45 GObjectsMVCFactory* GObjectsMVCFactory:: instance = NULL;
46 GObjectsMVCFactory::GObjectsMVCFactory()
50 //=========================================================================
51 GObjectsMVCFactory::~GObjectsMVCFactory()
53 GObjectsMVCFactory::destroyInstance();
55 //=========================================================================
58 //=========================================================================
59 GObjectsMVCFactory* GObjectsMVCFactory :: getInstance()
62 instance = new GObjectsMVCFactory();
67 //=========================================================================
69 void GObjectsMVCFactory :: destroyInstance()
76 //=========================================================================
78 vtkGObjectView* GObjectsMVCFactory :: createGObjectView(int type)
80 vtkGObjectView* view = NULL;
81 if (type == GBLACKBOX)
83 view = new vtkGBlackBoxView();
85 else if(type == GPORT)
87 view = new vtkGPortView();
89 else if(type == GCOMPLEXINPUTPORT || type == GCOMPLEXOUTPUTPORT)
91 view = new vtkGComplexBoxPortView();
96 //=========================================================================
98 GObjectController* GObjectsMVCFactory :: createGObjectController(int type)
100 GObjectController *controller = NULL;
101 if (type == GBLACKBOX)
103 controller = new GBlackBoxController();
105 else if(type == GPORT)
107 controller = new GPortController();
109 else if(type == GCOMPLEXINPUTPORT || type == GCOMPLEXOUTPUTPORT)
111 controller = new GBoxController();
116 //=========================================================================
118 GObjectModel* GObjectsMVCFactory :: createGObjectModel(int type)
120 GObjectModel *model = NULL;
121 if (type == GBLACKBOX)
123 model = new GBlackBoxModel();
125 else if(type == GPORT)
127 model = new GPortModel();
129 else if(type == GCOMPLEXINPUTPORT || type == GCOMPLEXOUTPUTPORT)
131 model = new GComplexBoxPortModel();
134 model->setGObjectType(type);
139 //=========================================================================
142 } // EO namespace bbtk