changeset 104:44d2b407de65

unify constructors in Protocol
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Fri, 23 May 2014 02:32:09 +0900
parents 84f254d8bde4
children 616a662384b1
files src/main/java/com/glavsoft/rfb/protocol/Protocol.java src/viewer_swing/java/com/glavsoft/viewer/swing/SwingViewerWindow.java
diffstat 2 files changed, 35 insertions(+), 69 deletions(-) [+]
line wrap: on
line diff
--- a/src/main/java/com/glavsoft/rfb/protocol/Protocol.java	Fri May 23 02:20:05 2014 +0900
+++ b/src/main/java/com/glavsoft/rfb/protocol/Protocol.java	Fri May 23 02:32:09 2014 +0900
@@ -178,8 +178,17 @@
 	 * With a fast client, the rate at which FramebufferUpdateRequests are sent
 	 * should be regulated to avoid hogging the network.
 	 */
-	public void startNormalHandling(IRfbSessionListener rfbSessionListener,
-			IRepaintController repaintController, ClipboardController clipboardController) {
+    public void startNormalHandling(IRfbSessionListener rfbSessionListener,
+            IRepaintController repaintController, ClipboardController clipboardController) {
+            receiverTask = new ReceiverTask(
+                reader, repaintController,
+                clipboardController,
+                decoders, this);
+            startNormalHandling1(rfbSessionListener, repaintController, clipboardController);
+    }
+    
+    public void startNormalHandling1(IRfbSessionListener rfbSessionListener,
+                IRepaintController repaintController, ClipboardController clipboardController) {
 		this.rfbSessionListener = rfbSessionListener;
 		this.repaintController = repaintController;
 //		if (settings.getColorDepth() == 0) {
@@ -199,10 +208,7 @@
 		senderThread = new Thread(senderTask, "RfbSenderTask");
 		senderThread.start();
 		decoders.resetDecoders();
-		receiverTask = new ReceiverTask(
-				reader, repaintController,
-				clipboardController,
-				decoders, this);
+
 		receiverThread = new Thread(receiverTask, "RfbReceiverTask");
 		receiverThread.start();
 	}
@@ -328,67 +334,27 @@
         return protocolVersion;
     }
 
-	public void startNormalHandling(IRfbSessionListener rfbSessionListener,
-			IRepaintController repaintController, ClipboardController clipboardController,
-			MyRfbProto rfb) 
-	{
-		this.rfbSessionListener = rfbSessionListener;
-		this.repaintController = repaintController;
-//		if (settings.getBitsPerPixel() == 0) {
-//			settings.setBitsPerPixel(pixelFormat.bitsPerPixel); // the same the server sent when not initialized yet
-//		}
-		serverPixelFormat = pixelFormat;
-		serverPixelFormat.trueColourFlag = 1; // correct flag - we don't support color maps
-		setPixelFormat(createPixelFormat(settings));
-		sendMessage(new SetPixelFormatMessage(pixelFormat));
-		logger.fine("sent: "+pixelFormat);
-
-		sendSupportedEncodingsMessage(settings);
-		settings.addListener(this); // to support pixel format (color depth), and encodings changes
-		settings.addListener(repaintController);
-		sendRefreshMessage();
-		senderTask = new SenderTask(messageQueue, writer, this);
-		senderThread = new Thread(senderTask,"sender-task");
-		senderThread.start();
-		decoders.resetDecoders();
-		receiverTask = new TreeTask(
-				reader, repaintController,
-				clipboardController,
-				decoders, this, rfb);
-		receiverThread = new Thread(receiverTask,"receiver-task");
-		receiverThread.start();
-	}
-
+    public void startNormalHandling(IRfbSessionListener rfbSessionListener,
+            IRepaintController repaintController, ClipboardController clipboardController,
+            MyRfbProto rfb) 
+    {
+        receiverTask = new TreeTask(
+                reader, repaintController,
+                clipboardController,
+                decoders, this, rfb);
+        startNormalHandling1(rfbSessionListener, repaintController, clipboardController);
+    }
 	
 	public void startTreeClientHandling(IRfbSessionListener rfbSessionListener,
 			IRepaintController repaintController, 
 			ClipboardController clipboardController, MyRfbProto rfb) {
-		this.rfbSessionListener = rfbSessionListener;
-		this.repaintController = repaintController;
-//		if (settings.getBitsPerPixel() == 0) {
-//			settings.setBitsPerPixel(pixelFormat.bitsPerPixel); // the same the server sent when not initialized yet
-//		}
-		serverPixelFormat = pixelFormat;
-		serverPixelFormat.trueColourFlag = 1; // correct flag - we don't support color maps
-		setPixelFormat(createPixelFormat(settings));
-		sendMessage(new SetPixelFormatMessage(pixelFormat));
-		logger.fine("sent: "+pixelFormat);
-
-		sendSupportedEncodingsMessage(settings);
-		settings.addListener(this); // to support pixel format (color depth), and encodings changes
-		settings.addListener(repaintController);
-
-		sendRefreshMessage();
-		senderTask = new SenderTask(messageQueue, writer, this);
-		senderThread = new Thread(senderTask);
-		senderThread.start();
-		decoders.resetDecoders();
-		receiverTask = new TreeTask(
-				reader, repaintController,
-				clipboardController,
-				decoders, this, rfb);
-		receiverThread = new Thread(receiverTask);
-		receiverThread.start();
+        this.repaintController = repaintController;
+        settings.addListener(repaintController);
+        receiverTask = new TreeTask(
+                reader, repaintController,
+                clipboardController,
+                decoders, this, rfb);	    
+        startTreeClientHandling(rfbSessionListener, clipboardController, rfb);
 	}
 	
 	public void setScreenSizeRetina(int fbWidth, int fbHeight) {
@@ -417,10 +383,12 @@
 		senderThread = new Thread(senderTask, "SenderTask");
 		senderThread.start();
 		decoders.resetDecoders();
-		receiverTask = new TreeTask(
-				reader, null,
-				clipboardController,
-				decoders, this, rfb);
+		if (receiverTask==null) {
+		    receiverTask = new TreeTask(
+		            reader, null,
+		            clipboardController,
+		            decoders, this, rfb);
+		}
 		receiverThread = new Thread(receiverTask, "TreeTask");
 		receiverThread.start();
 	}
--- a/src/viewer_swing/java/com/glavsoft/viewer/swing/SwingViewerWindow.java	Fri May 23 02:20:05 2014 +0900
+++ b/src/viewer_swing/java/com/glavsoft/viewer/swing/SwingViewerWindow.java	Fri May 23 02:32:09 2014 +0900
@@ -52,8 +52,6 @@
 import java.util.concurrent.TimeUnit;
 import java.util.logging.Logger;
 
-import jp.ac.u_ryukyu.treevnc.server.MyRfbProtoProxy;
-
 public class SwingViewerWindow implements IChangeSettingsListener {
 	public static final int FS_SCROLLING_ACTIVE_BORDER = 20;
 	private JToggleButton zoomFitButton;