Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
cbc06c1
lazy load
JFriel Sep 18, 2025
7a628bb
add tree update
JFriel Sep 18, 2025
b5f099d
lazy
JFriel Sep 18, 2025
8444994
builds
JFriel Sep 18, 2025
2e8fe77
all lazy
JFriel Sep 19, 2025
929d2fe
finish catalogue provider
JFriel Sep 19, 2025
455f590
data export faster
JFriel Sep 19, 2025
1d6bd73
add todo
JFriel Sep 19, 2025
e59128d
improved catalogue refresh
JFriel Sep 22, 2025
f4240f2
refresh
JFriel Sep 22, 2025
fe971b1
fix build
JFriel Sep 22, 2025
21cf9dc
make child provider lazy with reset
JFriel Sep 22, 2025
663a283
add lazy reset
JFriel Sep 22, 2025
a2806c8
todo
JFriel Sep 22, 2025
9af8bc0
catalogue child provider
JFriel Sep 22, 2025
dc9ae6b
fix todos
JFriel Sep 23, 2025
0a62b1c
migrate to background worker
JFriel Sep 23, 2025
4f08f42
working catalogues pane
JFriel Sep 23, 2025
d782bb5
fix refresh
JFriel Sep 23, 2025
4ebb4f8
add todo
JFriel Sep 24, 2025
133ea1f
start to improve tables
JFriel Sep 25, 2025
4b815de
improve pipline trees
JFriel Sep 25, 2025
5c5f5a1
data loads
JFriel Sep 25, 2025
5fbb2d2
data loads
JFriel Sep 25, 2025
c5f2d6e
tabs
JFriel Sep 25, 2025
d899442
Merge branch 'develop' of https://github.com/HicServices/RDMP into sp…
JFriel Oct 21, 2025
12453f7
Merge branch 'develop' of https://github.com/HicServices/RDMP into sp…
JFriel Oct 22, 2025
1ef4053
interim
JFriel Oct 22, 2025
314dce0
example datat launch
JFriel Oct 27, 2025
3270f1a
update test
JFriel Oct 27, 2025
44135a1
add file summary
JFriel Oct 28, 2025
626baea
Merge branch 'develop' of https://github.com/HicServices/RDMP into sp…
JFriel Nov 13, 2025
5e73fa8
bump tests
JFriel Nov 13, 2025
f024d75
update ui tests
JFriel Nov 14, 2025
3cf7244
fix test
JFriel Nov 14, 2025
09b4508
update tests
JFriel Nov 14, 2025
19f8b3f
improved searchables
JFriel Nov 14, 2025
0d8e59e
update
JFriel Nov 17, 2025
27affcb
update
JFriel Nov 17, 2025
c01eb57
render cohort collection
JFriel Nov 17, 2025
5bd7569
fix ano test
JFriel Nov 17, 2025
2b1286e
show trees
JFriel Nov 18, 2025
b7f5c6b
Merge branch 'develop' of https://github.com/HicServices/RDMP into sp…
JFriel Nov 18, 2025
c5e9b83
fix test
JFriel Nov 18, 2025
9f6ddbb
Merge branch 'develop' of https://github.com/HicServices/RDMP into sp…
JFriel Dec 2, 2025
653f80f
fix build
JFriel Dec 2, 2025
4f7d1a7
cic refresh
JFriel Dec 2, 2025
4fcaf9d
prep release (#2281)
JFriel Dec 2, 2025
209287e
Merge branch 'develop' of https://github.com/HicServices/RDMP into sp…
JFriel Jan 5, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.IO;
Expand Down Expand Up @@ -163,9 +164,9 @@ public ActivateItems(ITheme theme, RefreshBus refreshBus, DockPanel mainDockPane
IsAbleToLaunchSubprocesses = true;
}

protected override ICoreChildProvider GetChildProvider()
protected override ICoreChildProvider GetChildProvider(bool force = false)
{
var provider = base.GetChildProvider();
var provider = base.GetChildProvider(force);

if (RefreshBus != null) RefreshBus.ChildProvider = provider;

Expand Down Expand Up @@ -534,13 +535,13 @@ public PersistableObjectCollectionDockContent Activate(IObjectCollectionControl
return floatable;
}

public void RefreshBus_RefreshObject(object sender, RefreshObjectEventArgs e)
public void RefreshBus_DoWork(object sender, DoWorkEventArgs e)
{
// if we don't want to do selective refresh or can't (because partial refreshes are not supported on the type)
if (HardRefresh || !UserSettings.SelectiveRefresh || !CoreChildProvider.SelectiveRefresh(e.Object))
if (HardRefresh || !UserSettings.SelectiveRefresh || !CoreChildProvider.SelectiveRefresh((IMapsDirectlyToDatabaseTable)e.Argument))
{
//update the child provider with a full refresh
GetChildProvider();
GetChildProvider(true);
HardRefresh = false;
}

Expand All @@ -550,7 +551,7 @@ public void RefreshBus_RefreshObject(object sender, RefreshObjectEventArgs e)
private void RefreshProblemProviders()
{
foreach (var p in ProblemProviders)
p.RefreshProblems(CoreChildProvider);
p.RefreshProblems(RefreshBus.ChildProvider);
}

/// <inheritdoc />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ protected override string GetPersistString()
}


public override void RefreshBus_RefreshObject(object sender, RefreshObjectEventArgs e)
public override void RefreshBus_DoWork(object sender, DoWorkEventArgs e)
{
var newTabName = _control.GetTabName();

Expand All @@ -78,7 +78,7 @@ public override void RefreshBus_RefreshObject(object sender, RefreshObjectEventA
TabText = newTabName;

//pass the info on to the control
_control.RefreshBus_RefreshObject(sender, e);
_control.RefreshBus_DoWork(sender, e);
}

public override void HandleUserRequestingTabRefresh(IActivateItems activator)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@
// RDMP is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
// You should have received a copy of the GNU General Public License along with RDMP. If not, see <https://www.gnu.org/licenses/>.

using System.ComponentModel;
using System.Windows.Forms;
using Rdmp.Core.CommandExecution;
using Rdmp.Core.Curation.Data;
using Rdmp.Core.Curation.Data.Dashboarding;
Expand All @@ -16,6 +14,9 @@
using Rdmp.UI.Refreshing;
using Rdmp.UI.TestsAndSetup.ServicePropogation;
using ResearchDataManagementPlatform.WindowManagement.ExtenderFunctionality;
using System.ComponentModel;
using System.Windows.Forms;
using static Rdmp.UI.Refreshing.IRefreshBusSubscriber;


namespace ResearchDataManagementPlatform.WindowManagement.ContentWindowTracking.Persistence;
Expand Down Expand Up @@ -61,14 +62,22 @@ protected override string GetPersistString()
DatabaseObject.GetType().FullName + s + DatabaseObject.ID;
}

public override void RefreshBus_RefreshObject(object sender, RefreshObjectEventArgs e)
public override void RefreshBus_DoWork(object sender, DoWorkEventArgs e)
{
var newTabName = ((IRDMPSingleDatabaseObjectControl)Control).GetTabName();

if (ParentForm is CustomFloatWindow floatWindow)
floatWindow.Text = newTabName;

TabText = newTabName;
if (this.InvokeRequired)
{
RefreshCallback rb = new RefreshCallback(RefreshBus_DoWork);
this.Invoke(rb, sender, e);
}
else
{
var newTabName = ((IRDMPSingleDatabaseObjectControl)Control).GetTabName();

if (ParentForm is CustomFloatWindow floatWindow)
floatWindow.Text = newTabName;

TabText = newTabName;
}
}

public override void HandleUserRequestingTabRefresh(IActivateItems activator)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ public RDMPSingleControlTab(RefreshBus refreshBus, Control c)
Control = c;
}

public virtual void RefreshBus_RefreshObject(object sender, RefreshObjectEventArgs e)
public virtual void RefreshBus_DoWork(object sender, DoWorkEventArgs e)
{
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
// RDMP is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
// You should have received a copy of the GNU General Public License along with RDMP. If not, see <https://www.gnu.org/licenses/>.

using System;
using Rdmp.Core;
using Rdmp.Core.CommandExecution.AtomicCommands;
using Rdmp.Core.CommandExecution.AtomicCommands.CatalogueCreationCommands;
Expand All @@ -18,6 +17,9 @@
using Rdmp.UI.ItemActivation;
using Rdmp.UI.Refreshing;
using Rdmp.UI.TestsAndSetup.ServicePropogation;
using System;
using System.ComponentModel;
using static Rdmp.UI.Refreshing.IRefreshBusSubscriber;

namespace ResearchDataManagementPlatform.WindowManagement.HomePane;

Expand Down Expand Up @@ -79,8 +81,16 @@ protected override void OnLoad(EventArgs e)
_activator.RefreshBus.EstablishLifetimeSubscription(this);
}

public void RefreshBus_RefreshObject(object sender, RefreshObjectEventArgs e)
public void RefreshBus_DoWork(object sender, DoWorkEventArgs e)
{
BuildCommandLists();
if (boxCatalogue.InvokeRequired)
{
RefreshCallback rb = new RefreshCallback(RefreshBus_DoWork);
this.Invoke(rb, sender, e);
}
else
{
BuildCommandLists();
}
}
}
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [9.1.1] - Unreleased
## [9.1.1] - 2025-12-02
- Allow Atlassian service workers to write to Confluence from RDMP

