/* Autor:           Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm
   Firma:           HS Harz, FB AI
   Version:         1.1
   Ersterstellung:  22.04.2001
   Letzte Änderung: 28.01.2006

*/


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;


// Komplettes Dialogfenster mit allen Testbeispielen der Basis-Klasse

public class BspBasis extends JFrame {

//  JToolBar toolBar;
  JButton BnProperties = new JButton(); 
  JButton BnMessage1 = new JButton();  // Message
  JButton BnError2 = new JButton(); // Error
  JButton BnYesNo3 = new JButton(); // YesNo
  JButton BnYesNoEsc4 = new JButton(); // YesNoESC
  JButton BnOkEsc5 = new JButton(); // OK ESC
  JButton Bn4SchalterFreierText6 = new JButton(); // Bn 4 Schalter Freier Text6

  JButton BnInput = new JButton(); // Input

  JButton BnIVAL6 = new JButton();  // IVAL
  JButton BnIVAL7 = new JButton();  // IVAL

  JButton BnLVAL8 = new JButton();  // LVAL
  JButton BnLVAL9 = new JButton();  // LVAL

  JButton BnDVAL10 = new JButton();  // DVAL
  JButton BnDVAL11 = new JButton(); // DVAL

  JButton BnDStr12 = new JButton(); // DStr
  JButton BnIStr2 = new JButton(); // IStr2
  JButton BnLStr2 = new JButton(); // LStr2
  JButton BnKomma2Point15 = new JButton(); // Komma2Point
  JButton BnPoint2Komma16 = new JButton(); // Point2Komma

  JButton BnLog10_17 = new JButton(); // Log10

// DATEI FUNKTIONEN
  JButton BnchangeFileExt18 = new JButton(); // changeFileExt   .TXT

  JButton BngetFileExt19 = new JButton(); // getFileExt
  JButton BngetFileNameExt20 = new JButton(); // getFileNameExt
  JButton BngetFileName21 = new JButton(); // getFileName

  JButton BnFileExists22 = new JButton(); // FileExists
  JButton BnCheckFileName23 = new JButton(); // CheckFileName


  //Frame konstruieren
  public BspBasis() {
    setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
    this.setSize(500, 250);
    this.setTitle("Beispielprogramm für die Basis-Klasse");
    setGUI();
  }

