Merge remote-tracking branch 'origin/GP-0-dragonmacher-program-tree-exception'

This commit is contained in:
Ryan Kurtz 2024-06-05 13:18:54 -04:00
commit c29c6af525

View file

@ -274,7 +274,8 @@ public class ProgramTreePlugin extends ProgramPlugin
for (int i = 0; i < numberOfViews; i++) { for (int i = 0; i < numberOfViews; i++) {
treeNames[i] = saveState.getString(TREE_NAME + "-" + i, null); treeNames[i] = saveState.getString(TREE_NAME + "-" + i, null);
} }
ArrayList<TreeViewProvider> providerList = new ArrayList<>();
List<TreeViewProvider> providerList = new ArrayList<>();
for (String element : treeNames) { for (String element : treeNames) {
TreeViewProvider provider = providerMap.get(element); TreeViewProvider provider = providerMap.get(element);
if (provider != null) { if (provider != null) {
@ -309,11 +310,20 @@ public class ProgramTreePlugin extends ProgramPlugin
selectionToggleAction.setSelected(saveState.getBoolean(TOGGLE_STATE, true)); selectionToggleAction.setSelected(saveState.getBoolean(TOGGLE_STATE, true));
restoreTreeViews();
viewProvider.readDataState(saveState);
}
private void restoreTreeViews() {
if (currentProgram == null) {
return;
}
// //
// At this point, all tree views have been restored. The low level components have cache // Update low-level component cache. We want to maintain the order of the tree views so
// that needs to get updated. We want to maintain the order of the tree views so that the // that the UI does not move around on the user. Use the view names as they are stored in
// UI does not move around on the user. Use the view names as they are stored in the // the program to provide a consistent order.
// program to provide a consistent order.
// //
List<TreeViewProvider> list = new ArrayList<>(); List<TreeViewProvider> list = new ArrayList<>();
String[] orderedTreeNames = currentProgram.getListing().getTreeNames(); String[] orderedTreeNames = currentProgram.getListing().getTreeNames();
@ -323,8 +333,6 @@ public class ProgramTreePlugin extends ProgramPlugin
} }
viewProvider.treeViewsRestored(list); viewProvider.treeViewsRestored(list);
viewProvider.readDataState(saveState);
} }
@Override @Override