package com.github.jmchilton.jgalaxy;
import com.google.common.eventbus.EventBus;
import com.google.common.eventbus.Subscribe;
import javax.inject.Inject;
import javax.inject.Singleton;
@Singleton
public class ConnectionPresenter {
private final EventBus eventBus;
private final InstanceManager instanceManager;
private final ConnectionDisplay connectionDisplay;
@Inject
public ConnectionPresenter(final EventBus eventBus,
final InstanceManager instanceManager) {
this.eventBus = eventBus;
this.instanceManager = instanceManager;
this.connectionDisplay = new ConnectionDisplay(this, instanceManager);
eventBus.register(this);
}
public static class ManageConnectionEvent {
}
public static class EstablishConnectionEvent {
private final String url;
private final String apiKey;
public EstablishConnectionEvent(final String url, final String apiKey) {
this.url = url;
this.apiKey = apiKey;
}
public String getUrl() {
return url;
}
public String getApiKey() {
return apiKey;
}
}
@Subscribe
public void onManageConnectionEvent(final ManageConnectionEvent event) {
connectionDisplay.showDialog();
}
@Subscribe
public void onEstablishConnectionEvent(final EstablishConnectionEvent event) {
connectionDisplay.setVisible(false);
}
public void connect(final String url, final String apiKey) {
eventBus.post(new EstablishConnectionEvent(url, apiKey));
}
}