  private void setGUI() {
    Container cp = this.getContentPane();
    this.getContentPane().setLayout( new FlowLayout() );

    BnProperties.setText("Properties");
    BnProperties.setToolTipText("Anzeige der Java-Spezifika (path, line separatror userhome");
    BnProperties.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        BnProperties_click();
      }
    });
    cp.add(BnProperties);
    // ----------------------------------------



    BnMessage1.setText("Message");
    BnMessage1.setToolTipText("Anzeige einer Messagebox");
    BnMessage1.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        BnMessage_actionPerformed(e);
      }
    });
    cp.add(BnMessage1);
    // ----------------------------------------


    BnError2.setText("Error");
    BnError2.setToolTipText("Anzeige einer Errorbox (Stop-Schild)");
    BnError2.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        BnError_actionPerformed(e);
      }
    });
    cp.add(BnError2);

    // ----------------------------------------
    BnYesNo3.setText("YesNo");
    BnYesNo3.setToolTipText("Abfrage YesNo");
    BnYesNo3.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        BnYesNo_Click();
      }
    });
    cp.add(BnYesNo3);
    // ----------------------------------------

    // ----------------------------------------
    BnYesNoEsc4.setText("YesNoEsc");
    BnYesNoEsc4.setToolTipText("Abfrage Ja / Nein / Abbruch");
    BnYesNoEsc4.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        BnYesNoEsc_Click();
      }
    });
    cp.add(BnYesNoEsc4);



    // ----------------------------------------
    BnOkEsc5.setText("Okay ESC");
    BnOkEsc5.setToolTipText("Abfrage Ok und Abbruch");
    BnOkEsc5.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        BnOkEsc_Click();
      }
    });
    cp.add(BnOkEsc5);


    // ----------------------------------------
    Bn4SchalterFreierText6.setText("Vier Schalter mit freiem Text6");
    Bn4SchalterFreierText6.setToolTipText("Abfrage mit 4 Schalter");
    Bn4SchalterFreierText6.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        Bn4SchalterFreierText6_Click();
      }
    });
    cp.add(Bn4SchalterFreierText6);



    BnInput.setText("Input");
    BnInput.setToolTipText("Eingabe eines Textes");
    BnInput.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        BnInput_Click();
      }
    });
    cp.add(BnInput);



    // ----------------------------------------
    BnIVAL6.setText("IVal");
    BnIVAL6.setToolTipText("Umwandlung und Test auf Integer");
    BnIVAL6.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        BnIVAL1_Click();
      }
    });
    cp.add(BnIVAL6);


    // ----------------------------------------
    BnIVAL7.setText("IVal");
    BnIVAL7.setToolTipText("Umwandlung und Test auf Integer");
    BnIVAL7.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        BnIVAL2_Click();// Fehlerhaft
      }
    });
    cp.add(BnIVAL7);



    // ----------------------------------------
    BnLVAL8.setText("LVal");
    BnLVAL8.setToolTipText("Umwandlung und Test auf Long");
    BnLVAL8.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        BnLVAL1_Click();
      }
    });
    cp.add(BnLVAL8);


    BnLVAL9.setText("LVal");
    BnLVAL9.setToolTipText("Umwandlung und Test auf Long");
    BnLVAL9.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        BnLVAL2_Click();  // Fehlerhaft
      }
    });
    cp.add(BnLVAL9);



    // ----------------------------------------
    BnDVAL10.setText("DVal");
    BnDVAL10.setToolTipText("Umwandlung und Test auf Double");
    BnDVAL10.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        BnDVAL1_Click();
      }
    });
    cp.add(BnDVAL10);


    BnDVAL11.setText("DVal");
    BnDVAL11.setToolTipText("Umwandlung und Test auf Double");
    BnDVAL11.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        BnDVAL2_Click();  // Fehlerhaft
      }
    });
    cp.add(BnDVAL11);

    // --------------------------

    BnDVAL11.setText("DVal");
    BnDVAL11.setToolTipText("Umwandlung und Test auf Double");
    BnDVAL11.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        BnDVAL2_Click();  // Fehlerhaft
      }
    });
    cp.add(BnDVAL11);



    // --------------------------
    // --------------------------
    BnDStr12.setText("DStr");
    BnDStr12.setToolTipText("Anzeige double mit Format");
    BnDStr12.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        BnDStr_Click();
      }
    });
    cp.add(BnDStr12);


    BnIStr2.setText("IStr2");
    BnIStr2.setToolTipText("Anzeige Int mit 2 Stellen");
    BnIStr2.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        BnIStr2_Click();
      }
    });
    cp.add(BnIStr2);


    BnLStr2.setText("LStr2");
    BnLStr2.setToolTipText("Anzeige Int mit 2 Stellen");
    BnLStr2.addActionListener(new java.awt.event.ActionListener() {

      public void actionPerformed(ActionEvent e) {
        BnLStr2_Click();
      }
    });
    cp.add(BnLStr2);


    BnKomma2Point15.setText("Komma2Point");
    BnKomma2Point15.setToolTipText("Umwandlung Komma to Punkt");
    BnKomma2Point15.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        BnKomma2Point_Click();
      }
    });
    cp.add(BnKomma2Point15);


    BnPoint2Komma16.setText("Point2Komma");
    BnPoint2Komma16.setToolTipText("Umwandlung Punkt to Komma");
    BnPoint2Komma16.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        BnPoint2Komma_Click();
      }
    });
    cp.add(BnPoint2Komma16);



    BnLog10_17.setText("Log10");
    BnLog10_17.setToolTipText("Logarithmus zur Basis 10");
    BnLog10_17.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        BnPoint2Komma_Click();
      }
    });
    cp.add(BnLog10_17);


    // ------------------------------
    // Datei Operationen
    // changeFileExt  Austausch der Extension
    BnchangeFileExt18.setText("changeFileExt");
    BnchangeFileExt18.setToolTipText("changeFileExt");
    BnchangeFileExt18.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        BnchangeFileExt_Click();
      }
    });
    cp.add(BnchangeFileExt18);


    // getFileExt
    BngetFileExt19.setText("getFileExt");
    BngetFileExt19.setToolTipText("Nur die Dateierweiterung");
    BngetFileExt19.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        BngetFileExt_Click();
      }
    });
    cp.add(BngetFileExt19);


    
    BngetFileNameExt20.setText("getFileNameExt");
    BngetFileNameExt20.setToolTipText("Dateinamen ohne Pfad");
    BngetFileNameExt20.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        BngetFileNameExt_Click();
      }
    });
    cp.add(BngetFileNameExt20);


    BngetFileName21.setText("getFileName");
    BngetFileName21.setToolTipText("getFileName");
    BngetFileName21.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        BngetFileName_Click();
      }
    });
    cp.add(BngetFileName21);


    BnFileExists22.setText("FileExists");
    BnFileExists22.setToolTipText("Prüfen, ob die Datei existiert");
    BnFileExists22.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        BnFileExists_Click();
      }
    });
    cp.add(BnFileExists22);


    BnCheckFileName23.setText("CheckFileName");
    BnCheckFileName23.setToolTipText("Prüft, ob die Datei korrekt eingeben wurde");
    BnCheckFileName23.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        BnCheckFileName_Click();
      }
    });
    cp.add(BnCheckFileName23);


    // ------------------------------------



    //    this.getContentPane().add(toolBar, BorderLayout.NORTH);
  }  // setGUI




  public static void main(String[] args) {
    BspBasis frame = new BspBasis();
    //Dimension frameSize = frame.getSize();
    frame.setVisible(true);  // show()
  }


  void BnProperties_click() {
    String sText = "FileSeparator: "+CBasis.getfileSeparator();
    sText += "\n" + "PathSeparator: "+CBasis.getpathSeparator();
    sText += "\n" + "LineSeparator: "+CBasis.getlineSeparator();
    sText += "\n" + "UserHome: "+CBasis.getuserHome();
    sText += "\n" + "Username: "+CBasis.getuserName();
    sText += "\n" + "UserDir: "+CBasis.getuserDir();

    sText += "\n" + "Temp: "+CBasis.getpathParam("java.io.tmpdir");
    sText += "\n" + "BS: "+CBasis.getpathParam("os.name");
    sText += "\n" + "BS-Version: "+CBasis.getpathParam("os.version");
    CBasis.Message("Properties",sText);    
  }
