| .. | .. | 
|---|
| 150 | 150 |       | 
|---|
| 151 | 151 |  	void SetupMenu2(GroupEditor oe) | 
|---|
| 152 | 152 |  	{ | 
|---|
 | 153 | +                oe.jTree = new cTree();  | 
|---|
 | 154 | +  | 
|---|
| 153 | 155 |  		Menu menu; | 
|---|
| 154 | 156 |  		oe.menuBar.add(menu = new Menu("Edit")); | 
|---|
| 155 | 157 |  		//editItem = menu.add(new MenuItem("Edit")); | 
|---|
| .. | .. | 
|---|
| 160 | 162 |  //		redoItem = menu.add(new MenuItem("Redo")); | 
|---|
| 161 | 163 |  //		redoItem.addActionListener(this); | 
|---|
| 162 | 164 |  //		menu.add("-"); | 
|---|
| 163 |  | -		duplicateItem = menu.add(new MenuItem("Duplicate"));  | 
|---|
 | 165 | +		duplicateItem = oe.jTree.popup.add(new JMenuItem("Duplicate"));  | 
|---|
| 164 | 166 |  		duplicateItem.addActionListener(this); | 
|---|
| 165 | 167 |  		cloneItem = menu.add(new MenuItem("Clone")); | 
|---|
| 166 | 168 |  		cloneItem.addActionListener(this); | 
|---|
| .. | .. | 
|---|
| 334 | 336 |  		frontItem.addActionListener(this); | 
|---|
| 335 | 337 |  		compositeItem = menu.add(new MenuItem("Composite")); | 
|---|
| 336 | 338 |  		compositeItem.addActionListener(this); | 
|---|
 | 339 | +                  | 
|---|
 | 340 | +        if (Globals.ADVANCED)  | 
|---|
 | 341 | +        {  | 
|---|
| 337 | 342 |  		hideItem = menu.add(new MenuItem("Hidden Group")); | 
|---|
| 338 | 343 |  		hideItem.addActionListener(this); | 
|---|
 | 344 | +        }  | 
|---|
| 339 | 345 |  		ungroupItem = menu.add(new MenuItem("Ungroup")); | 
|---|
| 340 | 346 |  		ungroupItem.addActionListener(this); | 
|---|
 | 347 | +                  | 
|---|
| 341 | 348 |  		menu.add("-"); | 
|---|
 | 349 | +                  | 
|---|
| 342 | 350 |  		randomItem = menu.add(new MenuItem("Switch node")); | 
|---|
| 343 | 351 |  		randomItem.addActionListener(this); | 
|---|
 | 352 | +        if (Globals.ADVANCED)  | 
|---|
 | 353 | +        {  | 
|---|
| 344 | 354 |  		switchGeoItem = menu.add(new MenuItem("Switch Geometry")); | 
|---|
| 345 | 355 |  		switchGeoItem.addActionListener(this); | 
|---|
| 346 | 356 |  		switchTransfoItem = menu.add(new MenuItem("Switch Transform")); | 
|---|
| .. | .. | 
|---|
| 348 | 358 |  		morphItem = menu.add(new MenuItem("Morph Group")); | 
|---|
| 349 | 359 |  		morphItem.addActionListener(this); | 
|---|
| 350 | 360 |                   | 
|---|
| 351 |  | -        if (Globals.ADVANCED)  | 
|---|
| 352 |  | -        {  | 
|---|
| 353 | 361 |  		menu.add("-"); | 
|---|
| 354 | 362 |  		physicsItem = menu.add(new MenuItem("Physics")); | 
|---|
| 355 | 363 |  		physicsItem.addActionListener(this); | 
|---|
| .. | .. | 
|---|
| 588 | 596 |                  fullButton.setToolTipText("Full-screen window"); | 
|---|
| 589 | 597 |  		fullButton.addActionListener(this); | 
|---|
| 590 | 598 |                   | 
|---|
| 591 |  | -		oe.toolbarPanel.add(undoButton = GetButton("icons/undo.png", !Grafreed.NIMBUSLAF)); //, oe.aConstraints);  | 
|---|
 | 599 | +		oe.toolboxPanel.add(undoButton = GetButton("icons/undo.png", !Grafreed.NIMBUSLAF)); //, oe.aConstraints);  | 
|---|
| 592 | 600 |                  undoButton.setToolTipText("Undo changes"); | 
|---|
| 593 | 601 |  		undoButton.addActionListener(this); | 
|---|
| 594 | 602 |                   | 
|---|
| 595 |  | -		oe.toolbarPanel.add(redoButton = GetButton("icons/redo.png", !Grafreed.NIMBUSLAF)); //, oe.aConstraints);  | 
|---|
 | 603 | +		oe.toolboxPanel.add(redoButton = GetButton("icons/redo.png", !Grafreed.NIMBUSLAF)); //, oe.aConstraints);  | 
|---|
| 596 | 604 |                  redoButton.setToolTipText("Redo changes"); | 
|---|
| 597 | 605 |  		redoButton.addActionListener(this); | 
|---|
| 598 | 606 |                   | 
|---|
| 599 |  | -		oe.toolbarPanel.add(saveButton = GetButton("icons/down_arrow.png", !Grafreed.NIMBUSLAF)); //, oe.aConstraints);  | 
|---|
 | 607 | +		oe.toolboxPanel.add(saveButton = GetButton("icons/down_arrow.png", !Grafreed.NIMBUSLAF)); //, oe.aConstraints);  | 
|---|
| 600 | 608 |                  saveButton.setToolTipText("Save changes"); | 
|---|
| 601 | 609 |  		saveButton.addActionListener(this); | 
|---|
| 602 | 610 |                   | 
|---|
| 603 |  | -                oe.toolbarPanel.add(liveCB = GetCheckBox("icons/run.png", Globals.isLIVE())); //, oe.aConstraints);  | 
|---|
 | 611 | +                oe.toolboxPanel.add(liveCB = GetToggleButton("icons/run.png", Globals.isLIVE())); //, oe.aConstraints);  | 
|---|
| 604 | 612 |                  liveCB.setToolTipText("Enable animation"); | 
|---|
| 605 | 613 |                                  liveCB.addItemListener(this); | 
|---|
| 606 | 614 |   | 
|---|
| 607 |  | -                oe.toolbarPanel.add(fastCB = GetCheckBox("icons/runfast.png", CameraPane.FAST)); //, constraints);  | 
|---|
| 608 |  | -                fastCB.setToolTipText("Fast mode");  | 
|---|
| 609 |  | -                                fastCB.addItemListener(this);  | 
|---|
| 610 |  | -                                  | 
|---|
| 611 |  | -		oe.toolbarPanel.add(oneStepButton = GetButton("icons/step.png", !Grafreed.NIMBUSLAF)); //, oe.aConstraints);  | 
|---|
 | 615 | +		oe.toolboxPanel.add(oneStepButton = GetButton("icons/step.png", !Grafreed.NIMBUSLAF)); //, oe.aConstraints);  | 
|---|
| 612 | 616 |                  oneStepButton.setToolTipText("Animate one step forward"); | 
|---|
| 613 | 617 |  		oneStepButton.addActionListener(this); | 
|---|
| 614 | 618 |                   | 
|---|
| 615 |  | -                oe.toolbarPanel.add(trackCB = GetCheckBox("icons/track.png", CameraPane.TRACK)); //, oe.aConstraints);  | 
|---|
 | 619 | +                oe.toolboxPanel.add(fastCB = GetToggleButton("icons/runfast.png", CameraPane.FAST)); //, constraints);  | 
|---|
 | 620 | +                fastCB.setToolTipText("Fast mode");  | 
|---|
 | 621 | +                                fastCB.addItemListener(this);  | 
|---|
 | 622 | +                                  | 
|---|
 | 623 | +                oe.toolboxPanel.Return();  | 
|---|
 | 624 | +                  | 
|---|
 | 625 | +                oe.toolboxPanel.add(trackCB = GetToggleButton("icons/track.png", CameraPane.TRACK)); //, oe.aConstraints);  | 
|---|
| 616 | 626 |                  trackCB.setToolTipText("Enable tracking"); | 
|---|
| 617 | 627 |                                  trackCB.addItemListener(this); | 
|---|
| 618 | 628 |   | 
|---|
| 619 |  | -		oe.toolbarPanel.add(screenfitButton = GetButton("icons/fit.png", !Grafreed.NIMBUSLAF)); //, oe.aConstraints);  | 
|---|
 | 629 | +		oe.toolboxPanel.add(screenfitButton = GetButton("icons/fit.png", !Grafreed.NIMBUSLAF)); //, oe.aConstraints);  | 
|---|
| 620 | 630 |                  screenfitButton.setToolTipText("Screen fit"); | 
|---|
| 621 | 631 |  		screenfitButton.addActionListener(this); | 
|---|
| 622 | 632 |   | 
|---|
| .. | .. | 
|---|
| 630 | 640 |                          snapobjectButton.setToolTipText("Snap Object"); | 
|---|
| 631 | 641 |                  } | 
|---|
| 632 | 642 |   | 
|---|
| 633 |  | -		oe.toolbarPanel.add(flashSelectionButton = GetButton("icons/light-bulb.png", !Grafreed.NIMBUSLAF)); //, oe.aConstraints);  | 
|---|
 | 643 | +		oe.toolboxPanel.add(flashSelectionButton = GetButton("icons/flash-light.png", !Grafreed.NIMBUSLAF)); //, oe.aConstraints);  | 
|---|
| 634 | 644 |                  flashSelectionButton.setToolTipText("Highlight selection"); | 
|---|
| 635 | 645 |  		flashSelectionButton.addActionListener(this); | 
|---|
| 636 | 646 |                   | 
|---|
| 637 |  | -		oe.toolbarPanel.add(new JSeparator(SwingConstants.VERTICAL));  | 
|---|
 | 647 | +		//oe.toolbarPanel.add(new JSeparator(SwingConstants.VERTICAL));  | 
|---|
| 638 | 648 |                   | 
|---|
| 639 | 649 |  		oe.toolbarPanel.add(twoButton = new cButton("|-|", !Grafreed.NIMBUSLAF)); //, oe.aConstraints); | 
|---|
| 640 | 650 |                  twoButton.setToolTipText("Show center view only"); | 
|---|
| 641 | 651 |  		twoButton.addActionListener(this); | 
|---|
 | 652 | +                this.fullscreenLayout = twoButton;  | 
|---|
 | 653 | +                  | 
|---|
| 642 | 654 |  		oe.toolbarPanel.add(fourButton = new cButton("-||", !Grafreed.NIMBUSLAF)); //, oe.aConstraints); | 
|---|
| 643 | 655 |  		fourButton.addActionListener(this); | 
|---|
| 644 | 656 |                  fourButton.setToolTipText("Show left panel only"); | 
|---|
| .. | .. | 
|---|
| 653 | 665 |  		sevenButton.addActionListener(this); | 
|---|
| 654 | 666 |                  // | 
|---|
| 655 | 667 |   | 
|---|
| 656 |  | -		oe.toolbarPanel.add(rootButton = new cButton("o o o", !Grafreed.NIMBUSLAF)); //, oe.aConstraints);  | 
|---|
 | 668 | +		oe.toolbarPanel.add(rootButton = GetButton("icons/write.png", !Grafreed.NIMBUSLAF)); //, oe.aConstraints);  | 
|---|
| 657 | 669 |                  rootButton.setToolTipText("Edit selection in new tab"); | 
|---|
| 658 | 670 |  		rootButton.addActionListener(this); | 
|---|
| 659 | 671 |   | 
|---|
| 660 |  | -                oe.toolbarPanel.add(closeButton = new cButton("X", !Grafreed.NIMBUSLAF)); //, oe.aConstraints);  | 
|---|
 | 672 | +                oe.toolbarPanel.add(closeButton = GetButton("icons/close-icon.png", !Grafreed.NIMBUSLAF)); //, oe.aConstraints);  | 
|---|
| 661 | 673 |                  closeButton.setToolTipText("Close tab"); | 
|---|
| 662 | 674 |  		closeButton.addActionListener(this); | 
|---|
| 663 | 675 |  		//oe.treePanel.add(clearButton = new cButton("X"), oe.aConstraints); | 
|---|
| 664 | 676 |  		//clearButton.addActionListener(this); | 
|---|
| 665 |  | -                          | 
|---|
 | 677 | +  | 
|---|
 | 678 | +                // INSERT  | 
|---|
 | 679 | +                oe.toolboxPanel.add(gridButton = GetButton("icons/grid.png", !Grafreed.NIMBUSLAF)); //, oe.aConstraints);  | 
|---|
 | 680 | +                gridButton.setToolTipText("Create grid");  | 
|---|
 | 681 | +                                gridButton.addActionListener(this);  | 
|---|
 | 682 | +  | 
|---|
 | 683 | +                oe.toolboxPanel.add(boxButton = GetButton("icons/box.png", !Grafreed.NIMBUSLAF)); //, oe.aConstraints);  | 
|---|
 | 684 | +                boxButton.setToolTipText("Create box");  | 
|---|
 | 685 | +                                boxButton.addActionListener(this);  | 
|---|
 | 686 | +  | 
|---|
 | 687 | +                oe.toolboxPanel.add(sphereButton = GetButton("icons/sphere.png", !Grafreed.NIMBUSLAF)); //, oe.aConstraints);  | 
|---|
 | 688 | +                sphereButton.setToolTipText("Create sphere");  | 
|---|
 | 689 | +                                sphereButton.addActionListener(this);  | 
|---|
 | 690 | +  | 
|---|
 | 691 | +                oe.toolboxPanel.Return();  | 
|---|
 | 692 | +                  | 
|---|
 | 693 | +                oe.toolboxPanel.add(coneButton = GetButton("icons/cone.png", !Grafreed.NIMBUSLAF)); //, oe.aConstraints);  | 
|---|
 | 694 | +                coneButton.setToolTipText("Create cone");  | 
|---|
 | 695 | +                                coneButton.addActionListener(this);  | 
|---|
 | 696 | +  | 
|---|
 | 697 | +                oe.toolboxPanel.add(torusButton = GetButton("icons/torus.png", !Grafreed.NIMBUSLAF)); //, oe.aConstraints);  | 
|---|
 | 698 | +                torusButton.setToolTipText("Create torus");  | 
|---|
 | 699 | +                                torusButton.addActionListener(this);  | 
|---|
 | 700 | +  | 
|---|
 | 701 | +                oe.toolboxPanel.add(superButton = GetButton("icons/super.png", !Grafreed.NIMBUSLAF)); //, oe.aConstraints);  | 
|---|
 | 702 | +                superButton.setToolTipText("Create superellipsoid");  | 
|---|
 | 703 | +                                superButton.addActionListener(this);  | 
|---|
 | 704 | +  | 
|---|
 | 705 | +                if (Globals.ADVANCED)  | 
|---|
 | 706 | +                {  | 
|---|
 | 707 | +                    oe.toolboxPanel.add(kleinButton = GetButton("icons/klein.png", !Grafreed.NIMBUSLAF)); //, oe.aConstraints);  | 
|---|
 | 708 | +                    kleinButton.setToolTipText("Create Klein bottle");  | 
|---|
 | 709 | +                                    kleinButton.addActionListener(this);  | 
|---|
 | 710 | +                }  | 
|---|
 | 711 | +                  | 
|---|
 | 712 | +                oe.toolboxPanel.add(particlesButton = GetButton("icons/particles.png", !Grafreed.NIMBUSLAF)); //, oe.aConstraints);  | 
|---|
 | 713 | +                particlesButton.setToolTipText("Create particle system");  | 
|---|
 | 714 | +                               particlesButton.addActionListener(this);  | 
|---|
 | 715 | +  | 
|---|
 | 716 | +                oe.toolboxPanel.add(overlayButton = GetButton("icons/overlay.png", !Grafreed.NIMBUSLAF)); //, oe.aConstraints);  | 
|---|
 | 717 | +                overlayButton.setToolTipText("Create overlay");  | 
|---|
 | 718 | +                               overlayButton.addActionListener(this);  | 
|---|
 | 719 | +  | 
|---|
 | 720 | +                oe.toolboxPanel.add(lightButton = GetButton("icons/light-bulb.png", !Grafreed.NIMBUSLAF)); //, oe.aConstraints);  | 
|---|
 | 721 | +                lightButton.setToolTipText("Create light");  | 
|---|
 | 722 | +                               lightButton.addActionListener(this);  | 
|---|
 | 723 | +  | 
|---|
 | 724 | +                // EDIT panel  | 
|---|
| 666 | 725 |  		editCommandsPanel.add(editButton = new cButton("+", !Grafreed.NIMBUSLAF)); //, oe.aConstraints); | 
|---|
| 667 | 726 |                  editButton.setToolTipText("Edit selection"); | 
|---|
| 668 | 727 |  		editButton.addActionListener(this); | 
|---|
| .. | .. | 
|---|
| 703 | 762 |   | 
|---|
| 704 | 763 |                  JScrollPane jSP; | 
|---|
| 705 | 764 |  		//ctrlPanel.add(new JScrollPane(jTree = new cTree(new cTreeModel(this))), aConstraints); | 
|---|
| 706 |  | -		jSPPanel.add(jSP = new JScrollPane(oe.jTree = new cTree(null))); //, oe.aConstraints);  | 
|---|
 | 765 | +		jSPPanel.add(jSP = new JScrollPane(oe.jTree)); //, oe.aConstraints);  | 
|---|
| 707 | 766 |                  ResetModel(); | 
|---|
| 708 | 767 |                   | 
|---|
| 709 | 768 |                  oe.treePanel.add(jSPPanel); | 
|---|
| .. | .. | 
|---|
| 868 | 927 |              /*DropTarget dropTarget =*/ new DropTarget(oe.cameraView, this); | 
|---|
| 869 | 928 |          } | 
|---|
| 870 | 929 |   | 
|---|
| 871 |  | -        cCheckBox liveCB;  | 
|---|
 | 930 | +        cToggleButton liveCB;  | 
|---|
| 872 | 931 |          cCheckBox supportCB; | 
|---|
| 873 | 932 |          cCheckBox localCB; | 
|---|
| 874 | 933 |          cCheckBox crowdCB; | 
|---|
| 875 | 934 |          cCheckBox smoothCB; | 
|---|
| 876 |  | -        cCheckBox fastCB;  | 
|---|
 | 935 | +        cToggleButton fastCB;  | 
|---|
| 877 | 936 |          cCheckBox slowCB; | 
|---|
| 878 | 937 |          cCheckBox boxCB; | 
|---|
| 879 | 938 |          cCheckBox zoomBoxCB; | 
|---|
| 880 |  | -        cCheckBox trackCB;  | 
|---|
 | 939 | +        cToggleButton trackCB;  | 
|---|
| 881 | 940 |          cCheckBox smoothfocusCB; | 
|---|
| 882 | 941 |  //        JCheckBox speakerMocapCB; | 
|---|
| 883 | 942 |          cCheckBox speakerCameraCB; | 
|---|
| .. | .. | 
|---|
| 1014 | 1073 |  		 | 
|---|
| 1015 | 1074 |                  /**/ | 
|---|
| 1016 | 1075 |  		//DragSource.getDefaultDragSource().startDrag(dge, DragSource.DefaultMoveNoDrop, new StringSelection("Allo"), this); | 
|---|
| 1017 |  | -		TreePath path = new TreePath(objEditor.jTree.getSelectionPath().getLastPathComponent());  | 
|---|
 | 1076 | +		//TreePath path = new TreePath(objEditor.jTree.getSelectionPath().getLastPathComponent());  | 
|---|
 | 1077 | +		TreePath path = objEditor.jTree.getSelectionPath();  | 
|---|
| 1018 | 1078 |  		if ((path == null) || (path.getPathCount() <= 1)) { | 
|---|
| 1019 | 1079 |  		  // We can't move the root node or an empty selection | 
|---|
| 1020 | 1080 |  		  return; | 
|---|
| .. | .. | 
|---|
| 1138 | 1198 |                  return; | 
|---|
| 1139 | 1199 |              } | 
|---|
| 1140 | 1200 |   | 
|---|
| 1141 |  | -            if (dtde.getDropAction() == DnDConstants.ACTION_MOVE) // ?? LINK)  | 
|---|
| 1142 |  | -            {  | 
|---|
 | 1201 | +// june 2019            if (dtde.getDropAction() == DnDConstants.ACTION_MOVE) // ?? LINK)  | 
|---|
 | 1202 | +//            {  | 
|---|
| 1143 | 1203 |                  loadClipboard(true); | 
|---|
| 1144 | 1204 |                  objEditor.jTree.setSelectionPath(destinationPath); | 
|---|
| 1145 | 1205 |                  pasteInto(false, false); | 
|---|
| 1146 |  | -            } else {  | 
|---|
| 1147 |  | -                loadClipboard(false);  | 
|---|
| 1148 |  | -                objEditor.jTree.setSelectionPath(destinationPath);  | 
|---|
| 1149 |  | -                pasteInto(false, false); // true); // ???  | 
|---|
| 1150 |  | -            }  | 
|---|
 | 1206 | +//            } else {  | 
|---|
 | 1207 | +//                loadClipboard(false);  | 
|---|
 | 1208 | +//                objEditor.jTree.setSelectionPath(destinationPath);  | 
|---|
 | 1209 | +//                pasteInto(false, false); // true); // ???  | 
|---|
 | 1210 | +//            }  | 
|---|
| 1151 | 1211 |  	} | 
|---|
| 1152 | 1212 |  	public void	dropActionChanged(DropTargetDragEvent dtde)  | 
|---|
| 1153 | 1213 |  	// Called if the user has modified the current drop gesture | 
|---|
| .. | .. | 
|---|
| 1739 | 1799 |  			objEditor.cameraView.renderCamera.setAim(v2, v1); | 
|---|
| 1740 | 1800 |  			objEditor.cameraView.repaint(); | 
|---|
| 1741 | 1801 |  		} else | 
|---|
| 1742 |  | -		if (source == rectoidItem)  | 
|---|
 | 1802 | +		if (source == rectoidItem || source == boxButton)  | 