## [9.1.0] - 2025-11-24
Expand Down
6 changes: 3 additions & 3 deletions Documentation/CodeTutorials/CreatingANewCollectionTreeNode.md
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ private void AddChildren(ExtractionConfigurationsNode extractionConfigurationsNo
children.Add(config);
}

AddToDictionaries(children, descendancy);
//AddToDictionaries(children, descendancy);
}
```

Expand Down Expand Up @@ -247,7 +247,7 @@ private void AddChildren(ExtractionConfigurationsNode extractionConfigurationsNo
children.Add(config);
}

AddToDictionaries(children, descendancy);
//AddToDictionaries(children, descendancy);
}

private void AddChildren(FrozenExtractionConfigurationsNode frozenExtractionConfigurationsNode, DescendancyList descendancy)
Expand All @@ -262,7 +262,7 @@ private void AddChildren(FrozenExtractionConfigurationsNode frozenExtractionConf
children.Add(config);
}

AddToDictionaries(children, descendancy);
//AddToDictionaries(children, descendancy);
}
```
Now when you run RDMP, the final tree should look something like:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,18 @@
using Rdmp.Core.Providers;
using Rdmp.Core.Repositories;
using Rdmp.Core.ReusableLibraryCode.Checks;
using Rdmp.Core.Startup;

