Mercurial > hg > jslab
view 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 |
line wrap: on
line source
/* * Copyright (c) 2000, Samer Abdallah, King's College London. * All rights reserved. * * This software is provided AS iS and WITHOUT ANY WARRANTY; * without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. */ package samer.tools; import java.awt.*; import java.util.*; import samer.core.*; import samer.core.util.*; public abstract class ImageTraceBase extends ImageViewer { int sx, sy; int scrollStep=1; boolean sc; boolean stretch=false; boolean scroll=false; ImageTraceBase( ImageSourceBase i, Observable o) { super(i,o); setScroll(Shell.getBoolean("scroll",false)); setStretch(Shell.getBoolean("stretch",false)); setScrollStep(1); setCellSize(cx,cy); } public void setScrollStep(int st) { scrollStep=st; } public void setScroll(boolean f) { scroll=f; } public void setStretch(boolean f) { stretch = f; sc = stretch || (cx!=1) || (cy!=1); } public void setCellSize( int a, int b) { super.setCellSize(a,b); sc = stretch || (cx!=1) || (cy!=1); sx = cx*ip.getWidth(); sy = cy*ip.getHeight(); } public void update( Graphics g) { clear(g); } public void paint( Graphics g) { clear(g); } public void getCommands(Agent.Registry r) { super.getCommands(r); r.group(); r.add("scroll",scroll).add("stretch",stretch).add("cell.size"); } public void execute(String cmd, Environment env) throws Exception { if (cmd.equals("scroll")) { setScroll(X._bool(env.datum(),!scroll)); } else if (cmd.equals("stretch")) { setStretch(X._bool(env.datum(),!stretch)); } else if (cmd.equals("cell.size")) { setCellSize( X._int(env.datum("cell.width"),cx), X._int(env.datum("cell.height"),cy) ); } else super.execute(cmd,env); } public abstract void next(); public void update(Observable o, Object oo) { if (o==obs && oo!=Viewable.DISPOSING) next(); else super.update(o,oo); } }