diff --git a/demo-edit-jvm/src/main/java/org/sudu/experiments/TMain.java b/demo-edit-jvm/src/main/java/org/sudu/experiments/TMain.java index 4cfd9f24f..8a0edb470 100644 --- a/demo-edit-jvm/src/main/java/org/sudu/experiments/TMain.java +++ b/demo-edit-jvm/src/main/java/org/sudu/experiments/TMain.java @@ -1,6 +1,7 @@ package org.sudu.experiments; import org.sudu.experiments.diff.FileDiff; +import org.sudu.experiments.diff.FolderDiffScene; import org.sudu.experiments.diff.UiToolsDemo; import org.sudu.experiments.editor.Editor1; import org.sudu.experiments.editor.SelectFileTest; @@ -40,6 +41,10 @@ interface FileDiffMain { static void main(String[] $) { run(FileDiff::new); } } + interface FolderDiffMain { + static void main(String[] $) { run(FolderDiffScene::new); } + } + interface WindowsDemoMain { static void main(String[] $) { run(WindowsDemo::new); } } diff --git a/demo-edit/src/main/java/org/sudu/experiments/diff/FolderDiffWindow.java b/demo-edit/src/main/java/org/sudu/experiments/diff/FolderDiffWindow.java index 558799f22..a6a4b9c42 100644 --- a/demo-edit/src/main/java/org/sudu/experiments/diff/FolderDiffWindow.java +++ b/demo-edit/src/main/java/org/sudu/experiments/diff/FolderDiffWindow.java @@ -27,7 +27,7 @@ public class FolderDiffWindow extends ToolWindow0 { private static final boolean PRINT_STAT = true; - private static final boolean dummyMergeButtons = true; + private static final boolean dummyMergeButtons = false; Window window; Focusable focusSave; @@ -263,10 +263,12 @@ private void updateModel() { rootView.left.model(), rootView.right.model() )); - rootView.setMergeButtons(null); - if (dummyMergeButtons) { - dummyMergeButtons(rootView.left, true); - dummyMergeButtons(rootView.right, false); + if (leftRoot != null && rightRoot != null) { + rootView.setMergeButtons(null); + if (dummyMergeButtons) { + dummyMergeButtons(rootView.left, true); + dummyMergeButtons(rootView.right, false); + } } } diff --git a/demo-edit/src/main/java/org/sudu/experiments/ui/FileTreeNode.java b/demo-edit/src/main/java/org/sudu/experiments/ui/FileTreeNode.java index 45daf6d4f..a7ae95b70 100644 --- a/demo-edit/src/main/java/org/sudu/experiments/ui/FileTreeNode.java +++ b/demo-edit/src/main/java/org/sudu/experiments/ui/FileTreeNode.java @@ -95,7 +95,7 @@ private int getModel(TreeNode[] t, FolderDiffModel[] m, FolderDiffModel model, F if (isOpened()) { if (model.children == null) { for (FileTreeNode child: children) - idx = child.getModel(t, diffType, idx, model.isCompared()); + idx = child.getModel(t, m, diffType, idx, model.isCompared()); } else { int i = 0, j = 0; for (FolderDiffModel child: model.children) { @@ -117,13 +117,14 @@ private int getModel(TreeNode[] t, FolderDiffModel[] m, FolderDiffModel model, F return idx; } - private int getModel(TreeNode[] t, int diffType, int idx, boolean compared) { + private int getModel(TreeNode[] t, FolderDiffModel[] m, int diffType, int idx, boolean compared) { this.diffType = diffType; - t[idx++] = this; + t[idx] = this; + m[idx++] = new FolderDiffModel(null); setIcon(this, compared); if (isOpened()) { for (var child: children) - idx = child.getModel(t, diffType, idx, compared); + idx = child.getModel(t, m, diffType, idx, compared); } return idx; }