def Draw(self, dc: DC, withChildren: bool = True): """ Draw the line on the dc. Args: dc: withChildren: """ if self._visible: super().Draw(dc=dc, withChildren=withChildren) line = self.GetSegments() from org.pyut.ogl.sd.OglSDMessage import OglSDMessage if isinstance(self, OglSDMessage): LineShape.clsLogger.debug(f'{self} - {self._selected=}') if self._selected: dc.SetPen(RED_PEN) if self._spline: dc.DrawSpline(line) else: dc.DrawLines(line) for control in self._controls: control.Draw(dc) if self._selected: self._srcAnchor.Draw(dc) self._dstAnchor.Draw(dc) dc.SetPen(BLACK_PEN) if self._drawArrow: u, v = line[-2], line[-1] self.DrawArrow(dc, u, v) if withChildren: # LineShape.clsLogger.debug(f'Call DrawChildren()') self.DrawChildren(dc)
def Draw(self, dc: DC, withChildren: bool = True): """ Draw the line on the dc. Args: dc: withChildren: """ if self._visible: super().Draw(dc=dc, withChildren=withChildren) line = self.GetSegments() if self._selected: dc.SetPen(RED_PEN) if self._spline: dc.DrawSpline(line) else: dc.DrawLines(line) for control in self._controls: control.Draw(dc) if self._selected: self._srcAnchor.Draw(dc) self._dstAnchor.Draw(dc) dc.SetPen(BLACK_PEN) if self._drawArrow: u, v = line[-2], line[-1] self.DrawArrow(dc, u, v) if withChildren: self.DrawChildren(dc)
def Draw(self, dc: DC, withChildren: bool = False): """ Called for drawing of interface links. OglLink drew regular lines I need dashed lines for an interface Args: dc: Device context withChildren: Draw the children or not """ self.updateLabels() if self._visible: line = self.GetSegments() if self._selected: dc.SetPen(RED_PEN) if self._spline: dc.DrawSpline(line) else: pen: Pen = dc.GetPen() # pen.SetStyle( PENSTYLE_SHORT_DASH ) # This is what is different from OglLink.Draw(..) dc.SetPen(pen) # dc.DrawLines(line) for control in self._controls: control.Draw(dc) if self._selected: self._srcAnchor.Draw(dc) self._dstAnchor.Draw(dc) dc.SetPen(BLACK_PEN) if self._drawArrow: u, v = line[-2], line[-1] self.DrawArrow(dc, u, v) if withChildren is True: self.DrawChildren(dc)