annotate src/samer/tools/ImageTraceBase.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 * Copyright (c) 2000, Samer Abdallah, King's College London.
samer@0 3 * All rights reserved.
samer@0 4 *
samer@0 5 * This software is provided AS iS and WITHOUT ANY WARRANTY;
samer@0 6 * without even the implied warranty of MERCHANTABILITY or
samer@0 7 * FITNESS FOR A PARTICULAR PURPOSE.
samer@0 8 */
samer@0 9
samer@0 10 package samer.tools;
samer@0 11
samer@0 12 import java.awt.*;
samer@0 13 import java.util.*;
samer@0 14 import samer.core.*;
samer@0 15 import samer.core.util.*;
samer@0 16
samer@0 17 public abstract class ImageTraceBase extends ImageViewer
samer@0 18 {
samer@0 19 int sx, sy;
samer@0 20 int scrollStep=1;
samer@0 21 boolean sc;
samer@0 22 boolean stretch=false;
samer@0 23 boolean scroll=false;
samer@0 24
samer@0 25
samer@0 26 ImageTraceBase( ImageSourceBase i, Observable o)
samer@0 27 {
samer@0 28 super(i,o);
samer@0 29
samer@0 30 setScroll(Shell.getBoolean("scroll",false));
samer@0 31 setStretch(Shell.getBoolean("stretch",false));
samer@0 32 setScrollStep(1);
samer@0 33 setCellSize(cx,cy);
samer@0 34 }
samer@0 35
samer@0 36 public void setScrollStep(int st) { scrollStep=st; }
samer@0 37 public void setScroll(boolean f) { scroll=f; }
samer@0 38 public void setStretch(boolean f) {
samer@0 39 stretch = f;
samer@0 40 sc = stretch || (cx!=1) || (cy!=1);
samer@0 41 }
samer@0 42
samer@0 43 public void setCellSize( int a, int b)
samer@0 44 {
samer@0 45 super.setCellSize(a,b);
samer@0 46 sc = stretch || (cx!=1) || (cy!=1);
samer@0 47 sx = cx*ip.getWidth();
samer@0 48 sy = cy*ip.getHeight();
samer@0 49 }
samer@0 50
samer@0 51 public void update( Graphics g) { clear(g); }
samer@0 52 public void paint( Graphics g) { clear(g); }
samer@0 53
samer@0 54 public void getCommands(Agent.Registry r) {
samer@0 55 super.getCommands(r); r.group();
samer@0 56 r.add("scroll",scroll).add("stretch",stretch).add("cell.size");
samer@0 57 }
samer@0 58
samer@0 59 public void execute(String cmd, Environment env) throws Exception
samer@0 60 {
samer@0 61 if (cmd.equals("scroll")) {
samer@0 62 setScroll(X._bool(env.datum(),!scroll));
samer@0 63 } else if (cmd.equals("stretch")) {
samer@0 64 setStretch(X._bool(env.datum(),!stretch));
samer@0 65 } else if (cmd.equals("cell.size")) {
samer@0 66 setCellSize(
samer@0 67 X._int(env.datum("cell.width"),cx),
samer@0 68 X._int(env.datum("cell.height"),cy)
samer@0 69 );
samer@0 70 } else super.execute(cmd,env);
samer@0 71 }
samer@0 72
samer@0 73 public abstract void next();
samer@0 74
samer@0 75 public void update(Observable o, Object oo) {
samer@0 76 if (o==obs && oo!=Viewable.DISPOSING) next();
samer@0 77 else super.update(o,oo);
samer@0 78 }
samer@0 79 }