Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
189 commits
Select commit Hold shift + click to select a range
932cc3e
Add some new options and env vars
aerooneqq Sep 8, 2025
7bb2628
Set ELT hooks based on the env variable
aerooneqq Sep 9, 2025
a209f13
Meaningless refactorings
aerooneqq Sep 10, 2025
11b0b30
Set event mask appropriate to produceObjectBinStacksEnv
aerooneqq Sep 10, 2025
ce3dacf
WIP
aerooneqq Sep 10, 2025
95dd2b4
Found signature parser, WIP
aerooneqq Sep 11, 2025
907080d
WIP
aerooneqq Sep 11, 2025
5826611
WIP
aerooneqq Sep 12, 2025
6119eb8
WIP
aerooneqq Sep 12, 2025
73f4482
WIP
aerooneqq Sep 12, 2025
a4ea3a7
WIP
aerooneqq Sep 12, 2025
b1a1bc7
WIP
aerooneqq Sep 12, 2025
3b61b32
WIP
aerooneqq Sep 14, 2025
2fb9504
WIP
aerooneqq Sep 14, 2025
e822513
Add DagLCS graph type
aerooneqq Sep 16, 2025
c1325d7
Regenerate models
aerooneqq Sep 16, 2025
271c7ff
Stupid bug fix
aerooneqq Sep 16, 2025
43eaf59
Fix comparator bug
aerooneqq Sep 16, 2025
bed0eb4
Add setting to render graph in flamegraph mode
aerooneqq Sep 16, 2025
d73bd4d
WIP, not finished
aerooneqq Sep 18, 2025
4fcc070
Better rendering
aerooneqq Sep 19, 2025
34c3bec
WIP
aerooneqq Sep 19, 2025
2022624
Add separators
aerooneqq Sep 19, 2025
5e3eb07
Seemingly working visualization
aerooneqq Sep 19, 2025
01bdbae
Dont use root sequences as we do not need them anymore - rely on grap…
aerooneqq Sep 19, 2025
e0379ed
Fix last edges not scaling to fill all available space
aerooneqq Sep 19, 2025
5826692
WIP, cancer code, not finished
aerooneqq Sep 22, 2025
2f20c82
Refactoring cancer code
aerooneqq Sep 23, 2025
8a4006b
WIP
aerooneqq Sep 23, 2025
2d3fa01
Fix node pairs finder
aerooneqq Sep 23, 2025
5cb108f
Refactorings
aerooneqq Sep 23, 2025
c0f2350
Add paths information to pair nodes info
aerooneqq Sep 23, 2025
d624f06
Add check that there are no dangling tokens from paired nodes
aerooneqq Sep 23, 2025
8ff6dfe
Refactorings
aerooneqq Sep 23, 2025
158ed4f
Making rendering work
aerooneqq Sep 23, 2025
60a60b3
Fix rendering extra edge before vertical blocks
aerooneqq Sep 23, 2025
da3d970
Automatically determine whether we can render flamegraph
aerooneqq Sep 23, 2025
36a1e48
Move flamegraph to appropriate place
aerooneqq Sep 24, 2025
64a3215
UI improvements
aerooneqq Sep 25, 2025
dd98fea
WIP on rendering enhancements on flamegraph
aerooneqq Sep 26, 2025
c44c3c7
WIP on rendering colors on edges
aerooneqq Sep 26, 2025
3833cb6
Add colors to edge blocks
aerooneqq Sep 26, 2025
f805b3e
Continuing adding colors
aerooneqq Sep 26, 2025
6b7430b
Finished adding colors
aerooneqq Sep 26, 2025
73c4ac8
Check whether all nodes in a queue are waiting for other nodes to be …
aerooneqq Sep 26, 2025
220a552
Better rendering
aerooneqq Sep 26, 2025
949a367
Create enhancements without execution info for flamegraph
aerooneqq Sep 27, 2025
45d5165
Check that that is one connectivity component in the graph
aerooneqq Sep 27, 2025
148f788
Change flamegraph node background
aerooneqq Sep 27, 2025
bf718b8
Add weight and time string to enhanced edge
aerooneqq Sep 29, 2025
e74d358
Add EdgeRenderer for rendering edges
aerooneqq Sep 29, 2025
c92bfe2
Pass edge to edge renderer
aerooneqq Sep 29, 2025
4080a87
Display edge time and frequency information in flamegraph
aerooneqq Sep 30, 2025
b19174f
Fix not preprocessing aggregated data from C# interop
aerooneqq Sep 30, 2025
978fe25
Increase basic height
aerooneqq Sep 30, 2025
84f5e0e
Render edges enhancements in flamegraph
aerooneqq Sep 30, 2025
cd97ccf
Better fullscreen transitions
aerooneqq Sep 30, 2025
c2278de
Add common loader
aerooneqq Oct 1, 2025
a64f6a7
Fixing rendering issues
aerooneqq Oct 2, 2025
6bff11c
Fix flamegraph height
aerooneqq Oct 2, 2025
f1a9077
Fixing rendering issues
aerooneqq Oct 2, 2025
4f527ab
Render edges enhancements in horizontal mode + adjust heights
aerooneqq Oct 2, 2025
8674a18
Better rendering, handle overflow
aerooneqq Oct 3, 2025
abcbffe
Add common checkbox
aerooneqq Oct 3, 2025
08f942c
Dont wrap titles of checkboxes
aerooneqq Oct 3, 2025
9a9f9ab
Continuing fixing visual issues
aerooneqq Oct 3, 2025
0728818
Fix rendering
aerooneqq Oct 3, 2025
2b775f6
WIP on better edges enhancements for flamegraphs
aerooneqq Oct 3, 2025
ecef128
Make width consistently 100%
aerooneqq Oct 3, 2025
6d7f0b4
Consistent widths once again
aerooneqq Oct 3, 2025
b33f5c7
Add [de]select all enhancements option
aerooneqq Oct 3, 2025
02ebf35
WIP on event classes as names
aerooneqq Oct 3, 2025
bd48820
Take distinct event classes
aerooneqq Oct 4, 2025
8ee5e8a
Allow nodes to adjust its height + some fixes
aerooneqq Oct 4, 2025
47403ac
[Not finished] WIP on top-to-bottom rendering
aerooneqq Oct 4, 2025
39cf27d
WIP on top-to-bototm flamegraph rendering
aerooneqq Oct 4, 2025
93e002a
WIP + refactorings
aerooneqq Oct 4, 2025
d1ded69
Fixing rendering issues
aerooneqq Oct 4, 2025
b09b9e9
Add OCEL object info extraction config
aerooneqq Oct 5, 2025
e0ba86f
Started adding ocel data
aerooneqq Oct 6, 2025
c7eb031
Regenerate models
aerooneqq Oct 6, 2025
f503cf9
Add ocel software data extractor
aerooneqq Oct 6, 2025
b210c4f
Add simple test for ocel data extractor
aerooneqq Oct 6, 2025
d2544bc
Add enhanced nodes to flamegraph context
aerooneqq Oct 6, 2025
ffd9482
Better types
aerooneqq Oct 6, 2025
e99a239
Fixing rendering issues
aerooneqq Oct 6, 2025
cea7f8b
Handle too long node names
aerooneqq Oct 6, 2025
b48910d
Better edge enhancements rendering
aerooneqq Oct 6, 2025
3e978b2
Dont set min-width 100% for the first composite block
aerooneqq Oct 6, 2025
e83446a
Fix loader (finally)
aerooneqq Oct 7, 2025
6afd5ca
Starting rendering nodes enhancements
aerooneqq Oct 7, 2025
f06c3b1
Dont render node enhanements for now
aerooneqq Oct 7, 2025
934d931
Complete OCEL model
aerooneqq Oct 8, 2025
9afc94d
WIP
aerooneqq Oct 8, 2025
4556532
Add tests for AllocateMerged and ConsumeWithProduce
aerooneqq Oct 9, 2025
5c8841b
Skip objects without object id
aerooneqq Oct 9, 2025
e932229
Add OCEL annotation to models
aerooneqq Oct 9, 2025
cc9ea18
WIP on graph ocel annotation
aerooneqq Oct 9, 2025
6362735
Commit forgotten models
aerooneqq Oct 9, 2025
916a77f
Make initial state of OCEL annotation optional
aerooneqq Oct 9, 2025
b5b0608
Add converter for ocel annotation
aerooneqq Oct 9, 2025
c8cc0e7
Remove not need struct
aerooneqq Oct 9, 2025
a7e4177
Add pipeline parts for creating OCEL annotation
aerooneqq Oct 9, 2025
d3cbd98
Add more methods to OCEL logger
aerooneqq Oct 9, 2025
710624d
Adjust to API change
aerooneqq Oct 9, 2025
86d4d38
Add test project for new OCEL logging methods
aerooneqq Oct 11, 2025
ab3edbd
Change OCEL log API
aerooneqq Oct 17, 2025
fc11058
Fix cpp procfiler build
aerooneqq Oct 17, 2025
c100650
WIP
aerooneqq Oct 17, 2025
fcb98b0
Change API once again
aerooneqq Oct 18, 2025
91bfac3
Fixes
aerooneqq Oct 18, 2025
189c338
Add "Ocel" prefix to methods
aerooneqq Oct 18, 2025
1ddc884
Update test data and gold
aerooneqq Oct 18, 2025
687ba74
Add Ocel2 test
aerooneqq Oct 18, 2025
4750d82
Rework OCEL events handling
aerooneqq Oct 19, 2025
3245e1f
Regenerate models
aerooneqq Oct 19, 2025
793ee02
Add delimiter to config
aerooneqq Oct 19, 2025
ede4211
Check if graph is DAG
aerooneqq Oct 24, 2025
3219d90
Add new ocel events to Procfiler, add new attributes, renamings
aerooneqq Oct 27, 2025
36661d7
Adding initial infra for OCEL annotation tests
aerooneqq Oct 31, 2025
b5260ff
Add test data
aerooneqq Oct 31, 2025
84f60b4
Add test pipeline part for assertion of OCEL annotation
aerooneqq Nov 1, 2025
3040129
Add initial gold serialization
aerooneqq Nov 1, 2025
31fb342
Small refactorings
aerooneqq Nov 1, 2025
daf3864
Adding outgoing nodes to queue
aerooneqq Nov 1, 2025
25889a8
Add ocel data extraction information to config, small refactorings
aerooneqq Nov 1, 2025
7d01a75
Prepare software event log before tests, change control-flow regex in…
aerooneqq Nov 1, 2025
14eedd7
Fix attribute name
aerooneqq Nov 2, 2025
ba34664
Proper copying of a node state
aerooneqq Nov 2, 2025
ac6979f
Update test data (with a correct attribute relatedObjectsIds) and gold
aerooneqq Nov 2, 2025
edbc4ac
A bit more deterministic output
aerooneqq Nov 2, 2025
45d44e9
Update gold
aerooneqq Nov 2, 2025
b1cd04b
Add additional filtering + update gold
aerooneqq Nov 2, 2025
d7f9c68
Create a smaller xes log and use it in test for understandability
aerooneqq Nov 2, 2025
2718dbf
Add ocel objects relations to OCEL models + regenerate models
aerooneqq Nov 2, 2025
3437b96
Add object relations to dag annotation creation
aerooneqq Nov 2, 2025
f825891
Serialize relations in tests + refactorings + update gold
aerooneqq Nov 2, 2025
141d17c
Start using HeapOrOwned in more places in order not to copy strings t…
aerooneqq Nov 2, 2025
59a6aa8
Don't copy strings too much
aerooneqq Nov 3, 2025
6046cef
cargo fmt
aerooneqq Nov 3, 2025
de0f60e
WIP on rendering nodes initial and final objects states
aerooneqq Nov 3, 2025
a5ed985
Temp solution to get OCEL annotation along with time annotation
aerooneqq Nov 3, 2025
baa8bbb
Connect OCEL annotation to flamegraph renderer
aerooneqq Nov 3, 2025
5c3f3ac
Bugfix
aerooneqq Nov 3, 2025
c6e468a
Refactorings
aerooneqq Nov 3, 2025
b6387ce
Add initial rendering for node objects states
aerooneqq Nov 3, 2025
5fe09a2
Small improvements
aerooneqq Nov 3, 2025
a1c276b
Refactorings
aerooneqq Nov 4, 2025
9f664a9
Refactorings
aerooneqq Nov 4, 2025
71f30a3
Refactorings + correct order of type and object blocks
aerooneqq Nov 4, 2025
c57de0f
Add settings + don't render enhanced edges when rendering OCEL annota…
aerooneqq Nov 4, 2025
a45a0ff
Add setting to explicitly render (or not) OCEL type names
aerooneqq Nov 4, 2025
4709f8c
Fix width + generate darker colors
aerooneqq Nov 5, 2025
93335d5
Adjust font sizes and node size
aerooneqq Nov 5, 2025
8d3af33
Add borders to separate type and objects sections of OCEL annotation
aerooneqq Nov 5, 2025
4d31ceb
Add models for flamegraph sankey diagram connecitons
aerooneqq Nov 5, 2025
c77714e
Add each object to OCEL rendering mode
aerooneqq Nov 6, 2025
d1a38f5
Add borders
aerooneqq Nov 6, 2025
aaf66a6
Fix main dim of objects
aerooneqq Nov 6, 2025
e46e6d2
Hide OCEL rendering setting if graph is not rendered in flamegraph mode
aerooneqq Nov 7, 2025
4ba80d6
WIP
aerooneqq Nov 8, 2025
fde9d0a
WIP on connecting objects
aerooneqq Nov 8, 2025
09c41c9
WIP, distinguish between initial and final objects
aerooneqq Nov 8, 2025
4fd6379
WIP, adding from_element_id to relations
aerooneqq Nov 9, 2025
6ce9a6c
Fix using incorrect node id
aerooneqq Nov 9, 2025
f7bee11
Better connections
aerooneqq Nov 9, 2025
aaea11b
Cache offset
aerooneqq Nov 9, 2025
e3bfcde
Fix coordinates of a connection line
aerooneqq Nov 9, 2025
c1a11c6
Fix connection line coordinates in top-to-bottom rendering mode
aerooneqq Nov 9, 2025
2269b5d
Update all projects to net10.0
aerooneqq Nov 13, 2025
8465515
Promote test data to net10.0
aerooneqq Nov 14, 2025
871558f
To extensions
aerooneqq Nov 14, 2025
f9812c5
Fix TargetFrameworks
aerooneqq Nov 14, 2025
24ceaf2
Promote dotnet version in github actions
aerooneqq Nov 15, 2025
caa7ff7
Update attribute after attribute renaming
aerooneqq Nov 15, 2025
c0133df
Update docker images to .NET 10
aerooneqq Nov 15, 2025
5b67118
Fix sigparser name?
aerooneqq Nov 15, 2025
ed00d06
Add diagnostics to dotnet build to log cmake output from BuildCppProc…
aerooneqq Nov 15, 2025
aceeedb
Update coreclr sources to v10.0.0
aerooneqq Nov 15, 2025
c76a33c
Fix docker file build
aerooneqq Nov 15, 2025
86ad027
Better fix
aerooneqq Nov 15, 2025
027dac3
Fix forgotten image
aerooneqq Nov 16, 2025
7e08e2d
Promote some packages to 10.0.0
aerooneqq Nov 18, 2025
afadde6
Add Y scroll for full-screen mode
aerooneqq Nov 18, 2025
12e76a9
Fix not using invariant culture
aerooneqq Nov 19, 2025
662a6f7
Fix dependencies and tfm version
aerooneqq Nov 23, 2025
1746af6
Remove unused code
aerooneqq Nov 27, 2025
74c37c6
Set min-width to graph settings
aerooneqq Nov 27, 2025
f081334
Remove usage of objects manager for now
aerooneqq Dec 6, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 2 additions & 2 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: 9.0.x
dotnet-version: 10.0.x
- name: Restore bXES dependencies
run: dotnet restore All.sln
- name: Build bXES
Expand All @@ -43,7 +43,7 @@ jobs:
uses: actions/setup-dotnet@v4
with:
dotnet-version: |
9.0.x
10.0.x
8.0.x
6.0.x
- name: Build and unit test Procfiler
Expand Down
22 changes: 11 additions & 11 deletions Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
</PropertyGroup>
<ItemGroup>
<PackageVersion Include="Aspire.Hosting" Version="9.3.0.0" />
<PackageVersion Include="Microsoft.Extensions.Logging.Configuration" Version="9.0.0" />
<PackageVersion Include="Microsoft.Extensions.Logging.Configuration" Version="10.0.0" />
<PackageVersion Include="System.CommandLine" Version="2.0.0-beta4.22272.1" />
<PackageVersion Include="Confluent.Kafka" Version="2.5.2" />
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.6.0" />
Expand All @@ -25,16 +25,16 @@
<PackageVersion Include="JetBrains.RdFramework" Version="2024.3.0" />
<PackageVersion Include="JetBrains.Annotations" Version="2022.1.0" />
<PackageVersion Include="Radzen.Blazor" Version="5.6.4" />
<PackageVersion Include="Microsoft.AspNetCore.Components.WebAssembly" Version="9.0.0" />
<PackageVersion Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="9.0.0" />
<PackageVersion Include="Microsoft.Extensions.Configuration" Version="9.0.0" />
<PackageVersion Include="Microsoft.Extensions.Configuration.Binder" Version="9.0.0" />
<PackageVersion Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="9.0.0" />
<PackageVersion Include="Microsoft.Extensions.Options" Version="9.0.0" />
<PackageVersion Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="9.0.0" />
<PackageVersion Include="Microsoft.Extensions.Logging" Version="9.0.0" />
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="9.0.0" />
<PackageVersion Include="Microsoft.Extensions.Logging.Console" Version="9.0.0" />
<PackageVersion Include="Microsoft.AspNetCore.Components.WebAssembly" Version="10.0.0" />
<PackageVersion Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="10.0.0" />
<PackageVersion Include="Microsoft.Extensions.Configuration" Version="10.0.0" />
<PackageVersion Include="Microsoft.Extensions.Configuration.Binder" Version="10.0.0" />
<PackageVersion Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="10.0.0" />
<PackageVersion Include="Microsoft.Extensions.Options" Version="10.0.0" />
<PackageVersion Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="10.0.0" />
<PackageVersion Include="Microsoft.Extensions.Logging" Version="10.0.0" />
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.0" />
<PackageVersion Include="Microsoft.Extensions.Logging.Console" Version="10.0.0" />
<PackageVersion Include="Microsoft.Diagnostics.NETCore.Client" Version="0.2.621003" />
<PackageVersion Include="Microsoft.Diagnostics.Tracing.TraceEvent" Version="3.1.22" />
<PackageVersion Include="Microsoft.Build.Framework" Version="17.12.6" />
Expand Down
2 changes: 1 addition & 1 deletion Ficus/docker/run/Run.FicusDashboard.Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build
ARG BUILD_CONFIGURATION=Release
ARG PROJECT_NAME=FicusDashboard

