package com.vmware.vcloud.nclient.ui; import java.util.List; import javax.swing.SwingUtilities; import javax.swing.SwingWorker; import com.vmware.vcloud.nclient.AmqpClient; import com.vmware.vcloud.nclient.AmqpSettings; import com.vmware.vcloud.nclient.ConnectionListener; public class ConnectTask extends SwingWorker<Void, String> implements ConnectionListener { final MainFrame mainFrame; final AmqpSettings settings; public ConnectTask(MainFrame mainFrame, AmqpSettings settings) { this.mainFrame = mainFrame; this.settings = settings; } @Override protected Void doInBackground() throws Exception { AmqpClient client = mainFrame.amqpClient; publish(String.format("Connecting to %s:%d", settings.getHost(), settings.getPort())); client.connect(settings, this); return null; } @Override protected void process(List<String> chunks) { mainFrame.statusBar.setText(chunks.get(0)); } @Override protected void done() { mainFrame.updateUI(); } @Override public void disconnected() { SwingUtilities.invokeLater(new Runnable() { public void run() { mainFrame.updateUI(); } }); } }