class TaskJuggler::GanttTaskBar
The GanttTaskBar
represents a normal task that is part of a GanttChart
.
Public Class Methods
new(query, lineHeight, xStart, xEnd, y)
click to toggle source
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.
# File lib/taskjuggler/reports/GanttTaskBar.rb, line 29 def initialize(query, lineHeight, xStart, xEnd, y) @query = query @lineHeight = lineHeight @start = xStart @end = xEnd @y = y end
Public Instance Methods
addBlockedZones(router)
click to toggle source
# File lib/taskjuggler/reports/GanttTaskBar.rb, line 59 def addBlockedZones(router) # Horizontal block for whole bar. router.addZone(@start, @y + (@lineHeight / 2) - @@size - 1, @end - @start + 1, 2 * @@size + 3, true, false) # Block for arrowhead. router.addZone(@start - 9, @y + (@lineHeight / 2) - 7, 10, 15, true, true) # Vertical block for end cap router.addZone(@start - 2, @y, 5, @lineHeight, false, true) router.addZone(@end - 2, @y, 5, @lineHeight, false, true) end
endDepLineEnd()
click to toggle source
Return the point [ x, y ] where task end dependency lines should end at.
# File lib/taskjuggler/reports/GanttTaskBar.rb, line 55 def endDepLineEnd [ @end - 1, @y + @lineHeight / 2 ] end
endDepLineStart()
click to toggle source
Return the point [ x, y ] where task end dependency lines should start from.
# File lib/taskjuggler/reports/GanttTaskBar.rb, line 50 def endDepLineStart [ @end + 1, @y + @lineHeight / 2 ] end
startDepLineEnd()
click to toggle source
Return the point [ x, y ] where task start dependency lines should end at.
# File lib/taskjuggler/reports/GanttTaskBar.rb, line 44 def startDepLineEnd [ @start - 1, @y + @lineHeight / 2 ] end
startDepLineStart()
click to toggle source
Return the point [ x, y ] where task start dependency lines should start from.
# File lib/taskjuggler/reports/GanttTaskBar.rb, line 39 def startDepLineStart [ @start + 1, @y + @lineHeight / 2 ] end
to_html()
click to toggle source
Convert the abstact representation of the GanttTaskBar
into HTML elements.
# File lib/taskjuggler/reports/GanttTaskBar.rb, line 73 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, 0, width, @lineHeight, 'tj_gantt_frame') # First we draw the task frame. html << rectToHTML(xStart, yCenter - @@size, width, 2 * @@size, 'taskbarframe') # The we draw the filling. html << rectToHTML(xStart + 1, yCenter - @@size + 1, width - 2, 2 * @@size - 2, 'taskbar') # And then the progress bar. If query is null we assume 50% completion. if @query @query.attributeId = 'complete' @query.process res = @query.result completion = res ? res / 100.0 : 0.0 else completion = 0.5 end html << rectToHTML(xStart + 1, yCenter - @@size / 2, (width - 2) * completion, @@size, 'progressbar') end