Normand Briere
2019-06-24 c67da2e5d8655704601d6d06e8bc60aabe212253
ObjEditor.java
....@@ -36,6 +36,8 @@
3636 GroupEditor callee;
3737 JFrame frame;
3838
39
+ static ObjEditor theFrame;
40
+
3941 // SCRIPT
4042
4143 transient JFrame textpanel = null;
....@@ -168,7 +170,8 @@
168170 // objEditor.ctrlPanel.remove(remarkButton);
169171
170172 objEditor.ctrlPanel.remove(setupPanel);
171
- objEditor.ctrlPanel.remove(commandsPanel);
173
+ objEditor.ctrlPanel.remove(setupPanel2);
174
+ objEditor.ctrlPanel.remove(objectCommandsPanel);
172175 objEditor.ctrlPanel.remove(pushPanel);
173176 //objEditor.ctrlPanel.remove(fillPanel);
174177
....@@ -243,6 +246,7 @@
243246 //localCopy.parent = null;
244247
245248 frame = new JFrame();
249
+ frame.setUndecorated(true);
246250 objEditor = this;
247251 this.callee = callee;
248252
....@@ -323,9 +327,18 @@
323327 toolbarPanel.setName("Toolbar");
324328 treePanel = new cGridBag();
325329 treePanel.setName("Tree");
330
+
331
+ editPanel = new cGridBag().setVertical(true);
332
+ editPanel.setName("Edit");
333
+
326334 ctrlPanel = new cGridBag().setVertical(false); // new GridBagLayout());
327
- ctrlPanel.setName("Edit");
335
+
336
+ editCommandsPanel = new cGridBag();
337
+ editPanel.add(editCommandsPanel);
338
+ editPanel.add(ctrlPanel);
339
+
328340 materialPanel = new cGridBag().setVertical(true);
341
+
329342 materialPanel.setName("Material");
330343 /*JTextPane*/
331344 infoarea = createTextPane();
....@@ -419,10 +432,10 @@
419432 e.printStackTrace();
420433 }
421434
422
- String selection = infoarea.getText();
423
- java.awt.datatransfer.StringSelection data = new java.awt.datatransfer.StringSelection(selection);
424
- java.awt.datatransfer.Clipboard clipboard =
425
- Toolkit.getDefaultToolkit().getSystemClipboard();
435
+// String selection = infoarea.getText();
436
+// java.awt.datatransfer.StringSelection data = new java.awt.datatransfer.StringSelection(selection);
437
+// java.awt.datatransfer.Clipboard clipboard =
438
+// Toolkit.getDefaultToolkit().getSystemClipboard();
426439 //clipboard.setContents(data, data);
427440 }
428441
....@@ -582,19 +595,89 @@
582595 }
583596 }
584597
598
+static GraphicsDevice device = GraphicsEnvironment
599
+ .getLocalGraphicsEnvironment().getScreenDevices()[0];
600
+
601
+ Rectangle keeprect;
602
+ cRadio radio;
603
+
604
+cButton keepButton;
605
+ cButton twoButton; // Full 3D
606
+ cButton sixButton;
607
+ cButton threeButton;
608
+ cButton sevenButton;
609
+ cButton fourButton; // full panel
610
+ cButton oneButton; // full XYZ
611
+ //cButton currentLayout;
612
+
613
+ boolean maximized;
614
+
615
+ void Minimize()
616
+ {
617
+ frame.setState(Frame.ICONIFIED);
618
+ }
619
+
620
+ void Maximize()
621
+ {
622
+ if (maximized)
623
+ {
624
+ frame.setBounds(keeprect.x, keeprect.y, keeprect.width, keeprect.height);
625
+ }
626
+ else
627
+ {
628
+ keeprect = frame.getBounds();
629
+ Rectangle rect = GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds();
630
+ Dimension rect2 = frame.getToolkit().getScreenSize();
631
+ frame.setBounds(0, rect2.height - rect.height, rect.width, rect.height);
632
+// frame.setState(Frame.MAXIMIZED_BOTH);
633
+ }
634
+
635
+ maximized ^= true;
636
+ }
637
+
585638 void ToggleFullScreen()
586639 {
587640 if (CameraPane.FULLSCREEN)
588641 {
589
- frame.getContentPane().remove(/*"Center",*/bigThree);
590
- framePanel.add(bigThree);
591
- frame.getContentPane().add(/*"Center",*/framePanel);
642
+ device.setFullScreenWindow(null);
643
+ //frame.setVisible(false);
644
+// frame.removeNotify();
645
+// frame.setUndecorated(false);
646
+// frame.addNotify();
647
+ //frame.setBounds(keeprect.x, keeprect.y, keeprect.width, keeprect.height);
648
+
649
+// X frame.getContentPane().remove(/*"Center",*/bigThree);
650
+// X framePanel.add(bigThree);
651
+// X frame.getContentPane().add(/*"Center",*/framePanel);
652
+ framePanel.setDividerLocation(1);
653
+
654
+ //frame.setVisible(true);
655
+ radio.layout = keepButton;
656
+ //theFrame = null;
657
+ keepButton = null;
658
+ radio.layout.doClick();
659
+
592660 } else
593661 {
594
- frame.getContentPane().remove(/*"Center",*/framePanel);
595
- framePanel.remove(bigThree);
596
- frame.getContentPane().add(/*"Center",*/bigThree);
662
+ keepButton = radio.layout;
663
+ //keeprect = frame.getBounds();
664
+// frame.setBounds(0, 0, frame.getToolkit().getScreenSize().width,
665
+// frame.getToolkit().getScreenSize().height);
666
+ //frame.setVisible(false);
667
+ device.setFullScreenWindow(frame);
668
+// frame.removeNotify();
669
+// frame.setUndecorated(true);
670
+// frame.addNotify();
671
+// X frame.getContentPane().remove(/*"Center",*/framePanel);
672
+// X framePanel.remove(bigThree);
673
+// X frame.getContentPane().add(/*"Center",*/bigThree);
674
+ framePanel.setDividerLocation(0);
675
+
676
+ radio.layout = twoButton;
677
+ radio.layout.doClick();
678
+ //frame.setVisible(true);
597679 }
680
+
598681 cameraView.ToggleFullScreen();
599682 }
600683
....@@ -745,9 +828,13 @@
745828 JButton fasterButton;
746829 JButton remarkButton;
747830
831
+ cGridBag editPanel;
832
+ cGridBag editCommandsPanel;
833
+
748834 cGridBag namePanel;
749835 cGridBag setupPanel;
750
- cGridBag commandsPanel;
836
+ cGridBag setupPanel2;
837
+ cGridBag objectCommandsPanel;
751838 cGridBag pushPanel;
752839 cGridBag fillPanel;
753840
....@@ -939,40 +1026,44 @@
9391026 markCB = AddCheckBox(setupPanel, "Mark", copy.marked);
9401027 markCB.setToolTipText("Set the animation target transform");
9411028
942
- rewindCB = AddCheckBox(setupPanel, "Rewind", copy.rewind);
1029
+ setupPanel2 = new cGridBag().setVertical(false);
1030
+
1031
+ rewindCB = AddCheckBox(setupPanel2, "Rewind", copy.rewind);
9431032 rewindCB.setToolTipText("Rewind animation");
9441033
945
- randomCB = AddCheckBox(setupPanel, "Random", copy.random);
946
- randomCB.setToolTipText("Option for switch node");
1034
+ randomCB = AddCheckBox(setupPanel2, "Rand", copy.random);
1035
+ randomCB.setToolTipText("Randomly Rewind or Go back and forth");
9471036
9481037 if (Globals.ADVANCED)
9491038 {
950
- link2masterCB = AddCheckBox(setupPanel, "Support", copy.link2master);
1039
+ link2masterCB = AddCheckBox(setupPanel2, "Supp", copy.link2master);
9511040 link2masterCB.setToolTipText("Attach to support");
952
- speedupCB = AddCheckBox(setupPanel, "Speed", copy.speedup);
1041
+ speedupCB = AddCheckBox(setupPanel2, "Speed", copy.speedup);
9531042 speedupCB.setToolTipText("Option motion capture");
9541043 }
9551044
9561045 oe.ctrlPanel.add(setupPanel);
9571046 oe.ctrlPanel.Return();
1047
+ oe.ctrlPanel.add(setupPanel2);
1048
+ oe.ctrlPanel.Return();
9581049
959
- commandsPanel = new cGridBag().setVertical(false);
1050
+ objectCommandsPanel = new cGridBag().setVertical(false);
9601051
961
- resetButton = AddButton(commandsPanel, "Reset");
1052
+ resetButton = AddButton(objectCommandsPanel, "Reset");
9621053 resetButton.setToolTipText("Jump to frame zero");
963
- stepButton = AddButton(commandsPanel, "Step");
1054
+ stepButton = AddButton(objectCommandsPanel, "Step");
9641055 stepButton.setToolTipText("Step one frame");
9651056 // resetAllButton = AddButton(oe, "Reset All");
9661057 // stepAllButton = AddButton(oe, "Step All");
9671058 // Return();
968
- slowerButton = AddButton(commandsPanel, "Slow");
1059
+ slowerButton = AddButton(objectCommandsPanel, "Slow");
9691060 slowerButton.setToolTipText("Decrease animation speed");
970
- fasterButton = AddButton(commandsPanel, "Fast");
1061
+ fasterButton = AddButton(objectCommandsPanel, "Fast");
9711062 fasterButton.setToolTipText("Increase animation speed");
972
- remarkButton = AddButton(commandsPanel, "Remark");
1063
+ remarkButton = AddButton(objectCommandsPanel, "Remark");
9731064 remarkButton.setToolTipText("Set the current transform as the target");
9741065
975
- oe.ctrlPanel.add(commandsPanel);
1066
+ oe.ctrlPanel.add(objectCommandsPanel);
9761067 oe.ctrlPanel.Return();
9771068
9781069 pushPanel = AddSlider(oe.ctrlPanel, "Push", -1, 1, copy.NORMALPUSH, 1.1); // To have the buttons
....@@ -1178,8 +1269,11 @@
11781269 //worldPanel.setName("World");
11791270 centralPanel = new cGridBag();
11801271 centralPanel.preferredWidth = 20;
1181
- timelinePanel = new JPanel(new BorderLayout());
1182
- timelineMenubar = new timeflow.app.TimeflowApp().TimeFlowWindow(timelinePanel);
1272
+
1273
+ if (Globals.ADVANCED)
1274
+ {
1275
+ timelinePanel = new JPanel(new BorderLayout());
1276
+ timelineMenubar = new timeflow.app.TimeflowApp().TimeFlowWindow(timelinePanel);
11831277
11841278 cameraPanel = new JSplitPane(JSplitPane.VERTICAL_SPLIT, cameraView, timelinePanel);
11851279 cameraPanel.setContinuousLayout(true);
....@@ -1188,7 +1282,10 @@
11881282 // cameraPanel.setDividerSize(9);
11891283 cameraPanel.setResizeWeight(1.0);
11901284
1285
+ }
1286
+
11911287 centralPanel.add(cameraView);
1288
+ centralPanel.setFocusable(true);
11921289 //frame.setJMenuBar(timelineMenubar);
11931290 //centralPanel.add(timelinePanel);
11941291
....@@ -1255,7 +1352,7 @@
12551352 // north.setName("Edit");
12561353 // north.add(ctrlPanel, BorderLayout.NORTH);
12571354 // objectPanel.add(north);
1258
- objectPanel.add(ctrlPanel);
1355
+ objectPanel.add(editPanel);
12591356 objectPanel.add(infoPanel);
12601357
12611358 /*
....@@ -1386,6 +1483,8 @@
13861483 frame.setSize(1280, 860);
13871484 frame.setVisible(true);
13881485
1486
+ cameraView.requestFocusInWindow();
1487
+
13891488 gridPanel.setDividerLocation(1.0);
13901489
13911490 frame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
....@@ -4295,6 +4394,7 @@
42954394
42964395 try
42974396 {
4397
+ // Try compressed version first.
42984398 java.io.FileInputStream istream = new java.io.FileInputStream(fullname);
42994399 java.util.zip.GZIPInputStream zstream = new java.util.zip.GZIPInputStream(istream);
43004400 java.io.ObjectInputStream p = new java.io.ObjectInputStream(zstream);
....@@ -4364,6 +4464,12 @@
43644464
43654465 void LoadIt(Object obj)
43664466 {
4467
+ if (obj == null)
4468
+ {
4469
+ // Invalid file
4470
+ return;
4471
+ }
4472
+
43674473 System.out.println("Loaded " + obj);
43684474 //new Exception().printStackTrace();
43694475 Object3D readobj = (Object3D) obj;