namespace Rdmp.Core.Tests.CommandExecution;

internal class ExecuteCommandRefreshBrokenCohortsTests
{
[Test]
public void TestBrokenCohort()
public void TestBrokenCohort()//todo
{
Startup.Startup.PreStartup();
var repo = new MemoryDataExportRepository();

var ect = new ExternalCohortTable(repo, "yarg", FAnsi.DatabaseType.MicrosoftSQLServer)
{
Server = "IDontExist",
Expand All @@ -29,7 +31,6 @@ public void TestBrokenCohort()
ReleaseIdentifierField = "haha"
};
ect.SaveToDatabase();

var cohort = new ExtractableCohort
{
Repository = repo,
Expand All @@ -44,7 +45,9 @@ public void TestBrokenCohort()
{
DisallowInput = true
};

activator.Publish(ect);
activator.Publish(cohort);
_ = ((DataExportChildProvider)activator.CoreChildProvider).ProjectNumberToCohortsDictionary;
Assert.That(((DataExportChildProvider)activator.CoreChildProvider).ForbidListedSources, Has.Count.EqualTo(1));

var cmd = new ExecuteCommandRefreshBrokenCohorts(activator)
Expand Down
82 changes: 0 additions & 82 deletions Rdmp.Core.Tests/CommandExecution/ExecuteCommandSimilarTests.cs

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,6 @@ public void Init()
[TestCase(typeof(ExecuteCommandSetUserSetting))]
[TestCase(typeof(ExecuteCommandShow))]
[TestCase(typeof(ExecuteCommandShowRelatedObject))]
[TestCase(typeof(ExecuteCommandSimilar))]
[TestCase(typeof(ExecuteCommandSyncTableInfo))]
[TestCase(typeof(ExecuteCommandUnfreezeExtractionConfiguration))]
[TestCase(typeof(ExecuteCommandUnMergeCohortIdentificationConfiguration))]
Expand Down
2 changes: 1 addition & 1 deletion Rdmp.Core.Tests/Curation/Anonymisation/ANOTableTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -215,7 +215,7 @@ public void SubstituteANOIdentifiers_2CHINumbers()
}

[Test]
public void SubstituteANOIdentifiers_PreviewWithoutPush()
public void SubstituteANOIdentifiers_PreviewWithoutPush()//todo
{
var anoTable = GetANOTable();
anoTable.NumberOfCharactersToUseInAnonymousRepresentation = 0;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ public void AllForeignKeysDescribed()
}

[Test]
public void AllUserIndexesDescribed()
public void AllUserIndexesDescribed()//todo
{
var allIndexes = new List<string>();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,15 +82,15 @@ private static void SetArgs(IArgument[] args, Dictionary<string, object> values)
}

[Test]
public void AWSLoginTest()
public void AWSLoginTest()//todo
{
var awss3 = new AWSS3("minio", Amazon.RegionEndpoint.EUWest2);
Assert.DoesNotThrow(() => MakeBucket("logintest"));
Assert.DoesNotThrow(() => DeleteBucket("logintest"));
}

[Test]
public void ReleaseToAWSBasicTest()
public void ReleaseToAWSBasicTest()//todo
{
MakeBucket("releasetoawsbasictest");
DoExtraction();
Expand Down Expand Up @@ -293,7 +293,7 @@ public void BadBucket()


[Test]
public void LocationAlreadyExists()
public void LocationAlreadyExists()//todo
{
MakeBucket("locationalreadyexist");

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,9 +59,8 @@ public void TestOrphanCic()
});

//error should be reported in top right of program
var ex = Assert.Throws<Exception>(() =>
new DataExportChildProvider(new RepositoryProvider(memory), null, ThrowImmediatelyCheckNotifier.Quiet,
null));
var dx = new DataExportChildProvider(new RepositoryProvider(memory), null, ThrowImmediatelyCheckNotifier.Quiet,null);
var ex = Assert.Throws<Exception>(() => _ = dx.ProjectRootFolder);
Assert.That(
ex.Message, Does.Match(@"Failed to find Associated Cohort Identification Configuration with ID \d+ which was supposed to be associated with my proj"));

Expand All @@ -70,6 +69,7 @@ public void TestOrphanCic()
IgnoreAllErrorsCheckNotifier.Instance, null);

//the orphan cic should not appear in the tree view under Project=>Cohorts=>Associated Cics
var x = childProvider.GetChildren(p);
var cohorts = childProvider.GetChildren(p).OfType<ProjectCohortsNode>().Single();
var cics = childProvider.GetChildren(cohorts).OfType<ProjectCohortIdentificationConfigurationAssociationsNode>()
.First();
Expand Down
Loading
Loading