@Override
 public DataStore actionOnClose(DataStore ds) {
   final Object obj = ds.getObject(WizardMain.DS_CONFIGURATION_NAME);
   Cfg cfg = null;
   if (true == obj instanceof Cfg) {
     cfg = (Cfg) obj;
     final Vector<Integer> activeHeaters = new Vector<Integer>();
     for (int i = 0; i < tableData.getRowCount(); i++) {
       final Boolean active = (Boolean) tableData.getValueAt(i, USED_COLUMN);
       if (true == active.booleanValue()) {
         activeHeaters.add(i);
         final String function = (String) tableData.getValueAt(i, USED_FOR_COLUMN);
         cfg.addHeater(0, i, Heater_enum.valueOf(function));
         // if we can map the function then we can also map the sensor if the sensor is given
         final String Sensor = (String) tableData.getValueAt(i, USED_SENSOR_COLUMN);
         try {
           final int sensorIdx = Integer.parseInt(Sensor);
           cfg.addTemperatureSensor(0, sensorIdx, Heater_enum.valueOf(function));
         } catch (NumberFormatException e) {
           // unknown sensor -> no mapping
         }
       }
     }
     ds.putObject(WizardMain.DS_ACTIVE_HEATERS_NAME, activeHeaters);
   } else {
     log.error("Configuration Object missing from Data Store !");
   }
   return ds;
 }
 @Override
 public DataStore actionOnShow(DataStore ds) {
   Object obj = ds.getObject(WizardMain.DS_DEVICE_INFORMATION_NAME);
   DeviceInformation di = null;
   if (true == obj instanceof DeviceInformation) {
     di = (DeviceInformation) obj;
     obj = ds.getObject(WizardMain.DS_ACTIVE_TEMPERATURE_SENSORS_NAME);
     if (true == obj instanceof Vector) {
       @SuppressWarnings("unchecked")
       final Vector<Integer> activeTempSensors = (Vector<Integer>) obj;
       // TODO Thread Start:
       if (activeTempSensors.size() > 0) {
         final TableColumnModel tcm = tab.getColumnModel();
         final TableColumn sensorColumn = tcm.getColumn(USED_SENSOR_COLUMN);
         final JComboBox<String> sensorBox = new JComboBox<String>();
         sensorBox.addItem(unknown);
         for (int i = 0; i < activeTempSensors.size(); i++) {
           final int sensorIdx = activeTempSensors.get(i);
           sensorBox.addItem("" + sensorIdx);
         }
         sensorColumn.setCellEditor(new DefaultCellEditor(sensorBox));
       }
       for (int i = 0; i < di.getNumberHeaters(); i++) {
         tableData.setValueAt(new Integer(i), i, 0);
         tableData.setValueAt(di.getHeaterConnectorName(i), i, 1);
         tableData.setValueAt(new Boolean(true), i, USED_COLUMN);
         tableData.setValueAt(unknown, i, USED_FOR_COLUMN);
         tableData.setValueAt(unknown, i, USED_SENSOR_COLUMN);
       }
       // Thread end
     } else {
       log.error("Protocol Object missing from Data Store !");
     }
   } else {
     log.error("DeviceInformation Object missing from Data Store !");
   }
   return ds;
 }