Skip to content

Commit

Permalink
fixes #455 Table/TreeTable Memento: support more than one (Tree)Table
Browse files Browse the repository at this point in the history
  • Loading branch information
martinbluehweis committed May 3, 2023
1 parent 7f7be1c commit e6a79c6
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 6 deletions.
Expand Up @@ -104,7 +104,7 @@ public static <S> TableView<S> restoreState(TableView<S> view, Memento m, Functi
Map<TableColumn<S, ?>, String> nodeToIdMap = idToNodeMap.entrySet().stream().collect(Collectors.toMap(Entry::getValue, Entry::getKey));

@SuppressWarnings("unchecked")
final List<String> savedOrder = m.get(COLUMN_ORDER_KEY, List.class, Collections.emptyList());
final List<String> savedOrder = m.get(getColumnOrderKey(view), List.class, Collections.emptyList());

if( savedOrder == null ) {
throw new IllegalStateException();
Expand Down Expand Up @@ -142,7 +142,7 @@ public static <S> TableView<S> restoreState(TableView<S> view, Memento m, Functi
if (isPropertySet(properties, TableView_Properties.COLUMN_ORDER)) {
List<String> currentOrder = view.getColumns().stream().map(columnKeyProvider).collect(Collectors.toList());
@SuppressWarnings("unchecked")
List<String> restoredOrder = m.get(COLUMN_ORDER_KEY, List.class, currentOrder);
List<String> restoredOrder = m.get(getColumnOrderKey(view), List.class, currentOrder);
if (!currentOrder.equals(restoredOrder)) {
// Unable to restore if the column count matches
if (restoredOrder != null && currentOrder.size() == restoredOrder.size()) {
Expand Down Expand Up @@ -314,7 +314,7 @@ public static <S> Subscription enableAutomaticCaptureing(TableView<S> view, Meme
});
}
if (c.wasPermutated() || c.wasAdded() && c.wasRemoved()) {
m.put(COLUMN_ORDER_KEY, view.getColumns().stream().map(columnKeyProvider).collect(Collectors.toList()), ObjectSerializer.JAXB_SERIALIZER);
m.put(getColumnOrderKey(view), view.getColumns().stream().map(columnKeyProvider).collect(Collectors.toList()), ObjectSerializer.JAXB_SERIALIZER);
}
}
});
Expand Down Expand Up @@ -348,4 +348,11 @@ private static String key(String key, Enum<?> property) {
private static boolean isPropertySet(TableView_Properties[] properties, TableView_Properties property) {
return properties.length == 0 || Arrays.asList(properties).contains(property);
}

private static String getColumnOrderKey(TableView<?> view) {
if (view.getId() != null) {
return view.getId() + "_" + COLUMN_ORDER_KEY;
}
return COLUMN_ORDER_KEY;
}
}
Expand Up @@ -105,7 +105,7 @@ public static <S> TreeTableView<S> restoreState(TreeTableView<S> view, Memento m
Map<TreeTableColumn<S, ?>, String> nodeToIdMap = idToNodeMap.entrySet().stream().collect(Collectors.toMap(Entry::getValue, Entry::getKey));

@SuppressWarnings("unchecked")
final @Nullable List<String> savedOrder = m.get(COLUMN_ORDER_KEY, List.class, Collections.emptyList());
final @Nullable List<String> savedOrder = m.get(getColumnOrderKey(view), List.class, Collections.emptyList());

if( savedOrder == null ) {
throw new IllegalStateException();
Expand Down Expand Up @@ -143,7 +143,7 @@ public static <S> TreeTableView<S> restoreState(TreeTableView<S> view, Memento m
if (isPropertySet(properties, TreeTableView_Properties.COLUMN_ORDER)) {
List<String> currentOrder = view.getColumns().stream().map(columnKeyProvider).collect(Collectors.toList());
@SuppressWarnings("unchecked")
List<String> restoredOrder = m.get(COLUMN_ORDER_KEY, List.class, currentOrder);
List<String> restoredOrder = m.get(getColumnOrderKey(view), List.class, currentOrder);
if (!currentOrder.equals(restoredOrder)) {
// Unable to restore if the column count matches
if (restoredOrder != null && currentOrder.size() == restoredOrder.size()) {
Expand Down Expand Up @@ -316,7 +316,7 @@ public static <S> Subscription enableAutomaticCaptureing(TreeTableView<S> view,
});
}
if (c.wasPermutated() || c.wasAdded() && c.wasRemoved()) {
m.put(COLUMN_ORDER_KEY, view.getColumns().stream().map(columnKeyProvider).collect(Collectors.toList()), ObjectSerializer.JAXB_SERIALIZER);
m.put(getColumnOrderKey(view), view.getColumns().stream().map(columnKeyProvider).collect(Collectors.toList()), ObjectSerializer.JAXB_SERIALIZER);
}
}
});
Expand Down Expand Up @@ -350,4 +350,11 @@ private static String key(String key, Enum<?> property) {
private static boolean isPropertySet(TreeTableView_Properties[] properties, TreeTableView_Properties property) {
return properties.length == 0 || Arrays.asList(properties).contains(property);
}

private static String getColumnOrderKey(TableView<?> view) {
if (view.getId() != null) {
return view.getId() + "_" + COLUMN_ORDER_KEY;
}
return COLUMN_ORDER_KEY;
}
}

0 comments on commit e6a79c6

Please sign in to comment.