package org.limewire.ui.mojito.visual;
import javax.swing.JComponent;
import org.limewire.mojito.Context;
import org.limewire.mojito.visual.ArcsVisualizer;
import org.limewire.ui.swing.plugin.SwingUiPlugin;
import com.google.inject.Inject;
import com.limegroup.gnutella.dht.DHTManager;
class ArcsPlugin implements SwingUiPlugin {
private final DHTManager dhtManager;
private volatile ArcsVisualizer arcsVisualizer;
@Inject
public ArcsPlugin(DHTManager dhtManager) {
this.dhtManager = dhtManager;
}
@Override
public JComponent getPluginComponent() {
if (arcsVisualizer != null) {
arcsVisualizer.stopArcs();
arcsVisualizer = null;
}
Context context = (Context) dhtManager.getMojitoDHT();
if (context == null) {
return null;
} else {
arcsVisualizer = new ArcsVisualizer(context, context.getLocalNodeID());
return arcsVisualizer;
}
}
@Override
public void startPlugin() {
if (arcsVisualizer != null) {
arcsVisualizer.startArcs();
}
}
@Override
public void stopPlugin() {
if(arcsVisualizer != null) {
arcsVisualizer.stopArcs();
}
}
@Override
public String getPluginName() {
return "Mojito Arcs Visualizer";
}
}