From ab3972dbae4c84a490f0eaae7617a63c6fd97e90 Mon Sep 17 00:00:00 2001 From: rickard Date: Tue, 18 Oct 2022 21:19:51 +0200 Subject: [PATCH 1/6] #324 - changes Type to JComboBox with hardcoded values --- .../multiview/MaterialEditorTopComponent.java | 2 +- .../wizard/SNDefVisualPanel2.form | 4 +++- .../wizard/SNDefVisualPanel2.java | 18 +++++++++++++----- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/jme3-materialeditor/src/com/jme3/gde/materials/multiview/MaterialEditorTopComponent.java b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/MaterialEditorTopComponent.java index 62aaa86da..5b6ab1432 100644 --- a/jme3-materialeditor/src/com/jme3/gde/materials/multiview/MaterialEditorTopComponent.java +++ b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/MaterialEditorTopComponent.java @@ -66,7 +66,7 @@ public final class MaterialEditorTopComponent extends CloneableTopComponent impl private final SaveCookie saveCookie = new SaveCookieImpl(); private boolean saveImmediate = true; private boolean updateProperties = false; - private final List materialListeners = new ArrayList(); + private final List materialListeners = new ArrayList<>(); public MaterialEditorTopComponent() { } diff --git a/jme3-materialeditor/src/com/jme3/gde/shadernodedefinition/wizard/SNDefVisualPanel2.form b/jme3-materialeditor/src/com/jme3/gde/shadernodedefinition/wizard/SNDefVisualPanel2.form index 1168da167..8c506afe8 100644 --- a/jme3-materialeditor/src/com/jme3/gde/shadernodedefinition/wizard/SNDefVisualPanel2.form +++ b/jme3-materialeditor/src/com/jme3/gde/shadernodedefinition/wizard/SNDefVisualPanel2.form @@ -51,12 +51,14 @@ + + + - diff --git a/jme3-materialeditor/src/com/jme3/gde/shadernodedefinition/wizard/SNDefVisualPanel2.java b/jme3-materialeditor/src/com/jme3/gde/shadernodedefinition/wizard/SNDefVisualPanel2.java index 6f8b42736..de1dbf58f 100644 --- a/jme3-materialeditor/src/com/jme3/gde/shadernodedefinition/wizard/SNDefVisualPanel2.java +++ b/jme3-materialeditor/src/com/jme3/gde/shadernodedefinition/wizard/SNDefVisualPanel2.java @@ -32,6 +32,8 @@ package com.jme3.gde.shadernodedefinition.wizard; import java.awt.EventQueue; +import javax.swing.DefaultCellEditor; +import javax.swing.JComboBox; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.event.ListSelectionEvent; @@ -40,9 +42,11 @@ @SuppressWarnings({"unchecked", "rawtypes"}) public final class SNDefVisualPanel2 extends JPanel { - - private final Object[] emptyObj = {"", "", ""}; + + private final Object[] emptyObj = {"float", "", ""}; private final String type; + private final String[] varTypes = new String[]{"bool", "int", "float", "vec2", + "vec3", "vec4", "sampler", "sampler2D", "sampler3D", "mat3", "mat4"}; /** * Creates new form SNDefVisualPanel2 @@ -51,7 +55,10 @@ public SNDefVisualPanel2(String type) { initComponents(); this.type = type; titleLabel.setText(type); - varTable.getColumnModel().getSelectionModel().addListSelectionListener(new ExploreSelectionListener()); + varTable.getColumnModel().getSelectionModel().addListSelectionListener( + new ExploreSelectionListener()); + varTable.getColumn("Type").setCellEditor(new DefaultCellEditor( + new JComboBox(varTypes))); } @Override @@ -107,7 +114,9 @@ public void run() { // Edit. if (varTable.isCellEditable(row, col)) { varTable.editCellAt(row, col); - ((JTextField) varTable.getEditorComponent()).selectAll(); + if(col != 0) { + ((JTextField) varTable.getEditorComponent()).selectAll(); + } varTable.getEditorComponent().requestFocusInWindow(); } } @@ -149,7 +158,6 @@ public Class getColumnClass(int columnIndex) { }); jScrollPane1.setViewportView(varTable); - jToolBar1.setFloatable(false); jToolBar1.setRollover(true); org.openide.awt.Mnemonics.setLocalizedText(titleLabel, org.openide.util.NbBundle.getMessage(SNDefVisualPanel2.class, "SNDefVisualPanel2.titleLabel.text")); // NOI18N From c7d25f085fc46a14804e08d07cee6dced265228d Mon Sep 17 00:00:00 2001 From: Toni Helenius Date: Tue, 11 Jul 2023 14:27:28 +0300 Subject: [PATCH 2/6] Open module to allow drag & drop in code editor --- nbproject/project.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nbproject/project.properties b/nbproject/project.properties index e5e8dde42..d9f61cb99 100644 --- a/nbproject/project.properties +++ b/nbproject/project.properties @@ -12,7 +12,7 @@ app.version=3.4.1-SNAPSHOT plugins.version=3.4.1 nbm.revision=2026 #command line args -run.args.extra=-J-Dsun.java2d.noddraw\=true -J--add-opens\=java.base/java.net\=ALL-UNNAMED -J--add-exports\=java.desktop/sun.awt\=ALL-UNNAMED -J--add-opens\=java.desktop/javax.swing.text\=ALL-UNNAMED -J--add-opens\=java.desktop/javax.swing\=ALL-UNNAMED -J--add-opens\=java.prefs/java.util.prefs\=ALL-UNNAMED -J--add-opens\=java.base/java.security\=ALL-UNNAMED -J--add-exports\=java.base/sun.reflect.annotation\=ALL-UNNAMED +run.args.extra=-J-Dsun.java2d.noddraw\=true -J--add-opens\=java.base/java.net\=ALL-UNNAMED -J--add-exports\=java.desktop/sun.awt\=ALL-UNNAMED -J--add-opens\=java.desktop/javax.swing.text\=ALL-UNNAMED -J--add-opens\=java.desktop/javax.swing\=ALL-UNNAMED -J--add-opens\=java.prefs/java.util.prefs\=ALL-UNNAMED -J--add-opens\=java.base/java.security\=ALL-UNNAMED -J--add-exports\=java.base/sun.reflect.annotation\=ALL-UNNAMED -J--add-opens\=java.desktop/javax.swing.plaf.basic\=ALL-UNNAMED auxiliary.org-netbeans-modules-apisupport-installer.license-file=license-jme.txt auxiliary.org-netbeans-modules-apisupport-installer.os-linux=true auxiliary.org-netbeans-modules-apisupport-installer.os-macosx=true From 088cb96b5b9f99418da0702e0b8fb08b28457911 Mon Sep 17 00:00:00 2001 From: Pete Whelpton Date: Tue, 18 Jul 2023 21:57:53 +0100 Subject: [PATCH 3/6] Make Scene Composer grid symmetrical --- .../jme3/gde/core/scene/controller/SceneToolController.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jme3-core/src/com/jme3/gde/core/scene/controller/SceneToolController.java b/jme3-core/src/com/jme3/gde/core/scene/controller/SceneToolController.java index 3d24325d5..4aae0ee7f 100644 --- a/jme3-core/src/com/jme3/gde/core/scene/controller/SceneToolController.java +++ b/jme3-core/src/com/jme3/gde/core/scene/controller/SceneToolController.java @@ -136,9 +136,9 @@ protected final void initTools() { //cursor.attachChild(cursorArrowZ); //grid - grid = new Geometry("grid", new Grid(20, 20, 1.0f)); + grid = new Geometry("grid", new Grid(21, 21, 1.0f)); grid.setMaterial(grayMat); - grid.setLocalTranslation(-10, 0, -10); + grid.center().move(Vector3f.ZERO); SceneApplication.getApplication().enqueue(new Callable() { @Override public Object call() throws Exception { From e6de08c3e30486205bf774f18c16f44c1fc0453c Mon Sep 17 00:00:00 2001 From: rickard Date: Thu, 10 Aug 2023 15:44:03 +0200 Subject: [PATCH 4/6] fixing Material Parameter strings --- .../dialog/AddMaterialParameterDialog.java | 1 - .../jme3/gde/materialdefinition/dialog/Bundle.properties | 6 ++++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/jme3-materialeditor/src/com/jme3/gde/materialdefinition/dialog/AddMaterialParameterDialog.java b/jme3-materialeditor/src/com/jme3/gde/materialdefinition/dialog/AddMaterialParameterDialog.java index a3b2c867d..e07837a98 100644 --- a/jme3-materialeditor/src/com/jme3/gde/materialdefinition/dialog/AddMaterialParameterDialog.java +++ b/jme3-materialeditor/src/com/jme3/gde/materialdefinition/dialog/AddMaterialParameterDialog.java @@ -31,7 +31,6 @@ */ package com.jme3.gde.materialdefinition.dialog; -import com.jme3.gde.core.editor.nodes.Diagram; import com.jme3.gde.materialdefinition.editor.ShaderNodeDiagram; import com.jme3.shader.VarType; import java.awt.Point; diff --git a/jme3-materialeditor/src/com/jme3/gde/materialdefinition/dialog/Bundle.properties b/jme3-materialeditor/src/com/jme3/gde/materialdefinition/dialog/Bundle.properties index 706982093..49f629f5f 100644 --- a/jme3-materialeditor/src/com/jme3/gde/materialdefinition/dialog/Bundle.properties +++ b/jme3-materialeditor/src/com/jme3/gde/materialdefinition/dialog/Bundle.properties @@ -5,13 +5,15 @@ AddMaterialParameterDialog.jLabel1.text=Parameter Type AddMaterialParameterDialog.title=Add Material Parameter AddMaterialParameterDialog.jButton1.text=Ok AddMaterialParameterDialog.jButton2.text=Cancel -AddWorldParameterDialog.title=Add Material Parameter +AddMaterialParameterDialog.okButton.text=Ok +AddMaterialParameterDialog.cancelButton.text=Cancel +AddWorldParameterDialog.title=Add World Parameter AddWorldParameterDialog.jButton1.text=Ok AddWorldParameterDialog.jButton2.text=Cancel AddWorldParameterDialog.jLabel1.text=Parameter Name AddAttributeDialog.jButton2.text=Cancel AddAttributeDialog.jLabel1.text=Attribute -AddAttributeDialog.title=Add Material Parameter +AddAttributeDialog.title=Add Attribute AddAttributeDialog.jButton1.text=Ok AddAttributeDialog.jLabel2.text=GLSL Type AddAttributeDialog.typeField.text= From 9e6164bdc9f0664262e98235ac02068498ed512a Mon Sep 17 00:00:00 2001 From: Toni Helenius Date: Wed, 6 Sep 2023 19:46:15 +0300 Subject: [PATCH 5/6] Latest JDK 17 --- jdks/download-jdks.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jdks/download-jdks.sh b/jdks/download-jdks.sh index 01cd0997e..2899fa3e5 100755 --- a/jdks/download-jdks.sh +++ b/jdks/download-jdks.sh @@ -11,8 +11,8 @@ set -e # Quit on Error jdk_major_version="17" -jdk_version="0.7" -jdk_build_version="7" +jdk_version="0.8.1" +jdk_build_version="1" platforms=( "x64_linux" "x86-32_windows" "x64_windows" "x64_mac" ) # DEPRECATED (not required anymore) From 2e5a808246615c2c4762324139a7a49cba1804c5 Mon Sep 17 00:00:00 2001 From: Toni Helenius Date: Wed, 6 Sep 2023 20:02:32 +0300 Subject: [PATCH 6/6] Netbeans 19 --- gradle.properties | 2 +- nbi/antlib/nbi-ant-tasks.jar | Bin 105616 -> 105616 bytes nbi/antlib/nbi-engine.jar | Bin 954915 -> 954915 bytes nbi/antlib/nbi-registries-management.jar | Bin 34845 -> 34845 bytes 4 files changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 1627e4033..25642b018 100644 --- a/gradle.properties +++ b/gradle.properties @@ -8,4 +8,4 @@ jmeVersionTag = stable #jmeVersionTagID = 0 # Path for downloading NetBeans Base -netbeansUrl = https://dlcdn.apache.org/netbeans/netbeans/18/netbeans-18-bin.zip +netbeansUrl = https://dlcdn.apache.org/netbeans/netbeans/19/netbeans-19-bin.zip diff --git a/nbi/antlib/nbi-ant-tasks.jar b/nbi/antlib/nbi-ant-tasks.jar index 09bf36a9208b91d85db30ae1983d9e81fa13fdae..d24c2b5212c9e6623a5942a121062ae66b3a0a53 100644 GIT binary patch delta 865 zcmYk3T}V@59LCRcJf6u|E6rk5F1?xsl_Nq79EtYDEZWsps8py$Mqfx6X3e0xww-x4 zUpK=>M0ODsO00omq(NX%UNr;zxQZ@x`{{lCvSf32Wu1=W2d zSfV&3sZ5gQ4tT;zw@;Zh_J)*VzAt#W|L~c+?uEbHFr@#UD!oRo)}wH;B#uVH8#ECr zOC`xzJD1~c)jy4^lOOMQSpAwF_9^T#{p7lp zWzVz45^7ab>n*qb`Mz>$g9~$3zJtYUGPU{lPOEP5L;praTNxdoXGsRNMKHHo|JKcL}yR$rusRwfl{kPl1e1$+`&itl3u^kWA62aV!hA$xc~55yY54v)HJ03o=Ux1uF|7$vm}lN!W%Ra z%HQl$2~ht$$gtCFHk%_XE)p&NFW?r{Ao zYInK=)uj1r{dQejD$8sW*)i3M|2!D*?J1Tdb8TLTzh3_|u1`L95FOGx6J7 zVTf}q*Wx01QjPdyR1rPWeasw6k%M`hbYf$L4n&u)`@ReUEw#QIsjZj2m z2wJvy7Q;r;Pt!H$CpN|H>4@GqI2AD+$8NgI5(twz6KEs7OrVuirQrzas)lyb7Y$vc za1#4T_mVhDDj&iDQqPd16&5L|J6*Cmjt-G|rHIrE#8gI^(#XGtM2MQJkQgA9eDr Iy^gd00H@SK;s5{u diff --git a/nbi/antlib/nbi-engine.jar b/nbi/antlib/nbi-engine.jar index c3b8487eb99bb722858c829684619d7d768f3254..ae246b5a7482ac57037d983764463c67c6af3619 100644 GIT binary patch delta 13750 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 delta 13750 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 CeN{OC delta 250 zcmbO`fobjpCcXe~W)?061`Y;>;^=K*6ZzCxia@mG6c#Z5q8x<&tPZ9p%P|^47{QF@ z5Jn%PHH2}N(G9{7XYvL!Hm5PEGecMtSxea=EG}MWs92ytUNJ<&;bwENt&{&X+d)Je zTJ#`{q86w%Yg-&4BA;5^Aq?AAh&7XYTEieB&sw7)4A-_C2xDtoE`*`h4z+7;djkMV C4_@B@