OpenKeyWord  Build_ID: 457, Datum: 01.02.2020 07:45:48
Dont repeat yourself. - Do it once and only once!
OKW_CurrentObject_Sngltn.java
1 /*
2  ==============================================================================
3  Copyright © 2012 - 2019 IT-Beratung Hrabovszki
4  ==============================================================================
5 
6  This file is part of OpenKeyWord.
7 
8  OpenKeyWord is free software: you can redistribute it and/or modify
9  it under the terms of the GNU General Public License as published by
10  the Free Software Foundation, either version 3 of the License, or
11  (at your option) any later version.
12 
13  OpenKeyWord is distributed in the hope that it will be useful,
14  but WITHOUT ANY WARRANTY; without even the implied warranty of
15  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  GNU General Public License for more details.
17 
18  You should have received a copy of the GNU General Public License
19  along with OpenKeyWord. If not, see <http://www.gnu.org/licenses/>.
20 
21  Diese Datei ist Teil von OpenKeyWord.
22 
23  OpenKeyWord ist Freie Software: Sie können es unter den Bedingungen
24  der GNU General Public License, wie von der Free Software Foundation,
25  Version 3 der Lizenz oder (nach Ihrer Wahl) jeder späteren
26  veröffentlichten Version, weiterverbreiten und/oder modifizieren.
27 
28  OpenKeyWord wird in der Hoffnung, dass es nützlich sein wird, aber
29  OHNE JEDE GEWÄHRLEISTUNG, bereitgestellt; sogar ohne die implizite
30  Gewährleistung der MARKTFÄHIGKEIT oder EIGNUNG FÜR EINEN BESTIMMTEN ZWECK.
31  Siehe die GNU General Public License für weitere Details.
32 
33  Sie sollten eine Kopie der GNU General Public License zusammen mit
34  OpenKeyWord erhalten haben. Wenn nicht, siehe <http://www.gnu.org/licenses/>.
35 */
36 
37 package okw.core;
38 
39 import java.io.IOException;
40 import java.lang.reflect.Method;
41 import java.util.ArrayList;
42 
43 import javax.xml.bind.JAXBException;
44 import javax.xml.parsers.ParserConfigurationException;
45 import javax.xml.xpath.XPathExpressionException;
46 
47 import org.xml.sax.SAXException;
48 
49 import okw.FrameObjectDictionary_Sngltn;
50 import okw.LogMessenger;
51 import okw.OKW_Helper;
52 import okw.exceptions.*;
53 import okw.log.*;
54 
77 {
78 
94  protected static String cvsChildFN = "";
95 
106  protected static String cvsWindowFN = "";
107 
116  private static Object cvoObject = null;
117 
128  private static String cvsFullObjectFN = "";
129 
144  private static String cvsObjectName = "";
145 
159  private static LogMessenger LM = null;
160 
170 
190 
215 
234  {
235 
236  }
237 
238 
239  public static OKW_CurrentObject_Sngltn getInstance() throws XPathExpressionException, JAXBException, ParserConfigurationException, SAXException, IOException
240  {
241  // Lazy Initialization (If required then only)
242  if ( Instance == null )
243  {
244  // Thread Safe. Might be costly operation in some case
245  synchronized ( OKW_CurrentObject_Sngltn.class )
246  {
247  if ( Instance == null )
248  {
250  init();
251  }
252  }
253  }
254  return Instance;
255  }
256 
257  public ArrayList<String> getAllChildFNsOfParent( String FN )
258  {
260  }
261 
262 
278  public Object getCurrentObject()
279  {
280  Object lvoReturn = new Object();
281 
282  Log.LogFunctionStartDebug( "CurrentObject.GetCurrentObject" );
283 
284  lvoReturn = cvoObject;
285 
286  Log.LogFunctionEndDebug( cvoObject.getClass().getName() );
287  return lvoReturn;
288  }
289 
305  public String getObjectFN()
306  {
307  // Varaibles
308  String lvsReturn = null;
309 
310  // Action
311  Log.LogFunctionStartDebug( "CurrentObject.GetObjectName" );
312  try
313  {
314  lvsReturn = cvsFullObjectFN;
315  }
316  finally
317  {
318  Log.LogFunctionEndDebug( lvsReturn );
319  }
320  return lvsReturn;
321  }
322 
338  public String getWindowFN()
339  {
340  // Variables
341  String lvsReturn = null;
342 
343  // Action
344  Log.LogFunctionStartDebug( "CurrentObject.GetWindowFN" );
345  try
346  {
347  lvsReturn = cvsWindowFN;
348  }
349  finally
350  {
351  Log.LogFunctionEndDebug( lvsReturn );
352  }
353  return lvsReturn;
354  }
355 
371  public String getChildFN()
372  {
373  // Varaibles
374  String lvsReturn = null;
375 
376  //Action
377  Log.LogFunctionStartDebug( "CurrentObject.GetChildFN" );
378  try
379  {
380  lvsReturn = cvsChildFN;
381  }
382  finally
383  {
384  Log.LogFunctionEndDebug( lvsReturn );
385  }
386  return lvsReturn;
387  }
388 
400  public static void init() throws XPathExpressionException, JAXBException, ParserConfigurationException, SAXException, IOException
401  {
402  LM = new LogMessenger( "OKW_CurrentObject" );
403  cvoObject = null;
404  cvsWindowFN = "";
405  cvsChildFN = "";
406  cvsObjectName = "";
409  }
410 
439  public void LogObjectData()
440  {
441  Log.LogFunctionStartDebug( "CurrentObject.LogObjectData" );
442 
443  try
444  {
445  Log.ResOpenList( "Object Data:" );
446  Log.LogPrint( LM.GetMessage( "LogObjectData", "WindowName", cvsWindowFN ) );
447  Log.LogPrint( LM.GetMessage( "LogObjectData", "ChildWindowName", cvsChildFN ) );
448  if (cvoObject == null)
449  Log.LogPrint( LM.GetMessage( "LogObjectData", "Class of Object", "null - There is no Frame-Object" ) );
450  else
451  Log.LogPrint( LM.GetMessage( "LogObjectData", "Class of Object", cvoObject.getClass().getSimpleName() ) );
452  Log.LogPrint( LM.GetMessage( "LogObjectData", "FullNameOfObject", cvsObjectName ) );
453  }
454 /* catch (Exception e)
455  {
456  Log.LogPrint( e.getMessage() );
457  }*/
458  finally
459  {
460  Log.ResCloseList();
461  }
462 
464  }
465 
481  public Object resetToWindow() throws XPathExpressionException, IllegalArgumentException, IllegalAccessException
482  {
483  Log.LogFunctionStartDebug( "CurrentObject.ResetToWindow" );
484  Log.LogPrintDebug( LM.GetMessage( "ResetToWindow", "ResetToWindowDebug" ) );
485 
486  cvsChildFN = "";
487  updateObject();
488 
489  Log.LogFunctionEndDebug( cvoObject.getClass().getName() );
490  return cvoObject;
491  }
492 
493 
522  public Object setChildName( String fpsChildName ) throws XPathExpressionException, IllegalArgumentException, IllegalAccessException
523  {
524  Boolean bOK = false;
525 
526  Log.LogFunctionStartDebug( "CurrentObject.SetChildName", "String fpsChildName", fpsChildName );
527  Log.LogPrintDebug( LM.GetMessage( "SetChildName", "GivenWindownameDebug" ) );
528  try
529  {
531  {
532  if( "SELECTEDCHILD".equals( fpsChildName ) )
533  {
534  Log.LogPrint( LM.GetMessage( "SetChildName", "SetChildwindowNameDebug", cvsWindowFN, cvsChildFN ) );
535  }
536  else
537  {
538  cvsChildFN = fpsChildName;
539  Log.LogPrintDebug( LM.GetMessage( "SetChildName", "SetChildwindowNameDebug", cvsWindowFN, cvsChildFN ) );
540  updateObject();
541  bOK = true;
542  }
543  }
544  else
545  {
546  // Fenster Objekt wurde nicht gesetzt, Exception auslösen...
547  String ErrorText = LM.GetMessage( "SetChildName", "OKWFrameObjectWindowNotSetException" );
548  throw new OKWFrameObjectWindowNotSetException( ErrorText );
549  }
550  }
551  finally
552  {
553  if ( bOK )
554  {
555  Log.LogFunctionEndDebug( cvoObject.getClass().getName() );
556  }
557  else
558  {
560  }
561  }
562  return cvoObject;
563  }
564 
565 
589  public Object setWindowName( String fpsWindowName ) throws XPathExpressionException, IllegalArgumentException, IllegalAccessException
590  {
591  Object lvoReturn = new Object();
592  Boolean bOK = false;
593  Log.LogFunctionStartDebug( "CurrentObject.SetWindowName", "String fpsWindowName", fpsWindowName );
594  try
595  {
596  cvsWindowFN = fpsWindowName;
597  cvsChildFN = "";
598  updateObject();
599  lvoReturn = cvoObject;
600  bOK = true;
601  }
602  finally
603  {
604  if ( bOK )
605  {
606  Log.LogFunctionEndDebug( lvoReturn.toString() );
607  }
608  else
609  {
611  }
612  }
613  return lvoReturn;
614  }
615 
645  private void updateObject() throws XPathExpressionException, IllegalArgumentException, IllegalAccessException
646  {
647  Log.LogFunctionStartDebug( "CurrentObject.updateObject" );
648  try
649  {
650  if ( "".equals( cvsChildFN ) )
651  {
652  // -> 2. Get the Window-Object...
654  cvsObjectName = cvoObject.getClass().getName();
656 
657  }
658  else
659  {
660  // < 1. Set the cvsObjectName for a child-Object.
662 
663  // < 2. Now get the Object-Instance...
664  cvoObject = null;
666 
667  // < 3. Set tecnicalname of Object-Instance...
668  cvsObjectName = cvoObject.getClass().getName();
669  }
670  }
671  finally
672  {
674  }
675  }
676 
677 
678  /*
679  * \~german
680  * Ruft eine Methode, gegeben in fpsMethodName, des aktuellen Objektes via "late bound function call" auf.
681  *
682  * @param FN Funktionaler Name des GUI-Objektes.
683  * @param fpsMethodName der Methode, die aufgerufen werden soll.
684  * @param fpsParameter_1 1. Parameter als Type-String.
685  *
686  * \~english
687  * Calls a method of the current Object with "late bound function call".
688  *
689  * @param FN Functional name of the GUI-Object.
690  * @param fpsMethodName of method to be called.
691  * @param fpsParameter_1 1st
692  * parameter as type-String.
693  *
694  * \~
695  * @author Zoltan Hrabovszki
696  * @date 2012.11.01
697  */
698  public void Sequence( String FN, String fpsMethodName, String fpsParameter_1 ) throws Exception
699  {
700  Log.LogFunctionStartDebug( "Sequence", "String fpsMethodName", fpsMethodName, "String fps_Parameter_1", fpsParameter_1 );
701 
702  setWindowName( FN );
703 
704  Class<?>[] paramTypes =
705  { String.class };
706  Class<?> myFrame_Class = cvoObject.getClass();
707 
708  try
709  {
710  Method myMethod = myFrame_Class.getDeclaredMethod( fpsMethodName, paramTypes );
711  myMethod.invoke( cvoObject, fpsParameter_1 );
712  }
713  catch (NoSuchMethodException e)
714  {
715  // Existiert die Methode des Objektes?
716  // Nein: -> Mit einem OKWFrameObjectMethodNotFoundException
717  // aussteigen...
718  String errorText = LM.GetMessage( "CallMethod", "MethodNotDefined", fpsMethodName );
719  throw new OKWFrameObjectMethodNotFoundException( errorText );
720  }
721  finally
722  {
724  }
725  }
726 }
okw.FrameObjectDictionary_Sngltn
Verwaltet zentral die Frame-Klassen: Instanziert Frame-Klassen zu Frame-Objekten und liefert die Refe...
Definition: FrameObjectDictionary_Sngltn.java:73
okw.core.OKW_CurrentObject_Sngltn.LM
static LogMessenger LM
Hält eine Referenz auf die Klasse LogMessenger für die sprachabhängige Log-Ausgabe vor.
Definition: OKW_CurrentObject_Sngltn.java:159
okw.log.Logger_Sngltn.ResOpenList
void ResOpenList(String fps_Name)
Creates a new hierarchical level in the results file.
Definition: Logger_Sngltn.java:614
okw.core.OKW_CurrentObject_Sngltn.updateObject
void updateObject()
Methode aktualisert zwei Werte:
Definition: OKW_CurrentObject_Sngltn.java:645
okw.LogMessenger
LogMessenger liest Log-Meldungen sprachspezifisch für die im Konstruktor gegeben Klasse aus der Zugeh...
Definition: LogMessenger.java:84
okw.core.OKW_CurrentObject_Sngltn.OKW_CurrentObject_Sngltn
OKW_CurrentObject_Sngltn()
Initialisiert eine neue Instanz der OKW.CurrentObject Klasse Nicht öffentlicher Konstruktor: Verwende...
Definition: OKW_CurrentObject_Sngltn.java:233
okw.core.OKW_CurrentObject_Sngltn.myFrameObjectDictionary
static FrameObjectDictionary_Sngltn myFrameObjectDictionary
Diese Übersicht enthält alle besuchten/ genutzten "Frame Objects".
Definition: OKW_CurrentObject_Sngltn.java:189
okw.core.OKW_CurrentObject_Sngltn.Instance
static OKW_CurrentObject_Sngltn Instance
Gibt die Instanz für die einzige Instanz dieser Klasse zurück.
Definition: OKW_CurrentObject_Sngltn.java:214
okw.log.Logger_Sngltn.LogFunctionEndDebug
void LogFunctionEndDebug()
LogFunctionEndDebug:
Definition: Logger_Sngltn.java:249
okw.log.Logger_Sngltn.getInstance
static Logger_Sngltn getInstance()
Zentrale Logger-Klasse stellt Logger-Methoden innerhalb von OKW zur Verfügung.
Definition: Logger_Sngltn.java:88
okw.core.OKW_CurrentObject_Sngltn.getObjectFN
String getObjectFN()
Ermittelt den ObjektNamen des aktuellen Objektes.
Definition: OKW_CurrentObject_Sngltn.java:305
okw.core.OKW_CurrentObject_Sngltn.getCurrentObject
Object getCurrentObject()
Liefert die Referenz zum aktuellen Frame-Object.
Definition: OKW_CurrentObject_Sngltn.java:278
okw.core.OKW_CurrentObject_Sngltn.resetToWindow
Object resetToWindow()
Das aktuelle Objekt wird auf das Fenster zurückgesetzt.
Definition: OKW_CurrentObject_Sngltn.java:481
okw.FrameObjectDictionary_Sngltn.getChildObjectByName
Object getChildObjectByName(String fps_ParentObject, String fps_ChildObject)
Die Methode liefert das Objekt des gegebenen Kindobjekttests zurück.
Definition: FrameObjectDictionary_Sngltn.java:298
okw.core.OKW_CurrentObject_Sngltn.cvoObject
static Object cvoObject
Das Feld cvoObject enthält die Referenzierung auf das aktuelle Objekt im OKW_FrameObjectDictionary "m...
Definition: OKW_CurrentObject_Sngltn.java:116
okw.core.OKW_CurrentObject_Sngltn.setChildName
Object setChildName(String fpsChildName)
Setzt das Kindobjekt.
Definition: OKW_CurrentObject_Sngltn.java:522
okw.core.OKW_CurrentObject_Sngltn.LogObjectData
void LogObjectData()
Methode gibt alle wichtigen Informationen zum aktuellen Objekt aus.
Definition: OKW_CurrentObject_Sngltn.java:439
okw.FrameObjectDictionary_Sngltn.getAllChildKeysOfParent
ArrayList< String > getAllChildKeysOfParent(String FN_Parent)
Methode Ermittelt alle FN´s der Kinder des gegebene Fensters (Parent).
Definition: FrameObjectDictionary_Sngltn.java:250
okw.core.OKW_CurrentObject_Sngltn.getChildFN
String getChildFN()
Ermittelt den FN des des aktuellen Kind-Objektes.
Definition: OKW_CurrentObject_Sngltn.java:371
okw.core.OKW_CurrentObject_Sngltn.cvsWindowFN
static String cvsWindowFN
Eigenschaft enthält den fachlichen Namen des aktuellen Fensters.
Definition: OKW_CurrentObject_Sngltn.java:106
okw.log.Logger_Sngltn.LogFunctionStartDebug
void LogFunctionStartDebug(String fps_FunctionName, String... fpsParameter)
LogFunctionStartDebug:
Definition: Logger_Sngltn.java:311
okw.core.OKW_CurrentObject_Sngltn.cvsObjectName
static String cvsObjectName
Vollständiger "technischer Name" des aktuellen Objektes "WindowName.ChildObjectName" * "frm_Login" is...
Definition: OKW_CurrentObject_Sngltn.java:144
okw.log.Logger_Sngltn.LogPrint
void LogPrint(String fps_Message)
LogPrint Function: Prints the values of expressions to the results file.
Definition: Logger_Sngltn.java:487
okw.OKW_Helper.isStringNullOrEmpty
static Boolean isStringNullOrEmpty(String fpsString)
Prüft ob der gegeben String fpsStrin null oder leer ("") ist.
Definition: OKW_Helper.java:853
okw.log.Logger_Sngltn.ResCloseList
void ResCloseList()
Closes a hierarchical level in the results file that was opened with ResOpenList.
Definition: Logger_Sngltn.java:574
okw.log.Logger_Sngltn.LogPrintDebug
void LogPrintDebug(String fpsMessage)
Loggt eine Nachricht.
Definition: Logger_Sngltn.java:520
okw.core.OKW_CurrentObject_Sngltn.cvsChildFN
static String cvsChildFN
Die Eigenschaft enthält den fachlichen Namen des aktuellen Kindobjektes.
Definition: OKW_CurrentObject_Sngltn.java:94
okw.core.OKW_CurrentObject_Sngltn.Log
Logger_Sngltn Log
Hält eine Referenz auf die Klasse Logger vor.
Definition: OKW_CurrentObject_Sngltn.java:169
okw.LogMessenger.GetMessage
String GetMessage(String MethodName, String TextKey)
Holt die Log-Meldung für MethodeNmae/Textkey ohne weitere Parameter.
Definition: LogMessenger.java:137
okw.OKW_Helper
Klasse enthält OKW-Hilfsfunktionen.
Definition: OKW_Helper.java:62
okw.core.OKW_CurrentObject_Sngltn.cvsFullObjectFN
static String cvsFullObjectFN
Vollständiger "funktionaler Name" des aktuellen Objektes "WindowName.ChildObjectName" * "Login" ist e...
Definition: OKW_CurrentObject_Sngltn.java:128
okw.core.OKW_CurrentObject_Sngltn.setWindowName
Object setWindowName(String fpsWindowName)
Hier wird der Kontext auf ein Fenster gesetzt.
Definition: OKW_CurrentObject_Sngltn.java:589
okw.exceptions.OKWFrameObjectWindowNotSetException
Diese Ausnahme wird ausgelöst, wenn kein Fenster Objekt ausgewählt/gesetzt worden ist bevor ein Kindo...
Definition: OKWFrameObjectWindowNotSetException.java:74
okw.log.Logger_Sngltn
Definition: Logger_Sngltn.java:54
okw.core.OKW_CurrentObject_Sngltn
Diese Klasse verwaltet das aktuelle GUI-Objekt.
Definition: OKW_CurrentObject_Sngltn.java:76
okw.FrameObjectDictionary_Sngltn.getParentObjectByName
Object getParentObjectByName(String FNParentObject)
Die Methode liefert das Frame-Object des gegebenen FN eines Fensterobjektes zurück.
Definition: FrameObjectDictionary_Sngltn.java:195
okw.core.OKW_CurrentObject_Sngltn.init
static void init()
Führt die Initialisierung der Klasse durch: Es werden alle Felder der Klasse auf einen definierten An...
Definition: OKW_CurrentObject_Sngltn.java:400
okw.exceptions.OKWFrameObjectMethodNotFoundException
Die Ausnahme OKWFrameObjectMethodNotFoundException wird ausgelöst, wenn im Frame Objekt eine gegebene...
Definition: OKWFrameObjectMethodNotFoundException.java:70
okw.core.OKW_CurrentObject_Sngltn.getWindowFN
String getWindowFN()
Ermittelt den FN des des aktuellen Fenster-Objektes.
Definition: OKW_CurrentObject_Sngltn.java:338