#include <ProjectMessenger.h>
Public Member Functions | |
ProjectMessenger (Goofy *v) | |
~ProjectMessenger () | |
void | SetNewValue (G4UIcommand *command, G4String newValues) |
G4String | GetCurrentValue (G4UIcommand *command) |
Private Attributes | |
Goofy * | rm |
G4UIcommand * | make |
G4UIcommand * | create |
G4UIcommand * | del |
G4UIcommand * | geo |
G4UIcommand * | act |
Definition at line 10 of file ProjectMessenger.h.
ProjectMessenger::ProjectMessenger | ( | Goofy * | v | ) |
Definition at line 42 of file ProjectMessenger.cpp.
References act, create, del, geo, make, rm, and v.
00043 { 00044 rm=v; 00045 00046 make=new G4UIcommand("/Project/make",this); 00047 make->SetGuidance("Builds the specified project"); 00048 G4UIparameter* parameter; 00049 G4bool omitable; 00050 parameter = new G4UIparameter ("Project", 's', omitable = false); 00051 make->SetParameter(parameter); 00052 00053 create=new G4UIcommand("/Project/create",this); 00054 create->SetGuidance("Creates an empty project"); 00055 parameter = new G4UIparameter ("Project", 's', omitable = false); 00056 create->SetParameter(parameter); 00057 00058 del=new G4UIcommand("/Project/delete",this); 00059 del->SetGuidance("Deletes a project"); 00060 parameter = new G4UIparameter ("Project", 's', omitable = false); 00061 del->SetParameter(parameter); 00062 00063 geo=new G4UIcommand("/Project/add/DetectorFacility",this); 00064 geo->SetGuidance("Generates sample code for a detector facility in a project"); 00065 parameter = new G4UIparameter ("Project", 's', omitable = false); 00066 geo->SetParameter(parameter); 00067 00068 G4UIparameter* parameter2; 00069 parameter2 = new G4UIparameter ("DetectorFacilityName", 's', omitable = false); 00070 geo->SetParameter(parameter2); 00071 00072 act=new G4UIcommand("/Project/add/UserAction",this); 00073 act->SetGuidance("Generates sample code for an user action in a project"); 00074 parameter = new G4UIparameter ("Project", 's', omitable = false); 00075 act->SetParameter(parameter); 00076 00077 G4UIparameter* parameter3; 00078 parameter3 = new G4UIparameter ("UserAction Name", 's', omitable = false); 00079 act->SetParameter(parameter3); 00080 }
ProjectMessenger::~ProjectMessenger | ( | ) |
Definition at line 82 of file ProjectMessenger.cpp.
00083 { 00084 // delete make; 00085 // delete create; 00086 // delete del; 00087 // delete geo; 00088 // delete act; 00089 }
G4String ProjectMessenger::GetCurrentValue | ( | G4UIcommand * | command | ) |
Definition at line 171 of file ProjectMessenger.cpp.
References s.
00172 { 00173 G4String s="Undefined"; 00174 return s; 00175 }
void ProjectMessenger::SetNewValue | ( | G4UIcommand * | command, | |
G4String | newValues | |||
) |
Definition at line 91 of file ProjectMessenger.cpp.
References act, create, del, geo, is, make, parseTemplate(), s, Goofy::Shell(), deljobs::string, and boss::where().
00092 { 00093 if (command==make) 00094 { 00095 Goofy::Shell("cd "+newValues+"; gmake"); 00096 } 00097 else if (command==create) 00098 { 00099 Goofy::Shell("mkdir "+newValues); 00100 Goofy::Shell("mkdir "+newValues+"/src"); 00101 Goofy::Shell("mkdir "+newValues+"/include"); 00102 Goofy::Shell("touch "+newValues+"/src/dummy.cc"); 00103 std::cout<<"Looking for "<<std::flush; 00104 if (Goofy::Shell("find $FADS_CURRENT/config -name GNUmakefile_template")==0) 00105 { 00106 std::cout<<" Found! "<<std::endl; 00107 Goofy::Shell("cp $FADS_CURRENT/config/GNUmakefile_template " 00108 +newValues+"/GNUmakefile"); 00109 } 00110 Goofy::Shell("chmod -R 755 "+newValues); 00111 } 00112 else if (command==del) 00113 { 00114 if (Goofy::Shell("find . -name "+newValues)) 00115 Goofy::Shell("rm -rf "+newValues); 00116 } 00117 else if (command==geo) 00118 { 00119 G4String detName,project; 00120 const char* s = newValues; 00121 std::istrstream is ((char*)s); 00122 is>>project>>detName; 00123 00124 if (Goofy::Shell("find . -name "+project)==0) 00125 { 00126 std::string where="$FADS_CURRENT/config/"; 00127 std::string incl=project+"/include/"; 00128 std::string src=project+"/src/"; 00129 Goofy::Shell("cp "+where+"DetectorFacilityTemplate.hh " 00130 +incl); 00131 parseTemplate(incl,"DetectorFacilityTemplate.hh",detName); 00132 Goofy::Shell("mv "+incl+detName+".temp "+incl+ 00133 +detName+"Facility.hh"); 00134 Goofy::Shell("rm -f "+incl+"DetectorFacilityTemplate.hh"); 00135 Goofy::Shell("cp "+where+"DetectorFacilityTemplate.cc " 00136 +src); 00137 parseTemplate(src,"DetectorFacilityTemplate.cc",detName); 00138 Goofy::Shell("mv "+src+detName+".temp "+src+ 00139 +detName+"Facility.cc"); 00140 Goofy::Shell("rm -f "+src+"DetectorFacilityTemplate.cc"); 00141 } 00142 } 00143 else if (command==act) 00144 { 00145 G4String actName,project; 00146 const char* s = newValues; 00147 std::istrstream is ((char*)s); 00148 is>>project>>actName; 00149 00150 if (Goofy::Shell("find . -name "+project)==0) 00151 { 00152 std::string where="$FADS_CURRENT/config/"; 00153 std::string incl=project+"/include/"; 00154 std::string src=project+"/src/"; 00155 Goofy::Shell("cp "+where+"UserActionTemplate.hh " 00156 +incl); 00157 parseTemplate(incl,"UserActionTemplate.hh",actName); 00158 Goofy::Shell("mv "+incl+actName+".temp "+incl+ 00159 +actName+"Action.hh"); 00160 Goofy::Shell("rm -f "+incl+"UserActionTemplate.hh"); 00161 Goofy::Shell("cp "+where+"UserActionTemplate.cc " 00162 +src); 00163 parseTemplate(src,"UserActionTemplate.cc",actName); 00164 Goofy::Shell("mv "+src+actName+".temp "+src+ 00165 +actName+"Action.cc"); 00166 Goofy::Shell("rm -f "+src+"UserActionTemplate.cc"); 00167 } 00168 } 00169 }
G4UIcommand* ProjectMessenger::act [private] |
Definition at line 17 of file ProjectMessenger.h.
Referenced by ProjectMessenger(), and SetNewValue().
G4UIcommand* ProjectMessenger::create [private] |
Definition at line 14 of file ProjectMessenger.h.
Referenced by ProjectMessenger(), and SetNewValue().
G4UIcommand* ProjectMessenger::del [private] |
Definition at line 15 of file ProjectMessenger.h.
Referenced by ProjectMessenger(), and SetNewValue().
G4UIcommand* ProjectMessenger::geo [private] |
Definition at line 16 of file ProjectMessenger.h.
Referenced by ProjectMessenger(), and SetNewValue().
G4UIcommand* ProjectMessenger::make [private] |
Definition at line 13 of file ProjectMessenger.h.
Referenced by ProjectMessenger(), and SetNewValue().
Goofy* ProjectMessenger::rm [private] |