741 |
10 Oct 06 |
olle |
1 |
/* |
1652 |
22 May 07 |
gregory |
$Id$ |
741 |
10 Oct 06 |
olle |
3 |
|
1916 |
31 Aug 07 |
jari |
Copyright (C) 2006 Olle Mansson |
1916 |
31 Aug 07 |
jari |
Copyright (C) 2007 Gregory Vincic |
741 |
10 Oct 06 |
olle |
6 |
|
1652 |
22 May 07 |
gregory |
This file is part of Proteios. |
1652 |
22 May 07 |
gregory |
Available at http://www.proteios.org/ |
741 |
10 Oct 06 |
olle |
9 |
|
1652 |
22 May 07 |
gregory |
Proteios is free software; you can redistribute it and/or modify it |
1652 |
22 May 07 |
gregory |
under the terms of the GNU General Public License as published by |
1652 |
22 May 07 |
gregory |
the Free Software Foundation; either version 2 of the License, or |
1652 |
22 May 07 |
gregory |
(at your option) any later version. |
741 |
10 Oct 06 |
olle |
14 |
|
1652 |
22 May 07 |
gregory |
Proteios is distributed in the hope that it will be useful, but |
1652 |
22 May 07 |
gregory |
WITHOUT ANY WARRANTY; without even the implied warranty of |
1652 |
22 May 07 |
gregory |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
1652 |
22 May 07 |
gregory |
General Public License for more details. |
741 |
10 Oct 06 |
olle |
19 |
|
1652 |
22 May 07 |
gregory |
You should have received a copy of the GNU General Public License |
1652 |
22 May 07 |
gregory |
along with this program; if not, write to the Free Software |
1652 |
22 May 07 |
gregory |
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA |
1652 |
22 May 07 |
gregory |
02111-1307, USA. |
1652 |
22 May 07 |
gregory |
24 |
*/ |
741 |
10 Oct 06 |
olle |
25 |
|
741 |
10 Oct 06 |
olle |
// Xerver Free Web Server |
741 |
10 Oct 06 |
olle |
// Copyright (C) 2002-2005 Omid Rouhani |
741 |
10 Oct 06 |
olle |
28 |
// |
741 |
10 Oct 06 |
olle |
29 |
// |
741 |
10 Oct 06 |
olle |
// This program is free software; you can redistribute it and/or |
741 |
10 Oct 06 |
olle |
// modify it under the terms of the GNU General Public License |
741 |
10 Oct 06 |
olle |
// as published by the Free Software Foundation; either version 2 |
741 |
10 Oct 06 |
olle |
// of the License, or (at your option) any later version. |
741 |
10 Oct 06 |
olle |
34 |
// |
741 |
10 Oct 06 |
olle |
// This program is distributed in the hope that it will be useful, |
741 |
10 Oct 06 |
olle |
// but WITHOUT ANY WARRANTY; without even the implied warranty of |
741 |
10 Oct 06 |
olle |
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
741 |
10 Oct 06 |
olle |
// GNU General Public License for more details. |
741 |
10 Oct 06 |
olle |
39 |
// |
741 |
10 Oct 06 |
olle |
// You should have received a copy of the GNU General Public License |
741 |
10 Oct 06 |
olle |
// along with this program; if not, write to the Free Software |
741 |
10 Oct 06 |
olle |
// 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 |
// ## YOU CAN CONTACT THE AUTHOR (OMID ROUHANI) AT: ## |
741 |
10 Oct 06 |
olle |
// ## HTTP://WWW.JAVASCRIPT.NU/XERVER/ ## |
741 |
10 Oct 06 |
olle |
48 |
// ## ## |
741 |
10 Oct 06 |
olle |
// ## IF YOUR SOFTWARE IS NOT RELEASED UNDER THE ## |
741 |
10 Oct 06 |
olle |
// ## GNU GENERAL PUBLIC LICENSE (GPL), ## |
741 |
10 Oct 06 |
olle |
// ## PLEASE DO NOT COPY ANYTHING FROM THIS SOURCE CODE!!! ## |
741 |
10 Oct 06 |
olle |
52 |
// ## ## |
741 |
10 Oct 06 |
olle |
// ## 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 |
* <B>About this class:</B> <BR> |
1652 |
22 May 07 |
gregory |
* This is the kernel for the setup program (and it's a <CODE>Thread</CODE>). |
1652 |
22 May 07 |
gregory |
* This class creates all <CODE>Thread</CODE>s (<CODE>SetupNewConnection</CODE>) |
1652 |
22 May 07 |
gregory |
* that are used when a request is sent to the setup server. Instead of starting |
1652 |
22 May 07 |
gregory |
* this class, start <CODE>SetupXerver</CODE>. |
1652 |
22 May 07 |
gregory |
73 |
* |
741 |
10 Oct 06 |
olle |
* @author <a href="http://www.JavaScript.nu/xerver/" TARGET="_top">Omid Rouhani</a> |
741 |
10 Oct 06 |
olle |
* @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 |
// for example start Xerver |
1652 |
22 May 07 |
gregory |
// directly from |
1652 |
22 May 07 |
gregory |
// SetupXerver.class. However, |
1652 |
22 May 07 |
gregory |
// if you start Xerver from the |
1652 |
22 May 07 |
gregory |
// swing interface this will NOT |
1652 |
22 May 07 |
gregory |
// 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 |
// b_hasStartedXerver |
1652 |
22 May 07 |
gregory |
// to |
1652 |
22 May 07 |
gregory |
// make |
1652 |
22 May 07 |
gregory |
// sure |
1652 |
22 May 07 |
gregory |
// no |
1652 |
22 May 07 |
gregory |
// more |
1652 |
22 May 07 |
gregory |
// than |
1652 |
22 May 07 |
gregory |
// one |
1652 |
22 May 07 |
gregory |
// instance |
1652 |
22 May 07 |
gregory |
// of |
1652 |
22 May 07 |
gregory |
// Xerver |
1652 |
22 May 07 |
gregory |
// is |
1652 |
22 May 07 |
gregory |
// started |
1652 |
22 May 07 |
gregory |
// ("new |
1652 |
22 May 07 |
gregory |
// Start();" |
1652 |
22 May 07 |
gregory |
// is |
1652 |
22 May 07 |
gregory |
// run |
1652 |
22 May 07 |
gregory |
// when |
1652 |
22 May 07 |
gregory |
// this |
1652 |
22 May 07 |
gregory |
// setup |
1652 |
22 May 07 |
gregory |
// has |
1652 |
22 May 07 |
gregory |
// been |
1652 |
22 May 07 |
gregory |
// started |
1652 |
22 May 07 |
gregory |
// from |
1652 |
22 May 07 |
gregory |
// InstallXerver, |
1652 |
22 May 07 |
gregory |
// but |
1652 |
22 May 07 |
gregory |
// shall |
1652 |
22 May 07 |
gregory |
// never |
1652 |
22 May 07 |
gregory |
// be |
1652 |
22 May 07 |
gregory |
// run |
1652 |
22 May 07 |
gregory |
// twice |
1652 |
22 May 07 |
gregory |
// (or |
1652 |
22 May 07 |
gregory |
// the |
1652 |
22 May 07 |
gregory |
// user |
1652 |
22 May 07 |
gregory |
// will |
1652 |
22 May 07 |
gregory |
// see |
1652 |
22 May 07 |
gregory |
// two |
1652 |
22 May 07 |
gregory |
// 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 |
// By default only the own computer shall be able to reach the setup: |
1652 |
22 May 07 |
gregory |
// 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 |
// with swing interafce |
1652 |
22 May 07 |
gregory |
148 |
myMenuOptions = argMenuOptions; |
1652 |
22 May 07 |
gregory |
// By default only the own computer shall be able to reach the setup: |
1652 |
22 May 07 |
gregory |
// 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 |
// By default only the own computer shall be able to reach the setup: |
1652 |
22 May 07 |
gregory |
// 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 |
// 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 |
* s_egetIp=InetAddress.getLocalHost().toString(); // |
1652 |
22 May 07 |
gregory |
* "pii-450/213.114.143.48" |
1652 |
22 May 07 |
gregory |
* 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 |
// interface (is not using |
1652 |
22 May 07 |
gregory |
// 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 |
// (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 |
// too many times without doing anything or java |
1652 |
22 May 07 |
gregory |
// will use up to 100% CPU. Instead let the loop be |
1652 |
22 May 07 |
gregory |
// halted by for example an accept call which will |
1652 |
22 May 07 |
gregory |
// wait for a network connection to be |
1652 |
22 May 07 |
gregory |
// 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 |
// until |
1652 |
22 May 07 |
gregory |
// first |
1652 |
22 May 07 |
gregory |
// connection |
1652 |
22 May 07 |
gregory |
// has been |
1652 |
22 May 07 |
gregory |
// established |
1652 |
22 May 07 |
gregory |
207 |
so_userConnection.setSoTimeout(5000); |
1652 |
22 May 07 |
gregory |
// System.out.println(InetAddress.getLocalHost()); |
1652 |
22 May 07 |
gregory |
// 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 |
// 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 |
// 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 |
// finished] and [user |
1652 |
22 May 07 |
gregory |
// interface is NOT |
1652 |
22 May 07 |
gregory |
// being used] ==> Start |
1652 |
22 May 07 |
gregory |
// Xerver! |
1652 |
22 May 07 |
gregory |
350 |
{ // Turn off setup... |
1652 |
22 May 07 |
gregory |
351 |
if (!b_hasStartedXerver) { |
1652 |
22 May 07 |
gregory |
// stopXerverSetup(); //Don't stop the setup-server, as the |
1652 |
22 May 07 |
gregory |
// 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 |
// used]... |
741 |
10 Oct 06 |
olle |
361 |
myMenuOptions.xerverSetupIsDone(setupIsFinished); |
1652 |
22 May 07 |
gregory |
// else [[user interface is NOT being used] and [the setup is NOT |
1652 |
22 May 07 |
gregory |
// 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 |
// 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 |
// here.... |
1652 |
22 May 07 |
gregory |
// //Optimization... |
1652 |
22 May 07 |
gregory |
396 |
for (int i = 1; i < lengthOfText; i++) |
1652 |
22 May 07 |
gregory |
// 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 |
} |