private void initListListener() {
        masterTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        ListSelectionModel rowSM = masterTable.getSelectionModel();
        rowSM.addListSelectionListener(new ListSelectionListener() {
            @Override
            public void valueChanged(ListSelectionEvent e) {
                if (e.getValueIsAdjusting()) {
                    return;
                }
                
                if (sensorIcons.containsKey(lastSelectedSensorId)) {
                    sensorIcons.get(lastSelectedSensorId).setBorder(null);
                }
                
                ListSelectionModel lsm = (ListSelectionModel) e.getSource();
                if (!lsm.isSelectionEmpty()) {
                    int selectedRow = lsm.getMinSelectionIndex();
                    Long sensorId = Long.valueOf(masterTable.getValueAt(selectedRow, 0).toString());
                    SensorIcon sensorIcon = sensorIcons.get(sensorId);
                    sensorIcon.setBorder(new LineBorder(Color.RED, 3));
                    lastSelectedSensorId = sensorId;
                } else {
                    lastSelectedSensorId = 0;
                }
            }
        });
    }