/*
java.version  	Java Runtime Environment version
java.vendor 	Java Runtime Environment vendor
java.vendor.url 	Java vendor URL
java.home 	Java installation directory
java.vm.specification.version 	Java Virtual Machine specification version
java.vm.specification.vendor 	Java Virtual Machine specification vendor
java.vm.specification.name 	Java Virtual Machine specification name
java.vm.version 	Java Virtual Machine implementation version
java.vm.vendor 	Java Virtual Machine implementation vendor
java.vm.name 	Java Virtual Machine implementation name
java.specification.version 	Java Runtime Environment specification version
java.specification.vendor 	Java Runtime Environment specification vendor
java.specification.name 	Java Runtime Environment specification name
java.class.version 	Java class format version number
java.class.path 	Java class path
java.library.path 	List of paths to search when loading libraries
java.compiler 	Name of JIT compiler to use
java.ext.dirs 	Path of extension directory or directories
os.arch 	Operating system architecture

*/

 void BnMessage_actionPerformed(ActionEvent e) {
    CBasis.Message("Hinweis","Ihre Festplatte wird formatiert");
  }  // Message



 void BnError_actionPerformed(ActionEvent e) {
    CBasis.Error("Fehler","Sie haben den Virus 'Yankee-Doodle'");
  }  // Error


  // Liefert eine MassageBox,mit einem Ja- und Nein-Schalter
 void BnYesNo_Click() {
    boolean b;
    b = CBasis.YesNo("Abfrage","Sind Sie Student?");
    if (b)
      CBasis.Message("Meldung","Welchen Studiengang?");
    else
      CBasis.Message("Meldung","Sehr gut, Sie haben also einen ordentlichen Beruf!");
  }  // Bn YesNo



  // Liefert eine MassageBox,mit Ja-,  Nein- und einem Abbruch-Schalter
 void BnYesNoEsc_Click() {
    int rectode;
    rectode = CBasis.YesNoEsc("Beenden des Dialogfensters","Wollen Sie die Datei speichern?");
    switch (rectode) {
     case CBasis.YES: CBasis.Message("Meldung","Datei gespeichert, jetzt Ende");
                     // saveFile();
                     break;
     case CBasis.NO: CBasis.Message("Meldung","Datei nicht gespeichert, jetzt Ende");
                     break;
     case CBasis.ESC: CBasis.Message("Meldung","Abbruch!");
                     break;
    }
  }  // Bn YesNo ESC


  void Bn4SchalterFreierText6_Click() {
    int rectode;
    String [] Buttons =
    {"Okay","Abbruch","Hilfe","Festplatte formatieren" };
    rectode = CBasis.FreeButtons("Beenden des Dialogfensters","Auswahl", Buttons);
    switch (rectode) {
     case 0: CBasis.Message("Angeklickt","Schalter 1 (Okay) wurde angeklickt");
                     break;
     case 1: CBasis.Message("Angeklickt","Schalter 2 (Abbruch) wurde angeklickt");
                     break;
     case 2: CBasis.Message("Angeklickt","Schalter 3 (Hilfe) wurde angeklickt");
                     break;
     case 3: CBasis.Message("Angeklickt","Schalter 4 (Platte) wurde angeklickt");
                     break;
    }
  }

  // Liefert eine MassageBox,mit einem Ok- und Abbruch-Schalter
 void BnOkEsc_Click() {
    boolean b;
    b = CBasis.OkEsc("Abfrage","Sind Sie Student?");
    if (b)
      CBasis.Message("Meldung","Welchen Studiengang?");
    else
      CBasis.Message("Meldung","Sehr gut, Sie haben also einen ordentlichen Beruf!");
  }  // Bn Okay  und Esc



  //   public static String
  // getInput( String sTitle, String sMessage, String sInput) {
 void BnInput_Click() {
    String erg;
    erg = CBasis.getInput("Name","Eingabe des Studentennamens","Defaultwert");
    CBasis.Message("Meldung","Name"+'\n' + erg);
  }  // Bn Okay  und Esc





    // Numerik

 void BnIVAL1_Click() {
   int erg;
   String s;
   s = "45451234";
    // Abfrage
   if ( CBasis.IVal(s) ) {
     erg = CBasis.getIValResult();   // Ergebnis holen
     CBasis.Message("Konvertierung okay","Ergebnis: "+Integer.toString(erg) );
   }
   else {
     CBasis.Message("Konvertierung fehlerhaft","Text: "+CBasis.getErrorCode()+'\n'+s );
   }
 }  //  Bn IVal


 void BnIVAL2_Click() {
   int erg;
   String s;
   s = "454545451234";
    // Abfrage
   if ( CBasis.IVal(s) ) {
     erg = CBasis.getIValResult();   // Ergebnis holen
     CBasis.Message("Konvertierung okay","Ergebnis: "+Integer.toString(erg) );
   }
   else {
     CBasis.Message("Konvertierung fehlerhaft","Text: "+CBasis.getErrorCode()+'\n'+s );
   }
 }  //  Bn IVal


 void BnLVAL1_Click() {
   long erg;
   String s;
   s = "454545451234";
    // Abfrage
   if ( CBasis.LVal(s) ) {
     erg = CBasis.getLValResult();   // Ergebnis holen
     CBasis.Message("Konvertierung okay","Ergebnis: "+Long.toString(erg) );
   }
   else {
     CBasis.Message("Konvertierung fehlerhaft","Text: "+CBasis.getErrorCode()+'\n'+s );
   }
 }  //  Bn LVal1


 void BnLVAL2_Click() {
   long erg;
   String s;
   s = "54545454554545451234";
    // Abfrage
   if ( CBasis.LVal(s) ) {
     erg = CBasis.getLValResult();   // Ergebnis holen
     CBasis.Message("Konvertierung okay","Ergebnis: "+Long.toString(erg) );
   }
   else {
     CBasis.Message("Konvertierung fehlerhaft","Text: "+CBasis.getErrorCode()+'\n'+s );
   }
 }  //  Bn LVal2


 void BnDVAL1_Click() {
   double erg;
   String s;
   s = "1234.444";
    // Abfrage
   if ( CBasis.DVal(s) ) {
     erg = CBasis.getDValResult();   // Ergebnis holen
     CBasis.Message("Konvertierung okay","Ergebnis: "+Double.toString(erg) );
   }
   else {
     CBasis.Message("Konvertierung fehlerhaft","Text: "+CBasis.getErrorCode() );
   }
 }  //  Bn DVal1


 void BnDVAL2_Click() {
   double erg;
   String s;
   s = "g55554";
    // Abfrage
   if ( CBasis.DVal(s) ) {
     erg = CBasis.getDValResult();   // Ergebnis holen
     CBasis.Message("Konvertierung okay","Ergebnis: "+Double.toString(erg) );
   }
   else {
     CBasis.Message("Konvertierung fehlerhaft","Text: "+CBasis.getErrorCode() );
   }
 }  //  Bn DVal2


   // ---------------------------------
  void BnDStr_Click() {
    double d = 12.3456789;
    CBasis.Message("Anzeige DStr","Ergebnis: "+CBasis.DStr(d,3) );
  }

  void BnIStr2_Click() {
    int d = 9;
    CBasis.Message("Anzeige IStr2","Ergebnis: "+CBasis.IStr2(d) );
  }

  void BnLStr2_Click() {
    long d = 9;
    CBasis.Message("Anzeige LStr2","Ergebnis: "+CBasis.LStr2(d) );
  }

  void BnKomma2Point_Click() {
    String s = "4512,34789";
    CBasis.Message("Anzeige Komma2Point","Ergebnis: "+CBasis.Komma2Point(s) );
  }

  void BnPoint2Komma_Click() {
    String s = "4512.34789";
    CBasis.Message("Anzeige Point2Komma","Ergebnis: "+CBasis.Point2Komma(s) );
  }


  // -----------------------------------------------

   void  BnchangeFileExt_Click() {
     String s1 = "c:\\java\\labor1\\test.java";
     String s2 = "";
     s2 = CBasis.changeFileExt(s1,".class");
     CBasis.Message("changeFileExt","Ergebnis: "+'\n'+s1+'\n'+s2 );
   }

   void  BngetFileExt_Click() {
     String s1 = "c:\\java\\labor1\\test.java";
     String s2 = "";
     s2 = CBasis.getFileExt(s1);
     CBasis.Message("getFileExt","Ergebnis: "+'\n'+s1+'\n'+s2 );
   }


   void BngetFileNameExt_Click() {
     String s1 = "c:\\java\\labor1\\test.java";
     String s2 = "";
     s2 = CBasis.getFileNameExt(s1);
     CBasis.Message("changeFileExt","Ergebnis: "+'\n'+s1+'\n'+s2 );
   }

     // Schneidet die Extension ab
     // liefert Pfad+Name
   void  BngetFileName_Click() {
     String s1 = "c:\\java\\labor1\\test.java";
     String s2 = "";
     s2 = CBasis.getFileName(s1);
     CBasis.Message("getFileName","Ergebnis: "+'\n'+s1+'\n'+s2 );
   }



   void  BnFileExists_Click() {
     String s1 = "c:\\java\\labor1\\test.java";
     //String s = "D:\\java\\hs-md\\src\\org\\app\\basis\\BasisIO.java";
     String s = "c:\\test.java";
     if ( CBasis.FileExists(s) )
       CBasis.Message("FileExists","Die Datei existiert "+'\n'+s );
     else
       CBasis.Message("FileExists","Die Datei existiert nicht"+'\n'+s );
   }


   void BnCheckFileName_Click() {
     String s1 = "test.java";
     String s2 = "D:\\java\\hs-md\\src\\org\\app\\basis\\BasisIO.java";
     String s;
     s = s2;
     if ( CBasis.CheckFileName(s) )
       CBasis.Message("CheckFileName","Die Datei ist okay "+'\n'+s );
     else
       CBasis.Message("CheckFileName","Die Datei ist nicht okay "+'\n'+s );
   }



    void BnOpenDialog_Click() {
    }

    void BnSaveDialog_Click() {
    }

}  // BspBasis





  // --------------------------------------------------------------
  // --------------------------------------------------------------
  // --------------------------------------------------------------
  // --------------------------------------------------------------


