copasi API
0.1
|
00001 // Begin CVS Header 00002 // $Source: /fs/turing/cvs/copasi_dev/copasi/UI/listviews.h,v $ 00003 // $Revision: 1.168.2.4 $ 00004 // $Name: Build-33 $ 00005 // $Author: shoops $ 00006 // $Date: 2010/09/29 15:51:31 $ 00007 // End CVS Header 00008 00009 // Copyright (C) 2010 by Pedro Mendes, Virginia Tech Intellectual 00010 // Properties, Inc., University of Heidelberg, and The University 00011 // of Manchester. 00012 // All rights reserved. 00013 00014 // Copyright (C) 2008 by Pedro Mendes, Virginia Tech Intellectual 00015 // Properties, Inc., EML Research, gGmbH, University of Heidelberg, 00016 // and The University of Manchester. 00017 // All rights reserved. 00018 00019 // Copyright (C) 2001 - 2007 by Pedro Mendes, Virginia Tech Intellectual 00020 // Properties, Inc. and EML Research, gGmbH. 00021 // All rights reserved. 00022 00023 /**************************************************************************** 00024 ** $ CopasiUI/listviews.h Modified on : 8th March, 2002 00025 ** $ Author : Ankur Gupta 00026 *****************************************************************************/ 00027 #ifndef LISTVIEWS_H 00028 #define LISTVIEWS_H 00029 00030 #include <set> 00031 #include <qsplitter.h> 00032 #include <QTreeView> 00033 00034 #include "copasi.h" 00035 #include "UI/Tree.h" 00036 00037 class CTabWidget; 00038 00039 class Refresh; 00040 class CCopasiObject; 00041 00042 class DataModelGUI; 00043 class CQCompartment; 00044 class CQCompartmentsWidget; 00045 class CQDifferentialEquations; 00046 class CQEventsWidget; 00047 class CQEventWidget1; 00048 class FunctionWidget1; 00049 class CQFunctionsWidget; 00050 class CMathModel; 00051 class CQSpeciesDetail; 00052 class CQSpeciesWidget; 00053 class CQEFMWidget; 00054 class CQEFMResultWidget; 00055 class CQGlobalQuantitiesWidget; 00056 class CQMoietiesTaskResult; 00057 class CQMoietiesTaskWidget; 00058 class ParametersWidget; 00059 class ReactionsWidget1; 00060 class CQReactionsWidget; 00061 class SteadyStateWidget; 00062 class ScanWidget; 00063 class SensitivitiesWidget; 00064 class CQSensResultWidget; 00065 class CQSteadyStateResult; 00066 class CQTrajectoryWidget; 00067 class CQReportsWidget; 00068 00069 #ifdef COPASI_TSS 00070 class TSSWidget; 00071 #endif // COPASI_TSS 00072 00073 class CQTSSAWidget; 00074 class CQTSSAResultWidget; 00075 class CQTSSAResultSubWidget; 00076 00077 #ifdef COPASI_NONLIN_DYN 00078 class CQCrossSectionTaskWidget; 00079 #endif 00080 00081 #ifdef COPASI_DEBUG 00082 class CQUpdatesWidget; 00083 #endif 00084 00085 class CQOptimizationWidget; 00086 class CQOptimizationResult; 00087 class CopasiWidget; 00088 class PlotSubwidget; 00089 class CQPlotsWidget; 00090 class CQSplashWidget; 00091 class TimeSeriesWidget; 00092 class CQFittingWidget; 00093 class CQFittingResult; 00094 class CQMCAWidget; 00095 class CMCAResultWidget; 00096 class CQReportDefinition; 00097 class CQLyapWidget; 00098 class CQLyapResultWidget; 00099 class CQModelValue; 00100 class CQMathMatrixWidget; 00101 class CQLayoutsWidget; 00102 00103 //******************************************************************************** 00104 00105 class ListViews : public QSplitter 00106 { 00107 Q_OBJECT 00108 00109 friend class CopasiUI3Window; 00110 00111 public: 00112 ListViews(QWidget *parent = 0, const char *name = 0); 00113 ~ListViews(); 00114 00115 #ifdef DELETE 00116 #undef DELETE 00117 #endif 00118 // CHANGE does not include RENAME 00119 enum Action {CHANGE = 0, ADD, DELETE, RENAME}; 00120 enum ObjectType {METABOLITE = 0 00121 , COMPARTMENT 00122 , REACTION 00123 , FUNCTION 00124 , MODEL 00125 , STATE 00126 , REPORT 00127 , PLOT 00128 , MODELVALUE 00129 , EVENT 00130 , MIRIAM 00131 , LAYOUT 00132 }; 00133 00134 void setDataModel(DataModelGUI* pDM); 00135 DataModelGUI* getDataModel() {return mpDataModelGUI;}; 00136 void setFramework(int framework); 00137 00138 void updateMIRIAMResourceContents(); 00139 void commit(); 00140 00141 void switchToOtherWidget(C_INT32 id, const std::string & key); 00142 00143 void storeCurrentItem(); 00144 void restoreCurrentItem(); 00145 int getCurrentItemId(); 00146 CopasiWidget* findWidgetFromId(const C_INT32 & id) const; 00147 00148 // return current widget - added 02.07.08 00149 CopasiWidget* getCurrentWidget(); 00150 00151 //TODO these are convenience methods used by SliderDialog. They should be 00152 //replaced by something more generic when the listviews is updated for QT4 00153 CQTrajectoryWidget* getTrajectoryWidget(); 00154 SteadyStateWidget* getSteadyStateWidget(); 00155 ScanWidget* getScanWidget(); 00156 CQMCAWidget* getMCAWidget(); 00157 00158 private: 00159 CopasiWidget* findWidgetFromIndex(const QModelIndex & index) const; 00160 00161 void ConstructNodeWidgets(); 00162 void buildExpandedMap(QMap<int, bool> &isExpandedMap, const IndexedNode *startNode); 00163 00164 private slots: 00165 void slotFolderChanged(const QModelIndex & index); 00166 void slotUpdateCompleteView(); 00167 bool slotNotify(ListViews::ObjectType objectType, ListViews::Action action, const std::string & key = ""); 00168 00169 private: 00170 00171 DataModelGUI* mpDataModelGUI; 00172 00173 CMathModel *mpMathModel; 00174 CopasiWidget* currentWidget; 00175 std::string lastKey; 00176 00177 std::string mSaveObjectKey; 00178 size_t mSaveFolderID; 00179 00180 bool updateCurrentWidget(ObjectType objectType, Action action, const std::string & key = ""); 00181 00182 void notifyChildWidgets(ObjectType objectType, 00183 Action action, 00184 const std::string & key); 00185 00186 00187 //the widgets 00188 QTreeView *mpTreeView; 00189 00190 CMCAResultWidget* mpCMCAResultWidget; 00191 CQMCAWidget* mpCQMCAWidget; 00192 CQCompartmentsWidget *mpCompartmentsWidget; 00193 CTabWidget *compartmentsWidget1; 00194 CQSplashWidget *defaultWidget; 00195 CQDifferentialEquations *differentialEquations; 00196 CQEventsWidget *eventsWidget; 00197 CTabWidget *eventWidget1; 00198 CQFunctionsWidget *mpFunctionsWidget; 00199 CTabWidget *functionWidget1; 00200 CQLyapWidget *lyapWidget; 00201 CQLyapResultWidget *lyapResultWidget; 00202 CQSpeciesWidget *mpSpeciesWidget; 00203 CTabWidget *metabolitesWidget1; 00204 CTabWidget *modelWidget; 00205 CQGlobalQuantitiesWidget *mpGlobalQuantitiesWidget; 00206 CTabWidget *mpModelValueWidget; 00207 CQEFMWidget *mpEFMWidget; 00208 CQEFMResultWidget *mpEFMResultWidget; 00209 CQMoietiesTaskResult *mpMoietiesTaskResult; 00210 CQMoietiesTaskWidget *mpMoietiesTaskWidget; 00211 CQOptimizationWidget *optimizationWidget; 00212 CQOptimizationResult *optResultWidget; 00213 CQFittingWidget *paramFittingWidget; 00214 CQFittingResult *mpFittingResultWidget; 00215 ParametersWidget *parametersWidget; 00216 CQPlotsWidget *mpPlotsWidget; 00217 PlotSubwidget *mpPlotSubwidget; 00218 CQReactionsWidget *mpReactionsWidget; 00219 CTabWidget *reactionsWidget1; 00220 ScanWidget *scanWidget; 00221 SensitivitiesWidget *sensWidget; 00222 CQSensResultWidget *sensResultWidget; 00223 CQSteadyStateResult *stateWidget; 00224 SteadyStateWidget *steadystateWidget; 00225 CQReportsWidget *mpReportsWidget; 00226 CQReportDefinition *tableDefinition1; 00227 00228 #ifdef COPASI_TSS 00229 TSSWidget *tssWidget; 00230 #endif // COPASI_TSS 00231 00232 TimeSeriesWidget *timeSeriesWidget; 00233 CQTrajectoryWidget *trajectoryWidget; 00234 CQTSSAWidget *tssaWidget; 00235 CQTSSAResultWidget *tssaResultWidget; 00236 00237 #ifdef COPASI_NONLIN_DYN 00238 CQCrossSectionTaskWidget *crossSectionTaskWidget; 00239 #endif 00240 00241 #ifdef COPASI_DEBUG 00242 CQUpdatesWidget *mpUpdatesWidget; 00243 #endif // COPASI_DEBUG 00244 00245 CQLayoutsWidget * mpLayoutsWidget; 00246 CQMathMatrixWidget * mpMathMatrixWidget; 00247 }; 00248 00249 #endif