public void close() {
   while (clients.elements().hasMoreElements())
     try {
       ((RFBClient) clients.elements().nextElement()).close();
     } catch (IOException e) {
       // TODO Auto-generated catch block
       e.printStackTrace();
     }
 }
 public void dispose() {
   clients.closeAll();
 }
 @Override
 public void addClient(RFBClient client) {
   clients.addClient(client);
 }
 @Override
 public void removeClient(RFBClient client) {
   clients.removeClient(client);
   if (clients.isEmpty() && !shared) dispose();
 }
 @Override
 public void removeClient(RFBClient client) {
   clients.removeClient(client);
 }
 @Override
 public void addClient(RFBClient client) {
   clients.addClient(client);
   for (ClientAddedListener listener : _clientAddedListeners) listener.OnClientAdded(this, client);
 }
 public RFBClient getClientForView(View view) {
   // TODO FIXME!
   if (clients.elements().hasMoreElements()) return (RFBClient) clients.elements().nextElement();
   else return null;
 }