|---|
| 1743 | 1803 |  		{ | 
|---|
| 1744 | 1804 |  			makeSomething(new Box()); | 
|---|
| 1745 | 1805 |  		} else | 
|---|
| 1746 |  | -		if (source == particleItem)  | 
|---|
 | 1806 | +		if (source == particleItem || source == particlesButton)  | 
|---|
| 1747 | 1807 |  		{ | 
|---|
| 1748 | 1808 |          ParticleNode particleGeom = new ParticleNode("Particles", 1000); //, particleType); | 
|---|
| 1749 | 1809 |          ParticleController particleController = new ParticleController(particleGeom); | 
|---|
| .. | .. | 
|---|
| 1822 | 1882 |                       | 
|---|
| 1823 | 1883 |                      makeSomething(obj); | 
|---|
| 1824 | 1884 |  		} else | 
|---|
| 1825 |  | -		if (source == gridItem)  | 
|---|
 | 1885 | +		if (source == gridItem || source == gridButton)  | 
|---|
| 1826 | 1886 |  		{ | 
|---|
| 1827 | 1887 |  			makeSomething(new Grid()); | 
|---|
| 1828 | 1888 |  		} else | 
|---|
| 1829 |  | -		if (source == ellipsoidItem)  | 
|---|
 | 1889 | +		if (source == ellipsoidItem || source == sphereButton)  | 
