这是事情..我想画一些网站的图表一些网页。 这些图表有时候会有一两行......但有时候还会多一些,其中每个都是由任意的数学函数定义的。至于现在,我只知道这种绘制图像的可能性。三线:PropertyAccess:有没有办法动态创建访问函数?
public class ArbitraryFunctionData {
private double x1;
private double x2;
private double x3;
private double y;
public ArbitraryFunctionData(double x1, doouble x2, double x3, double y) {
this.x1 = x1;
this.x2 = x2;
this.x3 = x3;
this.y = y;
}
public double getX1() {
return x1;
}
public double getX2() {
return x2;
}
public double getX3() {
return x3;
}
public double getY() {
return y;
}
public void setX1(double x1) {
this.x1 = x1;
}
public void setX2(double x2) {
this.x2 = x2;
}
public void setX3(double x3) {
this.x3 = x3;
}
public void setY(double y) {
this.y = y;
}
}
某处有必要定义这个接口:
public interface ArbitraryFunctionAccess extends
PropertyAccess<ArbitraryFunctionData> {
ValueProvider<ArbitraryFunctionData, Double> x1();
ValueProvider<ArbitraryFunctionData, Double> x2();
ValueProvider<ArbitraryFunctionData, Double> x3();
@Path("x")
ModelKeyProvider<ArbitraryFunctionData> xKey();
}
所以我可以将这些访问功能领域图表:
horizontalAxis.addField(arbFuncAccess.x1());
horizontalAxis.addField(arbFuncAccess.x2());
horizontalAxis.addField(arbFuncAccess.x3());
这是创建图表的一种非常不舒服的方式。有没有更好的方法来做到这一点?需要预先定义 ArbitraryFunctionData
,并且需要手动添加每一种访问方法。我宁愿做这样的事情:
ArbitraryFunction f1 = new ArbitraryFunction(0, 5, 0, 5) {
@Override
public double f(double x) {
return x+1;
}
};
ArbitraryFunction f2 = new ArbitraryFunction(0, 5, 0, 5) {
@Override
public double f(double x) {
return x+2;
}
};
store.add(0, f1.getData()); // a line
store.add(1, f2.getData()); // another line
在哪里被覆盖ArbitraryFunctions功能public double f(double x)
需要和ArbitraryFunction.getData()
被定义为public List<ArbitraryFunctionData> getData()
。这将增加整个事情的动态性,但问题是,我无法将这些字段添加到图表中,因为它们需要在public interface ArbitraryFunctionAccess
中预先定义。
我希望我能恰当地描述我的需要。有没有人知道这个可能的解决方案?
我看了看它,这似乎使我朝着正确的方向,但似乎我真的不能变通解决'@Path(“X”) ModelKeyProvider x键( );'事情..ArbitraryFunction现在定义为'公共抽象类ArbitraryFunction实现ValueProvider '但现在我不知道如何管理ModelKeyProvider。我想要的只是将多条线条动态添加到图表中。 –
displayname
2013-03-25 15:55:01
您需要更改您的问题 - 而不是无法完成的任务,从您想要实现的目标开始,然后继续尝试所尝试的目标。但要重申,PropertyAccess不能为动态属性集做任何事情。放弃任意功能的想法 - ValueProvider *就是那个功能。您可以查看本博客文章的ValueProvider部分:http://www.sencha.com/blog/building-gxt-charts/ – 2013-03-25 15:58:43
图表如何区分行吗?我知道这个问题听起来很愚蠢,但是..我根本没有意识到这一切,为什么看起来很棘手,只需添加几行到图表...... – displayname 2013-03-27 11:35:03