package com.clearlyspam23.GLE.basic.properties;
import java.util.HashMap;
import java.util.Map;
import com.clearlyspam23.GLE.PropertyTemplate;
import com.clearlyspam23.GLE.GUI.util.VectorComponent;
import com.clearlyspam23.GLE.util.Vector2;
public class VectorPropertyTemplate extends PropertyTemplate<VectorComponent, Map<String, Number>> {
private Vector2 min;
private Vector2 max;
private Vector2 def;
public VectorPropertyTemplate(){}
public VectorPropertyTemplate(VectorPropertyDefinition def, Vector2 min, Vector2 max, Vector2 defa) {
super(def);
this.min = min;
this.max = max;
this.def = defa;
}
@Override
public VectorComponent getEditorComponent() {
return new VectorComponent();
}
@Override
public void setToValue(VectorComponent component, Map<String, Number> value) {
component.setXField(value.get("x").doubleValue());
component.setYField(value.get("y").doubleValue());
}
@Override
public Map<String, Number> getValueFrom(VectorComponent component) {
HashMap<String, Number> output = new HashMap<String, Number>();
output.put("x", component.getXField());
output.put("y", component.getYField());
return output;
}
public Vector2 getMin() {
return min;
}
public void setMin(Vector2 min) {
this.min = min;
}
public Vector2 getMax() {
return max;
}
public void setMax(Vector2 max) {
this.max = max;
}
public Vector2 getDefault() {
return def;
}
public void setDefault(Vector2 def) {
this.def = def;
}
@Override
public Map<String, Number> getDefaultValue() {
HashMap<String, Number> output = new HashMap<String, Number>();
output.put("x", def.x);
output.put("y", def.y);
return output;
}
}