// Sin.java package lt.ktu.gmj.tasks; import lt.ktu.gmj.*; import lt.ktu.gmj.propertySheet.*; class SinDomain extends Domain { static final String []dimensions={ "X Sin Argument", "Y Sin Argument", "Dummy" }; public String[] dimensions () { return dimensions; } SinDomain () { min[0]=min[1]=min[2]=-2; max[0]=max[1]=max[2]= 2; defaultPoint.x[0]=0; defaultPoint.x[1]=0; defaultPoint.x[2]=0; } }; class SinMultiplierProvider extends SimplePropertyProvider { public Sin sin; public SinMultiplierProvider (Sin _sin) { sin=_sin; } public Object get () { return new Double(sin.multiplier); } public void set (Object value) throws InvalidPropertyException { sin.multiplier=((Double)value).doubleValue(); } }; public class Sin implements Task { private SinDomain domain=new SinDomain(); public double multiplier=1; public void customize (PropertyManager manager) { manager.add ( new DoubleProperty("Multiplier", new SinMultiplierProvider (this), 0.1, 1000)); } public Domain domain () { return domain; } public double f (Point pt) { return Math.sin (pt.x[0]*pt.x[0]+pt.x[1]*pt.x[1])*multiplier; } };