Mercurial > hg > jslab
diff src/samer/maths/IntArrayEditor.java @ 0:bf79fb79ee13
Initial Mercurial check in.
author | samer |
---|---|
date | Tue, 17 Jan 2012 17:50:20 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/samer/maths/IntArrayEditor.java Tue Jan 17 17:50:20 2012 +0000 @@ -0,0 +1,42 @@ +package samer.maths; + +import samer.core.*; +import samer.core.types.*; +import samer.core.util.*; +import java.util.*; + +public class IntArrayEditor extends BaseViewer +{ + int [] x; + VInteger index, value; + + public IntArrayEditor(int [] x) + { + super(new Observable()); + + this.x = x; + index = new VInteger("index",0,0); + value = new VInteger("value",0,0); + index.setRange(0,x.length-1); + value.setRange(0,2*x[0]); + panel().setName("int array"); + panel().setLayout(new StackLayout()); + add(index); + add(value); + index.addObserver(this); + value.addObserver(this); + } + + public void update(Observable obs, Object arg) + { + if (obs==index) { + value.setRange(0,2*x[index.value]); + value.value = x[index.value]; + value.changed(this); + } else if (obs==value) { + if (arg!=this) { + x[index.value]=value.value; + } + } else super.update(obs,arg); + } +}