Expand Down
6 changes: 3 additions & 3 deletions Ficus/docker/run/Run.FicusDashboardBackend.Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build
ARG BUILD_CONFIGURATION=Release
ARG PROJECT_NAME=FicusDashboardBackend

Expand All @@ -10,9 +10,9 @@ COPY Directory.Packages.props ./Directory.Packages.props
RUN dotnet restore ./Ficus/src/front/FicusFrontend/$PROJECT_NAME/$PROJECT_NAME.csproj

WORKDIR /app/Ficus/src/front/FicusFrontend/$PROJECT_NAME
RUN dotnet build $PROJECT_NAME.csproj -c $BUILD_CONFIGURATION -o /app/build
RUN dotnet build $PROJECT_NAME.csproj -c $BUILD_CONFIGURATION -o /app/build -v d

FROM mcr.microsoft.com/dotnet/aspnet:9.0
FROM mcr.microsoft.com/dotnet/aspnet:10.0
ARG PROJECT_NAME=FicusDashboardBackend

EXPOSE 8080
Expand Down
4 changes: 2 additions & 2 deletions Ficus/docker/tests/Tests.KafkaIntegrationTests.Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build-env
FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build-env

RUN apt update -y && apt upgrade -y
RUN apt install nodejs -y
Expand All @@ -10,7 +10,7 @@ COPY ./bxes ./bxes
COPY ./FicusBxes.sln ./FicusBxes.sln
COPY Directory.Packages.props ./Directory.Packages.props

