// FailedTransmission.java package simulator; import java.awt.*; import support.ProtocolEvent; /** This is the class for a failed transmission arrow. @author Kenneth J. Turner @version 1.0 (1st September 1999, IAR): initial version

1.5 (22nd July 2010, KJT): minor tidying */ public class FailedTransmission extends TransmissionSymbol { private final static int crossSize = 10; /** Constructor for a traverse transmission arrow. @param event protocol event @param lToR true = left-to-right @param column column @param top top of service primitive @param height height of successful transmission */ public FailedTransmission( ProtocolEvent event, boolean lToR, int column, int top, int height) { super(event, lToR, column, top, height); } /** Draw a dashed line with cutoff representing failed transmission through medium. @param g graphics object */ public void draw(Graphics g) { int leftX = inset + col * columnWidth + arrowWidth / 2; int rightX = leftX + columnWidth - arrowWidth; int midX = (leftX + rightX) / 2; int midY = top + height / 2; g.setColor(Color.blue); if (lToR) drawDashedLine(g, leftX, top, midX, midY, dashLength); else drawDashedLine(g, rightX, top, midX, midY, dashLength); // draw a cross to indicate loss of signal g.drawLine(midX - crossSize / 2, midY - crossSize / 2, midX + crossSize / 2, midY + crossSize / 2); g.drawLine(midX + crossSize / 2, midY - crossSize / 2, midX - crossSize / 2, midY + crossSize / 2); g.setColor(Color.black); } }