Normand Briere
2019-08-15 7f97054d681518416a4ee1c1548ad42cfb489a8f
GroupEditor.java
....@@ -540,32 +540,37 @@
540540 // menu.add("-");
541541 duplicateItem = oe.jTree.popup.add(new JMenuItem("Duplicate"));
542542 duplicateItem.addActionListener(this);
543
- cloneItem = menu.add(new MenuItem("Clone"));
543
+
544
+ cloneItem = oe.jTree.popup.add(new JMenuItem("Clone"));
544545 cloneItem.addActionListener(this);
545
- if (Globals.ADVANCED)
546
+ //if (Globals.ADVANCED)
546547 {
547548 cloneSupportItem = menu.add(new MenuItem("Clone (+supports)"));
548549 cloneSupportItem.addActionListener(this);
549550 }
551
+ oe.jTree.popup.addSeparator();
550552 menu.add("-");
551
- cutItem = menu.add(new MenuItem("Cut"));
553
+ cutItem = oe.jTree.popup.add(new JMenuItem("Cut"));
552554 cutItem.addActionListener(this);
553
- copyItem = menu.add(new MenuItem("Copy"));
555
+ copyItem = oe.jTree.popup.add(new JMenuItem("Copy"));
554556 copyItem.addActionListener(this);
555557 pasteItem = menu.add(new MenuItem("Paste"));
556558 pasteItem.addActionListener(this);
557559
558
- menu.add("-");
559
- pasteIntoItem = menu.add(new MenuItem("Paste into"));
560
+ oe.jTree.popup.addSeparator();
561
+ //menu.add("-");
562
+ pasteIntoItem = oe.jTree.popup.add(new JMenuItem("Paste into"));
560563 pasteIntoItem.addActionListener(this);
561
- pasteLinkItem = menu.add(new MenuItem("Paste link"));
564
+ pasteLinkItem = oe.jTree.popup.add(new JMenuItem("Paste link"));
562565 pasteLinkItem.addActionListener(this);
563
- pasteCloneItem = menu.add(new MenuItem("Paste clone"));
566
+ pasteCloneItem = oe.jTree.popup.add(new JMenuItem("Paste clone"));
564567 pasteCloneItem.addActionListener(this);
565
-// pasteExpandItem = menu.add(new MenuItem("Paste expand"));
568
+// CRASH pasteExpandItem = oe.jTree.popup.add(new JMenuItem("Paste expand"));
566569 // pasteExpandItem.addActionListener(this);
567
- menu.add("-");
568
- deleteItem = menu.add(new MenuItem("Delete"));
570
+ //menu.add("-");
571
+ oe.jTree.popup.addSeparator();
572
+
573
+ deleteItem = oe.jTree.popup.add(new JMenuItem("Delete"));
569574 deleteItem.addActionListener(this);
570575
571576 if (Globals.ADVANCED)
....@@ -716,7 +721,7 @@
716721 hideItem = menu.add(new MenuItem("Hidden Group"));
717722 hideItem.addActionListener(this);
718723 }
719
- ungroupItem = menu.add(new MenuItem("Ungroup"));
724
+ ungroupItem = oe.jTree.popup.add(new JMenuItem("Ungroup"));
720725 ungroupItem.addActionListener(this);
721726
722727 // menu.add("-");
....@@ -935,9 +940,9 @@
935940
936941 public void ResourceCallBack(String[] path)
937942 {
938
-// for (int i = 0; i < path.length; i++)
939
-// System.out.print(path[i] + "/");
940
-// System.out.println();
943
+ for (int i = 0; i < path.length; i++)
944
+ System.out.print(path[i] + "/");
945
+ System.out.println();
941946
942947 if (//rowcount == 0 ||
943948 path.length == 1)
....@@ -2680,27 +2685,35 @@
26802685 } else
26812686 if (source == loopItem || source == loopButton)
26822687 {
2688
+ if (!group.selection.isEmpty())
2689
+ {
26832690 Composite csg = new GroupLeaf();
26842691 csg.count = 5;
2685
- group(csg);
26862692 Composite child = new cGroup("Branch");
26872693 csg.addChild(child);
26882694 child.addChild(csg);
2695
+ group(csg);
2696
+ }
26892697 } else
26902698 if (source == doubleItem)
26912699 {
2700
+ if (!group.selection.isEmpty())
2701
+ {
26922702 Composite csg = new GroupLeaf("Fork");
26932703 csg.count = 5;
2694
- group(csg);
26952704 Composite child = new cGroup("Branch A");
26962705 csg.addChild(child);
26972706 child.addChild(csg);
26982707 child = new cGroup("Branch B");
26992708 csg.addChild(child);
27002709 child.addChild(csg);
2710
+ group(csg);
2711
+ }
27012712 } else
27022713 if (source == tripleItem)
27032714 {
2715
+ if (!group.selection.isEmpty())
2716
+ {
27042717 Composite csg = new GroupLeaf("Trident");
27052718 csg.count = 4;
27062719 group(csg);
....@@ -2713,6 +2726,7 @@
27132726 child = new cGroup();
27142727 csg.addChild(child);
27152728 child.addChild(csg);
2729
+ }
27162730 } else
27172731 if (source == computeAOItem)
27182732 {
....@@ -3348,22 +3362,34 @@
33483362 } else
33493363 if (source == ungroupItem || source == ungroupButton)
33503364 {
3351
- boolean hasRoot = false;
3365
+ boolean canUngroup = true;
33523366
33533367 for (int i=0; i<group.selection.size(); i++)
33543368 {
3355
- if (group.selection.get(i) == group)
3369
+ Object3D selectedItem = group.selection.get(i);
3370
+
3371
+ if (selectedItem.Size() == 0)
33563372 {
3357
- hasRoot = true;
3373
+ // Cannot ungroup leaves
3374
+ canUngroup = false;
3375
+ break;
3376
+ }
3377
+
3378
+ if (selectedItem == group)
3379
+ {
3380
+ // Cannot ungroup root
3381
+ canUngroup = false;
33583382 break;
33593383 }
33603384 }
33613385
3362
- if (!hasRoot)
3386
+ if (canUngroup)
33633387 {
33643388 for (int i=0; i<group.selection.size(); i++)
33653389 {
3366
- Ungroup(group.selection.get(i));
3390
+ Object3D selectedItem = group.selection.get(i);
3391
+
3392
+ Ungroup(selectedItem);
33673393 }
33683394
33693395 ClearSelection(false);
....@@ -6233,11 +6259,11 @@
62336259 private MenuItem lookAtItem;
62346260 private MenuItem lookFromItem;
62356261 private MenuItem switchViewItem;
6236
- private MenuItem cutItem;
6262
+ private JMenuItem cutItem;
62376263 private MenuItem undoItem;
62386264 private MenuItem redoItem;
62396265 private JMenuItem duplicateItem;
6240
- private MenuItem cloneItem;
6266
+ private JMenuItem cloneItem;
62416267 private MenuItem cloneSupportItem;
62426268 private MenuItem overwriteGeoItem;
62436269 private MenuItem overwriteMatItem;
....@@ -6258,13 +6284,13 @@
62586284 private MenuItem cloneGeometriesItem;
62596285 private MenuItem shareGeometriesItem;
62606286 private MenuItem mergeGeometriesItem;
6261
- private MenuItem copyItem;
6287
+ private JMenuItem copyItem;
62626288 private MenuItem pasteItem;
6263
- private MenuItem pasteIntoItem;
6264
- private MenuItem pasteLinkItem;
6265
- private MenuItem pasteCloneItem;
6266
- private MenuItem pasteExpandItem;
6267
- private MenuItem deleteItem;
6289
+ private JMenuItem pasteIntoItem;
6290
+ private JMenuItem pasteLinkItem;
6291
+ private JMenuItem pasteCloneItem;
6292
+ private JMenuItem pasteExpandItem;
6293
+ private JMenuItem deleteItem;
62686294 private MenuItem clearAllItem;
62696295 private MenuItem genUVItem;
62706296 private MenuItem genNormalsMESHItem;
....@@ -6332,7 +6358,7 @@
63326358 private MenuItem switchTransfoItem;
63336359 private MenuItem morphItem;
63346360 private MenuItem linkerItem;
6335
- private MenuItem ungroupItem;
6361
+ private JMenuItem ungroupItem;
63366362 private MenuItem editItem;
63376363 private MenuItem openWindowItem;
63386364 private MenuItem editLeafItem;