From bed42c663d286d76a32f155049f9efabc2fdb73f Mon Sep 17 00:00:00 2001
From: Normand Briere <nbriere@noware.ca>
Date: Sun, 28 Apr 2019 20:48:43 -0400
Subject: [PATCH] New UI proto

---
 ObjEditor.java |  163 ++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 114 insertions(+), 49 deletions(-)

diff --git a/ObjEditor.java b/ObjEditor.java
index 6877515..0ea0e59 100644
--- a/ObjEditor.java
+++ b/ObjEditor.java
@@ -19,6 +19,8 @@
 import //weka.core.
         matrix.Matrix;
 
+import grafeme.ui.*;
+
 class ObjEditor /*extends JFrame*/ implements iCallBack, ObjectUI,
         ActionListener, ChangeListener,
         InputMethodListener,
@@ -28,7 +30,12 @@
         iSendInfo
 //KeyListener
 {
+        boolean timeline;
+        boolean wasFullScreen;
 
+    GroupEditor callee;
+    JFrame frame;
+    
     // SCRIPT
     
     transient JFrame textpanel = null;
@@ -119,14 +126,13 @@
     void keyPressed(int key, int modifiers)
     {
     System.out.println("KEY PRESSED");
-    CameraPane.theRenderer.keyPressed(key, modifiers);
+    Globals.theRenderer.keyPressed(key, modifiers);
     }
      */
 
     static GridBagConstraints aConstraints;
     static GridBagConstraints aWindowConstraints;
-    GroupEditor callee;
-    JFrame frame;
+
     static int GRIDWIDTH = 100; // 4;
 
     public void closeUI()
@@ -158,12 +164,16 @@
         objEditor.ctrlPanel.remove(slowerButton);
         objEditor.ctrlPanel.remove(fasterButton);
         objEditor.ctrlPanel.remove(remarkButton);
+        
+        Remove(normalpushField);
     }
 
     public ObjEditor GetEditor()
     {
         return objEditor; //.GetEditor();
     }