// Die folgende Klasse zur Kapselung einiger statischer Methoden
/*
  String s;
  int erg;
  s = "1234";
    // Abfrage
  if ( CBasis.IVal(s) ) {
     erg = CBasis.getIValResult();   // Ergebnis holen
  }
*/

/*  METHODEN:

// DIALOGFENSTER
    public static void Error( String sTitle, String sMessage) {
    public static void Message( String sTitle, String sMessage) {
    public static boolean YesNo( String sTitle, String sMessage) {
    public static int YesNoEsc( String sTitle, String sMessage) {
    public static int FreeButtons( String sTitle, String sMessage, Buttons []);

    public static boolean OkEsc( String sTitle, String sMessage) {
        // gibt einen Klartext für die Konvertierung aus
    public static String getErrorCode() {
    public static String getInput( String sTitle, String sMessage) {
    public static String getInput( String sTitle, String sMessage, String sInput) {

      // Welche Maustaste wurde gedrückt ?
    public static int getButton(MouseEvent e) {


// UMWANDLUNG STRING ->  int, long, double
    public static boolean IVal(String szText) {
    public static int getIValResult() {
    public static boolean LVal(String szText) {
    public static long getLValResult() {
    public static boolean DVal(String szText) {
    public static double getDValResult() {


// AUSGABE EINER FORMATIERTEN ZAHL
      Parameter nk beschreibt die Nachkommastelle
    public static String DStr(double d, int nk) {
    public static String IStr2(int iZahl) {
    public static String LStr2(long lZahl) {
    public static String Komma2Point(String szZ) {
    public static String Point2Komma(String szZ) {

// MATHEMATIK
    public static double log10(double x) {

// DATEI FUNKTIONEN
    public static String changeFileExt(String szDateiname, String szExt) {
    public static String getFileExt(String szDateiname) {
    public static String getFileNameExt(String szDateiname) {

     // Schneidet die Extension ab
    public static String getFileName(String szDateiname) {
    public static boolean FileExists(String szDateiname) {

    public static void centerScreen(java.awt.Window frame, java.awt.Dimension preset) {

*/
class CBasis {
    // Konstanten
    public static final int C_LEER = 1;
    public static final int C_KEINEZAHL = 2;
    public static final int C_ZUKLEIN = 3;
    public static final int C_ZUGROSS = 4;

      // Konstanten für den Error Code als String
    public static final String SZ_LEER = "Leerer Text";
    public static final String SZ_KEINEZAHL = "Konvertierung schlug fehl";
    public static final String SZ_ZUKLEIN = "Für den Bereich zu klein";
    public static final String SZ_ZUGROSS = "Für den Bereich zu groß";



   // Damit braucht man nicht die Konstanten aus JOptionPane referenzieren
    public static final int YES = 1;
    public static final int NO = 2;
    public static final int ESC = 3;

    private static int intVal;          // speichert das Ergebnis
    private static long longVal;        // speichert das Ergebnis
    private static double dblVal;       // speichert das Ergebnis

    private static int ValError = 0;   // speichert den Konvertierungfehler


    // liefert  /  oder \
    public static String getfileSeparator() {
        java.util.Properties pHash = System.getProperties();
        String sErg = (String) pHash.get("file.separator");  
        return sErg;
    }  // getfileSeparator

    // liefert  :
    public static String getpathSeparator() {
        java.util.Properties pHash = System.getProperties();
        String sErg = (String) pHash.get("path.separator");
        return sErg;
    }  // getpathSeparator

    
    // liefert  \n  bzw. \r\n
    public static String getlineSeparator() {
        java.util.Properties pHash = System.getProperties();
        String sErg = (String) pHash.get("line.separator");
        return sErg;
    }  // getlineSeparator


  	        
    // c:\einstellungen  oder /home
    public static String getuserHome() {
        java.util.Properties pHash = System.getProperties();
        String sErg = (String) pHash.get("user.home");
        return sErg;
    }  // getuserHome
                

    
    public static String getuserName() {
        java.util.Properties pHash = System.getProperties();
        String sErg = (String) pHash.get("user.name");
        return sErg;
    }  // getpathSeparator
                

     // aktuelle Verzeichnis
    public static String getuserDir() {
        java.util.Properties pHash = System.getProperties();
        String sErg = (String) pHash.get("user.dir");
        return sErg;
    }  // getpathSeparator


