annotate src/viewer_swing/java/com/glavsoft/viewer/swing/SwingNetworkConnectionWorker.java @ 52:472a9bcacb21 draft default tip

TightVNC 2.7.1.0
author you@cr.ie.u-ryukyu.ac.jp
date Wed, 07 Aug 2013 19:01:17 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
52
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
1 // Copyright (C) 2010, 2011, 2012, 2013 GlavSoft LLC.
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
2 // All rights reserved.
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
3 //
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
4 //-------------------------------------------------------------------------
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
5 // This file is part of the TightVNC software. Please visit our Web site:
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
6 //
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
7 // http://www.tightvnc.com/
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
8 //
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
9 // This program is free software; you can redistribute it and/or modify
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
10 // it under the terms of the GNU General Public License as published by
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
11 // the Free Software Foundation; either version 2 of the License, or
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
12 // (at your option) any later version.
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
13 //
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
14 // This program is distributed in the hope that it will be useful,
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
15 // but WITHOUT ANY WARRANTY; without even the implied warranty of
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
16 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
17 // GNU General Public License for more details.
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
18 //
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
19 // You should have received a copy of the GNU General Public License along
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
20 // with this program; if not, write to the Free Software Foundation, Inc.,
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
21 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
22 //-------------------------------------------------------------------------
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
23 //
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
24
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
25 package com.glavsoft.viewer.swing;
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
26
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
27 import com.glavsoft.viewer.*;
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
28 import com.glavsoft.viewer.swing.ssh.SshConnectionManager;
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
29
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
30 import javax.swing.*;
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
31 import java.io.IOException;
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
32 import java.net.Socket;
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
33 import java.net.UnknownHostException;
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
34 import java.security.AccessControlException;
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
35 import java.util.List;
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
36 import java.util.concurrent.CancellationException;
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
37 import java.util.concurrent.ExecutionException;
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
38 import java.util.logging.Level;
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
39 import java.util.logging.Logger;
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
40
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
41
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
42 public class SwingNetworkConnectionWorker extends SwingWorker<Socket, String> implements NetworkConnectionWorker {
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
43 public static final int MAX_HOSTNAME_LENGTH_FOR_MESSAGES = 40;
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
44 private final JFrame parentWindow;
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
45 private Logger logger;
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
46 private boolean hasSshSupport;
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
47 private ConnectionParams connectionParams;
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
48 private ConnectionPresenter presenter;
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
49
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
50
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
51 public SwingNetworkConnectionWorker(JFrame parentWindow) {
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
52 this.parentWindow = parentWindow;
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
53 logger = Logger.getLogger(getClass().getName());
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
54 }
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
55
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
56 @Override
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
57 public Socket doInBackground() throws Exception {
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
58 String s = "<b>" +connectionParams.hostName + "</b>:" + connectionParams.getPortNumber();
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
59 if (connectionParams.useSsh()) {
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
60 s += " <i>(via ssh://" + connectionParams.sshUserName + "@" + connectionParams.sshHostName + ":" + connectionParams.getSshPortNumber() + ")</i>";
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
61 }
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
62
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
63 String message = "<html>Trying to connect to " + s + "</html>";
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
64 logger.info(message.replaceAll("<[^<>]+?>", ""));
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
65 publish(message);
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
66 int port;
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
67 String host;
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
68 if (hasSshSupport && connectionParams.useSsh()) {
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
69 SshConnectionManager sshConnectionManager = new SshConnectionManager(parentWindow);
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
70 message = "Creating SSH tunnel to " + connectionParams.sshHostName + ":" + connectionParams.getSshPortNumber();
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
71 logger.info(message);
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
72 publish(message);
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
73 port = sshConnectionManager.connect(connectionParams);
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
74 if (sshConnectionManager.isConnected() ) {
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
75 host = "127.0.0.1";
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
76 message = "SSH tunnel established: " + host + ":" + port;
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
77 logger.info(message);
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
78 publish(message);
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
79 } else {
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
80 throw new ConnectionErrorException("Could not create SSH tunnel: " + sshConnectionManager.getErrorMessage());
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
81 }
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
82 } else {
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
83 host = connectionParams.hostName;
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
84 port = connectionParams.getPortNumber();
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
85 }
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
86
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
87 message = "Connecting to host " + host + ":" + port + (connectionParams.useSsh() ? " (tunneled)" : "");
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
88 logger.info(message);
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
89 publish(message);
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
90
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
91 return new Socket(host, port);
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
92 }
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
93
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
94 private String formatHostString(String hostName) {
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
95 if (hostName.length() <= MAX_HOSTNAME_LENGTH_FOR_MESSAGES) {
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
96 return hostName;
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
97 } else {
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
98 return hostName.substring(0, MAX_HOSTNAME_LENGTH_FOR_MESSAGES) + "...";
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
99 }
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
100 }
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
101
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
102 @Override
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
103 protected void process(List<String> strings) { // EDT
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
104 String message = strings.get(strings.size() - 1); // get last
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
105 presenter.showMessage(message);
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
106 }
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
107
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
108 @Override
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
109 protected void done() { // EDT
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
110 try {
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
111 final Socket socket = get();
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
112 presenter.successfulNetworkConnection(socket);
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
113 } catch (CancellationException e) {
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
114 logger.info("Cancelled");
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
115 presenter.showMessage("Cancelled");
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
116 presenter.connectionFailed();
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
117 } catch (InterruptedException e) {
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
118 logger.info("Interrupted");
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
119 presenter.showMessage("Interrupted");
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
120 presenter.connectionFailed();
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
121 } catch (ExecutionException e) {
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
122 String errorMessage = null;
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
123 try {
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
124 throw e.getCause();
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
125 } catch (UnknownHostException uhe) {
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
126 logger.severe("Unknown host: " + connectionParams.hostName);
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
127 errorMessage = "Unknown host: '" + formatHostString(connectionParams.hostName) + "'";
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
128 } catch (IOException ioe) {
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
129 logger.severe("Couldn't connect to '" + connectionParams.hostName +
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
130 ":" + connectionParams.getPortNumber() + "':\n" + ioe.getMessage());
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
131 logger.log(Level.FINEST, "Couldn't connect to '" + connectionParams.hostName +
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
132 ":" + connectionParams.getPortNumber() + "':\n" + ioe.getMessage(), ioe);
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
133 errorMessage = "Couldn't connect to '" + formatHostString(connectionParams.hostName) +
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
134 ":" + connectionParams.getPortNumber() + "':\n" + ioe.getMessage();
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
135 } catch (CancelConnectionException cce) {
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
136 logger.severe("Cancelled: " + cce.getMessage());
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
137 } catch (AccessControlException ace) {
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
138 logger.severe("Couldn't connect to: " +
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
139 connectionParams.hostName + ":" + connectionParams.getPortNumber() +
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
140 ": " + ace.getMessage());
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
141 logger.log(Level.FINEST, "Couldn't connect to: " +
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
142 connectionParams.hostName + ":" + connectionParams.getPortNumber() +
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
143 ": " + ace.getMessage(), ace);
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
144 errorMessage = "Access control error";
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
145 } catch (ConnectionErrorException cee) {
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
146 logger.severe(cee.getMessage() + " host: " +
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
147 connectionParams.hostName + ":" + connectionParams.getPortNumber());
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
148 errorMessage = cee.getMessage() + "\nHost: " +
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
149 formatHostString(connectionParams.hostName) + ":" + connectionParams.getPortNumber();
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
150 } catch (Throwable throwable) {
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
151 logger.log(Level.FINEST, "Couldn't connect to '" + formatHostString(connectionParams.hostName) +
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
152 ":" + connectionParams.getPortNumber() + "':\n" + throwable.getMessage(), throwable);
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
153 errorMessage = "Couldn't connect to '" + formatHostString(connectionParams.hostName) +
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
154 ":" + connectionParams.getPortNumber() + "':\n" + throwable.getMessage();
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
155 }
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
156 presenter.showConnectionErrorDialog(errorMessage);
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
157 presenter.clearMessage();
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
158 presenter.connectionFailed();
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
159 }
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
160 }
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
161
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
162 @Override
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
163 public void setConnectionParams(ConnectionParams connectionParams) {
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
164 this.connectionParams = connectionParams;
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
165 }
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
166
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
167 @Override
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
168 public void setPresenter(ConnectionPresenter presenter) {
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
169 this.presenter = presenter;
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
170 }
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
171
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
172 @Override
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
173 public void setHasSshSupport(boolean hasSshSupport) {
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
174 this.hasSshSupport = hasSshSupport;
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
175 }
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
176
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
177 @Override
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
178 public boolean cancel() {
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
179 return super.cancel(true);
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
180 }
472a9bcacb21 TightVNC 2.7.1.0
you@cr.ie.u-ryukyu.ac.jp
parents:
diff changeset
181 }