RUN dotnet build . -c Release
RUN dotnet build . -c Release -v d

FROM build-env as test
ENTRYPOINT [ "dotnet", "test", "/app/Ficus/test/IntegrationTests/IntegrationTests/IntegrationTests.csproj", "-c", "Release" ]
57 changes: 57 additions & 0 deletions Ficus/protos/pipelines_and_context.proto
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,36 @@ message GrpcContextValue {
GrpcUintArray uint_array = 24;
string json = 25;
GrpcSimpleEventLog event_log = 26;
GrpcOcelModelAnnotation ocel_annotation = 27;
}
}

message GrpcOcelModelAnnotation {
repeated GrpcModelElementOcelAnnotation annotations = 1;
}

message GrpcModelElementOcelAnnotation {
uint64 element_id = 1;
optional GrpcOcelState initial_state = 2;
GrpcOcelState final_state = 3;
repeated GrpcOcelStateObjectRelation relations = 4;
}

message GrpcOcelStateObjectRelation {
string object_id = 1;
uint64 element_id = 2;
repeated string related_objects_ids = 3;
}

message GrpcOcelState {
repeated GrpcOcelObjectTypeState type_states = 1;
}

message GrpcOcelObjectTypeState {
string type = 1;
repeated string object_ids = 2;
}