    // liefert  alles
    public static String getpathParam(String sParam) {
        java.util.Properties pHash = System.getProperties();
        String sErg = (String) pHash.get(sParam);
        return sErg;
    }  // getpathParam


    /**
    * description: Konvertiert einen String in eine int-Variable   
    * Verwendet eine interne Variable zum Speichern des Wertes
    * @see IVal, getValResult
    *
    * @version     1.0  07.07.2002
    * @author      Michael Wilhelm HS Harz, FB AI
    * @param String sText
    * @return int
    * @exception keine
    */
    public static int IntVal(String sText) {
        // erläuterung von iIVal = Integer.valueOf(szText).intValue();
        String s;
        int intVal;
        s = new String(sText); // neues Objekt
        s = s.trim();  // Leerstellen löschen
        if (s.length() == 0 ) {
            return 0;
        }
        else {
            try {
                intVal = Integer.valueOf(sText).intValue();
                return intVal;
            }
            catch (NumberFormatException e) {
                return 0;
            }
        }
    } // IntVal




    /**
    * description: Zeigt eine Fehlermeldung an   
    * @see Message, Yes-No, Yes-No-Esc, Ok-Esc
    *
    * @version     1.0  07.07.2002
    * @author      Michael Wilhelm HS Harz, FB AI
    * @param String sTitle, String sMessage
    * @return keinen
    * @exception keine
    */
  public static void Error( String sTitle, String sMessage) {
    JOptionPane.showConfirmDialog(null,sMessage,sTitle,
      JOptionPane.DEFAULT_OPTION,
      JOptionPane.ERROR_MESSAGE);  // Symbol
    /*  Optionen der Schalter:
         DEFAULT_OPTION    Ok
         YES_NO_OPTION
         YES_NO_CANCEL_OPTION
         OK_CANCEL_OPTION
     */
     /*  Symbole:
      ERROR_MESSAGE
      INFORMATION_MESSAGE
      WARNING_MESSAGE
      QUESTION_MESSAGE
      PLAIN_MESSAGE
     */

  } // Error

    /**
    * description: Zeigt eine Nachricht an   
    * @see Message, Yes-No, Yes-No-Esc, Ok-Esc
    *
    * @version     1.0  07.07.2002
    * @author      Michael Wilhelm HS Harz, FB AI
    * @param String sTitle, String sMessage
    * @return keinen
    * @exception keine
    */
  public static void Message( String sTitle, String sMessage) {
    JOptionPane.showConfirmDialog(null,sMessage,sTitle,
      JOptionPane.DEFAULT_OPTION,
      JOptionPane.INFORMATION_MESSAGE);  // Symbol
    /*  Optionen der Schalter:
         DEFAULT_OPTION    Ok
         YES_NO_OPTION
         YES_NO_CANCEL_OPTION
         OK_CANCEL_OPTION
     */
     /*  Symbole:
      ERROR_MESSAGE
      INFORMATION_MESSAGE
      WARNING_MESSAGE
      QUESTION_MESSAGE
      PLAIN_MESSAGE
     */

  } // Message

    /**
    * description: Zeigt einen Ja-Nein-Dialog   
    * @see Message, Error, Yes-No-Esc, Ok-Esc
    *
    * @version     1.0  07.07.2002
    * @author      Michael Wilhelm HS Harz, FB AI
    * @param String sTitle, String sMessage
    * @return boolean
    * @exception keine
    */
  public static boolean YesNo( String sTitle, String sMessage) {
    int retcode;
    retcode = JOptionPane.showConfirmDialog(null,sMessage,sTitle,
      JOptionPane.YES_NO_OPTION,
      JOptionPane.QUESTION_MESSAGE);  // Symbol

    switch (retcode) {
       case JOptionPane.YES_OPTION:
         // ja, Änderungen speichern
         return true;
       case JOptionPane.NO_OPTION:
         return false;
       case JOptionPane.CANCEL_OPTION:
       default:
         // abbrechen
         return false;
    }
  } // YesNo


    /**
    * description: Zeigt einen Ja-Nein-Abbruch-Dialog   
    * @see Message, Error, Yes-No, Ok-Esc
    *
    * @version     1.0  07.07.2002
    * @author      Michael Wilhelm HS Harz, FB AI
    * @param String sTitle, String sMessage
    * @return int YES_OPTION, NO_OPTION, CANCEL_OPTION
    * @exception keine
    */
  public static int YesNoEsc( String sTitle, String sMessage) {
    int retcode;
    retcode = JOptionPane.showConfirmDialog(null,sMessage,sTitle,
      JOptionPane.YES_NO_CANCEL_OPTION,
      JOptionPane.QUESTION_MESSAGE);  // Symbol

    switch (retcode) {
       case JOptionPane.YES_OPTION:
         // ja, Änderungen speichern
         return YES;
       case JOptionPane.NO_OPTION:
         return NO;
       case JOptionPane.CANCEL_OPTION:
       default:
         return ESC;
    }
  } // YES NO ESC

  
    /**
    * description: Zeigt einen Dialog mit frei definiertem Schalter
    * @see Message, Error, Yes-No, Yes-No-Esc, Ok-Esc
    *
    * @version     1.0  07.07.2002
    * @author      Michael Wilhelm HS Harz, FB AI
    * @param String sTitle, String sMessage, String buttons[]
    * @return int Returncode von JOptionPane
    * @exception keine
    */
  public static int FreeButtons( String sTitle, String sMessage, String buttons[]) {
    int retcode;
    retcode = JOptionPane.showOptionDialog(
           null, sMessage,sTitle,
           JOptionPane.DEFAULT_OPTION,
           JOptionPane.QUESTION_MESSAGE,
           null, buttons, buttons[0]);

    return retcode;
  }  // FreeButtons





    /**
    * description: Zeigt einen Dialog Ok-Esc an
    * @see Message, Error, Yes-No, Yes-No-Esc, Ok-Esc
    *
    * @version     1.0  07.07.2002
    * @author      Michael Wilhelm HS Harz, FB AI
    * @param String sTitle, String sMessage, String buttons[]
    * @return boolean
    * @exception keine
    */
  public static boolean OkEsc( String sTitle, String sMessage) {
    int retcode;
    retcode = JOptionPane.showConfirmDialog(null,sMessage,sTitle,
      JOptionPane.OK_CANCEL_OPTION,
      JOptionPane.INFORMATION_MESSAGE);  // Symbol

    switch (retcode) {
       case JOptionPane.OK_OPTION:
         // ja, Änderungen speichern
         return true;
       case JOptionPane.CANCEL_OPTION:
       default:
         // abbrechen
         return false;
    }
  } // Ok ESC


