Mercurial > hg > jslab
annotate src/samer/maths/IntArrayEditor.java @ 8:5e3cbbf173aa tip
Reorganise some more
author | samer |
---|---|
date | Fri, 05 Apr 2019 22:41:58 +0100 |
parents | bf79fb79ee13 |
children |
rev | line source |
---|---|
samer@0 | 1 package samer.maths; |
samer@0 | 2 |
samer@0 | 3 import samer.core.*; |
samer@0 | 4 import samer.core.types.*; |
samer@0 | 5 import samer.core.util.*; |
samer@0 | 6 import java.util.*; |
samer@0 | 7 |
samer@0 | 8 public class IntArrayEditor extends BaseViewer |
samer@0 | 9 { |
samer@0 | 10 int [] x; |
samer@0 | 11 VInteger index, value; |
samer@0 | 12 |
samer@0 | 13 public IntArrayEditor(int [] x) |
samer@0 | 14 { |
samer@0 | 15 super(new Observable()); |
samer@0 | 16 |
samer@0 | 17 this.x = x; |
samer@0 | 18 index = new VInteger("index",0,0); |
samer@0 | 19 value = new VInteger("value",0,0); |
samer@0 | 20 index.setRange(0,x.length-1); |
samer@0 | 21 value.setRange(0,2*x[0]); |
samer@0 | 22 panel().setName("int array"); |
samer@0 | 23 panel().setLayout(new StackLayout()); |
samer@0 | 24 add(index); |
samer@0 | 25 add(value); |
samer@0 | 26 index.addObserver(this); |
samer@0 | 27 value.addObserver(this); |
samer@0 | 28 } |
samer@0 | 29 |
samer@0 | 30 public void update(Observable obs, Object arg) |
samer@0 | 31 { |
samer@0 | 32 if (obs==index) { |
samer@0 | 33 value.setRange(0,2*x[index.value]); |
samer@0 | 34 value.value = x[index.value]; |
samer@0 | 35 value.changed(this); |
samer@0 | 36 } else if (obs==value) { |
samer@0 | 37 if (arg!=this) { |
samer@0 | 38 x[index.value]=value.value; |
samer@0 | 39 } |
samer@0 | 40 } else super.update(obs,arg); |
samer@0 | 41 } |
samer@0 | 42 } |