source: trunk/geant4/interfaces/html/G4UIGAG_8cc-source.html @ 574

Last change on this file since 574 was 571, checked in by garnier, 17 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.