package edu.sc.seis.sod; import java.awt.Dimension; import edu.iris.Fissures.model.MicroSecondDate; import edu.sc.seis.fissuresUtil.display.SeismogramDisplay; import edu.sc.seis.fissuresUtil.display.drawable.DrawableSeismogram; import edu.sc.seis.fissuresUtil.display.drawable.Flag; import edu.sc.seis.fissuresUtil.time.MicroSecondTimeRange; public class SodFlag extends Flag { public SodFlag(MicroSecondDate flagTime, String name, SeismogramDisplay sd) { this(flagTime, name, sd, null); } public SodFlag(MicroSecondDate flagTime, String name, SeismogramDisplay sd, DrawableSeismogram seis) { super(flagTime, name, seis); this.sd = sd; } public int getFlagLocation(Dimension size, MicroSecondTimeRange timeRange) { int relFlagLocation = super.getFlagLocation(size, timeRange); x = relFlagLocation + sd.getInsets().left; if(sd.get(SeismogramDisplay.CENTER_LEFT) != null) { x += sd.get(SeismogramDisplay.CENTER_LEFT).getWidth(); } top = sd.getInsets().top; if(sd.get(SeismogramDisplay.TOP_CENTER) != null) { top += sd.get(SeismogramDisplay.TOP_CENTER).getHeight(); } bottom = sd.getHeight() - sd.getInsets().bottom + top; if(sd.get(SeismogramDisplay.BOTTOM_CENTER) != null) { bottom -= sd.get(SeismogramDisplay.BOTTOM_CENTER).getHeight(); } return relFlagLocation; } public FlagData getFlagData() { FlagData flagData = new FlagData(x, top, bottom); return flagData; } private SeismogramDisplay sd = null; private int x = -1; private int bottom = -1; private int top = -1; }