    /**
    * description: Eingabe eines Strings
    * @see getInput
    *
    * @version     1.0  07.07.2002
    * @author      Michael Wilhelm HS Harz, FB AI
    * @param String sTitle, String sMessage
    * @return String
    * @exception keine
    */
  public static String getInput( String sTitle, String sMessage) {
    return JOptionPane.showInputDialog(null, sTitle, sMessage, 1);
  } // getInput



    /**
    * description: Eingabe eines Strings mit Vorgabe
    * @see getInput
    *
    * @version     1.0  07.07.2002
    * @author      Michael Wilhelm HS Harz, FB AI
    * @param String sTitle, String sMessage, String sInput
    * @return String
    * @exception keine
    */
  public static String getInput( String sTitle, String sMessage, String sInput) {
    return (String) JOptionPane.showInputDialog( null,sMessage, sTitle, JOptionPane.PLAIN_MESSAGE,
       null, null, sInput);
  } // getInput

  



    /**
    * description: gibt einen Klartext für die Konvertierung aus
    * @see IVal, LVal, DVal
    *
    * @version     1.0  07.07.2002
    * @author      Michael Wilhelm HS Harz, FB AI
    * @param keine
    * @return String
    * @exception keine
    */
    public static String getErrorCode() {
      switch (ValError) {
        case C_LEER :      return SZ_LEER;
        case C_KEINEZAHL : return SZ_KEINEZAHL;
        case C_ZUKLEIN :   return SZ_ZUKLEIN;
        case C_ZUGROSS :   return SZ_ZUGROSS;
        default:           return "Fehlerhafter Index in Methode getErrorCode: "+Integer.toString(ValError);
      } // switch
    }
    
    
    /**
    * description: überprüft, ob der String eine Integerzahl ist
    * Verwendet eine interne Variable zum Speichern des Wertes
    * @see DVal, LVal, getErrorCode
    *
    * @version     1.0  07.07.2002
    * @author      Michael Wilhelm HS Harz, FB AI
    * @param String sText
    * @return boolean
    * @exception keine
    */
    public static boolean IVal(String sText) {
        // erläuterung von iIVal = Integer.valueOf(szText).intValue();
        boolean result = true;
        String s;
        s = new String(sText); // neues Objekt
        s.trim();
        if (s.length() == 0) {
            ValError = C_LEER;
            intVal = 0;
            result = false;
        }
        else {
            try {
                intVal = Integer.valueOf(sText).intValue();
                ValError = 0;
            }
            catch (NumberFormatException e) {
                // Check ob die "Zahl" für den Integerbereich zu klein oder zu groß
                // System.err.println(e);
                try {
                    dblVal = Double.valueOf(sText).doubleValue();
                    if ( dblVal<Integer.MIN_VALUE) {
                      ValError = C_ZUKLEIN;
                    }
                    if ( dblVal>Integer.MAX_VALUE) {
                      ValError = C_ZUGROSS;
                    }
                }
                catch (NumberFormatException e2) {
                    // Hier könnte noch eine genauere Abfrage integriert werde,
                    // ob die Zahl nicht zu groß für den int-Bereich ist
                    // System.err.println(e);
                    ValError = C_KEINEZAHL;
                    intVal = 0;
                    result = false;
                }
                intVal = 0;
                result = false;
            }
        }
        return result;
    } // IVal



    /**
    * description: gibt den konvertierten Wert aus
    * @see IVal, DVal, LVal, getErrorCode
    *
    * @version     1.0  07.07.2002
    * @author Michael Wilhelm HS Harz, FB AI
    * @param String sText
    * @return String
    * @exception keine
    * @use gibt den Wert der Konvertierung aus
    * @see #setIValError
    * @see #setLValError
    * @see #setDValError
    */
    public static int getIValResult() {
       return intVal;
    }




    /**
    * LVal
    * description: überprüft, ob der String eine Long-Zahl ist
    * Verwendet eine interne Variable zum Speichern des Wertes
    * @see IVal, DVal, getErrorCode
    *
    * @version     1.0  07.07.2002
    * @author      Michael Wilhelm HS Harz, FB AI
    * @param String sText
    * @return boolean
    * @exception keine
    */
    public static boolean LVal(String sText) {
        // erläuterung von iIVal = Integer.valueOf(szText).intValue();
        boolean result = true;
        String s;
        s = new String(sText); // neues Objekt
        s.trim();
        if (s.length() == 0) {
            ValError = C_LEER;
            longVal = 0;
            result = false;
        }
        else {
            try {
                longVal = Long.valueOf(sText).longValue();
                ValError = 0;
            }
            catch (NumberFormatException e) {
                // Check ob die "Zahl" für den Integerbereich zu klein oder zu groß
                // System.err.println(e);
                try {
                    dblVal = Double.valueOf(sText).doubleValue();
                    if ( dblVal<Long.MIN_VALUE) {
                      ValError = C_ZUKLEIN;
                    }
                    if ( dblVal>Long.MAX_VALUE) {
                      ValError = C_ZUGROSS;
                    }
                }
                catch (NumberFormatException e2) {
                    // Hier könnte noch eine genauere Abfrage integriert werde,
                    // ob die Zahl nicht zu groß für den int-Bereich ist
                    // System.err.println(e);
                    ValError = C_KEINEZAHL;
                    longVal = 0;
                    result = false;
                }
                longVal = 0;
                result = false;
            }
        }
        return result;
    } // LVal



    /**
    * description: gibt den konvertierten Wert aus
    * @see IVal, DVal, LVal, getErrorCode
    *
    * @version     1.0  07.07.2002
    * @author Michael Wilhelm HS Harz, FB AI
    * @param keinen
    * @return long
    * @exception keine
    * @use gibt den Wert der Konvertierung aus
    * @see #getIValError
    * @see #setLValError
    * @see #setDValError
    */
    public static long getLValResult() {
       return longVal;
    }



