annotate src/samer/tools/SignalTrace.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 /*
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