|---|
| 1830 | 1890 |  		{ | 
|---|
| 1831 | 1891 |  			makeSomething(new Sphere()); | 
|---|
| 1832 | 1892 |  		} else | 
|---|
| 1833 |  | -		if (source == coneItem)  | 
|---|
 | 1893 | +		if (source == coneItem || source == coneButton)  | 
|---|
| 1834 | 1894 |  		{ | 
|---|
| 1835 | 1895 |  			makeSomething(new Cone()); | 
|---|
| 1836 | 1896 |  		} else | 
|---|
| 1837 |  | -		if (source == torusItem)  | 
|---|
 | 1897 | +		if (source == torusItem || source == torusButton)  | 
|---|
| 1838 | 1898 |  		{ | 
|---|
| 1839 | 1899 |  			makeSomething(new Torus()); | 
|---|
| 1840 | 1900 |  		} else | 
|---|
| 1841 |  | -		if (source == superItem)  | 
|---|
 | 1901 | +		if (source == superItem || source == superButton)  | 
|---|
| 1842 | 1902 |  		{ | 
|---|
| 1843 | 1903 |  			makeSomething(new Superellipsoid()); | 
|---|
| 1844 | 1904 |  		} else | 
|---|
| 1845 |  | -		if (source == kleinItem)  | 
|---|
 | 1905 | +		if (source == kleinItem || source == kleinButton)  | 
