code: func (a *CellView) Draw() {
  
  	port := a.port
  	model := a.model
  	port.Fill(' ', a.style)
  
  	if a.view == nil {
  		return
  	}
  	if model == nil {
  		return
  	}
  	vw, vh := a.view.Size()
  	for y := 0; y < vh; y++ {
  		for x := 0; x < vw; x++ {
  			a.view.SetContent(x, y, ' ', nil, a.style)
  		}
  	}
  
  	ex, ey := model.GetBounds()
  	vx, vy := port.Size()
  	if ex < vx {
  		ex = vx
  	}
  	if ey < vy {
  		ey = vy
  	}
  
  	cx, cy, en, sh := a.model.GetCursor()
  	for y := 0; y < ey; y++ {
  		for x := 0; x < ex; x++ {
  			ch, style, comb, wid := model.GetCell(x, y)
  			if ch == 0 {
  				ch = ' '
  				style = a.style
  			}
  			if en && x == cx && y == cy && sh {
  				style = style.Reverse(true)
  			}
  			port.SetContent(x, y, ch, comb, style)
  			x += wid - 1
  		}
  	}
  }
docs: // Draw draws the content.