Le TOP 3 des diagrammes de Gantt JavaScript. Découvrez leurs caractéristiques, avantages et inconvénients pour choisir le meilleur outil pour votre projet.
La plupart du temps, ce que nous appelons la colonne d'information est la partie la plus à gauche de l'écran où se trouvent les informations ligne par ligne. Certains graphiques n'ont tout simplement pas besoin d'une colonne d'information, alors que la plupart en ont besoin. La méthode standard de construction d'une colonne d'information en ScheduleJS se fait en deux étapes :
<schedule-info-column-header-cell>
dans le bloc chronologique pour afficher chaque légende de colonne intérieure.<ng-template>
du graphique de Gantt à l'aide du composant cadre <schedule-info-column-row-cell>
.En utilisant ces composants de framework, vous bénéficierez d'un ensemble de fonctionnalités prêtes à l'emploi pour redimensionner et interagir avec la colonne d'information. Mais parfois, vous préférerez construire un composant plus spécifique ou utiliser l'un des nombreux composants Angular que vous pouvez trouver sur le marché à la place. Cet article décrit comment intégrer n'importe quel composant Angular en tant que colonne d'information personnalisée.
Toute application mettant en œuvre des ScheduleJS les graphiques doivent construire leur ScheduleJS component. La plupart du temps, ce composant sera le point d'entrée des graphiques et de la colonne d'information.
Voyons ce qu'il en est ScheduleJS component modèle :
<div class="demo-analytics-cumulative-graph-container">
<!-- Info column -->
<div class="demo-analytics-cumulative-graph-info-column"
[style.width.px]="stateService.infoColumnWidth">
<demo-analytics-cumulative-graph-info-column></demo-analytics-cumulative-graph-info-column>
<resize-handle resizehandleabsolute
resizehandledirection="right"
[resizehandlelinkedsize]="stateService.infoColumnWidth"
(resizehandlelinkedsizechange)="onInfoColumnWidthChange($event)">
</resize-handle>
</div>
<!-- Gantt graphics -->
<div class="demo-analytics-cumulative-graph-graphics-container">
<default-schedule-gantt-graphic-tree class="demo-analytics-cumulative-graph-graphics"
ganttngdocheckboundingstate="true"
dragtoresizeinfocolumnprevented="true"
[gantt]="gantt"
[ganttcontainerelement]="nativeElement"
[rowinfotemplate]="rowInfoTemplate"
(rowexpandedchange)="gantt.refreshTreeRows()">
<ng-template #rowinfotemplate></ng-template>
</default-schedule-gantt-graphic-tree>
<!-- Timeline -->
<div class="demo-analytics-cumulative-graph-timeline">
<schedule-date-line [gantt]="stateService.analyticsGantt"></schedule-date-line>
</div>
</div>
</div>
Si nous parcourons ce modèle, nous trouverons un seul conteneur contenant trois éléments :
<demo-analytics-cumulative-graph-info-column>
<default-schedule-gantt-graphic-tree>
<schedule-date-line>
Ici, la colonne d'information est un composant personnalisé réalisé avec Angular qui n'appartient pas à la catégorie ScheduleJS.
Il est intéressant de noter que le développeur peut construire n'importe quelle vue à l'aide de composants modulaires.
Le code suivant permet d'afficher un bloc de colonnes d'information positionné dans son conteneur parent à l'aide de CSS :
<!-- Info column -->
<div class="demo-analytics-cumulative-graph-info-column"
[style.width.px]="stateService.infoColumnWidth">
<demo-analytics-cumulative-graph-info-column></demo-analytics-cumulative-graph-info-column>
<resize-handle resizehandleabsolute
resizehandledirection="right"
[resizehandlelinkedsize]="stateService.infoColumnWidth"
(resizehandlelinkedsizechange)="onInfoColumnWidthChange($event)">
</resize-handle>
</div>
Ce bloc de colonnes d'information est composé de deux éléments :
Nous voulons que la colonne d'information soit redimensionnable. Pour ce faire, il faut ScheduleJS propose un composant Angular pratique appelé <resize-handle>
La configuration de la poignée de redimensionnement mise en œuvre ici est la suivante :
resizeHandleAbsolute
signifie qu'il utilisera position: absolute
pour son propre compteresizeHandleDirection="right"
signifie qu'il se trouvera à droite de notre composant[resizeHandleLinkedSize]
et un projet [resizeHandleLinkedSizeChange]
sont les doubles liens Angular permettant de gérer la largeur initiale et évolutive.Le composant info-colonne contiendra le modèle HTML et le contrôleur typescript pour cette colonne d'information spécifique. Dans cet exemple, nous voulons implémenter un composant du framework Angular AG Grid, jetons un coup d'œil au modèle de notre <demo-analytics-cumulative-graph-info-column>
<!-- Let's use AG Grid! -->
<ag-grid-angular #agGrid
class="demo-analytics-cumulative-graph-info-column-container ag-theme-alpine"
[style.width.px]="infoColumnWidth"
[columnDefs]="columnDefs"
[defaultColDef]="defaultColDef"
[gridOptions]="gridOptions"
[components]="components"
[rowData]="rowData">
</ag-grid-angular>
Il s'agit ici d'un AG Grid intégré dans le ScheduleJS component de manière modulaire. Vous pouvez également constater que le positionnement des <schedule-date-line>
après le composant graphique de Gantt dans le modèle, ce qui le place sous le graphique. Nous avons également décidé que ces graphiques n'incluraient pas l'élément <schedule-event-line>
Il suffit de l'enlever du modèle pour que les éléments graphiques et la ligne de temps soient adaptés
Le TOP 3 des diagrammes de Gantt JavaScript. Découvrez leurs caractéristiques, avantages et inconvénients pour choisir le meilleur outil pour votre projet.
Découvrez comment ScheduleJS s'est intégré en toute transparence à Selligent CRM, améliorant ainsi l'efficacité de la planification pour les consultants d'une grande marque de produits de beauté.
Cet article présente l'intégration d'un composant ScheduleJS dans un tableau Ag-Grid externe, afin de démontrer la flexibilité de ScheduleJS.
Comment synchroniser plusieurs graphiques ? Apprenez à réutiliser votre ligne de temps ScheduleJS dans plusieurs graphiques afin de les synchroniser.
Comment construire un menu contextuel interactif ? Une plongée en profondeur dans la gestion des événements ScheduleJS et les pratiques recommandées pour construire votre propre menu contextuel.
Cet article montre comment mettre en œuvre un rendu dynamique en fonction du niveau de zoom actuel des graphiques.
Cet article propose une mise en œuvre pas à pas d'un mécanisme d'animation utilisant l'API JavaScript Date pour vos activités.
Cet article traite d'une implémentation de websocket avec un rendu de données en temps réel en utilisant le moteur de dessin ScheduleJS.
Cet article vous montrera comment a été construite l'architecture de l'arbre de Gantt parent-enfant dans le ScheduleJS Viewer.
Cet article montre comment le moteur de rendu de l'activité principale du ScheduleJS Viewer a été construit à l'aide d'exemples de code.