private List<Promise<Void>> restoreSplit( JsonObject files, EditorPartStack editorPartStack, Map<EditorPartPresenter, EditorPartStack> activeEditors) { JsonObject splitFirst = files.getObject("SPLIT_FIRST"); String direction = files.getString("DIRECTION"); double size = files.getNumber("SIZE"); EditorPartStack split = editorMultiPartStack.split( editorPartStack, new Constraints(Direction.valueOf(direction), null), size); List<Promise<Void>> restoreFirst = restore(splitFirst, editorPartStack, activeEditors); JsonObject splitSecond = files.getObject("SPLIT_SECOND"); List<Promise<Void>> restoreSecond = restore(splitSecond, split, activeEditors); List<Promise<Void>> result = new ArrayList<>(); result.addAll(restoreFirst); result.addAll(restoreSecond); return result; }
private JsonObject storeEditors(EditorMultiPartStackState splitStacks) { JsonObject result = Json.createObject(); if (splitStacks.getEditorPartStack() != null) { result.put("FILES", storeEditors(splitStacks.getEditorPartStack())); } else { result.put("DIRECTION", splitStacks.getDirection().toString()); result.put("SPLIT_FIRST", storeEditors(splitStacks.getSplitFirst())); result.put("SPLIT_SECOND", storeEditors(splitStacks.getSplitSecond())); result.put("SIZE", splitStacks.getSize()); } return result; }