+    
+    // Sometimes myself, sometimes my callee's.
     ObjEditor objEditor;
 
     /*
@@ -238,7 +248,7 @@
         //if (!isDisplayable())
         //setUndecorated(true);
 
-        System.out.println("getFullScreenWindow? " + gd.getFullScreenWindow());
+        //System.out.println("getFullScreenWindow? " + gd.getFullScreenWindow());
         client = inClient;
         copy = localCopy;
         copy.editWindow = this;
@@ -292,18 +302,18 @@
         //normalLensItem.addActionListener(this);
         cameraMenu.add(revertCameraItem = new MenuItem("Revert Camera"));
         revertCameraItem.addActionListener(this);
+        cameraMenu.add(toggleTimelineItem = new CheckboxMenuItem("Timeline"));
+        toggleTimelineItem.addItemListener(this);
         cameraMenu.add(toggleFullScreenItem = new CheckboxMenuItem("Full Screen"));
         toggleFullScreenItem.addItemListener(this);
         toggleFullScreenItem.setState(CameraPane.FULLSCREEN);
-        cameraMenu.add(toggleTimelineItem = new CheckboxMenuItem("Timeline"));
-        toggleTimelineItem.addItemListener(this);
         cameraMenu.add("-");
         cameraMenu.add(toggleTextureItem = new CheckboxMenuItem("Texture"));
         toggleTextureItem.addItemListener(this);
         toggleTextureItem.setState(CameraPane.textureon);
         cameraMenu.add(toggleLiveItem = new CheckboxMenuItem("Live"));
         toggleLiveItem.addItemListener(this);
-        toggleLiveItem.setState(CameraPane.isLIVE());
+        toggleLiveItem.setState(Globals.isLIVE());
         cameraMenu.add(stepItem = new MenuItem("Step"));
         stepItem.addActionListener(this);
 //		cameraMenu.add(toggleDLItem = new CheckboxMenuItem("Display List"));
@@ -596,6 +606,22 @@
         }
     }
 
+        void ToggleFullScreen()
+        {
+                if (CameraPane.FULLSCREEN)
+                {
+                    frame.getContentPane().remove(/*"Center",*/bigThree);
+                    framePanel.add(bigThree);
+                    frame.getContentPane().add(/*"Center",*/framePanel);
+                } else
+                {
+                    frame.getContentPane().remove(/*"Center",*/framePanel);
+                    framePanel.remove(bigThree);
+                    frame.getContentPane().add(/*"Center",*/bigThree);
+                }
+                cameraView.ToggleFullScreen();
+        }
+
     private JTextArea createTextPane()
     {
         String[] initString =
@@ -796,7 +822,7 @@
 
         aConstraints.fill = GridBagConstraints.VERTICAL;
         jlabel.setHorizontalAlignment(SwingConstants.TRAILING);
-        aConstraints.gridwidth = 2;
+        aConstraints.gridwidth = 1;
         ctrlPanel.add(jlabel, aConstraints); //, oe.ctrlPanel.getComponentCount()-1);
         aConstraints.gridx += 1;
         aConstraints.fill = GridBagConstraints.HORIZONTAL;
@@ -965,6 +991,9 @@
 
         Return();
 
+    normalpushField = AddSlider(oe.ctrlPanel, "Push", -10, 10, 0, -1);
+    Return();
+            
 //	oe.ctrlPanel.add(stepButton = new cButton("Step"), ObjEditor.aConstraints, oe.ctrlPanel.getComponentCount() - 2);
 //        ObjEditor.aConstraints.gridx += 1;
 
@@ -1164,6 +1193,13 @@
 	timelinePanel = new JPanel(new BorderLayout());
         timelineMenubar = new timeflow.app.TimeflowApp().TimeFlowWindow(timelinePanel);
 
+        cameraPanel = new JSplitPane(JSplitPane.VERTICAL_SPLIT, cameraView, timelinePanel);
+        cameraPanel.setContinuousLayout(true);
+        cameraPanel.setOneTouchExpandable(true);
+//        cameraPanel.setDividerLocation(0.9);
+//        cameraPanel.setDividerSize(9);
+        cameraPanel.setResizeWeight(1.0);
+        
         centralPanel.add(cameraView);
         //frame.setJMenuBar(timelineMenubar);
         //centralPanel.add(timelinePanel);
@@ -1183,12 +1219,12 @@
         //frontView.object = copy;
         //sideView.object = copy;
 
-        XYZPanel = new JPanel();
-        XYZPanel.setLayout(new GridLayout(3, 1, 5, 5));
+        XYZPanel = new cGridBag().setVertical(true);
+        //XYZPanel.setLayout(new GridLayout(3, 1, 5, 5));
 
-        XYZPanel.add(/*BorderLayout.SOUTH,*/sideView); // Scroll);
-        XYZPanel.add(/*BorderLayout.CENTER,*/frontView); // Scroll);
-        XYZPanel.add(/*BorderLayout.NORTH,*/topView); // Scroll);
+        XYZPanel.addComponent(/*BorderLayout.SOUTH,*/sideView); // Scroll);
+        XYZPanel.addComponent(/*BorderLayout.CENTER,*/frontView); // Scroll);
+        XYZPanel.addComponent(/*BorderLayout.NORTH,*/topView); // Scroll);
 
         /*
         gridPanel = new JPanel(); //new BorderLayout());
@@ -1258,6 +1294,9 @@
         optionsPanel = new JPanel(new GridBagLayout());
 
         optionsPanel.setName("Options");
+        
+        AddOptions(optionsPanel, aConstraints);
+        
         scenePanel.add(optionsPanel);
 
 
@@ -1293,6 +1332,7 @@
         //bigPanel.setSize(new Dimension(10,10));
         //bigPanel.add(ctrlPanel);
         //bigPanel.add(gridPanel);
+        /**
         bigThree = new JPanel();
         //big.setLayout(new FlowLayout(FlowLayout.LEFT));
         bigThree.setLayout(new GridBagLayout()); //1,3,5,5));
@@ -1316,7 +1356,13 @@
         //	aConstraints.gridheight = 3;
         aWindowConstraints.fill = GridBagConstraints.VERTICAL;
         bigThree.add(XYZPanel, aWindowConstraints);
+        /**/
 
+        bigThree = new cGridBag();
+        bigThree.addComponent(scenePanel);
+        bigThree.addComponent(centralPanel);
+        bigThree.addComponent(XYZPanel);
+        
 //                // SIDE EFFECT!!!
 //		aConstraints.gridx = 0;
 //		aConstraints.gridy = 0;
@@ -1337,7 +1383,8 @@
         //worldPane.add(bigPanel);
         //worldPane.add(worldPanel);
                 /**/
-        frame.getContentPane().add(/*"Center",*/framePanel);
+        //frame.getContentPane().add(/*"Center",*/framePanel);
+        frame.add(/*"Center",*/framePanel);
         //frame.getContentPane().add(/*"Center",*/ worldPane);
 
 //            aConstraints = gbc; // (GridBagConstraints) GrafreeD.clone(gbc);
@@ -1358,6 +1405,10 @@
         });
     }
 