    /**
    * DVal
    * description: überprüft, ob der String eine Double-Zahl ist
    * Verwendet eine interne Variable zum Speichern des Wertes
    * @see IVal, LVal, getErrorCode
    *
    * @version     1.0  07.07.2002
    * @author      Michael Wilhelm HS Harz, FB AI
    * @param String sText
    * @return boolean
    * @exception keine
    */
    public static boolean DVal(String sText) {
        // erläuterung von iIVal = Integer.valueOf(szText).intValue();
        boolean result = true;
        String s;
        s = new String(sText); // neues Objekt
        s.trim();
        if (s.length() == 0) {
            ValError = C_LEER;
            dblVal = 0;
            result = false;
        }
        else {
            try {
                dblVal = Double.valueOf(sText).doubleValue();
                ValError = 0;
            }
            catch (NumberFormatException e) {
                ValError = C_KEINEZAHL;
                dblVal = 0;
                result = false;
            }
        }
        return result;
    } // DVal



    /**
    * description: gibt den konvertierten Wert aus
    * @see IVal, DVal, LVal, getErrorCode
    *
    * @version     1.0  07.07.2002
    * @author Michael Wilhelm HS Harz, FB AI
    * @param keinen
    * @return double
    * @exception keine
    * @use gibt den Wert der Konvertierung aus
    * @see #getIValError
    * @see #setLValError
    * @see #setDValError
    */
    public static double getDValResult() {
       return dblVal;
    }


    




   
    /**
    * description: konvertiert einen double in einem String
    *              Parameter nk beschreibt die Nachkommastelle       
    *              nk = Anzahl der Nachkommastellen
    * @see IStr2, LStr2
    *
    * @version     1.0  07.07.2002
    * @author Michael Wilhelm HS Harz, FB AI
    * @param double d, int nk
    * @return String
    * @exception keine
    */
    public static String DStr(double d, int nk) {
        java.text.NumberFormat NF = java.text.NumberFormat.getInstance();
        NF.setMinimumFractionDigits(nk);
        NF.setMaximumFractionDigits(nk);
        return NF.format(d);
    }  // DStr

    
    
  /*  BESCHREIBUNG     : konvertiert ein int einen String mit mindestens   */
  /*                     zwei gültigen Ziffern                             */
  /*                     12     --->   "12"                                */
  /*                     123    --->   "123"                               */
  /*                     2      --->   "02"                                */
  /*                     1      --->   "01"                                */
  /*                     8      --->   "08"                                */

    /**
    * description: wandelt den int Wert in einen zweistelligen String um 
    *              Example 1 -> 01   123 ->  123
    * @see DStr, LStr2
    *
    * @version     1.0  07.07.2002
    * @author Michael Wilhelm HS Harz, FB AI
    * @param int iZahl
    * @return String
    * @exception keine
    */
    public static String IStr2(int iZahl) {
        String s;
        java.text.NumberFormat NF = java.text.NumberFormat.getInstance();
        s = NF.format(iZahl);
        if (s.length() < 2) s = "0" + s;
        return s;
    }  // IStr2



    /**
    * description: wandelt den long Wert in einen zweistelligen String um 
    *              Example 1 -> 01   123 ->  123
    * @see DStr, Str2
    *
    * @version     1.0  07.07.2002
    * @author Michael Wilhelm HS Harz, FB AI
    * @param long iZahl
    * @return String
    * @exception keine
    */
    public static String LStr2(long lZahl) {
        String s;
        java.text.NumberFormat NF = java.text.NumberFormat.getInstance();
        s = NF.format(lZahl);
        if (s.length() < 2) s = "0" + s;
        return s;
    }  // LStr2


    /**
    * description: konvertiert alle Kommas in einem String
    * @see Point2Komma
    *
    * @version     1.0  07.07.2002
    * @author Michael Wilhelm HS Harz, FB AI
    * @param String sText
    * @return String
    * @exception keine
    */
    public static String Komma2Point(String sText) {
        return sText.replace(',', '.');
    } // siehe Komma2Point



    /**
    * description: konvertiert alle Punkte in einem String
    * @see Komma2Point2
    *
    * @version     1.0  07.07.2002
    * @author Michael Wilhelm HS Harz, FB AI
    * @param String sText
    * @return String
    * @exception keine
    */
    public static String Point2Komma(String sText) {
        return sText.replace('.', ',');
    }



    /**
    * description: konvertiert alle Punkte in einem String
    * log10
    *
    * @version     1.0  07.07.2002
    * @author Michael Wilhelm HS Harz, FB AI
    * @param double x
    * @return double log10
    * @exception keine
    */
    public static double log10(double x) {
        return Math.log(x) / Math.log(10);
    }

    

    
    
    // Datei Methoden

    //   Beispiel
    //   szMom = bas.ChangeFileExt(szUFileName, ".MOM");

    /**
    * description: ändert die Extention eines Dateinamens (TXT bzw. DAT)
    * @see #CheckFileName
    * @see #getFileExt Ändern der Dateiwerweiterung  TXT  -> DAT
    *
    * @version     1.0  07.07.2002
    * @author Michael Wilhelm HS Harz, FB AI
    * @param String sFileName, String sExt
    * @return String
    * @exception keine
    * @see #CheckFileName
    * @see #ChangeFileExt
    * @see #getFileName extrahiert den Dateinamen ohne Pfad
    * @see #FileExists
    */
    public static String changeFileExt(String sFileName, String sExt) {
        String sErgFile;
        int k;
        sErgFile = "";
        File f = null;
        //File.pa
        try {
            // eventuell kann auch f.pathSeparatorChar verwendet werden
            // suche letzten Punkt
            k = sFileName.lastIndexOf(".");
            if (k == -1){ // kein Punkt vorhanden
              return new String(sFileName+sExt);
            }
            else {
              int n = sFileName.length();
                // beginIndex    EndIndex
              sErgFile = sFileName.substring(0,k);  // zählt von 0
              return new String(   sErgFile+sExt);
            }

        }
        catch (Exception e) {
        }
        return sErgFile;
    }
    //   Beispiel
    //   szMom = bas.getFileExt(szUFileName);
    //   szMom = ".MOM"




