blob: 99ef2c81a47af5d198971aa22dfab5cd1df6fb4f [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2003, 2008 IBM Corporation and Others
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Junji MAEDA - initial API and implementation
*******************************************************************************/
package org.eclipse.actf.visualization.lowvision.util;
import org.eclipse.actf.visualization.engines.lowvision.LowVisionType;
import org.eclipse.actf.visualization.lowvision.ui.internal.Messages;
public class ParamLowVision {
//TODO use preference store
private static ParamLowVision INSTANCE;
//the current setting
private boolean oEyeSight;
private int iCurEyeSightValue; //the actual value:devided it by 100
private boolean oColorVision;
private int iCurColorVisionValue; //1,2,3
private boolean oColorFilter;
private int iCurColorFilterValue; //the actual value:devided it by 100
private LowVisionType lowVisionType;
private static final double DEFAULT_EYESIGHT_DEGREE = 0.5;
private static final int DEFAULT_CVD_TYPE = 2;
private static final double DEFAULT_COLOR_FILTER = 0.8;
public static ParamLowVision getDefaultInstance(){
if(INSTANCE==null){
INSTANCE=new ParamLowVision();
}
return INSTANCE;
}
public ParamLowVision() {
oEyeSight = true;
iCurEyeSightValue = (int) (Math.rint(DEFAULT_EYESIGHT_DEGREE * 100.0));
oColorVision = true;
iCurColorVisionValue = DEFAULT_CVD_TYPE;
oColorFilter = true;
iCurColorFilterValue = (int) (Math.rint(DEFAULT_COLOR_FILTER * 100.0));
lowVisionType = new LowVisionType();
}
public LowVisionType getLowVisionType() {
// LowVisionType lowVisionType = new LowVisionType();
try {
lowVisionType.setEyesight(oEyeSight);
if (oEyeSight) {
float fEyeSight = iCurEyeSightValue / 100.0f;
/*
* float fEye = 0.1f; if (fEyeSight < 0.075f) fEye = 0.05f; else
* if (fEyeSight > 0.15f) fEye = 0.2f;
*/
//System.out.println(fEyeSight);
lowVisionType.setEyesightDegree(fEyeSight);
}
lowVisionType.setCVD(oColorVision);
if (oColorVision) {
lowVisionType.setCVDType(iCurColorVisionValue);
}
lowVisionType.setColorFilter(oColorFilter);
if (oColorFilter) {
lowVisionType.setColorFilterDegree(iCurColorFilterValue / 100.0f);
}
// debug
//DebugUtil.outMsg( this, "eyesight = " +
// lowVisionType.getEyesight() + "\nCVD = " + lowVisionType.getCVD()
// + "\nfileter = " + lowVisionType.getColorFilter());
} catch (Exception e) {
e.printStackTrace();
}
return (lowVisionType);
}
public Object clone() {
ParamLowVision tmpParam = new ParamLowVision();
tmpParam.setColorFilterValue(iCurColorFilterValue);
tmpParam.setColorVisionValue(iCurColorVisionValue);
tmpParam.setEyeSightValue(iCurEyeSightValue);
tmpParam.setColorFilter(oColorFilter);
tmpParam.setColorVision(oColorVision);
tmpParam.setEyeSight(oEyeSight);
return (tmpParam);
}
/**
* @return
*/
public int getColorFilterValue() {
return iCurColorFilterValue;
}
/**
* @return
*/
public int getColorVisionValue() {
return iCurColorVisionValue;
}
/**
* @return
*/
public int getEyeSightValue() {
return iCurEyeSightValue;
}
/**
* @return
*/
public boolean useColorFilter() {
return oColorFilter;
}
/**
* @return
*/
public boolean useColorVision() {
return oColorVision;
}
/**
* @return
*/
public boolean useEyeSight() {
return oEyeSight;
}
/**
* @param i
*/
public void setColorFilterValue(int i) {
iCurColorFilterValue = i;
}
/**
* @param i
*/
public void setColorVisionValue(int i) {
iCurColorVisionValue = i;
}
/**
* @param i
*/
public void setEyeSightValue(int i) {
iCurEyeSightValue = i;
}
/**
* @param b
*/
public void setColorFilter(boolean b) {
oColorFilter = b;
}
/**
* @param b
*/
public void setColorVision(boolean b) {
oColorVision = b;
}
/**
* @param b
*/
public void setEyeSight(boolean b) {
oEyeSight = b;
}
public String toString() {
StringBuffer result = new StringBuffer(" "); //$NON-NLS-1$
if (useEyeSight()) {
result.append(Messages.getString("ParamLowVision.1")+" " + (getEyeSightValue() / 100.0f) + " "); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
}
if (useColorVision()) {
result.append(Messages.getString("ParamLowVision.4")+" " + getColorVisionValue() + " "); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
}
if (useColorFilter()) {
result.append(Messages.getString("ParamLowVision.7")+" " + (getColorFilterValue() / 100.0f) + " "); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
}
return result.toString();
}
}