Example: /ChartDirector/colorgantt

Online Documentation   -   Statistics   -   FAQ   -   Plugin Parts (All, Dependencies)   -   Class hierarchy

New in Version 22.2 22.3 22.4 22.5 23.0 23.1 23.2 23.3 23.4 23.5 24.0 24.1

The list of the   topics,   classes,   interfaces,   controls,   modules,   global methods by category,   global methods by name,   screenshots,   licenses   and   examples.

Platforms to show: All Mac Windows Linux Cross-Platform

/ChartDirector/colorgantt


Required plugins for this example: MBS ChartDirector Plugin

You find this example project in your Plugins Download as a Xojo project file within the examples folder: /ChartDirector/colorgantt

This example is the version from Fri, 2nd Aug 2012.

Project "colorgantt.xojo_binary_project"
Class App Inherits Application
Const kEditClear = "&Löschen"
Const kFileQuit = "Beenden"
Const kFileQuitShortcut = ""
End Class
Class PicWindow Inherits Window
EventHandler Sub Open() // The tasks for the gantt chart dim labels(-1) as string = array ("Market Research", "Define Specifications", "Overall Archiecture", "Project Planning", "Detail Design", "Software Development", "Test Plan", "Testing and QA", "User Documentation") // The task index, start date, end date and color for each bar dim taskNo(-1) as double = array(0, 0, 1, 2, 3, 4, 5, 6, 6, 7, 8, 8.0) dim startDate(-1) as double = array(CDXYChartMBS.chartTime(2004, 8, 16), CDXYChartMBS.chartTime(2004, 10, 4), CDXYChartMBS.chartTime(2004, 8, 30), CDXYChartMBS.chartTime(2004, 9, 13), CDXYChartMBS.chartTime(2004, 9, 20), CDXYChartMBS.chartTime(2004, 9, 27), CDXYChartMBS.chartTime(2004, 10, 4), CDXYChartMBS.chartTime(2004, 10, 4), CDXYChartMBS.chartTime(2004, 10, 25), CDXYChartMBS.chartTime(2004, 11, 1), CDXYChartMBS.chartTime(2004, 10, 18), CDXYChartMBS.chartTime(2004, 11, 8)) dim endDate(-1) as double = array(CDXYChartMBS.chartTime(2004, 8, 30), CDXYChartMBS.chartTime(2004, 10, 18), CDXYChartMBS.chartTime(2004, 9, 13), CDXYChartMBS.chartTime(2004, 9, 27), CDXYChartMBS.chartTime(2004, 10, 4), CDXYChartMBS.chartTime(2004, 10, 11), CDXYChartMBS.chartTime(2004, 11, 8), CDXYChartMBS.chartTime(2004, 10, 18), CDXYChartMBS.chartTime(2004, 11, 8), CDXYChartMBS.chartTime(2004, 11, 22), CDXYChartMBS.chartTime(2004, 11, 1), CDXYChartMBS.chartTime(2004, 11, 22)) dim colors(-1) as integer colors.append &h00cc00 colors.append &h00cc00 colors.append &h00cc00 colors.append &h0000cc colors.append &h0000cc colors.append &hcc0000 colors.append &hcc0000 colors.append &h0000cc colors.append &hcc0000 colors.append &hcc0000 colors.append &h00cc00 colors.append &hcc0000 // Create a XYChart object of size 620 x 325 pixels. Set background color to // light red (&hffcccc), with 1 pixel 3D border effect. dim c as new CDXYChartMBS(620, 325, &hffcccc, &h000000, 1) // Add a title to the chart using 15 points Times Bold Itatic font, with white // (ffffff) text on a dark red (800000) background c.addTitle("Multi-Color Gantt Chart Demo", "timesbi.ttf", 15, &hffffff).setBackground(&h800000) // Set the plotarea at (140, 55) and of size 460 x 200 pixels. Use alternative // white/grey background. Enable both horizontal and vertical grids by setting // their colors to grey (c0c0c0). Set vertical major grid (represents month // boundaries) 2 pixels in width c.setPlotArea(140, 55, 460, 200, &hffffff, &heeeeee, CDXYChartMBS.kLineColor, &hc0c0c0, &hc0c0c0).setGridWidth(2, 1, 1, 1) // swap the x and y axes to create a horziontal box-whisker chart c.swapXY // Set the y-axis scale to be date scale from Aug 16, 2004 to Nov 22, 2004, with // ticks every 7 days (1 week) c.yAxis.setDateScale(CDXYChartMBS.chartTime(2004, 8, 16), CDXYChartMBS.chartTime(2004, 11, 22), 86400 * 7) // Set multi-style axis label formatting. Month labels are in Arial Bold font in // "mmm d" format. Weekly labels just show the day of month and use minor tick // (by using '-' as first character of format string). c.yAxis.setMultiFormat(CDXYChartMBS.StartOfMonthFilter, "<*font=arialbd.ttf*>{value|mmm d}", CDXYChartMBS.StartOfDayFilter, "-{value|d}") // Set the y-axis to shown on the top (right + swapXY = top) c.setYAxisOnRight // Set the labels on the x axis call c.xAxis.setLabels(labels) // Reverse the x-axis scale so that it points downwards. c.xAxis.setReverse // Set the horizontal ticks and grid lines to be between the bars c.xAxis.setTickOffset(0.5) // Add some symbols to the chart to represent milestones. The symbols are added // using scatter layers. We need to specify the task index, date, name, symbol // shape, size and color. dim coor1(-1) as Double = array(1.0) dim date1(-1) as Double = array(CDXYChartMBS.chartTime(2004, 9, 13)) call c.addScatterLayer(coor1, date1, "Milestone 1", CDXYChartMBS.Cross2Shape, 13, &hffff00) dim coor2(-1) as Double = array(3.0) dim date2(-1) as Double = array(CDXYChartMBS.chartTime(2004, 10, 4)) call c.addScatterLayer(coor2, date2, "Milestone 2", CDXYChartMBS.StarShape(5), 15, &hff00ff) dim coor3(-1) as Double = array(5.0) dim date3(-1) as Double = array(CDXYChartMBS.chartTime(2004, 11, 8)) call c.addScatterLayer(coor3, date3, "Milestone 3", CDXYChartMBS.kTriangleSymbol, 13, &hff9933) // Add a multi-color box-whisker layer to represent the gantt bars dim layer as CDBoxWhiskerLayerMBS dim m1(-1) as Double dim m2(-1) as Double dim m3(-1) as Double layer = c.addBoxWhiskerLayer2(startDate, endDate, m1, m2, m3, colors) layer.setXData(taskNo) layer.setBorderColor(CDXYChartMBS.kSameAsMainColor) // Divide the plot area height ( = 200 in this chart) by the number of tasks to // get the height of each slot. Use 80% of that as the bar height. layer.setDataWidth(200 * 4 / 5 / 9) // Add a legend box at (140, 265) - bottom of the plot area. Use 8 pts Arial Bold // as the font with auto-grid layout. Set the width to the same width as the plot // area. Set the backgorund to grey (dddddd). dim legendBox as CDLegendBoxMBS legendBox = c.addLegend(140, 265, CDXYChartMBS.kAutoGrid, "arialbd.ttf", 8) legendBox.setWidth(461) legendBox.setBackground(&hdddddd) // The keys for the scatter layers (milestone symbols) will automatically be // added to the legend box. We just need to add keys to show the meanings of the // bar colors. legendBox.addKey("Market Team", &h00cc00) legendBox.addKey("Planning Team", &h0000cc) legendBox.addKey("Development Team", &hcc0000) // Output the chart Backdrop=c.makeChartPicture End EventHandler
End Class
MenuBar MenuBar1
MenuItem FileMenu = "&Ablage"
MenuItem FileQuit = "#App.kFileQuit"
MenuItem EditMenu = "&Bearbeiten"
MenuItem EditUndo = "&Rückgängig"
MenuItem UntitledMenu1 = "-"
MenuItem EditCut = "&Ausschneiden"
MenuItem EditCopy = "&Kopieren"
MenuItem EditPaste = "&Einfügen"
MenuItem EditClear = "#App.kEditClear"
MenuItem UntitledMenu0 = "-"
MenuItem EditSelectAll = "&Alles auswählen"
End MenuBar
End Project

The items on this page are in the following plugins: MBS ChartDirector Plugin.


💬 Ask a question or report a problem