+    void AddOptions(JPanel panel, GridBagConstraints constraints)
+    {
+    }
+    
     JTree GetTree()
     {
         return objEditor.jTree;
@@ -1428,7 +1479,7 @@
         aConstraints.gridx += 1;
         aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
         //aConstraints.weightx = 0;
-        ctrlPanel.add(colorField = new NumberSlider(0.001, 1, -0.1), aConstraints);
+        ctrlPanel.add(colorField = new NumberSlider(0.001, 1, -0.5), aConstraints);
         aConstraints.gridx = 0;
         aConstraints.gridy += 1;
         aConstraints.gridwidth = 1;
@@ -1438,7 +1489,7 @@
         aConstraints.fill = GridBagConstraints.HORIZONTAL;
         aConstraints.gridx += 1;
         aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
-        ctrlPanel.add(modulationField = new NumberSlider(0.001, 1, -0.1), aConstraints);
+        ctrlPanel.add(modulationField = new NumberSlider(0.001, 1, -0.5), aConstraints);
         aConstraints.gridx = 0;
         aConstraints.gridy += 1;
         aConstraints.gridwidth = 1;
@@ -1448,7 +1499,7 @@
         aConstraints.fill = GridBagConstraints.HORIZONTAL;
         aConstraints.gridx += 1;
         aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
-        ctrlPanel.add(textureField = new NumberSlider(0.001, 1, -0.1), aConstraints);
+        ctrlPanel.add(textureField = new NumberSlider(0.001, 1, -0.5), aConstraints);
         aConstraints.gridx = 0;
         aConstraints.gridy += 1;
         aConstraints.gridwidth = 1;
@@ -1458,7 +1509,7 @@
         aConstraints.fill = GridBagConstraints.HORIZONTAL;
         aConstraints.gridx += 1;
         aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
-        ctrlPanel.add(anisoField = new NumberSlider(0.001, 1, -0.1), aConstraints);
+        ctrlPanel.add(anisoField = new NumberSlider(0.001, 1, -0.5), aConstraints);
         aConstraints.gridx = 0;
         aConstraints.gridy += 1;
         aConstraints.gridwidth = 1;
@@ -1468,7 +1519,7 @@
         aConstraints.fill = GridBagConstraints.HORIZONTAL;
         aConstraints.gridx += 1;
         aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
-        ctrlPanel.add(anisoVField = new NumberSlider(0.001, 1, -0.1), aConstraints);
+        ctrlPanel.add(anisoVField = new NumberSlider(0.001, 1, -0.5), aConstraints);
         aConstraints.gridx = 0;
         aConstraints.gridy += 1;
         aConstraints.gridwidth = 1;
@@ -1537,7 +1588,7 @@
         aConstraints.fill = GridBagConstraints.HORIZONTAL;
         aConstraints.gridx += 1;
         aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
-        ctrlPanel.add(subsurfaceField = new NumberSlider(0.001, 1, -0.1), aConstraints);
+        ctrlPanel.add(subsurfaceField = new NumberSlider(0.001, 1, -0.5), aConstraints);
         aConstraints.gridx = 0;
         aConstraints.gridy += 1;
         aConstraints.gridwidth = 1;
@@ -1606,7 +1657,7 @@
         aConstraints.fill = GridBagConstraints.HORIZONTAL;
         aConstraints.gridx += 1;
         aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
-        ctrlPanel.add(metalnessField = new NumberSlider(0.001, 1, -0.1), aConstraints);
+        ctrlPanel.add(metalnessField = new NumberSlider(0.001, 1, -0.5), aConstraints);
         aConstraints.gridx = 0;
         aConstraints.gridy += 1;
         aConstraints.gridwidth = 1;
@@ -1677,7 +1728,7 @@
         aConstraints.fill = GridBagConstraints.HORIZONTAL;
         aConstraints.gridx += 1;
         aConstraints.gridwidth = ObjEditor.GRIDWIDTH;
-        ctrlPanel.add(opacityField = new NumberSlider(0.001, 1, -0.1), aConstraints);
+        ctrlPanel.add(opacityField = new NumberSlider(0.001, 1, -0.5), aConstraints);
         aConstraints.gridx = 0;
         aConstraints.gridy += 1;
         aConstraints.gridwidth = 1;
@@ -2966,37 +3017,35 @@
             return;
         } else if (event.getSource() == toggleTimelineItem)
         {
-            copy.timeline ^= true;
+            timeline ^= true;
 
-            if (copy.timeline)
+            if (timeline)
             {
                 centralPanel.remove(cameraView);
-                centralPanel.add(timelinePanel);
+                cameraPanel.add(cameraView);
+                centralPanel.add(cameraPanel);
                 frame.setJMenuBar(timelineMenubar);
+                wasFullScreen = CameraPane.FULLSCREEN;
+                if (!CameraPane.FULLSCREEN)
+                    ToggleFullScreen();
+                toggleFullScreenItem.setEnabled(false);
             }
             else
             {
-                centralPanel.remove(timelinePanel);
+                centralPanel.remove(cameraPanel);
                 centralPanel.add(cameraView);
                 frame.setJMenuBar(null);
+                if (!wasFullScreen)
+                    ToggleFullScreen();
+                toggleFullScreenItem.setEnabled(true);
             }
 
             frame.validate();
             return;
         } else if (event.getSource() == toggleFullScreenItem)
         {
-            if (CameraPane.FULLSCREEN)
-            {
-                frame.getContentPane().remove(/*"Center",*/bigThree);
-                framePanel.add(bigThree);
-                frame.getContentPane().add(/*"Center",*/framePanel);
-            } else
-            {
-                frame.getContentPane().remove(/*"Center",*/framePanel);
-                frame.getContentPane().add(/*"Center",*/bigThree);
-            }
+            ToggleFullScreen();
             frame.validate();
-            cameraView.ToggleFullScreen();
 
             return;
         } else if (event.getSource() == toggleRandomItem)
