client/ftpd/src/se/lu/thep/coreftpd/webserver/SetupXerverKernel.java

Code
Comments
Other
Rev Date Author Line
741 10 Oct 06 olle 1 /*
1652 22 May 07 gregory 2  $Id$
741 10 Oct 06 olle 3
1916 31 Aug 07 jari 4  Copyright (C) 2006 Olle Mansson
1916 31 Aug 07 jari 5  Copyright (C) 2007 Gregory Vincic
741 10 Oct 06 olle 6
1652 22 May 07 gregory 7  This file is part of Proteios.
1652 22 May 07 gregory 8  Available at http://www.proteios.org/
741 10 Oct 06 olle 9
1652 22 May 07 gregory 10  Proteios is free software; you can redistribute it and/or modify it
1652 22 May 07 gregory 11  under the terms of the GNU General Public License as published by
1652 22 May 07 gregory 12  the Free Software Foundation; either version 2 of the License, or
1652 22 May 07 gregory 13  (at your option) any later version.
741 10 Oct 06 olle 14
1652 22 May 07 gregory 15  Proteios is distributed in the hope that it will be useful, but
1652 22 May 07 gregory 16  WITHOUT ANY WARRANTY; without even the implied warranty of
1652 22 May 07 gregory 17  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
1652 22 May 07 gregory 18  General Public License for more details.
741 10 Oct 06 olle 19
1652 22 May 07 gregory 20  You should have received a copy of the GNU General Public License
1652 22 May 07 gregory 21  along with this program; if not, write to the Free Software
1652 22 May 07 gregory 22  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
1652 22 May 07 gregory 23  02111-1307, USA.
1652 22 May 07 gregory 24  */
741 10 Oct 06 olle 25
741 10 Oct 06 olle 26 //  Xerver Free Web Server
741 10 Oct 06 olle 27 //  Copyright (C) 2002-2005 Omid Rouhani
741 10 Oct 06 olle 28 //
741 10 Oct 06 olle 29 //
741 10 Oct 06 olle 30 //  This program is free software; you can redistribute it and/or
741 10 Oct 06 olle 31 //  modify it under the terms of the GNU General Public License
741 10 Oct 06 olle 32 //  as published by the Free Software Foundation; either version 2
741 10 Oct 06 olle 33 //  of the License, or (at your option) any later version.
741 10 Oct 06 olle 34 //
741 10 Oct 06 olle 35 //  This program is distributed in the hope that it will be useful,
741 10 Oct 06 olle 36 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
741 10 Oct 06 olle 37 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
741 10 Oct 06 olle 38 //  GNU General Public License for more details.
741 10 Oct 06 olle 39 //
741 10 Oct 06 olle 40 //  You should have received a copy of the GNU General Public License
741 10 Oct 06 olle 41 //  along with this program; if not, write to the Free Software
741 10 Oct 06 olle 42 //  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
741 10 Oct 06 olle 43 //
741 10 Oct 06 olle 44 //
741 10 Oct 06 olle 45 //  #############################################################
741 10 Oct 06 olle 46 //  ##  YOU CAN CONTACT THE AUTHOR (OMID ROUHANI) AT:          ##
741 10 Oct 06 olle 47 //  ##  HTTP://WWW.JAVASCRIPT.NU/XERVER/                       ##
741 10 Oct 06 olle 48 //  ##                                                         ##
741 10 Oct 06 olle 49 //  ##  IF YOUR SOFTWARE IS NOT RELEASED UNDER THE             ##
741 10 Oct 06 olle 50 //  ##  GNU GENERAL PUBLIC LICENSE (GPL),                      ##
741 10 Oct 06 olle 51 //  ##  PLEASE DO NOT COPY ANYTHING FROM THIS SOURCE CODE!!!   ##
741 10 Oct 06 olle 52 //  ##                                                         ##
741 10 Oct 06 olle 53 //  ##  FOR FULL LICENSE, PLEASE READ "XERVER LICENSE".        ##
741 10 Oct 06 olle 54 //  #############################################################
741 10 Oct 06 olle 55
1652 22 May 07 gregory 56 package se.lu.thep.coreftpd.webserver;
741 10 Oct 06 olle 57
791 23 Oct 06 olle 58 import se.lu.thep.coreftpd.common.HostInfo;
791 23 Oct 06 olle 59 import se.lu.thep.coreftpd.common.MyWindow;
741 10 Oct 06 olle 60 import java.awt.Color;
741 10 Oct 06 olle 61 import java.awt.Font;
741 10 Oct 06 olle 62 import java.net.ServerSocket;
741 10 Oct 06 olle 63 import java.net.Socket;
741 10 Oct 06 olle 64 import java.util.Locale;
741 10 Oct 06 olle 65
741 10 Oct 06 olle 66 /**
1652 22 May 07 gregory 67  * 
1652 22 May 07 gregory 68  * <B>About this class:</B> <BR>
1652 22 May 07 gregory 69  * This is the kernel for the setup program (and it's a <CODE>Thread</CODE>).
1652 22 May 07 gregory 70  * This class creates all <CODE>Thread</CODE>s (<CODE>SetupNewConnection</CODE>)
1652 22 May 07 gregory 71  * that are used when a request is sent to the setup server. Instead of starting
1652 22 May 07 gregory 72  * this class, start <CODE>SetupXerver</CODE>.
1652 22 May 07 gregory 73  * 
741 10 Oct 06 olle 74  * @author <a href="http://www.JavaScript.nu/xerver/" TARGET="_top">Omid Rouhani</a>
741 10 Oct 06 olle 75  * @version 1.0
741 10 Oct 06 olle 76  */
741 10 Oct 06 olle 77
1652 22 May 07 gregory 78 final public class SetupXerverKernel extends Thread {
1652 22 May 07 gregory 79   private final static boolean b_showErrors = false;
1652 22 May 07 gregory 80
1652 22 May 07 gregory 81   private static int i_portNr = 32123;
1652 22 May 07 gregory 82
741 10 Oct 06 olle 83   private MyWindow theWindow;
1652 22 May 07 gregory 84
1652 22 May 07 gregory 85   private boolean b_showAWTWindow = true;
1652 22 May 07 gregory 86
741 10 Oct 06 olle 87   private String s_egetIp;
741 10 Oct 06 olle 88
1652 22 May 07 gregory 89   private MenuOptions myMenuOptions = null; // This will remain null if you
1652 22 May 07 gregory 90                         // for example start Xerver
1652 22 May 07 gregory 91                         // directly from
1652 22 May 07 gregory 92                         // SetupXerver.class. However,
1652 22 May 07 gregory 93                         // if you start Xerver from the
1652 22 May 07 gregory 94                         // swing interface this will NOT
1652 22 May 07 gregory 95                         // be null.
1652 22 May 07 gregory 96
1652 22 May 07 gregory 97   private boolean xerverSetupHasStarted = false, b_hasStartedXerver = false; // use
1652 22 May 07 gregory 98                                         // b_hasStartedXerver
1652 22 May 07 gregory 99                                         // to
1652 22 May 07 gregory 100                                         // make
1652 22 May 07 gregory 101                                         // sure
1652 22 May 07 gregory 102                                         // no
1652 22 May 07 gregory 103                                         // more
1652 22 May 07 gregory 104                                         // than
1652 22 May 07 gregory 105                                         // one
1652 22 May 07 gregory 106                                         // instance
1652 22 May 07 gregory 107                                         // of
1652 22 May 07 gregory 108                                         // Xerver
1652 22 May 07 gregory 109                                         // is
1652 22 May 07 gregory 110                                         // started
1652 22 May 07 gregory 111                                         // ("new
1652 22 May 07 gregory 112                                         // Start();"
1652 22 May 07 gregory 113                                         // is
1652 22 May 07 gregory 114                                         // run
1652 22 May 07 gregory 115                                         // when
1652 22 May 07 gregory 116                                         // this
1652 22 May 07 gregory 117                                         // setup
1652 22 May 07 gregory 118                                         // has
1652 22 May 07 gregory 119                                         // been
1652 22 May 07 gregory 120                                         // started
1652 22 May 07 gregory 121                                         // from
1652 22 May 07 gregory 122                                         // InstallXerver,
1652 22 May 07 gregory 123                                         // but
1652 22 May 07 gregory 124                                         // shall
1652 22 May 07 gregory 125                                         // never
1652 22 May 07 gregory 126                                         // be
1652 22 May 07 gregory 127                                         // run
1652 22 May 07 gregory 128                                         // twice
1652 22 May 07 gregory 129                                         // (or
1652 22 May 07 gregory 130                                         // the
1652 22 May 07 gregory 131                                         // user
1652 22 May 07 gregory 132                                         // will
1652 22 May 07 gregory 133                                         // see
1652 22 May 07 gregory 134                                         // two
1652 22 May 07 gregory 135                                         // Xerver-windows))
1652 22 May 07 gregory 136
1652 22 May 07 gregory 137   protected boolean b_show401NotAuthorized = true;
1652 22 May 07 gregory 138
1652 22 May 07 gregory 139   SetupXerverKernel() {
1652 22 May 07 gregory 140     Locale.setDefault(new Locale("en", "US")); // I "java.util.*"
1652 22 May 07 gregory 141     // By default only the own computer shall be able to reach the setup:
1652 22 May 07 gregory 142     // startXerverSetup();
741 10 Oct 06 olle 143   }
741 10 Oct 06 olle 144
1652 22 May 07 gregory 145   SetupXerverKernel(MenuOptions argMenuOptions) {
1652 22 May 07 gregory 146     b_showAWTWindow = false; // Don't show Xerver window when starting
1652 22 May 07 gregory 147                   // with swing interafce
1652 22 May 07 gregory 148     myMenuOptions = argMenuOptions;
1652 22 May 07 gregory 149     // By default only the own computer shall be able to reach the setup:
1652 22 May 07 gregory 150     // startXerverSetup();
741 10 Oct 06 olle 151   }
741 10 Oct 06 olle 152
1652 22 May 07 gregory 153   SetupXerverKernel(boolean argShowAWTWindow, int argPort,
1652 22 May 07 gregory 154       boolean argXerverSetupHasStarted) {
1652 22 May 07 gregory 155     b_showAWTWindow = argShowAWTWindow;
1652 22 May 07 gregory 156     if (argPort != -1) {
1652 22 May 07 gregory 157       i_portNr = argPort;
741 10 Oct 06 olle 158     }
1652 22 May 07 gregory 159     xerverSetupHasStarted = argXerverSetupHasStarted;
1652 22 May 07 gregory 160     Locale.setDefault(new Locale("en", "US")); // I "java.util.*"
1652 22 May 07 gregory 161     // By default only the own computer shall be able to reach the setup:
1652 22 May 07 gregory 162     // startXerverSetup();
741 10 Oct 06 olle 163   }
741 10 Oct 06 olle 164
2386 14 Nov 07 gregory 165   @Override
1652 22 May 07 gregory 166   public void run() {
1652 22 May 07 gregory 167     try {
1652 22 May 07 gregory 168       // getServerDefaults();
1652 22 May 07 gregory 169       ServerSocket myServerSocket = new ServerSocket(i_portNr);
741 10 Oct 06 olle 170
1652 22 May 07 gregory 171       /*
1652 22 May 07 gregory 172        * s_egetIp=InetAddress.getLocalHost().toString(); //
1652 22 May 07 gregory 173        * "pii-450/213.114.143.48"
1652 22 May 07 gregory 174        * s_egetIp=s_egetIp.substring(s_egetIp.indexOf("/")+1);
1652 22 May 07 gregory 175        */
1652 22 May 07 gregory 176       s_egetIp = HostInfo.getIPorLocalhost();
741 10 Oct 06 olle 177
1652 22 May 07 gregory 178       openWindow(); // s_egetIp ska ha initierats innan denna rad...
741 10 Oct 06 olle 179
1652 22 May 07 gregory 180       if (myMenuOptions == null) // If the user has no graphical
1652 22 May 07 gregory 181                     // interface (is not using
1652 22 May 07 gregory 182                     // ProgramWindow), then...
1652 22 May 07 gregory 183       {
1652 22 May 07 gregory 184         writeManyChar("#", 70);
1652 22 May 07 gregory 185         writeNiceText("Xerver Setup is running!", 64);
1652 22 May 07 gregory 186         writeNiceText("To start Setup you must visit:", 64);
1652 22 May 07 gregory 187         writeNiceText("http://" + s_egetIp + ":" + i_portNr + "/", 64);
1652 22 May 07 gregory 188         writeManyChar("#", 70);
1652 22 May 07 gregory 189       }
741 10 Oct 06 olle 190
1652 22 May 07 gregory 191       Socket so_userConnection;// create this ONCE outside the loop...
1652 22 May 07 gregory 192                     // (it's faster...)
1652 22 May 07 gregory 193       while (true) // IMPORTANT!!! make sure this loop won't go around
1652 22 May 07 gregory 194               // too many times without doing anything or java
1652 22 May 07 gregory 195               // will use up to 100% CPU. Instead let the loop be
1652 22 May 07 gregory 196               // halted by for example an accept call which will
1652 22 May 07 gregory 197               // wait for a network connection to be
1652 22 May 07 gregory 198               // established...
741 10 Oct 06 olle 199       {
1652 22 May 07 gregory 200         try {
1652 22 May 07 gregory 201           so_userConnection = myServerSocket.accept(); // Wait
1652 22 May 07 gregory 202                                   // until
1652 22 May 07 gregory 203                                   // first
1652 22 May 07 gregory 204                                   // connection
1652 22 May 07 gregory 205                                   // has been
1652 22 May 07 gregory 206                                   // established
1652 22 May 07 gregory 207           so_userConnection.setSoTimeout(5000);
1652 22 May 07 gregory 208           // System.out.println(InetAddress.getLocalHost());
1652 22 May 07 gregory 209           // System.out.println(so_userConnection.getLocalAddress());
1652 22 May 07 gregory 210           if (xerverSetupHasStarted
1652 22 May 07 gregory 211               || so_userConnection.getLocalAddress().equals(
1652 22 May 07 gregory 212                   so_userConnection.getInetAddress())) {
1652 22 May 07 gregory 213             SetupNewConnection myNewConnection = new SetupNewConnection(
1652 22 May 07 gregory 214                 so_userConnection, this);
1652 22 May 07 gregory 215             myNewConnection.start();
1652 22 May 07 gregory 216           }
1652 22 May 07 gregory 217         } catch (Exception e) {
1652 22 May 07 gregory 218           if (b_showErrors)
1652 22 May 07 gregory 219             System.out.println("An error has occured @ run\n" + e);
741 10 Oct 06 olle 220         }
741 10 Oct 06 olle 221       }
1652 22 May 07 gregory 222     } catch (Exception e) {
1652 22 May 07 gregory 223       if (b_showAWTWindow) {
1652 22 May 07 gregory 224         theWindow = new MyWindow(530, 200, "Xerver: An error occured");
1652 22 May 07 gregory 225         System.out
1652 22 May 07 gregory 226             .println("An error occured:\nYou are probably already running Xerver.\nIf you're not running Xerver already you have another application using port "
1652 22 May 07 gregory 227                 + i_portNr
1652 22 May 07 gregory 228                 + ".\nPlease run the setup and change the port number you are using to another number.");
1652 22 May 07 gregory 229         theWindow.setBackground(new Color(212, 208, 200));
741 10 Oct 06 olle 230
1652 22 May 07 gregory 231         int deltaX = 0, deltaY = 0; // To make it easy to adjust there
1652 22 May 07 gregory 232                       // is no specific origo
1652 22 May 07 gregory 233         theWindow.setFont(new Font("Arial, Verdana", Font.BOLD, 38));
1652 22 May 07 gregory 234         theWindow.setColor(Color.black);
1652 22 May 07 gregory 235         theWindow.drawString("X", 22 + deltaX, 32 + deltaY);
1652 22 May 07 gregory 236         theWindow.setColor(Color.black);
1652 22 May 07 gregory 237         theWindow.drawString("erver", 46 + deltaX, 32 + deltaY);
1652 22 May 07 gregory 238         theWindow.setColor(Color.gray);
1652 22 May 07 gregory 239         theWindow.drawString("- an error occured", 152 + deltaX,
1652 22 May 07 gregory 240             32 + deltaY);
741 10 Oct 06 olle 241
1652 22 May 07 gregory 242         theWindow.setColor(Color.red);
1652 22 May 07 gregory 243         theWindow.drawString("X", 20 + deltaX, 30 + deltaY);
1652 22 May 07 gregory 244         theWindow.setColor(Color.blue);
1652 22 May 07 gregory 245         theWindow.drawString("erver", 44 + deltaX, 30 + deltaY);
1652 22 May 07 gregory 246         theWindow.setColor(Color.black);
1652 22 May 07 gregory 247         theWindow.drawString("- an error occured", 150 + deltaX,
1652 22 May 07 gregory 248             30 + deltaY);
741 10 Oct 06 olle 249
1652 22 May 07 gregory 250         theWindow.setColor(Color.black);
1652 22 May 07 gregory 251         theWindow.setFont(new Font("Courier", Font.PLAIN, 12));
741 10 Oct 06 olle 252
1652 22 May 07 gregory 253         int xKord = 5, yKord = 50, deltaYKord = 13;
1652 22 May 07 gregory 254         theWindow.drawString(returnManyChar("#", 70), xKord,
1652 22 May 07 gregory 255             yKord += deltaYKord);
1652 22 May 07 gregory 256         theWindow.drawString(returnNiceText("An error occured:", 64),
1652 22 May 07 gregory 257             xKord, yKord += deltaYKord);
1652 22 May 07 gregory 258         theWindow.drawString(returnNiceText(
1652 22 May 07 gregory 259             "You are probably already running Xerver setup.", 64),
1652 22 May 07 gregory 260             xKord, yKord += deltaYKord);
1652 22 May 07 gregory 261         theWindow.drawString(returnNiceText(
1652 22 May 07 gregory 262             "If you're not running Xerver setup already,", 64),
1652 22 May 07 gregory 263             xKord, yKord += deltaYKord);
1652 22 May 07 gregory 264         theWindow.drawString(returnNiceText(
1652 22 May 07 gregory 265             "try to start the setup again in a few seconds.", 64),
1652 22 May 07 gregory 266             xKord, yKord += deltaYKord);
1652 22 May 07 gregory 267         theWindow.drawString(returnManyChar("#", 70), xKord,
1652 22 May 07 gregory 268             yKord += deltaYKord);
1652 22 May 07 gregory 269       }// if
1652 22 May 07 gregory 270     }// catch
1652 22 May 07 gregory 271   }// run
741 10 Oct 06 olle 272
1652 22 May 07 gregory 273   public void startXerverSetup() {
1652 22 May 07 gregory 274     xerverSetupHasStarted = true;
741 10 Oct 06 olle 275   }
741 10 Oct 06 olle 276
1652 22 May 07 gregory 277   public void stopXerverSetup() {
1652 22 May 07 gregory 278     xerverSetupHasStarted = false;
741 10 Oct 06 olle 279   }
741 10 Oct 06 olle 280
1652 22 May 07 gregory 281   private void openWindow() {
1652 22 May 07 gregory 282     if (b_showAWTWindow) {
1652 22 May 07 gregory 283       theWindow = new MyWindow(530, 350, "Xerver setup is running");
741 10 Oct 06 olle 284       theWindow.setColor(Color.black);
1652 22 May 07 gregory 285       theWindow.setBackground(new Color(212, 208, 200));
741 10 Oct 06 olle 286
1652 22 May 07 gregory 287       int deltaX = 0, deltaY = 0; // To make it easy to adjust there is no
1652 22 May 07 gregory 288                     // specific origo
741 10 Oct 06 olle 289       theWindow.setFont(new Font("Arial, Verdana", Font.BOLD, 38));
1652 22 May 07 gregory 290       theWindow.drawString("X", 22 + deltaX, 32 + deltaY);
741 10 Oct 06 olle 291       theWindow.setColor(Color.black);
1652 22 May 07 gregory 292       theWindow.drawString("erver", 46 + deltaX, 32 + deltaY);
741 10 Oct 06 olle 293       theWindow.setColor(Color.gray);
1652 22 May 07 gregory 294       theWindow.drawString("setup is running...", 152 + deltaX,
1652 22 May 07 gregory 295           32 + deltaY);
741 10 Oct 06 olle 296
741 10 Oct 06 olle 297       theWindow.setColor(Color.red);
1652 22 May 07 gregory 298       theWindow.drawString("X", 20 + deltaX, 30 + deltaY);
741 10 Oct 06 olle 299       theWindow.setColor(Color.blue);
1652 22 May 07 gregory 300       theWindow.drawString("erver", 44 + deltaX, 30 + deltaY);
741 10 Oct 06 olle 301       theWindow.setColor(Color.black);
1652 22 May 07 gregory 302       theWindow.drawString("setup is running...", 150 + deltaX,
1652 22 May 07 gregory 303           30 + deltaY);
741 10 Oct 06 olle 304
741 10 Oct 06 olle 305       theWindow.setColor(Color.black);
741 10 Oct 06 olle 306       theWindow.setFont(new Font("Courier", Font.PLAIN, 12));
741 10 Oct 06 olle 307
1652 22 May 07 gregory 308       int xKord = 5, yKord = 65, deltaYKord = 13;
741 10 Oct 06 olle 309
1652 22 May 07 gregory 310       theWindow.drawString("", xKord, yKord += deltaYKord);
1652 22 May 07 gregory 311       theWindow.drawString("", xKord, yKord += deltaYKord);
741 10 Oct 06 olle 312
1652 22 May 07 gregory 313       theWindow.drawString(returnManyChar("#", 70), xKord,
1652 22 May 07 gregory 314           yKord += deltaYKord);
1652 22 May 07 gregory 315       theWindow.drawString(
1652 22 May 07 gregory 316           returnNiceText("Xerver Setup is running!", 64), xKord,
1652 22 May 07 gregory 317           yKord += deltaYKord);
1652 22 May 07 gregory 318       theWindow.drawString(returnNiceText(
1652 22 May 07 gregory 319           "To start Setup you must visit:", 64), xKord,
1652 22 May 07 gregory 320           yKord += deltaYKord);
1652 22 May 07 gregory 321       theWindow.drawString(returnNiceText("http://" + s_egetIp + ":"
1652 22 May 07 gregory 322           + i_portNr + "/", 64), xKord, yKord += deltaYKord);
1652 22 May 07 gregory 323       theWindow.drawString(returnManyChar("#", 70), xKord,
1652 22 May 07 gregory 324           yKord += deltaYKord);
741 10 Oct 06 olle 325
1652 22 May 07 gregory 326       theWindow.drawString("", xKord, yKord += deltaYKord);
1652 22 May 07 gregory 327       theWindow.drawString("", xKord, yKord += deltaYKord);
741 10 Oct 06 olle 328
1652 22 May 07 gregory 329       theWindow.drawString(returnManyChar("#", 70), xKord,
1652 22 May 07 gregory 330           yKord += deltaYKord);
1652 22 May 07 gregory 331       theWindow.drawString(returnNiceText(
1652 22 May 07 gregory 332           "Close this window when you are done!", 64), xKord,
1652 22 May 07 gregory 333           yKord += deltaYKord);
1652 22 May 07 gregory 334       theWindow.drawString(returnManyChar("#", 70), xKord,
1652 22 May 07 gregory 335           yKord += deltaYKord);
1652 22 May 07 gregory 336       theWindow.drawString(returnNiceText(
1652 22 May 07 gregory 337           "http://www.JavaScript.nu/xerver/", 64), xKord,
1652 22 May 07 gregory 338           yKord += deltaYKord);
1652 22 May 07 gregory 339       theWindow.drawString(returnManyChar("#", 70), xKord,
1652 22 May 07 gregory 340           yKord += deltaYKord);
741 10 Oct 06 olle 341     }
741 10 Oct 06 olle 342   }
741 10 Oct 06 olle 343
1652 22 May 07 gregory 344   public void setupIsDone(boolean setupIsFinished) {
1652 22 May 07 gregory 345     if (myMenuOptions == null && setupIsFinished) // If [The setup is
1652 22 May 07 gregory 346                             // finished] and [user
1652 22 May 07 gregory 347                             // interface is NOT
1652 22 May 07 gregory 348                             // being used] ==> Start
1652 22 May 07 gregory 349                             // Xerver!
1652 22 May 07 gregory 350     { // Turn off setup...
1652 22 May 07 gregory 351       if (!b_hasStartedXerver) {
1652 22 May 07 gregory 352         // stopXerverSetup(); //Don't stop the setup-server, as the
1652 22 May 07 gregory 353         // images on the last setup-website won't be shown
741 10 Oct 06 olle 354         theWindow.setVisible(false);
741 10 Oct 06 olle 355         theWindow.dispose();
741 10 Oct 06 olle 356         new Start();
1652 22 May 07 gregory 357         b_hasStartedXerver = true;
741 10 Oct 06 olle 358       }
1652 22 May 07 gregory 359     } else if (myMenuOptions != null) // If [user interface is being
1652 22 May 07 gregory 360                       // used]...
741 10 Oct 06 olle 361       myMenuOptions.xerverSetupIsDone(setupIsFinished);
1652 22 May 07 gregory 362     // else [[user interface is NOT being used] and [the setup is NOT
1652 22 May 07 gregory 363     // finsihed]]...
741 10 Oct 06 olle 364   }
741 10 Oct 06 olle 365
1652 22 May 07 gregory 366   private static void writeNiceText(String txt, int lengthOfText) {
1652 22 May 07 gregory 367     StringBuffer strBuf = new StringBuffer("## " + txt);
1652 22 May 07 gregory 368     int forGoUntil = lengthOfText - txt.length(); // Optimization...
1652 22 May 07 gregory 369     for (int i = 0; i < forGoUntil; i++)
741 10 Oct 06 olle 370       strBuf.append(" ");
741 10 Oct 06 olle 371     strBuf.append(" ##");
741 10 Oct 06 olle 372     System.out.println(strBuf.toString());
741 10 Oct 06 olle 373   }
741 10 Oct 06 olle 374
1652 22 May 07 gregory 375   private static void writeManyChar(String txt, int lengthOfText) {
1652 22 May 07 gregory 376     StringBuffer strBuf = new StringBuffer(txt); // Add the frst here....
1652 22 May 07 gregory 377     for (int i = 1; i < lengthOfText; i++)
1652 22 May 07 gregory 378       // And have "1" here (not "0")
741 10 Oct 06 olle 379       strBuf.append(txt);
741 10 Oct 06 olle 380     System.out.println(strBuf.toString());
741 10 Oct 06 olle 381   }
741 10 Oct 06 olle 382
1652 22 May 07 gregory 383   private static String returnNiceText(String txt, int lengthOfText) {
1652 22 May 07 gregory 384     StringBuffer strBuf = new StringBuffer("## " + txt);
1652 22 May 07 gregory 385     int forGoUntil = lengthOfText - txt.length(); // Optimization...
1652 22 May 07 gregory 386     for (int i = 0; i < forGoUntil; i++)
741 10 Oct 06 olle 387       strBuf.append(" ");
741 10 Oct 06 olle 388     strBuf.append(" ##");
741 10 Oct 06 olle 389     return strBuf.toString();
741 10 Oct 06 olle 390   }
741 10 Oct 06 olle 391
1652 22 May 07 gregory 392   private static String returnManyChar(String txt, int lengthOfText) {
1652 22 May 07 gregory 393     StringBuffer strBuf = new StringBuffer(txt); // Add the first txt
1652 22 May 07 gregory 394                             // here....
1652 22 May 07 gregory 395                             // //Optimization...
1652 22 May 07 gregory 396     for (int i = 1; i < lengthOfText; i++)
1652 22 May 07 gregory 397       // And have "1" here (not "0")
741 10 Oct 06 olle 398       strBuf.append(txt);
741 10 Oct 06 olle 399
741 10 Oct 06 olle 400     return strBuf.toString();
741 10 Oct 06 olle 401   }
741 10 Oct 06 olle 402 }