message GrpcFloatArray {
repeated double items = 1;
}
Expand Down Expand Up @@ -201,6 +228,7 @@ message GrpcComplexContextRequestPipelinePart {
enum GrpcGraphKind {
None = 0;
DAG = 1;
DagLCS = 2;
}

message GrpcGraph {
Expand Down Expand Up @@ -255,6 +283,35 @@ message GrpcSoftwareData {
repeated GrpcGeneralHistogramData histogram_data = 13;
repeated GrpcSimpleCounterData simple_counter_data = 14;
repeated GrpcActivityDurationData activities_durations_data = 15;
repeated GrpcOcelData ocel_data = 16;
}

message GrpcOcelObjectTypeData {
optional string type = 1;
}

message GrpcOcelAllocateMerge {
optional string type = 1;
repeated string merged_objects_ids = 2;
}

message GrpcOcelProducedObject {
string id = 1;
optional string type = 2;
}

message GrpcOcelConsumeProduce {
repeated GrpcOcelProducedObject produced_objects = 1;
}

message GrpcOcelData {
string object_id = 1;
oneof action {
GrpcOcelObjectTypeData allocate = 2;
GrpcOcelObjectTypeData consume = 3;
GrpcOcelAllocateMerge merged_object_allocation = 4;
GrpcOcelConsumeProduce produce_object_consumption = 5;
}
}

message GrpcActivityDurationData {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
@using BlazorBootstrap
@using FicusDashboard.Components.Utils
@using FicusDashboard.Layout.Models
@using FicusDashboard.Services.Cases
@using JetBrains.Lifetimes
Expand All @@ -21,7 +21,7 @@
@if (myIsLoading)
{
<div style="width: 100%; height: 100%; display: flex; align-items: center; justify-content: center;">
<Spinner Type="SpinnerType.Dots" />
<Loader />
</div>

return;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,16 +1,18 @@
@using BlazorBootstrap;
@using FicusDashboard.Components.Utils

@inherits ComponentBase

@inject IJSRuntime Js

@if (myIsDrawing)
{
<Spinner Style="margin-top: 10px; margin-left: 10px;" Type="SpinnerType.Dots" Color="SpinnerColor.Primary"/>
}
<div style="height: 10px; width: 100%; display: flex; align-items: center; justify-content: center;">
@if (myIsDrawing)
{
<Loader />
}
</div>

<div style="visibility: @(myIsDrawing ? "collapse" : "visible")" class="@(IsFullScreen ? "canvas-container-fullscreen" : "canvas-container")">
<div id="@myCytoscapeContainerId" class="@(IsFullScreen ? "canvas-container-fullscreen" : "cytoscape-canvas")">
<div style="visibility: @(myIsDrawing ? "collapse" : "inherit")" class="canvas-container">
<div id="@myCytoscapeContainerId" class="cytoscape-canvas">
</div>
</div>

Expand Down Expand Up @@ -39,7 +41,7 @@
return Task.CompletedTask;
}

public Task ExportGraph(string fileName) =>
public Task ExportGraph(string fileName) =>
Js.InvokeVoidAsync("exportCytoscapeToSvg", myCytoscapeReference, fileName).AsTask();

private void ReRenderCanvasInternal()
Expand All @@ -48,7 +50,7 @@
StateHasChanged();

//some hacks in order to make it work after changing to full screen from JS side
Task.Delay(100).ContinueWith(_ =>
Task.Delay(200).ContinueWith(_ =>
{
InvokeAsync(async () =>
{
Expand All @@ -64,5 +66,4 @@
myRequestedToRerender = true;
ReRenderCanvasInternal();
}

}
Original file line number Diff line number Diff line change
@@ -1,20 +1,16 @@
.canvas-container {
min-width: 800px;
min-height: 650px;
width: 100%;
height: 100%;
background-color: var(--cv-section-content-color);
padding: 5px;
}

.canvas-container-fullscreen {
width: 100%;
height: 100%;
padding: 5px;
flex-grow: 1;
display: flex;
flex-direction: column;
}

.cytoscape-canvas {
width: 100%;
height: 100%;
padding: 5px;
flex-grow: 1;
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,21 @@ public class AggregatedData
public bool IsEmpty => GlobalSoftwareData.IsEmpty;
}

public class EnhancedGraphEntity
{
public ulong Id { get; set; }
public string? Html { get; set; }
public string Color { get; set; }
public string ExecutionTimeStringRepr { get; set; }
}

public class EnhancedEdge : EnhancedGraphEntity
{
public int NumberOfExecutions { get; set; }
}

public class EnhancedNode : EnhancedGraphEntity;

public class MergedSoftwareData
{
public Dictionary<string, ValueWithUnits<Dictionary<string, double>>> Histograms { get; set; } = new();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,22 +1,30 @@
@if (myEnhancements is { })
@using FicusDashboard.Components.Utils

@if (myEnhancements is not null)
{
<div style="width: 100%; margin-bottom: 5px;">
<BoolCheckbox T="bool"
Checked="@myNextState"
Handler="@((_, _) => SelectOrDeselectAll())"
Title="[De]Select All"/>
</div>

@foreach (var group in myEnhancements.GroupBy(e => e.Group).OrderBy(e => e.Key))
{
<div style="margin-bottom: 10px;">
<div>
@(string.IsNullOrWhiteSpace(group.Key) ? "Ungrouped" : group.Key)
</div>

@foreach (var enhancement in group)
{
<div style="display: flex; flex-direction: row; align-items: center;">
<input type="checkbox"
checked="checked"
@onchange="@(args => HandleSelectionChange(args.Value is true, enhancement))"/>

<div style="margin-left: 5px;">@enhancement.DisplayName</div>
</div>
}
<div style="margin-left: 10px;">
@foreach (var enhancement in group)
{
<BoolCheckbox T="bool"
Checked="@myNextState"
Handler="@((newValue, _) => HandleSelectionChange(newValue, enhancement))"
Title="@enhancement.DisplayName"/>
}
</div>
</div>
}
}
Expand All @@ -34,7 +42,7 @@

[Parameter] public required List<EnhancementName>? Enhancements { get; init; }


private bool myNextState = true;
private List<EnhancementName>? myEnhancements;
private HashSet<EnhancementName> mySelectedEnhancements = null!;

Expand All @@ -48,7 +56,7 @@

myEnhancements = Enhancements;

if (myEnhancements is not { }) return;
if (myEnhancements is null) return;

mySelectedEnhancements = myEnhancements.ToHashSet();
}
Expand All @@ -65,4 +73,25 @@
}
}

private void SelectOrDeselectAll()
{
if (myEnhancements is null) return;

if (!myNextState)
{
foreach (var name in myEnhancements)
{
mySelectedEnhancements.Add(name);
}
}
else
{
mySelectedEnhancements.Clear();
}

myNextState = !myNextState;

StateHasChanged();
}

}
Loading
Loading