|---|
| 1846 | 1906 |  		{ | 
|---|
| 1847 | 1907 |  			makeSomething(new Klein()); | 
|---|
| 1848 | 1908 |  		} else | 
|---|
| .. | .. | 
|---|
| 1862 | 1922 |  		{ | 
|---|
| 1863 | 1923 |  			makeSomething(new BezierSurface()); | 
|---|
| 1864 | 1924 |  		} else | 
|---|
| 1865 |  | -		if (source == overlayItem)  | 
|---|
 | 1925 | +		if (source == overlayItem || source == overlayButton)  | 
|---|
| 1866 | 1926 |  		{ | 
|---|
| 1867 | 1927 |                      /* | 
|---|
| 1868 | 1928 |  			Object3D obj = new BezierSurface(5,8); | 
|---|
| .. | .. | 
|---|
| 1910 | 1970 |                          s.setup(); | 
|---|
| 1911 | 1971 |  			makeSomething(s); | 
|---|
| 1912 | 1972 |  		} else | 
|---|
| 1913 |  | -		if (source == lightItem)  | 
|---|
 | 1973 | +		if (source == lightItem || source == lightButton)  | 
|---|
| 1914 | 1974 |  		{ | 
|---|
| 1915 | 1975 |  			makeSomething(new Light()); | 
|---|
| 1916 | 1976 |  		} else | 
|---|
| .. | .. | 
|---|
| 2596 | 2656 |  		{ | 
|---|
| 2597 | 2657 |  			CastShadow(2); | 
|---|
| 2598 | 2658 |  		} else | 
|---|
| 2599 |  | -		if (source == ungroupItem)  | 
|---|
 | 2659 | +		if (source == ungroupItem || source == ungroupButton)  | 
|---|
| 2600 | 2660 |  		{ | 
|---|
| 2601 | 2661 |  			//ungroup(); | 
|---|
| 2602 | 2662 |                      for (int i=0; i<group.selection.size(); i++) | 
|---|
| .. | .. | 
|---|
| 2934 | 2994 |  		if (source == twoButton) | 
|---|
| 2935 | 2995 |  		{ | 
|---|
| 2936 | 2996 |                      radio.layout = twoButton; | 
|---|
 | 2997 | +                      | 
|---|
 | 2998 | +                    if (CameraPane.FULLSCREEN)  | 
|---|
 | 2999 | +                        fullscreenLayout = radio.layout;  | 
|---|
 | 3000 | +                      | 
|---|
| 2937 | 3001 |                      // bug | 
|---|
| 2938 | 3002 |                      //gridPanel.setDividerLocation(1.0); | 
|---|
| 2939 | 3003 |                      //bigPanel.setDividerLocation(0.0); | 
|---|
| .. | .. | 
|---|
| 2989 | 3053 |  		{ | 
|---|
| 2990 | 3054 |                      radio.layout = threeButton; | 
|---|
| 2991 | 3055 |                       | 
|---|
 | 3056 | +                    if (CameraPane.FULLSCREEN)  | 
|---|
 | 3057 | +                        fullscreenLayout = radio.layout;  | 
|---|
 | 3058 | +                      | 
|---|
| 2992 | 3059 |  //                    bigThree.remove(scenePanel); | 
|---|
| 2993 | 3060 |  //                    bigThree.remove(centralPanel); | 
|---|
| 2994 | 3061 |  //                    bigThree.remove(XYZPanel); | 
|---|
| .. | .. | 
|---|
| 3027 | 3094 |  		{ | 
|---|
| 3028 | 3095 |                      radio.layout = fourButton; | 
|---|
| 3029 | 3096 |                       | 
|---|
 | 3097 | +                    if (CameraPane.FULLSCREEN)  | 
|---|
 | 3098 | +                        fullscreenLayout = radio.layout;  | 
|---|
 | 3099 | +                      | 
|---|
| 3030 | 3100 |  //                    bigThree.remove(scenePanel); | 
|---|
| 3031 | 3101 |  //                    bigThree.remove(centralPanel); | 
|---|
| 3032 | 3102 |  //                    bigThree.remove(XYZPanel); | 
|---|
| .. | .. | 
|---|
| 3063 | 3133 |  		if (source == sixButton) | 
|---|
| 3064 | 3134 |  		{ | 
|---|
| 3065 | 3135 |                      radio.layout = sixButton; | 
|---|
 | 3136 | +                      | 
|---|
 | 3137 | +                    if (CameraPane.FULLSCREEN)  | 
|---|
 | 3138 | +                        fullscreenLayout = radio.layout;  | 
|---|
| 3066 | 3139 |                       | 
|---|
| 3067 | 3140 |  //                    bigThree.remove(scenePanel); | 
|---|
| 3068 | 3141 |  //                    bigThree.remove(centralPanel); | 
|---|
| .. | .. | 
|---|
| 3101 | 3174 |  		if (source == sevenButton) | 
|---|
| 3102 | 3175 |  		{ | 
|---|
| 3103 | 3176 |                      radio.layout = sevenButton; | 
|---|
 | 3177 | +                      | 
|---|
 | 3178 | +                    if (CameraPane.FULLSCREEN)  | 
|---|
 | 3179 | +                        fullscreenLayout = radio.layout;  | 
|---|
| 3104 | 3180 |                       | 
|---|
| 3105 | 3181 |  //                    bigThree.remove(scenePanel); | 
|---|
| 3106 | 3182 |  //                    bigThree.remove(centralPanel); | 
|---|
| .. | .. | 
|---|
| 4369 | 4445 |  		{ | 
|---|
| 4370 | 4446 |                      //System.out.println("edit : " + objectPanel.indexOfTab("Material")); | 
|---|
| 4371 | 4447 |                      //objectPanel.setEnabledAt(objectPanel.indexOfTab("Material"), false); | 
|---|
| 4372 |  | -                    objectPanel.setSelectedIndex(objectPanel.indexOfTab("Edit"));  | 
|---|
 | 4448 | +                    //objectPanel.setSelectedIndex(objectPanel.indexOfTab("Edit"));  | 
|---|
| 4373 | 4449 |                       | 
|---|
| 4374 | 4450 |  			Object3D elem = (Object3D)group.selection.elementAt(i); | 
|---|
| 4375 | 4451 |                          if(elem != group || !newWindow) | 
|---|
| .. | .. | 
|---|
| 5333 | 5409 |  	cButton saveButton; | 
|---|
| 5334 | 5410 |  	cButton oneStepButton; | 
|---|
| 5335 | 5411 |           | 
|---|
 | 5412 | +        cButton groupButton;  | 
|---|
 | 5413 | +        cButton ungroupButton;  | 
|---|
 | 5414 | +        cButton compositeButton;  | 
|---|
 | 5415 | +          | 
|---|
 | 5416 | +        cButton gridButton;  | 
|---|
 | 5417 | +        cButton boxButton;  | 
|---|
 | 5418 | +        cButton sphereButton;  | 
|---|
 | 5419 | +        cButton coneButton;  | 
|---|
 | 5420 | +        cButton torusButton;  | 
|---|
 | 5421 | +        cButton superButton;  | 
|---|
 | 5422 | +        cButton kleinButton;  | 
|---|
 | 5423 | +        cButton particlesButton;  | 
|---|
 | 5424 | +        cButton overlayButton;  | 
|---|
 | 5425 | +        cButton lightButton;  | 
|---|
 | 5426 | +          | 
|---|
| 5336 | 5427 |  	cButton screenfitButton; | 
|---|
| 5337 | 5428 |  	cButton screenfitpointButton; | 
|---|
| 5338 | 5429 |  	cButton snapobjectButton; | 
|---|
| .. | .. | 
|---|
| 5357 | 5448 |  	private MenuItem cutItem; | 
|---|
| 5358 | 5449 |  	private MenuItem undoItem; | 
|---|
| 5359 | 5450 |  	private MenuItem redoItem; | 
|---|
| 5360 |  | -	private MenuItem duplicateItem;  | 
|---|
 | 5451 | +	private JMenuItem duplicateItem;  | 
|---|
| 5361 | 5452 |  	private MenuItem cloneItem; | 
|---|
| 5362 | 5453 |  	private MenuItem cloneSupportItem; | 
|---|
| 5363 | 5454 |  	private MenuItem overwriteGeoItem; | 
|---|