source: trunk/source/interfaces/html/G4UIGAG_8cc-source.html@ 811

Last change on this file since 811 was 571, checked in by garnier, 18 years ago

r581@mac-90108: laurentgarnier | 2007-08-17 17:30:26 +0200
deplacement de frame

  • Property svn:mime-type set to text/html
File size: 70.3 KB
Line 
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
3<title>G4UIGAG.cc Source File</title>
4<link href="doxygen.css" rel="stylesheet" type="text/css">
5</head><body>
6<!-- Generated by Doxygen 1.3.4 -->
7<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a></div>
8<h1>G4UIGAG.cc</h1><a href="G4UIGAG_8cc.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <span class="comment">//</span>
900002 <span class="comment">// ********************************************************************</span>
1000003 <span class="comment">// * License and Disclaimer *</span>
1100004 <span class="comment">// * *</span>
1200005 <span class="comment">// * The Geant4 software is copyright of the Copyright Holders of *</span>
1300006 <span class="comment">// * the Geant4 Collaboration. It is provided under the terms and *</span>
1400007 <span class="comment">// * conditions of the Geant4 Software License, included in the file *</span>
1500008 <span class="comment">// * LICENSE and available at http://cern.ch/geant4/license . These *</span>
1600009 <span class="comment">// * include a list of copyright holders. *</span>
1700010 <span class="comment">// * *</span>
1800011 <span class="comment">// * Neither the authors of this software system, nor their employing *</span>
1900012 <span class="comment">// * institutes,nor the agencies providing financial support for this *</span>
2000013 <span class="comment">// * work make any representation or warranty, express or implied, *</span>
2100014 <span class="comment">// * regarding this software system or assume any liability for its *</span>
2200015 <span class="comment">// * use. Please see the license in the file LICENSE and URL above *</span>
2300016 <span class="comment">// * for the full disclaimer and the limitation of liability. *</span>
2400017 <span class="comment">// * *</span>
2500018 <span class="comment">// * This code implementation is the result of the scientific and *</span>
2600019 <span class="comment">// * technical work of the GEANT4 collaboration. *</span>
2700020 <span class="comment">// * By using, copying, modifying or distributing the software (or *</span>
2800021 <span class="comment">// * any work based on the software) you agree to acknowledge its *</span>
2900022 <span class="comment">// * use in resulting scientific publications, and indicate your *</span>
3000023 <span class="comment">// * acceptance of all terms of the Geant4 Software license. *</span>
3100024 <span class="comment">// ********************************************************************</span>
3200025 <span class="comment">//</span>
3300026 <span class="comment">//</span>
3400027 <span class="comment">// $Id: G4UIGAG.cc,v 1.18 2006/06/29 19:09:23 gunter Exp $</span>
3500028 <span class="comment">// GEANT4 tag $Name: geant4-08-01-patch-01 $</span>
3600029 <span class="comment">//</span>
3700030 <span class="comment">// G4UIGAG.cc</span>
3800031 <span class="comment">// 18.Feb.98 M.Nagamatu and T.Kodama created G4UIGAG from G4UIterminal</span>
3900032
4000033 <span class="preprocessor">#include "<a class="code" href="G4UIGAG_8hh.html">G4UIGAG.hh</a>"</span>
4100034 <span class="preprocessor">#include "G4StateManager.hh"</span>
4200035 <span class="preprocessor">#include "G4UIcommandTree.hh"</span>
4300036 <span class="preprocessor">#include "G4UIcommand.hh"</span>
4400037 <span class="preprocessor">#include "G4UIcommandStatus.hh"</span>
4500038 <span class="preprocessor">#include &lt;sstream&gt;</span>
4600039
47<a name="l00040"></a><a class="code" href="classG4UIGAG.html#a0">00040</a> <a class="code" href="classG4UIGAG.html#a0">G4UIGAG::G4UIGAG</a>()<span class="comment">//: TVersion("T1.0a"), JVersion("J1.0a")</span>
4800041 {
4900042 <a class="code" href="classG4UIGAG.html#r7">TVersion</a>=<span class="stringliteral">"T1.0a"</span>; <a class="code" href="classG4UIGAG.html#r6">JVersion</a>=<span class="stringliteral">"J1.0a"</span>;
5000043 <span class="comment">//G4cout &lt;&lt; "G4UIGAG: Apr15,98." &lt;&lt; G4endl;</span>
5100044 <a class="code" href="classG4UIGAG.html#r0">prefix</a> = <span class="stringliteral">"/"</span>;
5200045 <a class="code" href="classG4UIGAG.html#r1">UI</a> = G4UImanager::GetUIpointer();
5300046 <a class="code" href="classG4UIGAG.html#r1">UI</a>-&gt;SetSession(<span class="keyword">this</span>);
5400047 <a class="code" href="classG4UIGAG.html#r1">UI</a>-&gt;SetCoutDestination(<span class="keyword">this</span>);
5500048 G4StateManager * statM = G4StateManager::GetStateManager();
5600049 <a class="code" href="classG4UIGAG.html#r2">promptCharacter</a> = statM-&gt;GetStateString(statM-&gt;GetCurrentState());
5700050 <a class="code" href="classG4UIGAG.html#r5">uiMode</a> = <a class="code" href="G4UIGAG_8hh.html#a7a0">terminal_mode</a>; <span class="comment">// GAG</span>
5800051 <a class="code" href="classG4UIGAG.html#r3">iExit</a> = <span class="keyword">false</span>;
5900052 <a class="code" href="classG4UIGAG.html#r4">iCont</a> = <span class="keyword">false</span>;
6000053 <span class="comment">// -- Initialize Notify routines begin</span>
6100054 G4UIcommandTree * tree = <a class="code" href="classG4UIGAG.html#r1">UI</a>-&gt;GetTree();
6200055 <a class="code" href="classG4UIGAG.html#d23">GetNewTreeStructure</a>(tree,0);
6300056 <a class="code" href="classG4UIGAG.html#d24">GetNewTreeValues</a>(tree,0);
6400057 <a class="code" href="classG4UIGAG.html#r8">previousTreeCommands</a> = <a class="code" href="classG4UIGAG.html#r9">newTreeCommands</a>;
6500058 <a class="code" href="classG4UIGAG.html#r10">previousTreeParams</a> = <a class="code" href="classG4UIGAG.html#r11">newTreeParams</a>;
6600059 <a class="code" href="classG4UIGAG.html#r12">previousTreePCP</a> = <a class="code" href="classG4UIGAG.html#r13">newTreePCP</a>;
6700060 <span class="comment">// -- end</span>
6800061 }
6900062
70<a name="l00063"></a><a class="code" href="classG4UIGAG.html#a1">00063</a> <a class="code" href="classG4UIGAG.html#a1">G4UIGAG::~G4UIGAG</a>()
7100064 {
7200065 <span class="keywordflow">if</span>( G4UImanager::GetUIpointer() != 0)
7300066 {
7400067 <a class="code" href="classG4UIGAG.html#r1">UI</a>-&gt;SetSession(NULL);
7500068 <a class="code" href="classG4UIGAG.html#r1">UI</a>-&gt;SetCoutDestination(NULL);
7600069 <span class="comment">// G4cout &lt;&lt; "GAG session deleted" &lt;&lt; G4endl;</span>
7700070 }
7800071 }
7900072
80<a name="l00073"></a><a class="code" href="classG4UIGAG.html#a2">00073</a> G4UIsession * <a class="code" href="classG4UIGAG.html#a2">G4UIGAG::SessionStart</a>()
8100074 {
8200075 <a class="code" href="classG4UIGAG.html#r3">iExit</a> = <span class="keyword">true</span>;
8300076 G4StateManager * statM = G4StateManager::GetStateManager();
8400077 <a class="code" href="classG4UIGAG.html#r2">promptCharacter</a> = statM-&gt;GetStateString(statM-&gt;GetCurrentState());
8500078 G4String newCommand = <a class="code" href="classG4UIGAG.html#a8">GetCommand</a>();
8600079 <span class="keywordflow">while</span>( <a class="code" href="classG4UIGAG.html#r3">iExit</a> )
8700080 {
8800081 <a class="code" href="classG4UIGAG.html#d0">ExecuteCommand</a>(newCommand);
8900082 <a class="code" href="classG4UIGAG.html#r2">promptCharacter</a> = statM-&gt;GetStateString(statM-&gt;GetCurrentState());
9000083 newCommand = <a class="code" href="classG4UIGAG.html#a8">GetCommand</a>();
9100084 }
9200085 <span class="keywordflow">return</span> NULL;
9300086 }
9400087
95<a name="l00088"></a><a class="code" href="classG4UIGAG.html#a3">00088</a> <span class="keywordtype">void</span> <a class="code" href="classG4UIGAG.html#a3">G4UIGAG::PauseSessionStart</a>(G4String msg)
9600089 {
9700090 <a class="code" href="classG4UIGAG.html#r2">promptCharacter</a> = msg;
9800091 G4cout &lt;&lt; <span class="stringliteral">"@@PROMPT \""</span> &lt;&lt; <a class="code" href="classG4UIGAG.html#r2">promptCharacter</a> &lt;&lt; <span class="stringliteral">"\""</span> &lt;&lt; G4endl;
9900092 <a class="code" href="classG4UIGAG.html#r4">iCont</a> = <span class="keyword">true</span>;
10000093 G4String newCommand = <a class="code" href="classG4UIGAG.html#a8">GetCommand</a>();
10100094 <span class="keywordflow">while</span>( <a class="code" href="classG4UIGAG.html#r4">iCont</a> )
10200095 {
10300096 <a class="code" href="classG4UIGAG.html#d0">ExecuteCommand</a>(newCommand);
10400097 newCommand = <a class="code" href="classG4UIGAG.html#a8">GetCommand</a>();
10500098 }
10600099 }
10700100
108<a name="l00101"></a><a class="code" href="classG4UIGAG.html#d0">00101</a> <span class="keywordtype">void</span> <a class="code" href="classG4UIGAG.html#d0">G4UIGAG::ExecuteCommand</a>(G4String aCommand)
10900102 {
11000103 G4UIcommandTree * tree = <a class="code" href="classG4UIGAG.html#r1">UI</a>-&gt;GetTree();
11100104 <span class="keywordflow">if</span>(aCommand.length()&lt;2) <span class="keywordflow">return</span>;
11200105 G4int returnVal = <a class="code" href="classG4UIGAG.html#r1">UI</a>-&gt;ApplyCommand(aCommand);
11300106 G4int paramIndex = returnVal % 100;
11400107 G4int commandStatus = returnVal - paramIndex;
11500108
11600109 <a class="code" href="classG4UIGAG.html#d21">UpdateState</a>();
11700110 <span class="keywordflow">if</span> ( <a class="code" href="classG4UIGAG.html#r5">uiMode</a> == <a class="code" href="G4UIGAG_8hh.html#a7a0">terminal_mode</a>){
11800111 <span class="keywordflow">switch</span>(commandStatus) {
11900112 <span class="keywordflow">case</span> fCommandSucceeded:
12000113 <span class="keywordflow">break</span>;
12100114 <span class="keywordflow">case</span> fCommandNotFound:
12200115 <span class="comment">// G4cerr &lt;&lt; "command not found" &lt;&lt; G4endl;</span>
12300116 G4cerr &lt;&lt; <span class="stringliteral">"command &lt;"</span> &lt;&lt; <a class="code" href="classG4UIGAG.html#r1">UI</a>-&gt;SolveAlias(aCommand) &lt;&lt; <span class="stringliteral">"&gt; not found"</span> &lt;&lt; G4endl;
12400117 <span class="keywordflow">break</span>;
12500118 <span class="keywordflow">case</span> fIllegalApplicationState:
12600119 G4cerr &lt;&lt; <span class="stringliteral">"illegal application state -- command refused"</span> &lt;&lt; G4endl;
12700120 <span class="keywordflow">break</span>;
12800121 <span class="keywordflow">case</span> fParameterOutOfRange:
12900122 <span class="keywordflow">case</span> fParameterUnreadable:
13000123 G4cerr &lt;&lt; <span class="stringliteral">"Parameter is wrong type and/or is not omittable (index "</span> &lt;&lt; paramIndex &lt;&lt; <span class="stringliteral">")"</span> &lt;&lt; G4endl;
13100124 <span class="keywordflow">break</span>;
13200125 <span class="keywordflow">case</span> fParameterOutOfCandidates:
13300126 G4cerr &lt;&lt; <span class="stringliteral">"Parameter is out of candidate list (index "</span> &lt;&lt; paramIndex &lt;&lt; <span class="stringliteral">")"</span> &lt;&lt; G4endl;
13400127 <span class="comment">// G4cerr &lt;&lt; "Candidates : " &lt;&lt; cmd-&gt;GetParameter(paramIndex)-&gt;GetParameterCandidates() &lt;&lt; G4endl;</span>
13500128 <span class="keywordflow">break</span>;
13600129 <span class="keywordflow">case</span> fAliasNotFound:
13700130 <span class="keywordflow">default</span>:
13800131 G4cerr &lt;&lt; <span class="stringliteral">"command refused ("</span> &lt;&lt; commandStatus &lt;&lt; <span class="stringliteral">")"</span> &lt;&lt; G4endl;
13900132 }
14000133 }<span class="keywordflow">else</span>{
14100134 <span class="keywordflow">switch</span>(commandStatus) {
14200135 <span class="keywordflow">case</span> fCommandSucceeded:
14300136 {
14400137 <a class="code" href="classG4UIGAG.html#d23">GetNewTreeStructure</a>(tree,0);
14500138 <a class="code" href="classG4UIGAG.html#d24">GetNewTreeValues</a>(tree,0);
14600139 <span class="keywordflow">if</span> (<a class="code" href="classG4UIGAG.html#d20">CommandUpdated</a>()) {
14700140 <a class="code" href="classG4UIGAG.html#d18">NotifyCommandUpdate</a>();
14800141 } <span class="keywordflow">else</span> {
14900142 <a class="code" href="classG4UIGAG.html#d22">UpdateParamVal</a>(); <span class="comment">// if param is updated, call notifyPara...</span>
15000143 }
15100144 <a class="code" href="classG4UIGAG.html#r8">previousTreeCommands</a> = <a class="code" href="classG4UIGAG.html#r9">newTreeCommands</a>;
15200145 <a class="code" href="classG4UIGAG.html#r10">previousTreeParams</a> = <a class="code" href="classG4UIGAG.html#r11">newTreeParams</a>;
15300146 <a class="code" href="classG4UIGAG.html#r12">previousTreePCP</a> = <a class="code" href="classG4UIGAG.html#r13">newTreePCP</a>;
15400147 }
15500148 <span class="keywordflow">break</span>;
15600149 <span class="keywordflow">case</span> fCommandNotFound:
15700150 G4cout &lt;&lt; <span class="stringliteral">"@@ErrResult \" &lt;"</span> &lt;&lt; <a class="code" href="classG4UIGAG.html#r1">UI</a>-&gt;SolveAlias(aCommand) &lt;&lt; <span class="stringliteral">"&gt; command not found.\""</span> &lt;&lt; G4endl;
15800151 <span class="keywordflow">break</span>;
15900152 <span class="keywordflow">case</span> fIllegalApplicationState:
16000153 G4cout &lt;&lt; <span class="stringliteral">"@@ErrResult \"Illegal application state -- command refused\""</span> &lt;&lt; G4endl;
16100154 <span class="keywordflow">break</span>;
16200155 <span class="keywordflow">case</span> fParameterOutOfRange:
16300156 G4cout &lt;&lt; <span class="stringliteral">"@@ErrResult \"Parameter Out of Range.\""</span> &lt;&lt; G4endl;
16400157 <span class="keywordflow">break</span>;
16500158 <span class="keywordflow">case</span> fParameterUnreadable:
16600159 G4cout &lt;&lt; <span class="stringliteral">"@@ErrResult \"Parameter is wrong type and/or is not omittable.\""</span> &lt;&lt; G4endl;
16700160 <span class="keywordflow">break</span>;
16800161 <span class="keywordflow">case</span> fParameterOutOfCandidates:
16900162 <span class="comment">// G4cout &lt;&lt; "@@ErrResult \"Parameter Out of Candidates. Candidates : " &lt;&lt; cmd-&gt;GetParameter(paramIndex)-&gt;GetParameterCandidates()&lt;&lt; "\"" &lt;&lt; G4endl;</span>
17000163 G4cout &lt;&lt; <span class="stringliteral">"@@ErrResult \"Parameter Out of Candidates.\""</span> &lt;&lt; G4endl;
17100164 <span class="keywordflow">break</span>;
17200165 <span class="keywordflow">case</span> fAliasNotFound:
17300166 <span class="keywordflow">default</span>:
17400167 G4cout &lt;&lt; <span class="stringliteral">"@@ErrResult \"command refused ("</span> &lt;&lt; commandStatus &lt;&lt; <span class="stringliteral">")\""</span> &lt;&lt; G4endl;
17500168 }
17600169 }
17700170 }
17800171
17900172
180<a name="l00173"></a><a class="code" href="classG4UIGAG.html#a4">00173</a> G4int <a class="code" href="classG4UIGAG.html#a4">G4UIGAG::ReceiveG4cout</a>(G4String coutString)
18100174 {
18200175 std::cout &lt;&lt; coutString &lt;&lt; std::flush;
18300176 <span class="keywordflow">return</span> 0;
18400177 }
18500178
186<a name="l00179"></a><a class="code" href="classG4UIGAG.html#a5">00179</a> G4int <a class="code" href="classG4UIGAG.html#a5">G4UIGAG::ReceiveG4cerr</a>(G4String cerrString)
18700180 {
18800181 std::cerr &lt;&lt; cerrString &lt;&lt; std::flush;
18900182 <span class="keywordflow">return</span> 0;
19000183 }
19100184
192<a name="l00185"></a><a class="code" href="classG4UIGAG.html#a7">00185</a> <span class="keywordtype">void</span> <a class="code" href="classG4UIGAG.html#a7">G4UIGAG::Prompt</a>(G4String aPrompt)
19300186 {
19400187 <a class="code" href="classG4UIGAG.html#r2">promptCharacter</a> = aPrompt;
19500188 }
19600189
197<a name="l00190"></a><a class="code" href="classG4UIGAG.html#a8">00190</a> G4String <a class="code" href="classG4UIGAG.html#a8">G4UIGAG::GetCommand</a>()
19800191 {
19900192 G4String newCommand;
20000193 G4String nullString;
20100194 <span class="keywordflow">while</span>( 1 )
20200195 {
20300196 G4UIcommandTree* tree = <a class="code" href="classG4UIGAG.html#r1">UI</a>-&gt;GetTree();
20400197 <span class="keywordflow">if</span> ( <a class="code" href="classG4UIGAG.html#r5">uiMode</a> != <a class="code" href="G4UIGAG_8hh.html#a7a0">terminal_mode</a> ){
20500198 G4cout &lt;&lt; <span class="stringliteral">"@@PROMPT \""</span> &lt;&lt; <a class="code" href="classG4UIGAG.html#r2">promptCharacter</a> &lt;&lt; <span class="stringliteral">"\""</span> &lt;&lt; G4endl;
20600199 }
20700200 <span class="keywordflow">if</span> ( <a class="code" href="classG4UIGAG.html#r5">uiMode</a> != <a class="code" href="G4UIGAG_8hh.html#a7a1">java_mode</a> ){
20800201 G4cout &lt;&lt; <a class="code" href="classG4UIGAG.html#r2">promptCharacter</a> &lt;&lt; <span class="stringliteral">"&gt; "</span> &lt;&lt; std::flush;
20900202 }<span class="keywordflow">else</span>{
21000203 G4cout &lt;&lt; <span class="stringliteral">"@@Ready"</span> &lt;&lt; G4endl;
21100204 }
21200205 newCommand.readLine( G4cin, FALSE );
21300206 <span class="keywordflow">if</span> (!G4cin.good()) { G4cin.clear(); newCommand = nullString; <a class="code" href="classG4UIGAG.html#r3">iExit</a>=<span class="keyword">false</span>;<span class="keywordflow">break</span>;}
21400207
21500208 newCommand = newCommand.strip(G4String::leading);
21600209 <span class="keywordflow">if</span>( newCommand.length() &lt; 1) { <span class="keywordflow">break</span>; }
21700210
21800211 <span class="keywordflow">while</span>( newCommand(newCommand.length()-1) == <span class="charliteral">'_'</span> )
21900212 {
22000213 G4String newLine;
22100214 newCommand.remove(newCommand.length()-1);
22200215 newLine.readLine( G4cin );
22300216 <span class="keywordflow">if</span> (!G4cin.good()) { G4cin.clear(); newCommand = nullString; <a class="code" href="classG4UIGAG.html#r3">iExit</a>=<span class="keyword">false</span>;<span class="keywordflow">break</span>;}
22400217 newCommand.append(newLine);
22500218 }
22600219
22700220 G4String nC = newCommand.strip(G4String::leading);
22800221 <span class="keywordflow">if</span>( nC.length() &lt; 1) { <span class="keywordflow">break</span>; }
22900222
23000223 <span class="comment">// -------------------- nC.toUpper();</span>
23100224 <span class="keywordflow">if</span>( nC == <span class="stringliteral">"@@GAGmodeJAVA"</span> ) {
23200225 <a class="code" href="classG4UIGAG.html#r5">uiMode</a> = <a class="code" href="G4UIGAG_8hh.html#a7a1">java_mode</a>;
23300226 G4cout &lt;&lt; G4endl &lt;&lt; <span class="stringliteral">"@@Version "</span> &lt;&lt; <a class="code" href="classG4UIGAG.html#r6">JVersion</a> &lt;&lt; G4endl;
23400227 <a class="code" href="classG4UIGAG.html#d8">SendCommandProperties</a>(tree);
23500228 <a class="code" href="classG4UIGAG.html#d17">NotifyStateChange</a>();
23600229 }
23700230 <span class="keywordflow">else</span> <span class="keywordflow">if</span>( nC == <span class="stringliteral">"@@GAGmodeTcl"</span> ) {
23800231 <a class="code" href="classG4UIGAG.html#r5">uiMode</a> = <a class="code" href="G4UIGAG_8hh.html#a7a2">tcl_mode</a>;
23900232 G4cout &lt;&lt; G4endl &lt;&lt; <span class="stringliteral">"@@Version "</span> &lt;&lt; <a class="code" href="classG4UIGAG.html#r7">TVersion</a> &lt;&lt; G4endl;
24000233 <a class="code" href="classG4UIGAG.html#d8">SendCommandProperties</a>(tree);
24100234 <a class="code" href="classG4UIGAG.html#d17">NotifyStateChange</a>();
24200235 }
24300236 <span class="keywordflow">else</span> <span class="keywordflow">if</span>( nC(0) == <span class="charliteral">'#'</span> )
24400237 { G4cout &lt;&lt; nC &lt;&lt; G4endl; }
24500238
24600239 <span class="keywordflow">else</span> <span class="keywordflow">if</span>( nC == <span class="stringliteral">"ls"</span> || nC(0,3) == <span class="stringliteral">"ls "</span> )
24700240 { <a class="code" href="classG4UIGAG.html#d2">ListDirectory</a>( nC ); }
24800241 <span class="keywordflow">else</span> <span class="keywordflow">if</span>( nC == <span class="stringliteral">"pwd"</span> )
24900242 { G4cout &lt;&lt; <span class="stringliteral">"Current Working Directory : "</span> &lt;&lt; <a class="code" href="classG4UIGAG.html#r0">prefix</a> &lt;&lt; G4endl; }
25000243 <span class="keywordflow">else</span> <span class="keywordflow">if</span>( nC(0,2) == <span class="stringliteral">"cd"</span> || nC(0,3) == <span class="stringliteral">"cd "</span> )
25100244 { <a class="code" href="classG4UIGAG.html#d1">ChangeDirectory</a>( nC ); }
25200245 <span class="keywordflow">else</span> <span class="keywordflow">if</span>( nC == <span class="stringliteral">"help"</span> || nC(0,5) == <span class="stringliteral">"help "</span>)
25300246 { <a class="code" href="classG4UIGAG.html#d3">TerminalHelp</a>( nC ); }
25400247 <span class="keywordflow">else</span> <span class="keywordflow">if</span>( nC(0) == <span class="charliteral">'?'</span> )
25500248 { <a class="code" href="classG4UIGAG.html#d6">ShowCurrent</a>( nC ); }
25600249 <span class="keywordflow">else</span> <span class="keywordflow">if</span>( nC(0,4) == <span class="stringliteral">"hist"</span> || nC == <span class="stringliteral">"history"</span>)
25700250 {
25800251 G4int nh = <a class="code" href="classG4UIGAG.html#r1">UI</a>-&gt;GetNumberOfHistory();
25900252 <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i=0;i&lt;nh;i++)
26000253 { G4cout &lt;&lt; i &lt;&lt; <span class="stringliteral">": "</span> &lt;&lt; <a class="code" href="classG4UIGAG.html#r1">UI</a>-&gt;GetPreviousCommand(i) &lt;&lt; G4endl; }
26100254 }
26200255 <span class="keywordflow">else</span> <span class="keywordflow">if</span>( nC(0) == <span class="charliteral">'!'</span> )
26300256 {
26400257 G4String ss = nC(1,nC.length()-1);
26500258 G4int vl;
26600259 <span class="keyword">const</span> <span class="keywordtype">char</span>* tt = ss;
26700260 std::istringstream is((<span class="keywordtype">char</span>*)tt);
26800261 is &gt;&gt; vl;
26900262 G4int nh = <a class="code" href="classG4UIGAG.html#r1">UI</a>-&gt;GetNumberOfHistory();
27000263 <span class="keywordflow">if</span>(vl&gt;=0 &amp;&amp; vl&lt;nh)
27100264 {
27200265 newCommand = <a class="code" href="classG4UIGAG.html#r1">UI</a>-&gt;GetPreviousCommand(vl);
27300266 G4cout &lt;&lt; newCommand &lt;&lt; G4endl;
27400267 <span class="keywordflow">break</span>;
27500268 }
27600269 <span class="keywordflow">else</span>
27700270 { G4cerr &lt;&lt; <span class="stringliteral">"history "</span> &lt;&lt; vl &lt;&lt; <span class="stringliteral">" is not found."</span> &lt;&lt; G4endl; }
27800271 }
27900272 <span class="keywordflow">else</span> <span class="keywordflow">if</span>( nC(0,4) == <span class="stringliteral">"exit"</span> )
28000273 {
28100274 <span class="keywordflow">if</span>( <a class="code" href="classG4UIGAG.html#r4">iCont</a> )
28200275 {
28300276 <span class="keywordflow">if</span> ( <a class="code" href="classG4UIGAG.html#r5">uiMode</a> == <a class="code" href="G4UIGAG_8hh.html#a7a0">terminal_mode</a>){
28400277 G4cerr &lt;&lt; <span class="stringliteral">"You are now processing RUN."</span> &lt;&lt; G4endl;
28500278 G4cerr &lt;&lt; <span class="stringliteral">"Please abrot it using \"/run/abort\" command first"</span> &lt;&lt; G4endl;
28600279 G4cerr &lt;&lt; <span class="stringliteral">" and use \"continue\" command until the application"</span> &lt;&lt; G4endl;
28700280 G4cerr &lt;&lt; <span class="stringliteral">" becomes to Idle."</span> &lt;&lt; G4endl;
28800281 }<span class="keywordflow">else</span>{
28900282 G4cout &lt;&lt; <span class="stringliteral">"@@ErrResult \"You are now processing RUN.\""</span> &lt;&lt; G4endl;
29000283 }
29100284 }
29200285 <span class="keywordflow">else</span>
29300286 {
29400287 <a class="code" href="classG4UIGAG.html#r3">iExit</a> = <span class="keyword">false</span>;
29500288 newCommand = nullString;
29600289 <span class="keywordflow">break</span>;
29700290 }
29800291 }
29900292 <span class="keywordflow">else</span> <span class="keywordflow">if</span>( nC == <span class="stringliteral">"cont"</span> || nC == <span class="stringliteral">"continue"</span> )
30000293 {
30100294 <a class="code" href="classG4UIGAG.html#r4">iCont</a> = <span class="keyword">false</span>;
30200295 newCommand = nullString;
30300296 <span class="keywordflow">break</span>;
30400297 }
30500298 <span class="keywordflow">else</span>
30600299 { <span class="keywordflow">break</span>; }
30700300 }
30800301 <span class="keywordflow">return</span> <a class="code" href="classG4UIGAG.html#d7">GetFullPath</a>(newCommand);
30900302 }
31000303
311<a name="l00304"></a><a class="code" href="classG4UIGAG.html#d7">00304</a> G4String <a class="code" href="classG4UIGAG.html#d7">G4UIGAG::GetFullPath</a>( G4String aNewCommand )
31200305 {
31300306 G4String newCommand = aNewCommand.strip(G4String::both);
31400307 G4String tmpString;
31500308 <span class="keywordflow">if</span>( newCommand(0) == <span class="charliteral">'/'</span> )
31600309 { tmpString = newCommand; }
31700310 <span class="keywordflow">else</span> <span class="keywordflow">if</span>( newCommand(0,3) == <span class="stringliteral">"../"</span> )
31800311 {
31900312 G4String tmpPrefix = <a class="code" href="classG4UIGAG.html#r0">prefix</a>;
32000313 <span class="comment">/*G4int*/</span> <span class="keywordtype">unsigned</span> i_direc = 0;
32100314 <span class="keywordflow">while</span>( i_direc &lt; newCommand.length() )
32200315 {
32300316 <span class="keywordflow">if</span>( newCommand(i_direc,3) == <span class="stringliteral">"../"</span> )
32400317 {
32500318 i_direc += 3;
32600319 prefix = <a class="code" href="classG4UIGAG.html#d4">ModifyPrefix</a>( G4String(<span class="stringliteral">"../"</span>) );
32700320 }
32800321 <span class="keywordflow">else</span>
32900322 { <span class="keywordflow">break</span>; }
33000323 }
33100324 tmpString = prefix;
33200325 tmpString.append( newCommand( i_direc, newCommand.length()-i_direc ) );
33300326 prefix = tmpPrefix;
33400327 }
33500328 <span class="keywordflow">else</span>
33600329 {
33700330 tmpString = <a class="code" href="classG4UIGAG.html#r0">prefix</a>;
33800331 tmpString.append( newCommand );
33900332 }
34000333 <span class="keywordflow">return</span> tmpString;
34100334 }
34200335
343<a name="l00336"></a><a class="code" href="classG4UIGAG.html#a6">00336</a> <span class="keywordtype">void</span> <a class="code" href="classG4UIGAG.html#a6">G4UIGAG::SessionTerminate</a>()
34400337 {
34500338 G4cout &lt;&lt; <span class="stringliteral">"***** Terminal session end *****"</span> &lt;&lt; G4endl;
34600339 }
34700340
348<a name="l00341"></a><a class="code" href="classG4UIGAG.html#d6">00341</a> <span class="keywordtype">void</span> <a class="code" href="classG4UIGAG.html#d6">G4UIGAG::ShowCurrent</a>( G4String newCommand )
34900342 {
35000343 G4String theCommand = <a class="code" href="classG4UIGAG.html#d7">GetFullPath</a>(newCommand(1,newCommand.length()-1));
35100344 G4String curV = <a class="code" href="classG4UIGAG.html#r1">UI</a>-&gt;GetCurrentValues(theCommand);
35200345 <span class="keywordflow">if</span>( ! (curV.isNull()||curV(0)==<span class="charliteral">'\0'</span> ) ) {
35300346 <span class="keywordflow">if</span> (<a class="code" href="classG4UIGAG.html#r5">uiMode</a> == <a class="code" href="G4UIGAG_8hh.html#a7a0">terminal_mode</a>){
35400347 G4cout &lt;&lt; <span class="stringliteral">"Current value(s) of the parameter(s) : "</span> &lt;&lt; curV &lt;&lt; G4endl;
35500348 }<span class="keywordflow">else</span>{
35600349 G4cout &lt;&lt; <span class="stringliteral">"@@CurrentValue "</span> &lt;&lt; curV &lt;&lt; G4endl;
35700350 }
35800351 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classG4UIGAG.html#r5">uiMode</a> == <a class="code" href="G4UIGAG_8hh.html#a7a0">terminal_mode</a>){
35900352 G4cout &lt;&lt; <span class="stringliteral">"Current value is not available."</span> &lt;&lt; G4endl;
36000353 } <span class="keywordflow">else</span> {
36100354 G4cout &lt;&lt; <span class="stringliteral">"@@ErrResult \"Current value is not available.\""</span> &lt;&lt; G4endl;
36200355 }
36300356 }
36400357
365<a name="l00358"></a><a class="code" href="classG4UIGAG.html#d1">00358</a> <span class="keywordtype">void</span> <a class="code" href="classG4UIGAG.html#d1">G4UIGAG::ChangeDirectory</a>( G4String newCommand )
36600359 {
36700360 G4String savedPrefix = <a class="code" href="classG4UIGAG.html#r0">prefix</a>;
36800361 <span class="keywordflow">if</span>( newCommand.length() &lt;= 3 )
36900362 { prefix = <span class="stringliteral">"/"</span>; }
37000363 <span class="keywordflow">else</span>
37100364 {
37200365 G4String aNewPrefix = newCommand(3,newCommand.length()-3);
37300366 G4String newPrefix = aNewPrefix.strip(G4String::both);
37400367 <span class="keywordflow">if</span>( newPrefix(0) == <span class="charliteral">'/'</span> )
37500368 { prefix = newPrefix; }
37600369 <span class="keywordflow">else</span> <span class="keywordflow">if</span>( newPrefix(0) != <span class="charliteral">'.'</span> )
37700370 {
37800371 prefix += newPrefix;
37900372 }
38000373 <span class="keywordflow">else</span>
38100374 { prefix = <a class="code" href="classG4UIGAG.html#d4">ModifyPrefix</a>( newPrefix ); }
38200375 }
38300376 <span class="keywordflow">if</span>( <a class="code" href="classG4UIGAG.html#r0">prefix</a>( prefix.length() - 1 ) != <span class="charliteral">'/'</span> )
38400377 { prefix += <span class="stringliteral">"/"</span>; }
38500378 <span class="keywordflow">if</span>( <a class="code" href="classG4UIGAG.html#d5">FindDirPath</a>( prefix ) == NULL )
38600379 {
38700380 G4cout &lt;&lt; <span class="stringliteral">"Directory &lt;"</span> &lt;&lt; prefix &lt;&lt; <span class="stringliteral">"&gt; is not found."</span> &lt;&lt; G4endl;
38800381 prefix = savedPrefix;
38900382 }
39000383 }
39100384
392<a name="l00385"></a><a class="code" href="classG4UIGAG.html#d2">00385</a> <span class="keywordtype">void</span> <a class="code" href="classG4UIGAG.html#d2">G4UIGAG::ListDirectory</a>( G4String newCommand )
39300386 {
39400387 G4String targetDir(<span class="charliteral">'\0'</span>);
39500388 <span class="keywordflow">if</span>( newCommand.length() &lt;= 3 )
39600389 { targetDir = <a class="code" href="classG4UIGAG.html#r0">prefix</a>; }
39700390 <span class="keywordflow">else</span>
39800391 {
39900392 G4String newPrefix = newCommand(3,newCommand.length()-3);
40000393 newPrefix.strip(G4String::both);
40100394 <span class="keywordflow">if</span>( newPrefix(0) == <span class="charliteral">'/'</span> )
40200395 { targetDir = newPrefix; }
40300396 <span class="keywordflow">else</span> <span class="keywordflow">if</span>( newPrefix(0) != <span class="charliteral">'.'</span> )
40400397 {
40500398 targetDir = <a class="code" href="classG4UIGAG.html#r0">prefix</a>;
40600399 targetDir += newPrefix;
40700400 }
40800401 <span class="keywordflow">else</span>
40900402 { targetDir = <a class="code" href="classG4UIGAG.html#d4">ModifyPrefix</a>( newPrefix ); }
41000403 }
41100404 <span class="keywordflow">if</span>( targetDir( targetDir.length() - 1 ) != <span class="charliteral">'/'</span> )
41200405 { targetDir += <span class="stringliteral">"/"</span>; }
41300406 G4UIcommandTree * commandTree = <a class="code" href="classG4UIGAG.html#d5">FindDirPath</a>( targetDir );
41400407 <span class="keywordflow">if</span>( commandTree == NULL )
41500408 { G4cout &lt;&lt; <span class="stringliteral">"Directory &lt;"</span> &lt;&lt; targetDir &lt;&lt; <span class="stringliteral">"&gt; is not found."</span> &lt;&lt; G4endl; }
41600409 <span class="keywordflow">else</span>
41700410 { commandTree-&gt;ListCurrent(); }
41800411 }
41900412
420<a name="l00413"></a><a class="code" href="classG4UIGAG.html#d3">00413</a> <span class="keywordtype">void</span> <a class="code" href="classG4UIGAG.html#d3">G4UIGAG::TerminalHelp</a>(G4String newCommand)
42100414 {
42200415 G4UIcommandTree * treeTop = <a class="code" href="classG4UIGAG.html#r1">UI</a>-&gt;GetTree();
42300416 <span class="comment">/*int*/</span><span class="keywordtype">unsigned</span> i = newCommand.index(<span class="stringliteral">" "</span>);
42400417 <span class="keywordflow">if</span>( i != std::string::npos )
42500418 {
42600419 G4String newValue = newCommand(i+1,newCommand.length()-(i+1));
42700420 newValue.strip(G4String::both);
42800421 <span class="keywordflow">if</span>( newValue(0) != <span class="charliteral">'/'</span> )
42900422 { newValue.prepend( <a class="code" href="classG4UIGAG.html#r0">prefix</a> ); }
43000423 G4UIcommand * theCommand = treeTop-&gt;FindPath( newValue );
43100424 <span class="keywordflow">if</span>( theCommand != NULL )
43200425 {
43300426 theCommand-&gt;List();
43400427 <span class="keywordflow">return</span>;
43500428 }
43600429 <span class="keywordflow">else</span>
43700430 {
43800431 G4cout &lt;&lt; <span class="stringliteral">"Command &lt;"</span> &lt;&lt; newValue &lt;&lt; <span class="stringliteral">" is not found."</span> &lt;&lt; G4endl;
43900432 <span class="keywordflow">return</span>;
44000433 }
44100434 }
44200435
44300436 G4UIcommandTree * floor[10];
44400437 floor[0] = treeTop;
44500438 <span class="keywordtype">int</span> iFloor = 0;
44600439 <span class="comment">/*int*/</span> <span class="keywordtype">unsigned</span> prefixIndex = 1;
44700440 <span class="keywordflow">while</span>( prefixIndex &lt; <a class="code" href="classG4UIGAG.html#r0">prefix</a>.length()-1 )
44800441 {
44900442 <span class="keywordtype">int</span> ii = <a class="code" href="classG4UIGAG.html#r0">prefix</a>.index(<span class="stringliteral">"/"</span>,prefixIndex);
45000443 floor[iFloor+1] =
45100444 floor[iFloor]-&gt;GetTree(G4String(<a class="code" href="classG4UIGAG.html#r0">prefix</a>(0,ii+1)));
45200445 prefixIndex = ii+1;
45300446 iFloor++;
45400447 }
45500448 floor[iFloor]-&gt;ListCurrentWithNum();
45600449 <span class="comment">// 1998 Oct 2 non-number input</span>
45700450 <span class="keywordflow">while</span>(1){
45800451 <span class="keywordtype">int</span> i;
45900452 G4cout &lt;&lt; G4endl &lt;&lt; <span class="stringliteral">"Type the number ( 0:end, -n:n level back ) : "</span>&lt;&lt;std::flush;
46000453 G4cin &gt;&gt; i;
46100454 <span class="keywordflow">if</span>(!G4cin.good()){
46200455 G4cin.clear();
46300456 G4cin.ignore(30,<span class="charliteral">'\n'</span>);
46400457 G4cout &lt;&lt; G4endl &lt;&lt; <span class="stringliteral">"Not a number, once more"</span> &lt;&lt; G4endl; <span class="keywordflow">continue</span>;}
46500458 <span class="keywordflow">else</span> <span class="keywordflow">if</span>( i &lt; 0 ){
46600459 iFloor += i;
46700460 <span class="keywordflow">if</span>( iFloor &lt; 0 ) iFloor = 0;
46800461 floor[iFloor]-&gt;ListCurrentWithNum(); <span class="keywordflow">continue</span>;}
46900462 <span class="keywordflow">else</span> <span class="keywordflow">if</span>(i == 0) { <span class="keywordflow">break</span>;}
47000463 <span class="keywordflow">else</span> <span class="keywordflow">if</span>( i &gt; 0 ) {
47100464 <span class="keywordtype">int</span> n_tree = floor[iFloor]-&gt;GetTreeEntry();
47200465 <span class="keywordflow">if</span>( i &gt; n_tree )
47300466 {
47400467 <span class="keywordflow">if</span>( i &lt;= n_tree + floor[iFloor]-&gt;GetCommandEntry() )
47500468 {
47600469 floor[iFloor]-&gt;GetCommand(i-n_tree)-&gt;List();
47700470 <span class="comment">//iFloor++;</span>
47800471 }
47900472 }
48000473 <span class="keywordflow">else</span>
48100474 {
48200475 floor[iFloor+1] = floor[iFloor]-&gt;GetTree(i);
48300476 iFloor++;
48400477 floor[iFloor]-&gt;ListCurrentWithNum();
48500478 }
48600479 }
48700480
48800481 }
48900482 G4cout &lt;&lt; <span class="stringliteral">"Exit from HELP."</span> &lt;&lt; G4endl &lt;&lt; G4endl;
49000483 G4cout &lt;&lt; G4endl;
49100484 <span class="comment">// G4cin.flush();</span>
49200485 <span class="keywordtype">char</span> temp[100];
49300486 G4cin.getline( temp, 100 );
49400487 }
49500488
49600489
49700490
49800491
49900492
50000493
50100494
502<a name="l00495"></a><a class="code" href="classG4UIGAG.html#d4">00495</a> G4String <a class="code" href="classG4UIGAG.html#d4">G4UIGAG::ModifyPrefix</a>(G4String newCommand)
50300496 {
50400497 G4String newPrefix = <a class="code" href="classG4UIGAG.html#r0">prefix</a>;
50500498 <span class="keywordflow">while</span>( 1 )
50600499 {
50700500 <span class="keywordflow">if</span>( newCommand(0,2) == <span class="stringliteral">".."</span> )
50800501 {
50900502 <span class="keywordflow">if</span>( newPrefix != <span class="stringliteral">"/"</span> )
51000503 {
51100504 G4String tmpString = newPrefix(0,newPrefix.length()-1);
51200505 newPrefix = newPrefix(0,tmpString.last(<span class="charliteral">'/'</span>)+1);
51300506 }
51400507 }
51500508 <span class="keywordflow">else</span>
51600509 {
51700510 newPrefix += newCommand;
51800511 <span class="keywordflow">break</span>;
51900512 }
52000513 <span class="keywordflow">if</span>( newCommand == <span class="stringliteral">".."</span> || newCommand == <span class="stringliteral">"../"</span> )
52100514 { <span class="keywordflow">break</span>; }
52200515 newCommand = newCommand(3,newCommand.length()-3);
52300516 }
52400517 <span class="keywordflow">return</span> newPrefix;
52500518 }
52600519
527<a name="l00520"></a><a class="code" href="classG4UIGAG.html#d5">00520</a> G4UIcommandTree * <a class="code" href="classG4UIGAG.html#d5">G4UIGAG::FindDirPath</a>(G4String newCommand)
52800521 {
52900522 G4UIcommandTree * comTree = <a class="code" href="classG4UIGAG.html#r1">UI</a>-&gt;GetTree();
53000523 <span class="comment">/*int*/</span> <span class="keywordtype">unsigned</span> idx = 1;
53100524 <span class="keywordflow">while</span>( idx &lt; newCommand.length()-1 )
53200525 {
53300526 <span class="keywordtype">int</span> i = newCommand.index(<span class="stringliteral">"/"</span>,idx);
53400527 comTree = comTree-&gt;GetTree(G4String(newCommand(0,i+1)));
53500528 <span class="keywordflow">if</span>( comTree == NULL )
53600529 { <span class="keywordflow">return</span> NULL; }
53700530 idx = i+1;
53800531 }
53900532 <span class="keywordflow">return</span> comTree;
54000533 }
54100534
54200535 <span class="comment">// ----- for JAVA GAG (by T.Kodama)</span>
54300536
544<a name="l00537"></a><a class="code" href="classG4UIGAG.html#d8">00537</a> <span class="keywordtype">void</span> <a class="code" href="classG4UIGAG.html#d8">G4UIGAG::SendCommandProperties</a>(G4UIcommandTree * tree)
54500538 {
54600539 <span class="keywordflow">if</span>( tree == NULL ) {
54700540 G4cerr &lt;&lt; <span class="stringliteral">"GetTree() returnes null."</span> &lt;&lt; G4endl;
54800541 <span class="keywordflow">return</span>;
54900542 }
55000543 <span class="keywordflow">if</span> (<a class="code" href="classG4UIGAG.html#r5">uiMode</a> == <a class="code" href="G4UIGAG_8hh.html#a7a1">java_mode</a>){
55100544 G4cout &lt;&lt; <span class="stringliteral">"@@JTreeBegin"</span> &lt;&lt; G4endl;
55200545 <a class="code" href="classG4UIGAG.html#d12">CodeGenJavaTree</a>(tree, 0);
55300546 G4cout &lt;&lt; <span class="stringliteral">"@@JTreeEnd"</span> &lt;&lt; G4endl;
55400547 <a class="code" href="classG4UIGAG.html#d13">CodeGenJavaParams</a>(tree, 0);
55500548 }<span class="keywordflow">else</span>{
55600549 G4cout &lt;&lt; G4endl &lt;&lt; <span class="stringliteral">"@@maketree_start"</span> &lt;&lt; G4endl;
55700550 <a class="code" href="classG4UIGAG.html#d14">CodeGenTclTree</a>(tree,0);
55800551 G4cout &lt;&lt; <span class="stringliteral">"@@maketree_end"</span> &lt;&lt; G4endl;
55900552 <a class="code" href="classG4UIGAG.html#d15">CodeGenTclParams</a>(tree, 0);
56000553 }
56100554 }
562<a name="l00555"></a><a class="code" href="classG4UIGAG.html#d9">00555</a> <span class="keywordtype">void</span> <a class="code" href="classG4UIGAG.html#d9">G4UIGAG::SendParameterProperties</a>(G4UIcommandTree * tree)
56300556 {
56400557 <span class="keywordflow">if</span>( tree == NULL ) {
56500558 G4cerr &lt;&lt; <span class="stringliteral">"GetTree() returnes null."</span> &lt;&lt; G4endl;
56600559 <span class="keywordflow">return</span>;
56700560 }
56800561 <span class="keywordflow">if</span> (<a class="code" href="classG4UIGAG.html#r5">uiMode</a> == <a class="code" href="G4UIGAG_8hh.html#a7a1">java_mode</a>){
56900562 <a class="code" href="classG4UIGAG.html#d13">CodeGenJavaParams</a>(tree, 0);
57000563 }<span class="keywordflow">else</span>{
57100564 <a class="code" href="classG4UIGAG.html#d15">CodeGenTclParams</a>(tree, 0);
57200565 }
57300566 }
57400567
575<a name="l00568"></a><a class="code" href="classG4UIGAG.html#d12">00568</a> <span class="keywordtype">void</span> <a class="code" href="classG4UIGAG.html#d12">G4UIGAG::CodeGenJavaTree</a>(G4UIcommandTree * tree, <span class="keywordtype">int</span> level)
57600569 {
57700570 <span class="keywordtype">int</span> treeEntry, commandEntry;
57800571 treeEntry = tree-&gt;GetTreeEntry();
57900572 commandEntry = tree-&gt;GetCommandEntry();
58000573
58100574 <span class="keywordflow">if</span>(level!=0) {
58200575 <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i=0; i&lt;commandEntry; i++){
58300576 G4cout &lt;&lt; tree-&gt;GetCommand(i+1)-&gt;GetCommandPath() &lt;&lt; G4endl;
58400577 }
58500578 }
58600579 <span class="keywordflow">if</span>(treeEntry == 0) <span class="keywordflow">return</span>; <span class="comment">//end recursion</span>
58700580
58800581 <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j=0; j&lt;treeEntry; j++){
58900582 <a class="code" href="classG4UIGAG.html#d12">CodeGenJavaTree</a>(tree-&gt;GetTree(j+1), level+1);
59000583 }
59100584 }
59200585
593<a name="l00586"></a><a class="code" href="classG4UIGAG.html#d13">00586</a> <span class="keywordtype">void</span> <a class="code" href="classG4UIGAG.html#d13">G4UIGAG::CodeGenJavaParams</a>(G4UIcommandTree * tree, <span class="keywordtype">int</span> level) <span class="comment">//recursive</span>
59400587 {
59500588 <span class="keywordtype">int</span> treeEntry, commandEntry, i;
59600589 <span class="comment">//G4UIcommand * Comp;</span>
59700590 G4UIcommandTree * treeLink;
59800591
59900592 treeEntry = tree-&gt;GetTreeEntry();
60000593 commandEntry = tree-&gt;GetCommandEntry();
60100594
60200595 <span class="keywordflow">for</span>(i=0; i&lt;commandEntry; i++) {
60300596 <a class="code" href="classG4UIGAG.html#d10">SendAParamProperty</a>(tree-&gt;GetCommand(i+1));
60400597 }
60500598 <span class="keywordflow">if</span>( treeEntry == 0 ) <span class="keywordflow">return</span>; <span class="comment">// end recursion</span>
60600599
60700600 <span class="keywordflow">for</span>(i=0; i&lt; treeEntry; i++) {
60800601 treeLink = tree-&gt;GetTree(i+1);
60900602 G4cout &lt;&lt; <span class="stringliteral">"@@JDirGuideBegin"</span> &lt;&lt; G4endl;
61000603 G4cout &lt;&lt; treeLink-&gt;GetPathName() &lt;&lt; G4endl &lt;&lt; treeLink-&gt;GetTitle() &lt;&lt; G4endl;
61100604 G4cout &lt;&lt; <span class="stringliteral">"@@JDirGuideEnd"</span> &lt;&lt; G4endl;
61200605 <a class="code" href="classG4UIGAG.html#d13">CodeGenJavaParams</a>(treeLink, level+1);
61300606 }
61400607 }
61500608
616<a name="l00609"></a><a class="code" href="classG4UIGAG.html#d10">00609</a> <span class="keywordtype">void</span> <a class="code" href="classG4UIGAG.html#d10">G4UIGAG::SendAParamProperty</a>(G4UIcommand * Comp)
61700610 {
61800611 <span class="keywordtype">int</span> guidanceEntry, parameterEntry;
61900612 G4String title, title2;
62000613 G4UIparameter * prp;
62100614 <span class="keywordtype">char</span> c[2];
62200615 guidanceEntry = Comp-&gt;GetGuidanceEntries();
62300616 parameterEntry = Comp-&gt;GetParameterEntries();
62400617 G4cout &lt;&lt; <span class="stringliteral">"@@JParamBegin"</span> &lt;&lt; G4endl;
62500618 G4cout &lt;&lt; Comp-&gt;GetCommandPath() &lt;&lt; G4endl;
62600619 G4cout &lt;&lt; guidanceEntry &lt;&lt; G4endl;
62700620 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j=0; j&lt;guidanceEntry; j++){
62800621 title = Comp-&gt;GetGuidanceLine(j);
62900622 title2 = <span class="stringliteral">""</span>;
63000623 <span class="keywordflow">if</span> (title != <span class="stringliteral">""</span>){
63100624 <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i=0; i&lt; (<span class="keywordtype">int</span>)title.length(); i++){
63200625 c[0]=title(i);
63300626 c[1]= <span class="charliteral">'\0'</span>;
63400627 <span class="keywordflow">if</span> ( c[0] == <span class="charliteral">'\n'</span> || c[0] == <span class="charliteral">'\r'</span>) {
63500628 c[0]= <span class="charliteral">' '</span>;
63600629 }
63700630 title2.append(c);
63800631 }
63900632 }
64000633 G4cout &lt;&lt; title2 &lt;&lt; G4endl;
64100634 }
64200635 G4cout &lt;&lt; Comp-&gt;GetRange() &lt;&lt; G4endl;
64300636 G4cout &lt;&lt; parameterEntry &lt;&lt; G4endl;
64400637 <span class="keywordflow">for</span>( <span class="keywordtype">int</span> par=0; par&lt;parameterEntry; par++) {
64500638 prp = (G4UIparameter *)Comp-&gt;GetParameter(par);
64600639 G4cout &lt;&lt; prp-&gt;GetParameterName() &lt;&lt; G4endl;
64700640 G4cout &lt;&lt; prp-&gt;GetParameterGuidance() &lt;&lt; G4endl;
64800641 G4cout &lt;&lt; prp-&gt;GetParameterType() &lt;&lt; G4endl;
64900642 G4cout &lt;&lt; prp-&gt;IsOmittable() &lt;&lt; G4endl;
65000643 G4cout &lt;&lt; prp-&gt;GetDefaultValue() &lt;&lt; G4endl;
65100644 G4cout &lt;&lt; prp-&gt;GetParameterRange() &lt;&lt; G4endl;
65200645 G4cout &lt;&lt; prp-&gt;GetParameterCandidates() &lt;&lt; G4endl;
65300646 }
65400647 G4cout &lt;&lt; <span class="stringliteral">"@@JParamEnd"</span> &lt;&lt; G4endl;
65500648 }
65600649
657<a name="l00650"></a><a class="code" href="classG4UIGAG.html#d16">00650</a> <span class="keywordtype">void</span> <a class="code" href="classG4UIGAG.html#d16">G4UIGAG::SendDisableList</a>(G4UIcommandTree * tree, <span class="keywordtype">int</span> level)
65800651 {
65900652 <span class="keywordtype">int</span> treeEntry, commandEntry;
66000653 G4UIcommand * Comp;
66100654 treeEntry = tree-&gt;GetTreeEntry();
66200655 commandEntry = tree-&gt;GetCommandEntry();
66300656
66400657 <span class="keywordflow">for</span>(<span class="keywordtype">int</span> com=0; com&lt;commandEntry; com++) {
66500658 Comp = tree-&gt;GetCommand(com+1);
66600659 <span class="keywordflow">if</span>( Comp-&gt;IsAvailable()==<span class="keyword">false</span> ) {
66700660 G4cout &lt;&lt; Comp-&gt;GetCommandPath()&lt;&lt;G4endl;
66800661 }
66900662 }
67000663 <span class="keywordflow">if</span>( treeEntry == 0 ) <span class="keywordflow">return</span>; <span class="comment">// end recursion</span>
67100664
67200665 <span class="keywordflow">for</span>( <span class="keywordtype">int</span> i=0; i&lt;treeEntry; i++) {
67300666 <a class="code" href="classG4UIGAG.html#d16">SendDisableList</a>(tree-&gt;GetTree(i+1), level+1);
67400667 <span class="comment">// be sure the function name is the same</span>
67500668 }
67600669 }
67700670
67800671 <span class="comment">// ----- for Tcl GAG</span>
67900672
680<a name="l00673"></a><a class="code" href="classG4UIGAG.html#d14">00673</a> <span class="keywordtype">void</span> <a class="code" href="classG4UIGAG.html#d14">G4UIGAG::CodeGenTclTree</a>(G4UIcommandTree * tree, <span class="keywordtype">int</span> level)
68100674 {
68200675 <span class="keywordtype">int</span> i, j;
68300676 <span class="keywordtype">int</span> treeEntry, commandEntry, guidanceEntry;
68400677 treeEntry = tree-&gt;GetTreeEntry();
68500678 commandEntry = tree-&gt;GetCommandEntry();
68600679 G4String commandPath, pathName, title1, title2;
68700680 G4UIcommandTree * t;
68800681 G4UIcommand * Comp;
68900682
69000683 <span class="keywordflow">for</span>(<span class="keywordtype">int</span> com=0; com&lt;commandEntry; com++){
69100684 Comp = tree-&gt;GetCommand(com+1);
69200685 commandPath = Comp-&gt;GetCommandPath();
69300686 G4cout &lt;&lt; commandPath &lt;&lt; <span class="stringliteral">" @@command"</span> &lt;&lt; G4endl;
69400687 guidanceEntry = Comp-&gt;GetGuidanceEntries();
69500688 <span class="keywordflow">if</span> (guidanceEntry == 0){
69600689 title2 = <span class="stringliteral">"...Title not available..."</span>;
69700690 } <span class="keywordflow">else</span> {
69800691 title2 = <span class="stringliteral">""</span>;
69900692 j = 0;
70000693 <span class="keywordflow">while</span>(1){
70100694 title1 = Comp-&gt;GetGuidanceLine(j);
70200695 <span class="keywordflow">for</span>(i=0; i&lt; (<span class="keywordtype">int</span>)title1.length(); i++){
70300696 <span class="keywordtype">char</span> c[2];
70400697 c[0]=title1(i);
70500698 c[1]= <span class="charliteral">'\0'</span>;
70600699 <span class="keywordflow">if</span>( c[0] == <span class="charliteral">'\"'</span>) {
70700700 title2.append(<span class="stringliteral">"\\\""</span>); <span class="comment">// a Backslash and a double quote</span>
70800701 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( c[0] == <span class="charliteral">'\n'</span> || c[0] == <span class="charliteral">'\r'</span>) {
70900702 title2.append(<span class="stringliteral">"\\n"</span>);
71000703 } <span class="keywordflow">else</span> title2.append(c);
71100704 }
71200705 j++;
71300706 <span class="keywordflow">if</span> (j &gt;= guidanceEntry) <span class="keywordflow">break</span>;
71400707 title2.append(<span class="stringliteral">"\\n"</span>);
71500708 }
71600709 }
71700710 G4cout &lt;&lt; commandPath &lt;&lt; <span class="stringliteral">" @@title \""</span>&lt;&lt; title2 &lt;&lt;<span class="stringliteral">"\""</span>&lt;&lt; G4endl;
71800711 }
71900712
72000713 <span class="keywordflow">if</span>(treeEntry == 0) <span class="keywordflow">return</span>; <span class="comment">//end recursion</span>
72100714
72200715 <span class="keywordflow">for</span>(i=0; i&lt; treeEntry; i++){
72300716 t = tree-&gt;GetTree(i+1);
72400717 pathName = t-&gt;GetPathName();
72500718 title1 = t-&gt;GetTitle();
72600719 title2 = <span class="stringliteral">""</span>;
72700720 <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i=0; i&lt;(<span class="keywordtype">int</span>)title1.length(); i++){
72800721 <span class="keywordtype">char</span> c[2];
72900722 c[0]=title1(i);
73000723 c[1]= <span class="charliteral">'\0'</span>;
73100724 <span class="keywordflow">if</span>( c[0] == <span class="charliteral">'\"'</span>)
73200725 title2.append(<span class="stringliteral">"\\\""</span>); <span class="comment">// a Backslash and a double quote</span>
73300726 <span class="keywordflow">else</span> title2.append(c);
73400727 }
73500728 <span class="keywordflow">if</span>(level==0) G4cout &lt;&lt; pathName&lt;&lt; G4endl;
73600729 <span class="keywordflow">else</span> G4cout &lt;&lt; pathName&lt;&lt; <span class="stringliteral">" @@cascade"</span>&lt;&lt;G4endl;
73700730 G4cout &lt;&lt; pathName &lt;&lt; <span class="stringliteral">" @@title \""</span> &lt;&lt; title1 &lt;&lt; <span class="stringliteral">"\""</span>&lt;&lt;G4endl;
73800731 <a class="code" href="classG4UIGAG.html#d14">CodeGenTclTree</a>(t, level+1);
73900732 }
74000733 }
74100734
742<a name="l00735"></a><a class="code" href="classG4UIGAG.html#d15">00735</a> <span class="keywordtype">void</span> <a class="code" href="classG4UIGAG.html#d15">G4UIGAG::CodeGenTclParams</a>( G4UIcommandTree * tree, <span class="keywordtype">int</span> level) <span class="comment">// recursive</span>
74300736 {
74400737 <span class="keywordtype">int</span> treeEntry, commandEntry;
74500738 G4UIcommand * Comp;
74600739 treeEntry = tree-&gt;GetTreeEntry();
74700740 commandEntry = tree-&gt;GetCommandEntry();
74800741
74900742 <span class="keywordflow">for</span>(<span class="keywordtype">int</span> com=0; com&lt;commandEntry; com++) {
75000743 Comp = tree-&gt;GetCommand(com+1);
75100744 <a class="code" href="classG4UIGAG.html#d11">SendATclParamProperty</a>(Comp);
75200745 }
75300746 <span class="keywordflow">if</span>( treeEntry == 0 ) <span class="keywordflow">return</span>; <span class="comment">// end recursion</span>
75400747
75500748 <span class="keywordflow">for</span>( <span class="keywordtype">int</span> i=0; i&lt;treeEntry; i++) {
75600749 <a class="code" href="classG4UIGAG.html#d15">CodeGenTclParams</a>(tree-&gt;GetTree(i+1), level+1);
75700750 <span class="comment">// be sure the function name is the same</span>
75800751 }
75900752 }
76000753
761<a name="l00754"></a><a class="code" href="classG4UIGAG.html#d11">00754</a> <span class="keywordtype">void</span> <a class="code" href="classG4UIGAG.html#d11">G4UIGAG::SendATclParamProperty</a>(G4UIcommand * Comp)
76200755 {
76300756 G4UIparameter * prp;
76400757 <span class="keywordtype">int</span> parameterEntry = Comp-&gt;GetParameterEntries();
76500758 G4String commandPath = Comp-&gt;GetCommandPath();
76600759 G4String commandRange = Comp-&gt;GetRange();
76700760 G4cout &lt;&lt; <span class="stringliteral">"@@parameter_start"</span> &lt;&lt; G4endl;
76800761 G4cout &lt;&lt; commandPath &lt;&lt; <span class="stringliteral">" @@param "</span> &lt;&lt; parameterEntry &lt;&lt; G4endl;
76900762 G4cout &lt;&lt; <span class="stringliteral">"@@command_range \""</span> &lt;&lt; commandRange &lt;&lt; <span class="stringliteral">"\""</span> &lt;&lt; G4endl;
77000763 <span class="keywordflow">for</span>( <span class="keywordtype">int</span> par=0; par&lt;parameterEntry; par++) {
77100764 prp = (G4UIparameter *)Comp-&gt;GetParameter(par);
77200765 G4cout &lt;&lt; <span class="stringliteral">"{"</span> ;
77300766 G4cout &lt;&lt; <span class="stringliteral">"@@param_name : \""</span> &lt;&lt; prp-&gt;GetParameterName() &lt;&lt;<span class="stringliteral">"\""</span>&lt;&lt;G4endl;
77400767 G4String guide1,guide2;
77500768 guide1 = prp-&gt;GetParameterGuidance();
77600769 guide2 = <span class="stringliteral">""</span>;
77700770 <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i=0; i&lt;(<span class="keywordtype">int</span>)guide1.length(); i++){
77800771 <span class="keywordtype">char</span> c[2];
77900772 c[0]=guide1(i);
78000773 c[1]= <span class="charliteral">'\0'</span>;
78100774 <span class="keywordflow">if</span>( c[0] == <span class="charliteral">'\"'</span>)
78200775 guide2.append(<span class="stringliteral">"\\\""</span>); <span class="comment">// a Backslash and a double quote</span>
78300776 <span class="keywordflow">else</span> guide2.append(c);
78400777 }
78500778 G4cout &lt;&lt; <span class="stringliteral">" @@param_guide : \""</span> &lt;&lt; guide2 &lt;&lt; <span class="stringliteral">"\""</span>&lt;&lt;G4endl;
78600779 G4cout &lt;&lt; <span class="stringliteral">" @@param_type : \""</span> &lt;&lt; prp-&gt;GetParameterType()&lt;&lt;<span class="stringliteral">"\""</span>&lt;&lt;G4endl;
78700780 G4cout &lt;&lt; <span class="stringliteral">" @@param_omit : \""</span> &lt;&lt; prp-&gt;IsOmittable()&lt;&lt;<span class="stringliteral">"\""</span>&lt;&lt;G4endl;
78800781 G4cout &lt;&lt; <span class="stringliteral">" @@param_default : \""</span>&lt;&lt; prp-&gt;GetDefaultValue()&lt;&lt;<span class="stringliteral">"\""</span>&lt;&lt;G4endl;
78900782 G4cout &lt;&lt; <span class="stringliteral">" @@param_range : \""</span>&lt;&lt; prp-&gt;GetParameterRange()&lt;&lt;<span class="stringliteral">"\""</span>&lt;&lt;G4endl;
79000783 G4cout &lt;&lt; <span class="stringliteral">" @@param_candidate : \""</span> &lt;&lt; prp-&gt;GetParameterCandidates()&lt;&lt; <span class="stringliteral">"\""</span>&lt;&lt;G4endl;
79100784 G4cout &lt;&lt; <span class="stringliteral">"}"</span> &lt;&lt; G4endl;
79200785 }
79300786 G4cout &lt;&lt; <span class="stringliteral">"@@parameter_end"</span> &lt;&lt; G4endl;
79400787 }
79500788
796<a name="l00789"></a><a class="code" href="classG4UIGAG.html#d17">00789</a> <span class="keywordtype">void</span> <a class="code" href="classG4UIGAG.html#d17">G4UIGAG::NotifyStateChange</a>(<span class="keywordtype">void</span>)
79700790 {
79800791 G4String stateString;
79900792 G4StateManager * statM = G4StateManager::GetStateManager();
80000793 G4UIcommandTree * tree = <a class="code" href="classG4UIGAG.html#r1">UI</a>-&gt;GetTree();
80100794 stateString = statM-&gt;GetStateString(statM-&gt;GetCurrentState());
80200795 <span class="keywordflow">if</span> ( <a class="code" href="classG4UIGAG.html#r5">uiMode</a> != <a class="code" href="G4UIGAG_8hh.html#a7a0">terminal_mode</a> ){
80300796 G4cout &lt;&lt; <span class="stringliteral">"@@State \""</span> &lt;&lt; stateString &lt;&lt; <span class="stringliteral">"\""</span> &lt;&lt; G4endl;
80400797 G4cout &lt;&lt; <span class="stringliteral">"@@DisableListBegin"</span>&lt;&lt;G4endl;
80500798 <a class="code" href="classG4UIGAG.html#d16">SendDisableList</a>(tree, 0);
80600799 G4cout &lt;&lt; <span class="stringliteral">"@@DisableListEnd"</span> &lt;&lt;G4endl;
80700800 }
80800801 }
80900802
810<a name="l00803"></a><a class="code" href="classG4UIGAG.html#d18">00803</a> <span class="keywordtype">void</span> <a class="code" href="classG4UIGAG.html#d18">G4UIGAG::NotifyCommandUpdate</a>(<span class="keywordtype">void</span>)
81100804 {
81200805 G4UIcommandTree * tree = <a class="code" href="classG4UIGAG.html#r1">UI</a>-&gt;GetTree();
81300806 <a class="code" href="classG4UIGAG.html#d8">SendCommandProperties</a>(tree);
81400807 }
81500808
816<a name="l00809"></a><a class="code" href="classG4UIGAG.html#d19">00809</a> <span class="keywordtype">void</span> <a class="code" href="classG4UIGAG.html#d19">G4UIGAG::NotifyParameterUpdate</a>(G4UIcommand* com)
81700810 {
81800811 <span class="keywordflow">if</span> (<a class="code" href="classG4UIGAG.html#r5">uiMode</a> == <a class="code" href="G4UIGAG_8hh.html#a7a1">java_mode</a>)
81900812 <a class="code" href="classG4UIGAG.html#d10">SendAParamProperty</a>(com);
82000813 <span class="keywordflow">else</span>
82100814 <a class="code" href="classG4UIGAG.html#d11">SendATclParamProperty</a>(com);
82200815 }
82300816
82400817 <span class="comment">//####### update check routines ####################################</span>
825<a name="l00818"></a><a class="code" href="classG4UIGAG.html#d21">00818</a> <span class="keywordtype">void</span> <a class="code" href="classG4UIGAG.html#d21">G4UIGAG::UpdateState</a>(<span class="keywordtype">void</span>)
82600819 {
82700820 <span class="keyword">static</span> G4ApplicationState previousState= G4State_PreInit;
82800821 G4ApplicationState newState;
82900822 G4StateManager *statM = G4StateManager::GetStateManager();
83000823 newState = statM-&gt;GetCurrentState();
83100824 <span class="keywordflow">if</span>( newState != previousState )
83200825 {
83300826 <a class="code" href="classG4UIGAG.html#d17">NotifyStateChange</a>();
83400827 previousState = newState;
83500828 }
83600829 }
83700830
838<a name="l00831"></a><a class="code" href="classG4UIGAG.html#d20">00831</a> <span class="keywordtype">int</span> <a class="code" href="classG4UIGAG.html#d20">G4UIGAG::CommandUpdated</a>(<span class="keywordtype">void</span>)
83900832 {
84000833 <span class="keywordtype">int</span> <a class="code" href="G4UIGAG_8hh.html#a8a4">added</a>=0, <a class="code" href="G4UIGAG_8hh.html#a8a5">deleted</a>=0;
84100834 <span class="keywordtype">int</span> pEntry= <a class="code" href="classG4UIGAG.html#r8">previousTreeCommands</a>.size();
84200835 <span class="keywordtype">int</span> nEntry= <a class="code" href="classG4UIGAG.html#r9">newTreeCommands</a>.size();
84300836 <span class="keywordtype">int</span> i,j;
84400837 <span class="keywordflow">for</span>( i=0; i&lt;pEntry; i++) { <span class="comment">// check deleted command(s)</span>
84500838 <span class="keywordflow">for</span>( j=0; j&lt;nEntry; j++) {
84600839 <span class="keywordflow">if</span>( <a class="code" href="classG4UIGAG.html#r8">previousTreeCommands</a>[i] == <a class="code" href="classG4UIGAG.html#r9">newTreeCommands</a>[j]) <span class="keywordflow">break</span>;
84700840 }
84800841 <span class="keywordflow">if</span>( j==nEntry ) {
84900842 <a class="code" href="G4UIGAG_8hh.html#a8a5">deleted</a> = 1;
85000843 <span class="comment">//G4cout &lt;&lt;"deleted: "&lt;&lt; previousTreeCommands(i) &lt;&lt; G4endl;</span>
85100844 }
85200845 }
85300846 <span class="keywordflow">for</span>( i=0; i&lt;nEntry; i++) { <span class="comment">// check added command(s)</span>
85400847 <span class="keywordflow">for</span>( j=0; j&lt;pEntry; j++) {
85500848 <span class="keywordflow">if</span>( <a class="code" href="classG4UIGAG.html#r9">newTreeCommands</a>[i] == <a class="code" href="classG4UIGAG.html#r8">previousTreeCommands</a>[j]) <span class="keywordflow">break</span>;
85600849 }
85700850 <span class="keywordflow">if</span>( j==pEntry ) {
85800851 <a class="code" href="G4UIGAG_8hh.html#a8a4">added</a> = 1;
85900852 <span class="comment">// G4cout &lt;&lt;"added: "&lt;&lt; newTreeCommands(i) &lt;&lt; G4endl;</span>
86000853 }
86100854 }
86200855 <span class="keywordflow">if</span>( <a class="code" href="G4UIGAG_8hh.html#a8a4">added</a> &amp;&amp; <a class="code" href="G4UIGAG_8hh.html#a8a5">deleted</a>==0 ) {G4cout&lt;&lt;<span class="stringliteral">"c added"</span>&lt;&lt;G4endl;<span class="keywordflow">return</span> <a class="code" href="G4UIGAG_8hh.html#a8a4">added</a>;}
86300856 <span class="keywordflow">if</span>( <a class="code" href="G4UIGAG_8hh.html#a8a4">added</a>==0 &amp;&amp; <a class="code" href="G4UIGAG_8hh.html#a8a5">deleted</a> ) {G4cout&lt;&lt;<span class="stringliteral">"c deleted"</span>&lt;&lt;G4endl;<span class="keywordflow">return</span> <a class="code" href="G4UIGAG_8hh.html#a8a5">deleted</a>;}
86400857 <span class="keywordflow">if</span>( <a class="code" href="G4UIGAG_8hh.html#a8a4">added</a> &amp;&amp; <a class="code" href="G4UIGAG_8hh.html#a8a5">deleted</a> ) {G4cout&lt;&lt;<span class="stringliteral">"c add/deleted"</span>&lt;&lt;G4endl;<span class="keywordflow">return</span> <a class="code" href="G4UIGAG_8hh.html#a8a6">addedAndDeleted</a>;}
86500858 <span class="keywordflow">return</span> <a class="code" href="G4UIGAG_8hh.html#a8a3">notChanged</a>;
86600859 }
86700860
868<a name="l00861"></a><a class="code" href="classG4UIGAG.html#d23">00861</a> <span class="keywordtype">void</span> <a class="code" href="classG4UIGAG.html#d23">G4UIGAG::GetNewTreeStructure</a>(G4UIcommandTree * tree, <span class="keywordtype">int</span> level)
86900862 {
87000863 G4String commandPath;
87100864 G4String title;
87200865 G4String pathName; <span class="comment">//tree name</span>
87300866 G4UIcommandTree * t;
87400867 <span class="keywordtype">int</span> treeEntry = tree-&gt;GetTreeEntry();
87500868 <span class="keywordtype">int</span> commandEntry = tree-&gt;GetCommandEntry();
87600869
87700870 <span class="keywordflow">if</span>( level==0 ) { <a class="code" href="classG4UIGAG.html#r9">newTreeCommands</a>.clear();}
87800871 <span class="keywordflow">for</span>(<span class="keywordtype">int</span> com=0; com&lt;commandEntry; com++){
87900872 commandPath = tree-&gt;GetCommand(com+1)-&gt;GetCommandPath();
88000873 title = tree-&gt;GetCommand(com+1)-&gt;GetTitle();
88100874 <a class="code" href="classG4UIGAG.html#r9">newTreeCommands</a>.push_back( commandPath + <span class="stringliteral">" "</span> + title );
88200875 }
88300876
88400877 <span class="keywordflow">if</span>(treeEntry == 0) <span class="keywordflow">return</span>; <span class="comment">//end recursion</span>
88500878
88600879 <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i=0; i&lt; treeEntry; i++){
88700880 t = tree-&gt;GetTree(i+1);
88800881 pathName = t-&gt;GetPathName();
88900882 title = t-&gt;GetTitle();
89000883 <a class="code" href="classG4UIGAG.html#r9">newTreeCommands</a>.push_back( pathName + <span class="stringliteral">" "</span> + title );
89100884 <a class="code" href="classG4UIGAG.html#d23">GetNewTreeStructure</a>(t, level+1);
89200885 }
89300886 }
89400887
895<a name="l00888"></a><a class="code" href="classG4UIGAG.html#d22">00888</a> <span class="keywordtype">void</span> <a class="code" href="classG4UIGAG.html#d22">G4UIGAG::UpdateParamVal</a>(<span class="keywordtype">void</span>)
89600889 {
89700890 <span class="comment">// call NotifyParameterUpdate() if the value of each</span>
89800891 <span class="comment">// command/parameter is updated.</span>
89900892 <span class="comment">// assuming the command structure is not changed.</span>
90000893 <span class="keywordtype">int</span> pEntry= <a class="code" href="classG4UIGAG.html#r10">previousTreeParams</a>.size();
90100894 <span class="keywordtype">int</span> nEntry= <a class="code" href="classG4UIGAG.html#r11">newTreeParams</a>.size();
90200895 <span class="keywordtype">int</span> i;
90300896 G4UIcommand* Comp;
90400897 <span class="keywordflow">if</span> (pEntry != nEntry) <span class="keywordflow">return</span>;
90500898 <span class="keywordflow">for</span>( i=0; i&lt;nEntry; i++) {
90600899 <span class="keywordflow">if</span>( <a class="code" href="classG4UIGAG.html#r10">previousTreeParams</a>[i] != <a class="code" href="classG4UIGAG.html#r11">newTreeParams</a>[i]){
90700900 Comp = <a class="code" href="classG4UIGAG.html#r13">newTreePCP</a>[i];
90800901 G4cout &lt;&lt; Comp-&gt;GetCommandPath()
90900902 &lt;&lt; <span class="stringliteral">" command is updated."</span> &lt;&lt;G4endl;
91000903 <a class="code" href="classG4UIGAG.html#d19">NotifyParameterUpdate</a>(Comp);
91100904 }
91200905 }
91300906 }
91400907
91500908 <span class="comment">//void G4UIGAG::paramUpdate(void)</span>
91600909 <span class="comment">//{ </span>
91700910 <span class="comment">// int added=0, deleted=0;</span>
91800911 <span class="comment">// int pEntry= previousTreeParams.entries();</span>
91900912 <span class="comment">// int nEntry= newTreeParams.entries();</span>
92000913 <span class="comment">// int i,j;</span>
92100914 <span class="comment">//</span>
92200915 <span class="comment">// if (pEntry != nEntry) return NULL;</span>
92300916 <span class="comment">// for( i=0; i&lt;pEntry; i++) { // check deleted param(s)</span>
92400917 <span class="comment">// for( j=0; j&lt;nEntry; j++) {</span>
92500918 <span class="comment">// if( previousTreeParams(i) == newTreeParams(j)) break;</span>
92600919 <span class="comment">// }</span>
92700920 <span class="comment">// if( j==nEntry ) { </span>
92800921 <span class="comment">// deleted = 1;</span>
92900922 <span class="comment">// //G4cout &lt;&lt;"para deleted: "&lt;&lt; previousTreeParams(i) &lt;&lt; G4endl;</span>
93000923 <span class="comment">// }</span>
93100924 <span class="comment">// }</span>
93200925 <span class="comment">// for( i=0; i&lt;nEntry; i++) { // check added param(s)</span>
93300926 <span class="comment">// for( j=0; j&lt;pEntry; j++) {</span>
93400927 <span class="comment">// if( newTreeParams(i) == previousTreeParams(j)) break;</span>
93500928 <span class="comment">// }</span>
93600929 <span class="comment">// if( j==pEntry ) { </span>
93700930 <span class="comment">// added = 1;</span>
93800931 <span class="comment">// //G4cout &lt;&lt;"para added: "&lt;&lt; newTreeParams(i) &lt;&lt; G4endl;</span>
93900932 <span class="comment">// }</span>
94000933 <span class="comment">// }</span>
94100934 <span class="comment">// if( added &amp;&amp; deleted==0 ) {G4cout&lt;&lt;"p added"&lt;&lt;G4endl;return added;}</span>
94200935 <span class="comment">// if( added==0 &amp;&amp; deleted ) {G4cout&lt;&lt;"p deleted"&lt;&lt;G4endl;return deleted;}</span>
94300936 <span class="comment">// if( added &amp;&amp; deleted ) {G4cout&lt;&lt;"p add/deleted"&lt;&lt;G4endl; return addedAndDeleted;}</span>
94400937 <span class="comment">// return notChanged;</span>
94500938 <span class="comment">//}</span>
94600939
947<a name="l00940"></a><a class="code" href="classG4UIGAG.html#d24">00940</a> <span class="keywordtype">void</span> <a class="code" href="classG4UIGAG.html#d24">G4UIGAG::GetNewTreeValues</a>( G4UIcommandTree * tree, <span class="keywordtype">int</span> level) <span class="comment">// recursive</span>
94800941 {
94900942 G4String commandPath;
95000943 G4String pathName; <span class="comment">//tree name</span>
95100944 G4UIcommandTree * t;
95200945 <span class="keywordtype">int</span> parameterEntry;
95300946 <span class="keywordtype">int</span> treeEntry = tree-&gt;GetTreeEntry();
95400947 <span class="keywordtype">int</span> commandEntry = tree-&gt;GetCommandEntry();
95500948 G4UIcommand * Comp;
95600949 G4UIparameter * prp;
95700950 G4String param, str(<span class="stringliteral">" "</span>);
95800951
95900952 <span class="keywordflow">if</span>( level==0 ) { <a class="code" href="classG4UIGAG.html#r11">newTreeParams</a>.clear(); }
96000953 <span class="keywordflow">for</span>(<span class="keywordtype">int</span> com=0; com&lt;commandEntry; com++) {
96100954 Comp = tree-&gt;GetCommand(com+1);
96200955 commandPath = Comp-&gt;GetCommandPath();
96300956 parameterEntry = Comp-&gt;GetParameterEntries();
96400957 param = commandPath +<span class="stringliteral">" "</span>;
96500958 <span class="keywordflow">for</span>( <span class="keywordtype">int</span> par=0; par&lt; parameterEntry; par++) {
96600959 prp = (G4UIparameter *)Comp-&gt;GetParameter(par);
96700960 param += prp-&gt;GetParameterName() +<span class="stringliteral">" "</span>;
96800961 str(0) = prp-&gt;GetParameterType();
96900962 param += str + <span class="stringliteral">" "</span>;
97000963 param += prp-&gt;GetDefaultValue() +<span class="stringliteral">" "</span>;
97100964 param += prp-&gt;GetParameterRange() +<span class="stringliteral">" "</span>;
97200965 param += prp-&gt;GetParameterCandidates();
97300966 }
97400967 <a class="code" href="classG4UIGAG.html#r11">newTreeParams</a>.push_back( param + <span class="stringliteral">"\n"</span>);
97500968 <a class="code" href="classG4UIGAG.html#r13">newTreePCP</a>.push_back( Comp );
97600969 }
97700970 <span class="keywordflow">if</span>( treeEntry == 0 ) <span class="keywordflow">return</span>; <span class="comment">// end recursion</span>
97800971 <span class="keywordflow">for</span>( <span class="keywordtype">int</span> i=0; i&lt; treeEntry; i++) {
97900972 t = tree-&gt;GetTree(i+1);
98000973 <a class="code" href="classG4UIGAG.html#d24">GetNewTreeValues</a>(t, level+1);
98100974 }
98200975 }
98300976 <span class="comment">//######################################################</span>
984</pre></div><hr size="1"><address style="align: right;"><small>Generated on Fri Jun 22 11:07:02 2007 by
985<a href="http://www.doxygen.org/index.html">
986<img src="doxygen.png" alt="doxygen" align="middle" border=0 >
987</a>1.3.4 </small></address>
988</body>
989</html>
Note: See TracBrowser for help on using the repository browser.