Avoiding duplicate boards in port menu

This commit is contained in:
Federico Fissore 2013-06-28 15:28:32 +02:00
parent f41dc69c08
commit 2165ecaa07
1 changed files with 12 additions and 0 deletions

View File

@ -120,11 +120,23 @@ public class NetworkDiscovery implements Discovery, ServiceListener, cc.arduino.
port.setProtocol("network");
port.setPrefs(prefs);
port.setLabel(label);
synchronized (this) {
removeDuplicateBoards(port);
ports.add(port);
}
}
private void removeDuplicateBoards(BoardPort newBoard) {
Iterator<BoardPort> iterator = ports.iterator();
while (iterator.hasNext()) {
BoardPort board = iterator.next();
if (newBoard.getAddress().equals(board.getAddress()) && newBoard.getBoardName().equals(board.getBoardName())) {
iterator.remove();
}
}
}
@Override
public void inetAddressAdded(InetAddress address) {
if (mappedJmDNSs.containsKey(address)) {