From 46dbce888e7c3eff8969f1ddbe22e144410b67f4 Mon Sep 17 00:00:00 2001 From: Normand Briere <nbriere@noware.ca> Date: Sun, 07 Jul 2019 10:20:06 -0400 Subject: [PATCH] Put back serial IDs for cone and torus. --- GroupEditor.java | 181 ++++++++++++++++++++++++++++++++------------- 1 files changed, 129 insertions(+), 52 deletions(-) diff --git a/GroupEditor.java b/GroupEditor.java index d57f0f7..84ed69e 100644 --- a/GroupEditor.java +++ b/GroupEditor.java @@ -220,7 +220,7 @@ // toggleSwitchItem.addItemListener(this); // toggleSwitchItem.setState(CameraPane.SWITCH); - cameraMenu.add(toggleHandleItem = new CheckboxMenuItem("Handles")); + cameraMenu.add(toggleHandleItem = new CheckboxMenuItem("Show Handles")); toggleHandleItem.addItemListener(this); toggleHandleItem.setState(CameraPane.HANDLES); @@ -380,6 +380,7 @@ shadowYItem.addActionListener(this); shadowZItem = menu.add(new MenuItem("Shadow Blue")); shadowZItem.addActionListener(this); + if (Globals.ADVANCED) { menu.add("-"); @@ -582,7 +583,7 @@ */ cGridBag copyOptionsPanel = new cGridBag(); - copyOptionsPanel.preferredHeight = 2; + copyOptionsPanel.preferredHeight = 1; //this.AddOptions(oe.toolbarPanel, oe.aConstraints); @@ -590,14 +591,21 @@ //minButton.setToolTipText("Minimize window"); //minButton.addActionListener(this); - oe.toolbarPanel.add(maxButton = GetButton("icons/add-128.png", !Grafreed.NIMBUSLAF)); //, oe.aConstraints); - maxButton.setToolTipText("Maximize window"); - maxButton.addActionListener(this); + if (Globals.ADVANCED) + { + oe.toolbarPanel.add(maxButton = GetButton("icons/add-128.png", !Grafreed.NIMBUSLAF)); //, oe.aConstraints); + maxButton.setToolTipText("Maximize window"); + maxButton.addActionListener(this); + } oe.toolbarPanel.add(fullButton = GetButton("icons/fullscreen.png", !Grafreed.NIMBUSLAF)); //, oe.aConstraints); fullButton.setToolTipText("Full-screen window"); fullButton.addActionListener(this); + oe.toolbarPanel.add(screenfitButton = GetButton("icons/fit.png", !Grafreed.NIMBUSLAF)); //, oe.aConstraints); + screenfitButton.setToolTipText("Screen fit"); + screenfitButton.addActionListener(this); + oe.toolbarPanel.add(restoreCameraButton = GetButton("icons/eye.png", !Grafreed.NIMBUSLAF)); //, oe.aConstraints); restoreCameraButton.setToolTipText("Restore viewpoint"); restoreCameraButton.addActionListener(this); @@ -605,10 +613,12 @@ copyOptionsPanel.add(undoButton = GetButton("icons/undo.png", !Grafreed.NIMBUSLAF)); //, oe.aConstraints); undoButton.setToolTipText("Undo changes"); undoButton.addActionListener(this); + undoButton.setEnabled(false); copyOptionsPanel.add(redoButton = GetButton("icons/redo.png", !Grafreed.NIMBUSLAF)); //, oe.aConstraints); redoButton.setToolTipText("Redo changes"); redoButton.addActionListener(this); + redoButton.setEnabled(false); copyOptionsPanel.add(saveButton = GetButton("icons/down_arrow.png", !Grafreed.NIMBUSLAF)); //, oe.aConstraints); saveButton.setToolTipText("Save changes"); @@ -628,10 +638,6 @@ //oe.toolboxPanel.Return(); - copyOptionsPanel.add(screenfitButton = GetButton("icons/fit.png", !Grafreed.NIMBUSLAF)); //, oe.aConstraints); - screenfitButton.setToolTipText("Screen fit"); - screenfitButton.addActionListener(this); - // copyOptionsPanel.add(trackCB = GetToggleButton("icons/track.png", CameraPane.TRACK)); //, oe.aConstraints); // trackCB.setToolTipText("Enable tracking"); // trackCB.addItemListener(this); @@ -724,7 +730,7 @@ compositeButton.addActionListener(this); oe.toolboxPanel.add(switchButton = GetButton("icons/switch.png", !Grafreed.NIMBUSLAF)); //, oe.aConstraints); - switchButton.setToolTipText("Create switch"); + switchButton.setToolTipText("Create item switcher"); switchButton.addActionListener(this); oe.toolboxPanel.add(loopButton = GetButton("icons/loop.png", !Grafreed.NIMBUSLAF)); //, oe.aConstraints); @@ -743,17 +749,29 @@ lightButton.setToolTipText("Create light"); lightButton.addActionListener(this); + for (int i=6; --i>=0;) + { + oe.toolboxPanel.Return(); + oe.toolboxPanel.add(new cGridBag()); + oe.toolboxPanel.add(new cGridBag()); + oe.toolboxPanel.add(new cGridBag()); + oe.toolboxPanel.add(new cGridBag()); + oe.toolboxPanel.add(new cGridBag()); + oe.toolboxPanel.add(new cGridBag()); + oe.toolboxPanel.add(new cGridBag()); + } + // EDIT panel - editCommandsPanel.add(editButton = new cButton("+", !Grafreed.NIMBUSLAF)); //, oe.aConstraints); - editButton.setToolTipText("Edit selection"); + editCommandsPanel.add(editButton = GetButton("icons/controls.png", !Grafreed.NIMBUSLAF)); //, oe.aConstraints); + editButton.setToolTipText("Pin selection controls"); editButton.addActionListener(this); - editCommandsPanel.add(uneditButton = new cButton("-", !Grafreed.NIMBUSLAF)); //, oe.aConstraints); - uneditButton.setToolTipText("Unedit selection"); + editCommandsPanel.add(uneditButton = GetButton("icons/remove.png", !Grafreed.NIMBUSLAF)); //, oe.aConstraints); + uneditButton.setToolTipText("Remove selection controls"); uneditButton.addActionListener(this); editCommandsPanel.add(allParamsButton = new JCheckBox("All", allparams)); //, oe.aConstraints); - allParamsButton.setToolTipText("Edit all params"); + allParamsButton.setToolTipText("Show all controle"); allParamsButton.addActionListener(this); editCommandsPanel.add(clearPanelButton = new cButton("C", !Grafreed.NIMBUSLAF)); //, oe.aConstraints); @@ -770,6 +788,7 @@ editCommandsPanel.preferredHeight = 1; + SetPinStates(false); // oe.treePanel.add(commandsPanel); // oe.treePanel.Return(); @@ -843,14 +862,18 @@ boxCB.addItemListener(this); panel.add(zoomBoxCB = new cCheckBox("Zoom", CameraPane.ZOOMBOXMODE)); //, constraints); - zoomBoxCB.setToolTipText("Display bounding boxes when moving the wheel"); + zoomBoxCB.setToolTipText("Display only for wheel"); zoomBoxCB.addItemListener(this); if (true) // Globals.ADVANCED) { - panel.add(supportCB = new cCheckBox("Support", CameraPane.SUPPORT)); //, constraints); - supportCB.setToolTipText("Enable rigging"); - supportCB.addItemListener(this); +// panel.add(supportCB = new cCheckBox("Support", CameraPane.SUPPORT)); //, constraints); +// supportCB.setToolTipText("Enable rigging"); +// supportCB.addItemListener(this); + + panel.add(freezeCB = new cCheckBox("Freeze", Globals.FREEZEONMOVE)); //, constraints); + freezeCB.setToolTipText("Fast moving camera"); + freezeCB.addItemListener(this); // panel.add(localCB = new cCheckBox("Local", CameraPane.LOCALTRANSFORM), constraints); // localCB.addItemListener(this); @@ -905,7 +928,7 @@ oeilCB.addItemListener(this); panel.add(shadowCB = new cCheckBox("Shadow", Globals.COMPUTESHADOWWHENLIVE)); //, constraints); - shadowCB.setToolTipText("Compute shadows when live"); + shadowCB.setToolTipText("When live compute shadows"); shadowCB.addItemListener(this); panel.Return(); @@ -914,11 +937,11 @@ toggleTextureCB.addItemListener(this); panel.add(toggleSwitchCB = new cCheckBox("Switch", CameraPane.SWITCH)); //, constraints); - toggleSwitchCB.setToolTipText("Use switch"); + toggleSwitchCB.setToolTipText("Choose a single item"); toggleSwitchCB.addItemListener(this); panel.add(autosaveCB = new cCheckBox("Auto-save", Globals.SAVEONMAKE)); //, constraints); - autosaveCB.setToolTipText("Auto-save on structure change"); + autosaveCB.setToolTipText("On structure change"); autosaveCB.addItemListener(this); panel.Return(); @@ -985,6 +1008,7 @@ cCheckBox slowCB; cCheckBox boxCB; cCheckBox zoomBoxCB; + cCheckBox freezeCB; //cToggleButton trackCB; cCheckBox trackCB; cCheckBox smoothfocusCB; @@ -1103,6 +1127,10 @@ { Globals.COMPUTESHADOWWHENLIVE ^= true; } + else if(e.getSource() == freezeCB) + { + Globals.FREEZEONMOVE ^= true; + } else if(e.getSource() == autosaveCB) { Globals.SAVEONMAKE ^= true; @@ -1187,8 +1215,6 @@ } } - String string = (String) object; - System.out.println("Transfer = " + object + "; drop : " + target); // if( object instanceof java.io.File[]) // { @@ -1196,6 +1222,8 @@ // objEditor.DropFile((java.io.File[]) object, true); // return; // } + + String string = (String) object; // File path for Mac and Windows if (string.charAt(0) == '/' || string.charAt(1) == ':') @@ -1445,6 +1473,9 @@ animationItem.addItemListener(this); animationItem.setState(Globals.ANIMATION); + menu.add(archiveItem = new MenuItem("Archive3D...")); + archiveItem.addActionListener(this); + menu.add("-"); parseverticesItem = menu.add(new MenuItem("Multiplicity")); parseverticesItem.addActionListener(this); @@ -1614,6 +1645,20 @@ makeSomething(shadow); } + + private void ClearUnpinned() + { + //for (Object3D obj : listUI) + for (int i=listUI.size(); --i>=0;) + { + Object3D obj = listUI.elementAt(i); + if (!obj.pinned) + { + obj.CloseUI(); + listUI.remove(i); + } + } + } /** * applyExample @@ -2093,25 +2138,25 @@ Composite csg = new GroupLeaf(); csg.count = 5; group(csg); - Composite child = new cGroup(); + Composite child = new cGroup("Branch"); csg.addChild(child); child.addChild(csg); } else if (source == doubleItem) { - Composite csg = new GroupLeaf(); + Composite csg = new GroupLeaf("Fork"); csg.count = 5; group(csg); - Composite child = new cGroup(); + Composite child = new cGroup("Branch A"); csg.addChild(child); child.addChild(csg); - child = new cGroup(); + child = new cGroup("Branch B"); csg.addChild(child); child.addChild(csg); } else if (source == tripleItem) { - Composite csg = new GroupLeaf(); + Composite csg = new GroupLeaf("Trident"); csg.count = 4; group(csg); Composite child = new cGroup(); @@ -2175,7 +2220,8 @@ } else if (source == undoButton) { - Undo(); + if (!Undo()) + java.awt.Toolkit.getDefaultToolkit().beep(); } else if (source == redoButton) { @@ -2183,7 +2229,8 @@ } else if (source == saveButton) { - Save(); + if (!Save(true)) + java.awt.Toolkit.getDefaultToolkit().beep(); } else if (source == oneStepButton) { @@ -2192,17 +2239,14 @@ } else if (source == screenfitButton) { - //Reload(lastConverter, lastFilename, true); ScreenFit(); } else if (source == screenfitpointButton) { - //Reload(lastConverter, lastFilename, true); ScreenFitPoint(); } else if (source == snapobjectButton) { - //Reload(lastConverter, lastFilename, true); SnapObject(); } else // if (event.getSource() == recompileButton) @@ -2726,15 +2770,28 @@ } else if (source == ungroupItem || source == ungroupButton) { - //ungroup(); + boolean hasRoot = false; + for (int i=0; i<group.selection.size(); i++) { - Ungroup(group.selection.get(i)); + if (group.selection.get(i) == group) + { + hasRoot = true; + break; + } } - ClearSelection(false); - - refreshContents(); + if (!hasRoot) + { + for (int i=0; i<group.selection.size(); i++) + { + Ungroup(group.selection.get(i)); + } + + ClearSelection(false); + + refreshContents(); + } } else if (source == genUVItem) { @@ -3326,6 +3383,12 @@ } else if (source == editItem || source == editButton) { + for (Enumeration e = group.selection.elements(); e.hasMoreElements();) + { + Object3D child = (Object3D)e.nextElement(); + child.pinned = true; + } + EditSelection(false); } else if (source == uneditButton) @@ -3335,6 +3398,7 @@ Object3D child = (Object3D)e.nextElement(); if(child.editWindow != null) objectPanel.setSelectedIndex(objectPanel.indexOfTab("Edit")); + child.pinned = false; child.CloseUI(); listUI.remove(child); @@ -3351,6 +3415,7 @@ //copy.ClearUI(); for (Object3D obj : listUI) { + obj.pinned = false; obj.CloseUI(); } listUI.clear(); @@ -3360,7 +3425,7 @@ { assert(copy == group); - objectPanel.setSelectedIndex(objectPanel.indexOfTab("Edit")); + //objectPanel.setSelectedIndex(objectPanel.indexOfTab("Edit")); for (Object3D obj : listUI) { @@ -3435,6 +3500,11 @@ currentLayout = sevenButton; */ radio.layout.doClick(); + + ClearUnpinned(); + SetPinStates(group.selection.size() > 0); + if (group.selection.size() == 1) + EditSelection(false); keepparent = group.parent; // PARENT = NULL or not??? //group.parent = null; // ROOT @@ -4502,10 +4572,6 @@ // } // } - static boolean allparams = true; - - static Vector<Object3D> listUI = new Vector<Object3D>(); - void EditSelection(boolean newWindow) { // aConstraints.gridy = 0; @@ -4598,7 +4664,8 @@ //new Exception().printStackTrace(); freezemodel = true; - + ClearUnpinned(); + /**/ //switch (event.id) { @@ -4631,7 +4698,7 @@ if (tps != null && tps.length > 0 && tps[0].getLastPathComponent() instanceof Camera) // a camera { - if (tps[0].getLastPathComponent() != Globals.theRenderer.LightCamera()) + if (tps[0].getLastPathComponent() != Globals.theRenderer.LightCamera()) // Crash the camera because of invalid lightspace { CameraPane.camerachangeframe = 0; // don't refuse it Globals.theRenderer.SetCamera((Camera) tps[0].getLastPathComponent()); @@ -4640,6 +4707,13 @@ // Globals.theRenderer.eyeCamera = Globals.theRenderer.manipCamera; } + if (tps != null && tps.length == 1) + { + EditSelection(false); + } + + SetPinStates(tps != null && tps.length > 0); + refreshContents(); //return true; } @@ -4649,10 +4723,18 @@ freezemodel = false; } + void SetPinStates(boolean enabled) + { + editButton.setEnabled(enabled); + uneditButton.setEnabled(enabled); + unselectButton.setEnabled(enabled); + flashSelectionButton.setEnabled(enabled); + } + void refreshContents(boolean cp) { if (objectPanel.getSelectedIndex() == objectPanel.indexOfTab("Info")) - if (!Globals.MOUSEDRAGGED) // && !Globals.TIMERRUNNING) + if (!Globals.MOUSEDRAGGED && group.selection != null) // && !Globals.TIMERRUNNING) { objEditor.ClearInfo(); // .GetMaterial()); @@ -5472,11 +5554,6 @@ cButton restoreCameraButton; - cButton minButton; - cButton maxButton; - cButton fullButton; - cButton undoButton; - cButton redoButton; cButton saveButton; cButton oneStepButton; -- Gitblit v1.6.2