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);
+	}
+}