Normand Briere
2019-06-24 47cd0f0a3870d843cb758535316060d30f15c811
ObjEditor.java
....@@ -4,6 +4,7 @@
44
55 import java.awt.*;
66 import java.awt.event.*;
7
+import java.awt.image.BufferedImage;
78 import javax.swing.*;
89 import javax.swing.event.*;
910 import javax.swing.text.*;
....@@ -37,6 +38,65 @@
3738 JFrame frame;
3839
3940 static ObjEditor theFrame;
41
+
42
+ cButton GetButton(String name, boolean border)
43
+ {
44
+ try
45
+ {
46
+ ImageIcon icon = GetIcon(name);
47
+ return new cButton(icon, border);
48
+ }
49
+ catch (Exception e)
50
+ {
51
+ return new cButton(name, border);
52
+ }
53
+ }
54
+
55
+ cToggleButton GetToggleButton(String name, boolean border)
56
+ {
57
+ try
58
+ {
59
+ ImageIcon icon = GetIcon(name);
60
+ return new cToggleButton(icon, border);
61
+ }
62
+ catch (Exception e)
63
+ {
64
+ return new cToggleButton(name, border);
65
+ }
66
+ }
67
+
68
+ cCheckBox GetCheckBox(String name, boolean border)
69
+ {
70
+ try
71
+ {
72
+ ImageIcon icon = GetIcon(name);
73
+ return new cCheckBox(icon, border);
74
+ }
75
+ catch (Exception e)
76
+ {
77
+ return new cCheckBox(name, border);
78
+ }
79
+ }
80
+
81
+ private ImageIcon GetIcon(String name) throws IOException
82
+ {
83
+ BufferedImage image = javax.imageio.ImageIO.read(getClass().getClassLoader().getResourceAsStream(name));
84
+
85
+ if (image.getWidth() != 24 && image.getHeight() != 24)
86
+ {
87
+ BufferedImage resized = new BufferedImage(24, 24, image.getType());
88
+ Graphics2D g = resized.createGraphics();
89
+ g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
90
+ //g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
91
+ g.drawImage(image, 0, 0, 24, 24, 0, 0, image.getWidth(), image.getHeight(), null);
92
+ g.dispose();
93
+
94
+ image = resized;
95
+ }
96
+
97
+ javax.swing.ImageIcon icon = new javax.swing.ImageIcon(image);
98
+ return icon;
99
+ }
40100
41101 // SCRIPT
42102
....@@ -171,7 +231,7 @@
171231
172232 objEditor.ctrlPanel.remove(setupPanel);
173233 objEditor.ctrlPanel.remove(setupPanel2);
174
- objEditor.ctrlPanel.remove(commandsPanel);
234
+ objEditor.ctrlPanel.remove(objectCommandsPanel);
175235 objEditor.ctrlPanel.remove(pushPanel);
176236 //objEditor.ctrlPanel.remove(fillPanel);
177237
....@@ -327,10 +387,22 @@
327387 toolbarPanel.setName("Toolbar");
328388 treePanel = new cGridBag();
329389 treePanel.setName("Tree");
390
+
391
+ editPanel = new cGridBag().setVertical(true);
392
+ editPanel.setName("Edit");
393
+
330394 ctrlPanel = new cGridBag().setVertical(false); // new GridBagLayout());
331
- ctrlPanel.setName("Edit");
395
+
396
+ editCommandsPanel = new cGridBag();
397
+ editPanel.add(editCommandsPanel);
398
+ editPanel.add(ctrlPanel);
399
+
400
+ toolboxPanel = new cGridBag().setVertical(false);
401
+ toolboxPanel.setName("Toolbox");
402
+
332403 materialPanel = new cGridBag().setVertical(true);
333404 materialPanel.setName("Material");
405
+
334406 /*JTextPane*/
335407 infoarea = createTextPane();
336408 doc = infoarea.getStyledDocument();
....@@ -603,6 +675,8 @@
603675
604676 boolean maximized;
605677
678
+ cButton fullscreenLayout;
679
+
606680 void Minimize()
607681 {
608682 frame.setState(Frame.ICONIFIED);
....@@ -664,7 +738,7 @@
664738 // X frame.getContentPane().add(/*"Center",*/bigThree);
665739 framePanel.setDividerLocation(0);
666740
667
- radio.layout = twoButton;
741
+ radio.layout = fullscreenLayout;
668742 radio.layout.doClick();
669743 //frame.setVisible(true);
670744 }
....@@ -819,10 +893,13 @@
819893 JButton fasterButton;
820894 JButton remarkButton;
821895
896
+ cGridBag editPanel;
897
+ cGridBag editCommandsPanel;
898
+
822899 cGridBag namePanel;
823900 cGridBag setupPanel;
824901 cGridBag setupPanel2;
825
- cGridBag commandsPanel;
902
+ cGridBag objectCommandsPanel;
826903 cGridBag pushPanel;
827904 cGridBag fillPanel;
828905
....@@ -1035,23 +1112,23 @@
10351112 oe.ctrlPanel.add(setupPanel2);
10361113 oe.ctrlPanel.Return();
10371114
1038
- commandsPanel = new cGridBag().setVertical(false);
1115
+ objectCommandsPanel = new cGridBag().setVertical(false);
10391116
1040
- resetButton = AddButton(commandsPanel, "Reset");
1117
+ resetButton = AddButton(objectCommandsPanel, "Reset");
10411118 resetButton.setToolTipText("Jump to frame zero");
1042
- stepButton = AddButton(commandsPanel, "Step");
1119
+ stepButton = AddButton(objectCommandsPanel, "Step");
10431120 stepButton.setToolTipText("Step one frame");
10441121 // resetAllButton = AddButton(oe, "Reset All");
10451122 // stepAllButton = AddButton(oe, "Step All");
10461123 // Return();
1047
- slowerButton = AddButton(commandsPanel, "Slow");
1124
+ slowerButton = AddButton(objectCommandsPanel, "Slow");
10481125 slowerButton.setToolTipText("Decrease animation speed");
1049
- fasterButton = AddButton(commandsPanel, "Fast");
1126
+ fasterButton = AddButton(objectCommandsPanel, "Fast");
10501127 fasterButton.setToolTipText("Increase animation speed");
1051
- remarkButton = AddButton(commandsPanel, "Remark");
1128
+ remarkButton = AddButton(objectCommandsPanel, "Remark");
10521129 remarkButton.setToolTipText("Set the current transform as the target");
10531130
1054
- oe.ctrlPanel.add(commandsPanel);
1131
+ oe.ctrlPanel.add(objectCommandsPanel);
10551132 oe.ctrlPanel.Return();
10561133
10571134 pushPanel = AddSlider(oe.ctrlPanel, "Push", -1, 1, copy.NORMALPUSH, 1.1); // To have the buttons
....@@ -1335,12 +1412,13 @@
13351412
13361413 //JScrollPane tmp = new JScrollPane(ctrlPanel, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
13371414 //tmp.setName("Edit");
1415
+ objectPanel.add(toolboxPanel);
13381416 objectPanel.add(materialPanel);
13391417 // JPanel north = new JPanel(new BorderLayout());
13401418 // north.setName("Edit");
13411419 // north.add(ctrlPanel, BorderLayout.NORTH);
13421420 // objectPanel.add(north);
1343
- objectPanel.add(ctrlPanel);
1421
+ objectPanel.add(editPanel);
13441422 objectPanel.add(infoPanel);
13451423
13461424 /*
....@@ -3396,6 +3474,8 @@
33963474
33973475 public void Save()
33983476 {
3477
+ System.err.println("Save");
3478
+
33993479 cRadio tab = GetCurrentTab();
34003480
34013481 boolean temp = CameraPane.SWITCH;
....@@ -3480,6 +3560,8 @@
34803560
34813561 public void Undo()
34823562 {
3563
+ System.err.println("Undo");
3564
+
34833565 cRadio tab = GetCurrentTab();
34843566
34853567 if (tab.undoindex == 0)
....@@ -3663,7 +3745,7 @@
36633745 assert false;
36643746 }
36653747
3666
- void EditSelection()
3748
+ void EditSelection(boolean newWindow)
36673749 {
36683750 }
36693751
....@@ -4158,7 +4240,8 @@
41584240
41594241 void makeSomething(Object3D thing, boolean resetmodel) // deselect)
41604242 {
4161
- Save();
4243
+ if (Globals.SAVEONMAKE) // && resetmodel)
4244
+ Save();
41624245 //Tween.set(thing, 0).target(1).start(tweenManager);
41634246 //Tween.to(thing, 0, 0.5f).target(0).start(tweenManager);
41644247 // if (thing instanceof GenericJointDemo)
....@@ -4245,6 +4328,12 @@
42454328 {
42464329 ResetModel();
42474330 Select(thing.GetTreePath(), true, false); // unselect... false);
4331
+
4332
+ if (thing.Size() == 0)
4333
+ {
4334
+ //EditSelection(false);
4335
+ }
4336
+
42484337 refreshContents();
42494338 }
42504339
....@@ -4467,6 +4556,7 @@
44674556
44684557 if (readobj != null)
44694558 {
4559
+ if (Globals.SAVEONMAKE)
44704560 Save();
44714561 try
44724562 {
....@@ -4838,18 +4928,29 @@
48384928 CheckboxMenuItem togglePaintItem;
48394929 JSplitPane mainPanel;
48404930 JScrollPane scrollpane;
4931
+
48414932 JPanel toolbarPanel;
4933
+
48424934 cGridBag treePanel;
4935
+
48434936 JPanel radioPanel;
48444937 ButtonGroup buttonGroup;
4845
- cGridBag ctrlPanel;
4938
+
4939
+ cGridBag toolboxPanel;
48464940 cGridBag materialPanel;
4941
+ cGridBag ctrlPanel;
4942
+
48474943 JScrollPane infoPanel;
4944
+
48484945 cGridBag optionsPanel;
4946
+
48494947 JTabbedPane objectPanel;
4948
+
48504949 cGridBag XYZPanel;
4950
+
48514951 JSplitPane gridPanel;
48524952 JSplitPane bigPanel;
4953
+
48534954 cGridBag bigThree;
48544955 cGridBag scenePanel;
48554956 cGridBag centralPanel;
....@@ -4964,7 +5065,7 @@
49645065 cNumberSlider fogField;
49655066 JLabel opacityPowerLabel;
49665067 cNumberSlider opacityPowerField;
4967
- JTree jTree;
5068
+ cTree jTree;
49685069 //ObjectUI parent;
49695070
49705071 cNumberSlider normalpushField;