React Gantt sample
Import the react libraries and the 'FlexyGantt' component from its desired path 'RQSrc/React_Components/FlexyGantt.jsx';
|
import * as React from "react"; import * as ReactDOM from "react-dom"; import FlexyGantt from 'RQSrc/React_Components/FlexyGantt.jsx'; import './FlexyGanttSkeleton.css'; // To get the name from the bounded list . // Converter should be define globally using window function initConverters() { window.nameConverter = function (flexyNodeData, value) { var data; // The grid calls this converter with flexyNodeData as a arg. if (flexyNodeData.Data) data = flexyNodeData.Data(); // The grid calls this converter with flexyNodeData as a datacontext. else data = flexyNodeData; if (value == undefined) { if (data["TName"] != undefined) return data["TName"]; else if (data["RName"] != undefined) return data["RName"]; else if (data["TaskName"] != undefined) return data["TaskName"]; } else { if (data["TName"] != undefined) data["TName"] = value; else if (data["RName"] != undefined) data["RName"] = value; else if (data["TaskName"] != undefined) data["TaskName"] = value; } }; // To get the short time format. var toolTipDateformat = Date.CultureInfo.formatPatterns.shortDate + ' ' + "HH:mm:ss"; window.startTimeTooltipConverter = function (data) { if (data["PStartTime"]) return data["PStartTime"].toString(toolTipDateformat); else if (data["StartTime"]) return data["StartTime"].toString(toolTipDateformat); return null; } window.endTimeTooltipConverter = function (data) { if (data["PEndTime"]) return data["PEndTime"].toString(toolTipDateformat); else if (data["EndTime"]) return data["EndTime"].toString(toolTipDateformat); return null; } } export default class FlexyGanttSkeleton extends React.Component { constructor() { super(); initConverters(); this.columns = [{ field: "Name", title: "Name", editor: RadiantQ.Default.Template.FlexyGanttExpandableTextBoxEditor("nameConverter"), template: RadiantQ.Default.Template.FlexyGanttExpandableTextBlockTemplate("nameConverter") }]; // Determine the time the timeline in the gantt should scroll to. this.anchorTime = new Date("2014-04-02T00:00:00-00:00"); this.TaskStartTimeProperty = "StartTime"; this.ParentTaskStartTimeProperty = "PStartTime"; this.TaskEndTimeProperty = "EndTime"; this.ParentTaskEndTimeProperty = "PEndTime"; this.TasksListProperty = "Tasks"; this.pTemplate = "<div class='rq-gc-parentBar'><div class='rq-taskbar-dragThumb'></div><div class='rq-taskbar-resizeThumb'></div><div class='start-resizeThumb'></div><div class='rq-gc-parentBar-leftCue'></div><div class='rq-gc-parentBar-middle'></div><div class='rq-gc-parentBar-rightCue'></div></div>"; // The template that defines the look for the task bars. "rq-gc-taskbar" is a built-in style that defines a default look for the task bars. this.tTemplate = "<div class='rq-gc-taskbar'><div class='rq-taskbar-dragThumb'></div><div class='rq-taskbar-resizeThumb'></div><div class='start-resizeThumb'></div></div>"; // The template for the custom tooltip. this.TaskTooltipTemplate = "<div class='TaskTooltip'><div align='center'>Name: ${nameConverter(data)}</div><div><span>StartTime : ${startTimeTooltipConverter(data) }</span><br/><span>EndTime : ${endTimeTooltipConverter(data)}</span></div></div>"; } // The FlexyGantt is bound to resolve the hierarchy of Team/Resources/Tasks. resolverFunction(data) { if (data["Resources"] != undefined) { return data["Resources"]; } return null; } GanttChartTemplateApplied(sender, args) { var $GanttChart = args.element; $GanttChart.GanttChart({ AnchorTime: this.anchorTime }); } render() { var height = { height: '495px' }; return ( <div style={height}> <FlexyGantt Url='./DataSource/FlexyGanttSkeleton.json' columns={this.columns} FlexyGanttSkeleton resolverFunction={(data) => this.resolverFunction(data)} GanttChartTemplateApplied={(sender, args) => this.GanttChartTemplateApplied(sender, args)} TaskStartTimeProperty={this.TaskStartTimeProperty} ParentTaskStartTimeProperty={this.ParentTaskStartTimeProperty} TaskEndTimeProperty={this.TaskEndTimeProperty} ParentTaskEndTimeProperty={this.ParentTaskEndTimeProperty} TasksListProperty={this.TasksListProperty} ParentTaskItemTemplate={this.pTemplate} TaskItemTemplate={this.tTemplate} TaskTooltipTemplate={this.TaskTooltipTemplate} /> </div> ); } } ReactDOM.render(<FlexyGanttSkeleton/>, document.getElementById('container')); |
FlexyGanttSkeleton.jsx.
The ReactDOM.render method can render the "FlexyGanttSkeleton" component into the DOM. Here, the second argument "container" specifies the mount element . Mount element defined inside the "index.html".
This is illustrated in the following path:
In React : \PlatformSamples\React\Samples\FlexyGanttSkeleton\FlexyGanttSkeleton.jsx.
© RadiantQ 2022. All Rights Reserved.