Mercurial > hg > jslab
annotate src/samer/tools/SignalTrace.java @ 0:bf79fb79ee13
Initial Mercurial check in.
author | samer |
---|---|
date | Tue, 17 Jan 2012 17:50:20 +0000 |
parents | |
children |
rev | line source |
---|---|
samer@0 | 1 /* |
samer@0 | 2 * DoubleAgent.java |
samer@0 | 3 * |
samer@0 | 4 * Copyright (c) 2000, Samer Abdallah, King's College London. |
samer@0 | 5 * All rights reserved. |
samer@0 | 6 * |
samer@0 | 7 * This software is provided AS IS and WITHOUT ANY WARRANTY; |
samer@0 | 8 * without even the implied warranty of MERCHANTABILITY or |
samer@0 | 9 * FITNESS FOR A PARTICULAR PURPOSE. |
samer@0 | 10 */ |
samer@0 | 11 |
samer@0 | 12 package samer.tools; |
samer@0 | 13 import samer.core.*; |
samer@0 | 14 import samer.core.types.*; |
samer@0 | 15 import java.util.*; |
samer@0 | 16 import java.awt.*; |
samer@0 | 17 |
samer@0 | 18 public class SignalTrace extends Trace |
samer@0 | 19 { |
samer@0 | 20 VDouble x; |
samer@0 | 21 Color col; |
samer@0 | 22 Renderer R; |
samer@0 | 23 int oldj; |
samer@0 | 24 |
samer@0 | 25 public SignalTrace(VDouble x) { |
samer@0 | 26 this.x=x; |
samer@0 | 27 col=Shell.getColor("color",getForeground()); |
samer@0 | 28 R=(Renderer)Shell.get("renderer",Renderer.LINE); |
samer@0 | 29 oldj=-1; |
samer@0 | 30 } |
samer@0 | 31 |
samer@0 | 32 public void run() { |
samer@0 | 33 super.run(); |
samer@0 | 34 int j=height-map.toInt(x.value); |
samer@0 | 35 if (oldj<0) oldj=j; |
samer@0 | 36 graphics.setColor(col); |
samer@0 | 37 R.draw(graphics,x1,x2,oldj,j,j0); |
samer@0 | 38 oldj=j; |
samer@0 | 39 } |
samer@0 | 40 public void detach() { x.deleteObserver(this); } |
samer@0 | 41 public void update(Observable obs, Object arg) { |
samer@0 | 42 if (arg==Viewable.DISPOSING) { detach(); getParent().remove(this); } |
samer@0 | 43 else if (x==obs) run(); |
samer@0 | 44 else super.update(obs,arg); |
samer@0 | 45 } |
samer@0 | 46 |
samer@0 | 47 public void getCommands(Registry r) { super.getCommands(r); r.add("renderer"); } |
samer@0 | 48 public void execute(String cmd, Environment env) throws Exception { |
samer@0 | 49 if (cmd.equals("renderer")) R=(Renderer)Shell.get("renderer",Renderer.LINE); |
samer@0 | 50 else super.execute(cmd,env); |
samer@0 | 51 } |
samer@0 | 52 } |
samer@0 | 53 |