func (v *mappingView) drawChannels(context *cairo.Context, r image.Rectangle) { for _, a := range v.arch { for _, pr := range a.Processes() { for _, c := range pr.UserObj().OutChannels() { link := c.Link() lpr := link.Process() la := lpr.Arch() if la.Name() != a.Name() { var a2 graph.ArchIf for _, a2 = range v.arch { if a2.UserObj() == la { break } } p1 := a.ChannelPort(c) p2 := a2.ChannelPort(link) if p1 == nil || p2 == nil { log.Printf("mappingView.drawChannels error: invalid nil port (%s - %s).\n", a.Name(), la.Name()) continue } r, g, b, _ := graph.ColorOption(graph.NormalLine) context.SetLineWidth(2) context.SetSourceRGB(r, g, b) pos1 := p1.Position().Add(image.Point{5, 5}) pos2 := p2.Position().Add(image.Point{5, 5}) graph.DrawLine(context, pos1, pos2) } } } } }
func (v *mappingView) focusArchFromUserObject(obj pf.ArchIf) (ret graph.ArchIf, ok bool) { var a graph.ArchIf for _, a = range v.arch { if obj.Name() == a.UserObj().Name() { ret = a ok = true } else { if a.Deselect() { v.repaintArch(a) } } } return }