diff src/main/java/jp/ac/u_ryukyu/treevnc/server/VncProxyService.java @ 37:1454d6fe96c1

add Changehost.java
author one
date Wed, 19 Sep 2012 19:08:07 +0900
parents 1b81deb0abb3
children c2f0b6907448
line wrap: on
line diff
--- a/src/main/java/jp/ac/u_ryukyu/treevnc/server/VncProxyService.java	Tue Sep 18 17:23:19 2012 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/treevnc/server/VncProxyService.java	Wed Sep 19 19:08:07 2012 +0900
@@ -37,6 +37,7 @@
 	private static final long serialVersionUID = 1L;
 
 	public MyRfbProtoProxy rfb;
+	private ConnectionManager connectionManager;
 	// public AcceptClient acc;
 	public VncProxyService(Parser parser) {
 		this();
@@ -49,6 +50,7 @@
 	}
 	
 	public VncProxyService() {
+		connectionManager = new ConnectionManager(this, isApplet);
 		connectionParams = new ParametersHandler.ConnectionParams();
 		settings = ProtocolSettings.getDefaultSettings();
 		uiSettings = super.uiSettings;
@@ -62,7 +64,6 @@
 	private ConnectionParams connectionParams;
 	private final ProtocolSettings settings;
 	private final UiSettings uiSettings;
-	private AcceptClient aClient;
 	private Thread bCast;
 	private Thread accThread;
 	private AcceptThread acceptThread;
@@ -109,7 +110,6 @@
 	@Override
 	public void run() {
 	//	getHostData();
-		ConnectionManager connectionManager = new ConnectionManager(this, isApplet);
 		if (forceReconnection) {
 			connectionManager.showReconnectDialog("Connection lost", reconnectionReason);
 			forceReconnection = false;
@@ -133,26 +133,22 @@
 				workingProtocol = new Protocol(reader, writer,
 						new PasswordChooser(passwordFromParams, connectionParams, containerFrame, this),
 						settings);
-				aClient = new AcceptClient(connectionParams.hostName);
-				Thread thread = new Thread(new CreateThread(aClient));
-				thread.start();
+				threadSetAndStart();
 				workingProtocol.handshake();
 				rfb.setProtocolContext(workingProtocol);
-				
 				// input into change parents
                 ClipboardControllerImpl clipboardController =
 		                new ClipboardControllerImpl(workingProtocol, settings.getRemoteCharsetName());
 				clipboardController.setEnabled(settings.isAllowClipboardTransfer());
 				settings.addListener(clipboardController);
-				
 				surface = new Surface(workingProtocol, this, uiSettings.getScaleFactor()); // this method
 				settings.addListener(this);
 				uiSettings.addListener(surface);
 				containerFrame = createContainer();
 				connectionManager.setContainerFrame(containerFrame);
 				updateFrameTitle();
-
-				
+				containerFrame.dispose();
+				containerFrame = null;
 				workingProtocol.startNormalHandling(this, surface, clipboardController,rfb);
 				// rfb.setInitData(workingProtocol.getInitData()); too early
 				// workingProtocol.startNormalHandling(this, surface, clipboardController);
@@ -244,4 +240,17 @@
 		}
 		closeApp();
 	}
+	
+	private void threadSetAndStart() {
+		AcceptClient aClient = new AcceptClient(connectionParams.hostName);
+		Thread thread = new Thread(new CreateThread(aClient));
+		thread.start();
+		thread = new Thread(new ChangeHost(this, forceReconnection));
+		thread.start();
+		
+	}
+	
+	public void setConnectionManager(ConnectionManager _connectionManager) {
+		connectionManager = _connectionManager;
+	}
 }