@@ -3106,7 +3155,8 @@
             objEditor.refreshContents();
         } else if (event.getSource() == stepItem)
         {
-            cameraView.ONESTEP = true;
+            //cameraView.ONESTEP = true;
+            Globals.ONESTEP = true;
             cameraView.repaint();
             return;
         } else if (event.getSource() == stepButton)
@@ -3263,25 +3313,25 @@
 
     void ToggleAnimation()
     {
-        if (!CameraPane.ANIMATION)
+        if (!Globals.ANIMATION)
         {
             FileDialog browser = new FileDialog(frame, "Save Animation As...", FileDialog.SAVE);
             browser.show();
             String filename = browser.getFile();
             if (filename != null && filename.length() > 0)
             {
-                CameraPane.filename = browser.getDirectory() + filename;
+                Globals.filename = browser.getDirectory() + filename;
                 //CameraPane.framecount = 0;
-                CameraPane.imagecount = 0;
+                Globals.imagecount = 0;
 
-                CameraPane.ANIMATION ^= true;
+                Globals.ANIMATION ^= true;
 
                 GrafreeD.wav.cursor = 0;
                 GrafreeD.wav.loop = 0;
             }
         } else
         {
-            CameraPane.ANIMATION ^= true;
+            Globals.ANIMATION ^= true;
         }
     }
 
@@ -3534,7 +3584,13 @@
             //System.out.println("PARENT = " + parent);
             //if (parent != null)
             //	parent.applySelf();
-            refreshContents();
+		if (e.getSource() == normalpushField)
+		{
+			objEditor.refreshContents();
+			//Refresh();
+		}
+		else
+                    refreshContents();
             // ??? client.refreshEditWindow();
         }
         //else
@@ -3546,7 +3602,7 @@
         //group.name = nameField.getText();
         //objEditor.applySelf();
 
-        assert (objEditor == this);
+        // OCT2018: assert (objEditor == this);
         if (copy.selection == null || copy.selection.size() == 0)
 			//super.applySelf()
                                 ; else
@@ -3570,12 +3626,18 @@
                 objEditor.copy = keep;
             }
         }
+        
+        if (normalpushField != null)
+                copy.NORMALPUSH = (float)normalpushField.getFloat()/1000;
     }
 
         void SnapObject()
         {
-            Object3D obj = (Object3D)copy.selection.elementAt(0);
-            SnapObject(obj);
+            if (copy.selection.size() > 0)
+            {
+                    Object3D obj = (Object3D)copy.selection.elementAt(0);
+                    SnapObject(obj);
+            }
         }
         
         void SnapObject(Object3D obj)
@@ -4493,12 +4555,13 @@
     JScrollPane infoPanel;
     JPanel optionsPanel;
     JTabbedPane objectPanel;
-    JPanel XYZPanel;
+    cGridBag XYZPanel;
     JSplitPane gridPanel;
     JSplitPane bigPanel;
-    JPanel bigThree;
+    cGridBag bigThree;
     JTabbedPane scenePanel;
     JPanel centralPanel;
+    JSplitPane cameraPanel;
     JPanel timelinePanel;
     JMenuBar timelineMenubar;
     JSplitPane framePanel;
@@ -4611,4 +4674,6 @@
     NumberSlider opacityPowerField;
     JTree jTree;
     //ObjectUI parent;
+    
+    NumberSlider normalpushField;
 }

--
Gitblit v1.6.2