    /**
    * description: holt die Extention eines Dateinamens (TXT bzw. DAT)
    * @see #CheckFileName
    * @see #changeFileExt
    *
    * @version     1.1  31.01.2006
    * @author Michael Wilhelm HS Harz, FB AI
    * @param String sFileName, String sExt
    * @return String
    * @exception keine
    * @see #CheckFileName
    * @see #ChangeFileExt
    * @see #getFileName extrahiert den Dateinamen ohne Pfad
    * @see #FileExists
    */
    // besser mit lastIndexOf(String str)
    public static String getFileExt(String sFileName) {
        int k, i, n;
        n = sFileName.length();
        // suche von hinten erstes Auftreten eines Punktes
        k = sFileName.lastIndexOf(".");
        if (k == -1) // kein Punkt vorhanden
            return new String("");
        else {
            // substring zählt von NULL
            // Anfangsindex   EndIndex
            String s;
            s = sFileName.substring(k, n);
            return sFileName.substring(k, n);
        }
    } // getFileExt
    
    

    /**
    * GetFileNameExt
    * description: holt den Namen und die Extention eines Dateinamens, ohne Pfad
    * @return String Name+Ext
    * @param String sFileName
    * @exception none
    * @version      1.1, 31.01.2006
    * @author Michael Wilhelm HS Harz, FB AI
    * @use Example
    * @see #CheckFileName
    * @see #ChangeFileExt
    * @see #getFileName extrahiert den Dateinamen ohne Pfad
    * @see #FileExists
    */
    public static String getFileNameExt(String sFileName) {
        int k, n;
        n = sFileName.length();
        k = sFileName.lastIndexOf("\\");
        if (k == -1) {
            // test mit /
            k = sFileName.lastIndexOf("/");
            if (k == -1)
                return sFileName;
            else {
                  // beginIndex   endIndex
                return sFileName.substring(k+1, n); // ??????  n-1 ist zu klein            
            }
        }
        else {
              // beginIndex   endIndex
            return sFileName.substring(k+1, n); // ??????  n-1 ist zu klein                        
        }
    }  // getFileNameExt

    
    /**
    * GetFileNameExt
    * description: holt nur den Namen, mit Pfad, ohne Extention
    * @return String Name
    * @param String sFileName
    * @exception none
    * @version      1.1, 31.01.2006
    * @author Michael Wilhelm HS Harz, FB AI
    * @use Example
    * @see #CheckFileName
    * @see #ChangeFileExt
    * @see #getFileNameExt
    * @see #FileExists
    */
    public static String getFileName(String sFileName) {
        int k, i, n;
        n = sFileName.length();
        k = sFileName.lastIndexOf(".");
        if (k == -1)
            return sFileName;
        else
            return sFileName.substring(0, k);  // ohne Punkt
    }  // getFileName

    

    /**
    * FileExists
    * description: prüft, ob die Datei existiert
    * @return boolean
    * @param String sFileName
    * @exception none
    * @version      1.1, 31.01.2006
    * @author Michael Wilhelm HS Harz, FB AI
    * @use Example
    * @see #CheckFileName
    * @see #ChangeFileExt
    * @see #getFileNameExt
    */
    public static boolean FileExists(String sFileName) {
        File f = null;
        try {
            // evnetuell kann auch f.pathSeparatorChar verwendet werden
            f = new File(sFileName);
            if (f.exists())
                return true;
            else
                return false;
        }
        catch (Exception e) {
            return false;
        }
    }  // FileExists


    
    

    /**
    * CheckFileName
    * description: Prüft, ob die Datei ein gültiges Format hat
    * @return boolean 
    * @param String sFileName
    * @exception none
    * @version      1.1, 31.01.2006
    * @author Michael Wilhelm HS Harz, FB AI
    * @use Prüft, ob der Dateiname gültig ist 
    * @see #getFileName
    * @see #ChangeFileExt
    */
  /*  VERFAHREN        :  Check ob folgende Zeichen vorhanden sind,        */
  /*                      dann falsch                                      */
  /*                      \  /   :  ?  *  "  <  >  |                       */
  /*                      Suche geschieht mit der Methode indexOf          */
  /*                                                                       */
    public static boolean CheckFileName(String sFileName) {
        if (sFileName.length() == 0) {
            return false;
        }
        else {
            int i;
            i = sFileName.indexOf('\\', 0);
            if (i > 0) return false;
            i = sFileName.indexOf('/', 0);
            if (i > 0) return false;
            i = sFileName.indexOf(':', 0);
            if (i > 0) return false;
            i = sFileName.indexOf('?', 0);
            if (i > 0) return false;
            i = sFileName.indexOf('*', 0);
            if (i > 0) return false;
            i = sFileName.indexOf('"', 0);
            if (i > 0) return false;
            i = sFileName.indexOf('<', 0);
            if (i > 0) return false;
            i = sFileName.indexOf('>', 0);
            if (i > 0) return false;
            i = sFileName.indexOf('|', 0);
            if (i > 0) return false;
            return true;
        }
    } //  CheckFileName


    /**
    * centerScreen
    * description: Zentriert das Fenster
    * @return none
    * @param java.awt.Window frame, java.awt.Dimension preset
    * @exception none
    * @version      1.1, 31.01.2006
    * @author Michael Wilhelm HS Harz, FB AI
    */
    public static void centerScreen(java.awt.Window frame, java.awt.Dimension preset) {
        java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
        java.awt.Dimension frameSize;
        if (preset == null)
            preset = frame.getSize();
        if (preset.height > screenSize.height)
            preset.height = screenSize.height;
        if (preset.width > screenSize.width)
            preset.width = screenSize.width;
        // set new pos:
        frame.setBounds((screenSize.width - preset.width) >>1, (screenSize.height - preset.height) >> 1,
            preset.width, preset.height);
    }  // centerScreen



    /**
    * getButton
    * description: Bestimmen, welche Maustaset gedrückt wurde Example
    * @return int taste, links=1  mitte=2, rechts=3
    * @param MouseEvent e
    * @exception none
    * @version      1.1, 31.01.2006
    * @author Michael Wilhelm HS Harz, FB AI
    */
    public static int getButton(MouseEvent e) {
        int mode = e.getModifiers();
        if ((mode & e.BUTTON2_MASK) > 0) {
            return 2;
        }
        if ((mode & e.BUTTON3_MASK) > 0) {
            return 3;
        }
        return 1;
    } // getButton


}  // CBasis




