Class TaskJuggler::GanttContainer
In: lib/taskjuggler/reports/GanttContainer.rb
Parent: Object

The GanttContainer represents a container task (task with sub-tasks).

Methods

Included Modules

HTMLGraphics

Public Class methods

Create a GanttContainer object based on the following information: line is a reference to the GanttLine. xStart is the left edge of the task in chart coordinates. xEnd is the right edge. The container extends over the edges due to the shape of the jags.

[Source]

# File lib/taskjuggler/reports/GanttContainer.rb, line 30
    def initialize(lineHeight, xStart, xEnd, y)
      @lineHeight = lineHeight
      @start = xStart
      @end = xEnd
      @y = y
    end

Public Instance methods

[Source]

# File lib/taskjuggler/reports/GanttContainer.rb, line 59
    def addBlockedZones(router)
      # Horizontal block
      router.addZone(@start - @@size, @y + (@lineHeight / 2) - @@size - 2,
                     @end - @start + 1 + 2 * @@size, 2 * @@size + 5, true,
                     false)
      # Block for arrowhead.
      router.addZone(@start - @@size - 9, @y + (@lineHeight / 2) - 7, 10, 15,
                     true, true)
      # Vertical block for end cap
      router.addZone(@start - @@size - 2, @y, 2 * @@size + 5, @lineHeight,
                     false, true)
      router.addZone(@end - @@size - 2, @y, 2 * @@size + 5, @lineHeight,
                     false, true)
    end

Return the point [ x, y ] where task end dependency lines should end at.

[Source]

# File lib/taskjuggler/reports/GanttContainer.rb, line 55
    def endDepLineEnd
      [ @end, @y + @lineHeight / 2 ]
    end

Return the point [ x, y ] where task end dependency lines should start from.

[Source]

# File lib/taskjuggler/reports/GanttContainer.rb, line 50
    def endDepLineStart
      [ @end + @@size, @y + @lineHeight / 2 ]
    end

Return the point [ x, y ] where task start dependency lines should end at.

[Source]

# File lib/taskjuggler/reports/GanttContainer.rb, line 44
    def startDepLineEnd
      [ @start - @@size, @y + @lineHeight / 2 ]
    end

Return the point [ x, y ] where task start dependency lines should start from.

[Source]

# File lib/taskjuggler/reports/GanttContainer.rb, line 39
    def startDepLineStart
      [ @start, @y + @lineHeight / 2 ]
    end

Convert the abstact representation of the GanttContainer into HTML elements.

[Source]

# File lib/taskjuggler/reports/GanttContainer.rb, line 76
    def to_html
      xStart = @start.to_i
      yCenter = (@lineHeight / 2).to_i
      width = @end.to_i - @start.to_i + 1

      html = []

      # Invisible trigger frame for tooltips.
      html << rectToHTML(xStart - @@size, 0, width + 2 * @@size, @lineHeight,
                         'tj_gantt_frame')

      # The bar
      html << rectToHTML(xStart - @@size, yCenter - @@size,
                         width + 2 * @@size, @@size, 'containerbar')
      # The left jag
      html << jagToHTML(xStart, yCenter)
      # The right jag
      html << jagToHTML(xStart + width, yCenter)

      html
    end

[Validate]