From 92dd99ca839e68f38a900c05f71e8f7a89405b39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20B=C3=BChler?= <david.buhler@cea.fr> Date: Mon, 8 Jun 2020 14:03:21 +0200 Subject: [PATCH] [ivette] Properties table: fixes the ordering of some columns. --- ivette/src/renderer/Properties.tsx | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/ivette/src/renderer/Properties.tsx b/ivette/src/renderer/Properties.tsx index 9a06620a0d1..b06c0ae9c32 100644 --- a/ivette/src/renderer/Properties.tsx +++ b/ivette/src/renderer/Properties.tsx @@ -7,7 +7,7 @@ import React from 'react'; import * as States from 'frama-c/states'; import * as Compare from 'dome/data/compare'; import { Label, Code } from 'dome/controls/labels'; -import { ArrayModel } from 'dome/table/arrays'; +import * as Arrays from 'dome/table/arrays'; import { Table, Column, ColumnProps, Renderer } from 'dome/table/views'; import { Component } from 'frama-c/LabViews'; import { Vfill } from 'dome/layout/boxes'; @@ -232,15 +232,24 @@ const byProperty: Compare.ByFields<Property> = { kind: Compare.primitive, alarm: Compare.defined(Compare.alpha), names: Compare.array(Compare.alpha), - predicate: Compare.alpha, + predicate: Compare.defined(Compare.alpha), key: Compare.primitive, kinstr: Compare.primitive, }; -class PropertyModel extends ArrayModel<Property> { +const byDir = Compare.byFields<SourceLoc>({ dir: Compare.alpha }); +const byFile = Compare.byFields<SourceLoc>({ base: Compare.alpha }); + +const byColumn: Arrays.ByColumns<Property> = { + dir: Compare.byFields<Property>({ source: byDir }), + file: Compare.byFields<Property>({ source: byFile }), +}; + +class PropertyModel extends Arrays.ArrayModel<Property> { constructor() { super('key'); this.setOrderingByFields(byProperty); + this.setColumnOrder(byColumn); } } @@ -363,13 +372,19 @@ const RenderTable = () => { settings="ivette.properties.table" > <Column - id="path" + id="dir" label="Directory" width={240} visible={false} - getter={(prop: Property) => prop.source.dir} + getter={(prop: Property) => prop?.source?.dir} + /> + <Column + id="file" + label="File" + width={120} + getter={(prop: Property) => prop?.source} + render={renderFile} /> - <Column id="source" label="File" width={120} render={renderFile} /> <ColumnCode id="function" label="Function" width={120} /> <ColumnCode id="kind" label="Property kind" width={120} /> <ColumnCode id="alarm" label="Alarms" width={160} /> -- GitLab