OpenKeyWord  Version: 426, Datum:
OKW_Wait4Value.cs
1 #region Header
2 
3 /*
4  ==============================================================================
5  Copyright © 2012, 2013, 2014, 2015 IT-Beratung Hrabovszki
6  ==============================================================================
7 
8  This file is part of OpenKeyWord.
9 
10  OpenKeyWord is free software: you can redistribute it and/or modify
11  it under the terms of the GNU General Public License as published by
12  the Free Software Foundation, either version 3 of the License, or
13  (at your option) any later version.
14 
15  OpenKeyWord is distributed in the hope that it will be useful,
16  but WITHOUT ANY WARRANTY; without even the implied warranty of
17  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  GNU General Public License for more details.
19 
20  You should have received a copy of the GNU General Public License
21  along with OpenKeyWord. If not, see <http://www.gnu.org/licenses/>.
22 
23  Diese Datei ist Teil von OpenKeyWord.
24 
25  OpenKeyWord ist Freie Software: Sie können es unter den Bedingungen
26  der GNU General Public License, wie von der Free Software Foundation,
27  Version 3 der Lizenz oder (nach Ihrer Wahl) jeder späteren
28  veröffentlichten Version, weiterverbreiten und/oder modifizieren.
29 
30  OpenKeyWord wird in der Hoffnung, dass es nützlich sein wird, aber
31  OHNE JEDE GEWÄHRLEISTUNG, bereitgestellt; sogar ohne die implizite
32  Gewährleistung der MARKTFÄHIGKEIT oder EIGNUNG FÜR EINEN BESTIMMTEN ZWECK.
33  Siehe die GNU General Public License für weitere Details.
34 
35  Sie sollten eine Kopie der GNU General Public License zusammen mit
36  OpenKeyWord erhalten haben. Wenn nicht, siehe <http://www.gnu.org/licenses/>.
37 */
38 #endregion Header
39 
40 namespace OKW.GUI
41 {
42  using System;
43  using System.Collections.Generic;
44  using System.Linq;
45  using System.Text;
46  using System.Threading;
47 
48  using OKW.Log;
49 
64  public class OKW_Wait4Value
65  {
66  #region Fields
67 
71  private int cvi_TimeOut = 5;
72 
73  #endregion Fields
74 
75  #region Delegates
76 
90  public delegate bool BoolCallBack();
91 
105  public delegate int IntCallBack();
106 
120  public delegate List<string> ListStringCallBack();
121 
135  public delegate string StringCallBack();
136 
137  #endregion Delegates
138 
139  #region Properties
140 
148  public int TimeOut
149  {
150  get
151  {
152  return this.cvi_TimeOut;
153  }
154 
155  set
156  {
157  this.cvi_TimeOut = value;
158  }
159  }
160 
161  #endregion Properties
162 
163  #region Methods
164 
180  public string Wait4Value(string fpExpected, StringCallBack fpCallMeBack)
181  {
182  string lvReturn = string.Empty;
183 
184  for (int lvi_i = 1; lvi_i < this.cvi_TimeOut; lvi_i++)
185  {
186  lvReturn = fpCallMeBack();
187 
188  if (lvReturn == fpExpected)
189  {
190  // Erwarterwert ist erreicht -> Abbruch der Schleife...
191  break;
192  }
193  else
194  {
195  // Erwarteter Wert ist nicht gefunden -> 1 Sec Warten und weiter in der Schleife...
196  Thread.Sleep(1000);
197  }
198  }
199 
200  return lvReturn;
201  }
202 
217  public List<string> Wait4Value(List<string> fpExpected, ListStringCallBack fpCallMeBack)
218  {
219  List<string> lvReturn = null;
220 
221  for (int lvi_i = 1; lvi_i < this.cvi_TimeOut; lvi_i++)
222  {
223  lvReturn = fpCallMeBack();
224 
225  if (OKW_Helper.ListStringCompare(fpExpected, lvReturn))
226  {
227  // Erwarterwert ist erreicht -> Abbruch der Schleife...
228  break;
229  }
230  else
231  {
232  // Erwarteter Wert ist nicht gefunden -> 1 Sec Warten und weiter in der Schleife...
233  Thread.Sleep(1000);
234  }
235  }
236 
237  return lvReturn;
238  }
239 
254  public bool Wait4Value(bool fpExpected, BoolCallBack fpCallMeBack)
255  {
256  bool lvReturn = false;
257 
258  for (int lvi_i = 1; lvi_i < this.cvi_TimeOut; lvi_i++)
259  {
260  lvReturn = fpCallMeBack();
261 
262  if (lvReturn == fpExpected)
263  {
264  // Erwarterwert ist erreicht -> Abbruch der Schleife...
265  break;
266  }
267  else
268  {
269  // Erwarteter Wert ist nicht gefunden -> 1 Sec Warten und weiter in der Schleife...
270  Thread.Sleep(1000);
271  }
272  }
273 
274  return lvReturn;
275  }
276 
292  public int Wait4Value(int fpExpected, IntCallBack fpCallMeBack)
293  {
294  int lvReturn = 0;
295 
296  for (int lvi_i = 1; lvi_i < this.cvi_TimeOut; lvi_i++)
297  {
298  lvReturn = fpCallMeBack();
299 
300  if (lvReturn == fpExpected)
301  {
302  // Erwarterwert ist erreicht -> Abbruch der Schleife...
303  break;
304  }
305  else
306  {
307  // Erwarteter Wert ist nicht gefunden -> 1 Sec Warten und weiter in der Schleife...
308  Thread.Sleep(1000);
309  }
310  }
311 
312  return lvReturn;
313  }
314 
315  #endregion Methods
316  }
317 }
Klasse enthält OKW-Hilfsfunktionen.
Definition: OKW_Helper.cs:63
int Wait4Value(int fpExpected, IntCallBack fpCallMeBack)
Methode liest den Wert aus der deligierten Methode fpCallMeBack wartet ggf. und liefert den Wert zurü...
List< string > Wait4Value(List< string > fpExpected, ListStringCallBack fpCallMeBack)
Methode liest den Wert aus der deligierten Methode fpCallMeBack wartet ggf. und liefert den Wert zurü...
OKW_Wait4Value ist die zetrale Klasse, die für das Warten auf GUI eigenschaften zuständig ist...
string Wait4Value(string fpExpected, StringCallBack fpCallMeBack)
Methode liest den Wert aus der deligierten Methode fpCallMeBack wartet ggf. und liefert den Wert zurü...
static bool ListStringCompare(List< string > ListString1, List< string > ListString2)
Vergleicht zwei ListStrings inhaltlich miteinander.
Definition: OKW_Helper.cs:361
bool Wait4Value(bool fpExpected, BoolCallBack fpCallMeBack)
Methode liest den Wert aus der deligierten Methode fpCallMeBack wartet ggf. und liefert den Wert zurü...
Definition: Core.cs:40