From 761100847bc2adfac9563a7d6399081306ab50d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Loi=CC=88c=20Correnson?= <loic.correnson@cea.fr> Date: Tue, 11 Feb 2020 13:34:53 +0100 Subject: [PATCH] [Ivette] server control --- Ivette/src/renderer/Application.js | 4 +++ Ivette/src/renderer/ServerControl.js | 49 ++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 Ivette/src/renderer/ServerControl.js diff --git a/Ivette/src/renderer/Application.js b/Ivette/src/renderer/Application.js index 8129a62e076..5106290f11a 100644 --- a/Ivette/src/renderer/Application.js +++ b/Ivette/src/renderer/Application.js @@ -14,6 +14,7 @@ import './style.css' ; import 'dome/misc/exports' ; import { LabView, View, Group, Component } from 'frama-c/labviews' ; +import ServerControl from './ServerControl' ; // -------------------------------------------------------------------------- // --- Main View @@ -55,6 +56,9 @@ export default (function() { </Group> </LabView> </Splitter> + <Toolbar.ToolBar> + <ServerControl/> + </Toolbar.ToolBar> </Vfill> ); diff --git a/Ivette/src/renderer/ServerControl.js b/Ivette/src/renderer/ServerControl.js new file mode 100644 index 00000000000..166217e1f8b --- /dev/null +++ b/Ivette/src/renderer/ServerControl.js @@ -0,0 +1,49 @@ +// -------------------------------------------------------------------------- +// --- Console +// -------------------------------------------------------------------------- + +import React from 'react' ; +import Dome from 'dome' ; +import Server from 'frama-c/server' ; + +import { Filler, Button } from 'dome/layout/toolbars' ; +import { LED } from 'dome/controls/buttons' ; +import { Label, Code } from 'dome/controls/labels' ; + +export default (function(props) { + Dome.useUpdate( Server.SERVER ); + let status = Server.getStatus(); + let led, blink, error ; + switch(status) { + case Server.RUNNING: + led = Server.isPending() ? 'positive' : 'active' ; + break; + case Server.IDLE: + led = 'inactive' ; + break; + case Server.STARTED: + led = 'active' ; + blink = true ; + break; + case Server.KILLING: + led = 'negative' ; + blink = true ; + break; + case Server.RESTART: + led = 'warning' ; + blink = true ; + break; + case Server.FAILED: + led = 'negative' ; + blink = false ; + error = Server.getError(); + } + return ( + <React.Fragment> + <LED status={status} blink={blink} /> + { error && <Label icon='WARNING' label={error}/> } + <Filler/> + <Code>{Server.getPending()} rq.</Code> + </React.Fragment> + ); +}); -- GitLab