package org.goko.tools.camera.part;
import java.awt.Dimension;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.collections.CollectionUtils;
import org.goko.common.GkUiUtils;
import org.goko.common.bindings.AbstractController;
import org.goko.common.elements.combo.LabeledValue;
import org.goko.core.common.exception.GkException;
import com.github.sarxos.webcam.Webcam;
/**
* @author PsyKo
* @date 6 nov. 2015
*/
public class CameraDisplayPartController extends AbstractController<CameraDisplayPartModel> {
/**
* Constructor
*/
public CameraDisplayPartController() {
super(new CameraDisplayPartModel());
}
/** (inheritDoc)
* @see org.goko.common.bindings.AbstractController#initialize()
*/
@Override
public void initialize() throws GkException {
updateDeviceCombo();
List<LabeledValue<Dimension>> lstResolution = new ArrayList<LabeledValue<Dimension>>();
lstResolution.add( new LabeledValue<Dimension>(new Dimension(320,240), "320x240"));
lstResolution.add( new LabeledValue<Dimension>(new Dimension(640,480), "640x480"));
lstResolution.add( new LabeledValue<Dimension>(new Dimension(1024,768), "1024x768"));
lstResolution.add( new LabeledValue<Dimension>(new Dimension(1280,720), "1280x720"));
getDataModel().setResolutionList(lstResolution);
getDataModel().setResolution(GkUiUtils.getLabelledValueByKey(new Dimension(1280,720), lstResolution));
}
public void updateDeviceCombo(){
List<Webcam> lstWebcams = Webcam.getWebcams();
List<LabeledValue<Webcam>> lstValues = new ArrayList<LabeledValue<Webcam>>();
if(CollectionUtils.isNotEmpty(lstWebcams)){
for (Webcam webcam : lstWebcams) {
lstValues.add(new LabeledValue<Webcam>(webcam, webcam.getName()));
}
getDataModel().setDeviceList(lstValues);
if(getDataModel().getDevice() == null){
getDataModel().setDevice(lstValues.get(0));
}
}else{
getDataModel().setDeviceList(lstValues);
getDataModel().setDevice(null);
}
}
}