package com.github.jknack.antlr4ide.ui.railroad.figures; import org.eclipse.draw2d.Graphics; import org.eclipse.draw2d.LayoutManager; import org.eclipse.draw2d.LineBorder; import org.eclipse.emf.ecore.EObject; import com.github.jknack.antlr4ide.ui.railroad.figures.layout.CompartmentLayout; import com.github.jknack.antlr4ide.ui.railroad.figures.primitives.PrimitiveFigureFactory; /** * A track segment in a compartment. * * @author Jan Koehnlein */ public class CompartmentSegment extends AbstractSegmentFigure { private ISegmentFigure innerFigure; public CompartmentSegment(final EObject eObject, final ISegmentFigure innerSegment, final PrimitiveFigureFactory primitiveFactory) { super(eObject); setEntry(primitiveFactory.createCrossPoint(this)); setExit(primitiveFactory.createCrossPoint(this)); add(innerSegment); primitiveFactory.createConnection(getEntry(), innerSegment.getEntry(), this); primitiveFactory.createConnection(innerSegment.getExit(), getExit(), this); setBorder(new LineBorder(getForegroundColor(), 1, Graphics.LINE_DASH)); innerFigure = innerSegment; } public ISegmentFigure getInnerSegment() { return innerFigure; } @Override protected LayoutManager createLayoutManager() { return new CompartmentLayout(); } }