in src/main/java/org/apache/log4j/chainsaw/zeroconf/ZeroConfPlugin.java [258:298]
private void deviceDiscovered(final ServiceInfo info) {
final String name = info.getName();
// TODO currently adding ALL devices to autoConnectlist
// preferenceModel.addAutoConnectDevice(name);
JMenuItem connectToDeviceMenuItem = new JMenuItem(new AbstractAction(info.getName()) {
public void actionPerformed(ActionEvent e) {
connectTo(info);
}
});
if (discoveredDevices.getRowCount() > 0) {
Component[] menuComponents = connectToMenu.getMenuComponents();
boolean located = false;
for (int i = 0; i < menuComponents.length; i++) {
Component c = menuComponents[i];
if (!(c instanceof JPopupMenu.Separator)) {
JMenuItem item = (JMenuItem) menuComponents[i];
if (item.getText().compareToIgnoreCase(name) < 0) {
connectToMenu.insert(connectToDeviceMenuItem, i);
located = true;
break;
}
}
}
if (!located) {
connectToMenu.insert(connectToDeviceMenuItem, 0);
}
} else {
connectToMenu.insert(connectToDeviceMenuItem, 0);
}
// if the device name is one of the autoconnect devices, then connect immediately
if (preferenceModel != null && preferenceModel.getAutoConnectDevices() != null && preferenceModel.getAutoConnectDevices().contains(name)) {
new Thread(() -> {
LOG.info("Auto-connecting to " + name);
connectTo(info);
}).start();
}
}