Skip to content

Commit d3b1192

Browse files
committed
CSSTUDIO-3270 Move existing DisplayRuntime instances to newly created DockPane when running "Add Layout".
1 parent 0aaabd5 commit d3b1192

File tree

1 file changed

+20
-1
lines changed

1 file changed

+20
-1
lines changed

core/ui/src/main/java/org/phoebus/ui/internal/MementoHelper.java

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -299,7 +299,26 @@ private static void restoreApplication(final MementoTree item_memento, final Doc
299299
{
300300
DockPane.setActiveDockPane(pane);
301301
final AppInstance instance;
302-
if (app instanceof AppResourceDescriptor)
302+
if (app.getName().equals("display_runtime")) {
303+
String input = item_memento.getString(INPUT_URI).orElse(null);
304+
if (input != null) {
305+
URI inputURI = URI.create(input);
306+
DockItemWithInput existing = DockStage.getDockItemWithInput("display_runtime", inputURI);
307+
308+
if (existing != null) {
309+
instance = existing.getApplication();
310+
existing.getDockPane().getTabs().remove(existing);
311+
pane.getTabs().add(existing);
312+
}
313+
else {
314+
instance = ((AppResourceDescriptor) app).create(inputURI);
315+
}
316+
}
317+
else {
318+
instance = app.create();
319+
}
320+
}
321+
else if (app instanceof AppResourceDescriptor)
303322
{
304323
final AppResourceDescriptor app_res = (AppResourceDescriptor) app;
305324
final String input = item_memento.getString(INPUT_URI).orElse(null);

0 commit comments

Comments
 (0)