From ab3972dbae4c84a490f0eaae7617a63c6fd97e90 Mon Sep 17 00:00:00 2001 From: rickard Date: Tue, 18 Oct 2022 21:19:51 +0200 Subject: [PATCH 001/224] #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 9eea9d22e3c3716d389f120773cc766fc4a903d3 Mon Sep 17 00:00:00 2001 From: Pete Whelpton Date: Mon, 2 Jan 2023 20:33:43 +0000 Subject: [PATCH 002/224] Improve ProjectAssetManager's Gradle support --- .../gde/core/assets/ProjectAssetManager.java | 76 ++++++++++++++++--- .../UpdateProjectAssetManagerAfterBuild.java | 68 +++++++++++++++++ 2 files changed, 134 insertions(+), 10 deletions(-) create mode 100644 jme3-core/src/com/jme3/gde/core/assets/actions/UpdateProjectAssetManagerAfterBuild.java diff --git a/jme3-core/src/com/jme3/gde/core/assets/ProjectAssetManager.java b/jme3-core/src/com/jme3/gde/core/assets/ProjectAssetManager.java index c9e72a7dd..b34e9320e 100644 --- a/jme3-core/src/com/jme3/gde/core/assets/ProjectAssetManager.java +++ b/jme3-core/src/com/jme3/gde/core/assets/ProjectAssetManager.java @@ -37,6 +37,7 @@ import com.jme3.asset.DesktopAssetManager; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; +import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; @@ -45,9 +46,11 @@ import java.util.ArrayList; import java.util.Collections; import java.util.Enumeration; +import java.util.HashSet; import java.util.Iterator; import java.util.LinkedList; import java.util.List; +import java.util.Set; import java.util.logging.Level; import java.util.logging.Logger; import org.netbeans.api.java.classpath.ClassPath; @@ -57,6 +60,9 @@ import org.netbeans.api.project.ProjectUtils; import org.netbeans.api.project.SourceGroup; import org.netbeans.api.project.Sources; +import org.netbeans.modules.gradle.api.GradleBaseProject; +import org.netbeans.modules.gradle.java.api.GradleJavaProject; +import org.netbeans.modules.gradle.java.api.GradleJavaSourceSet; import org.openide.DialogDisplayer; import org.openide.NotifyDescriptor; import org.openide.filesystems.FileAttributeEvent; @@ -179,9 +185,49 @@ private void loadClassLoader() { } } } + + // Gradle + FileObject rootDir = FileUtil.toFileObject(GradleBaseProject.get(project).getRootDir()); + Set runtimeFiles = new HashSet<>(); + try { + Project rootPrj = ProjectManager.getDefault().findProject(rootDir); + GradleJavaProject rootGjp = GradleJavaProject.get(rootPrj); + for(GradleJavaSourceSet sourceSet : rootGjp.getSourceSets().values()) { + if(sourceSet.getName().equals("main")) { + runtimeFiles = sourceSet.getRuntimeClassPath(); + } + } + } catch (IOException ex) { + Exceptions.printStackTrace(ex); + } catch (IllegalArgumentException ex) { + Exceptions.printStackTrace(ex); + } + + for(File file : runtimeFiles) { + // logger.info(file.getName() + " : " + file.getAbsolutePath()); + FileObject fo = FileUtil.toFileObject(file); + if(fo != null && !fo.isFolder()) { + logger.info(fo.toURL().toExternalForm()); + if (!fo.equals(getAssetFolder())) { + fo.addRecursiveListener(listener); + logger.log(Level.INFO, "Add classpath:{0}", fo); + classPathItems.add(new ClassPathItem(fo, listener)); + urls.add(fo.toURL()); + } + if (fo.toURL().toExternalForm().startsWith("jar")) { + logger.log(Level.INFO, "Add Gradle locator:{0}", fo.toURL()); + jarItems.add(fo); + registerLocator(fo.toURL().toExternalForm(), + "com.jme3.asset.plugins.UrlLocator"); + } + } + + + } + loader = new URLClassLoader(urls.toArray(new URL[urls.size()]), getClass().getClassLoader()); addClassLoader(loader); - logger.log(Level.FINE, "Updated {0} classpath entries and {1} url locators for project {2}", new Object[]{classPathItems.size(), jarItems.size(), project.toString()}); + logger.log(Level.INFO, "Updated {0} classpath entries and {1} url locators for project {2}", new Object[]{classPathItems.size(), jarItems.size(), project.toString()}); } } FileChangeListener listener = new FileChangeListener() { @@ -225,7 +271,7 @@ public void propertyChange(PropertyChangeEvent evt) { } }; - private void updateClassLoader() { + public void updateClassLoader() { ProjectManager.mutex().postWriteRequest(new Runnable() { public void run() { synchronized (classPathItems) { @@ -478,16 +524,19 @@ private List collectDependenciesFilesWithSuffix(String suffix, List jarEntry = (Enumeration) jarFile.getChildren(true); - while (jarEntry.hasMoreElements()) { - FileObject jarEntryAsset = jarEntry.nextElement(); - if (jarEntryAsset.getExt().equalsIgnoreCase(suffix)) { - if (!jarEntryAsset.getPath().startsWith("/")) { - list.add(jarEntryAsset.getPath()); + if(FileUtil.isArchiveFile(jarFile)) { + FileObject jarFileRoot = FileUtil.getArchiveRoot(jarFile); + Enumeration jarEntry = (Enumeration) jarFileRoot.getChildren(true); + while (jarEntry.hasMoreElements()) { + FileObject jarEntryAsset = jarEntry.nextElement(); + if (jarEntryAsset.getExt().equalsIgnoreCase(suffix)) { + if (!jarEntryAsset.getPath().startsWith("/")) { + list.add(jarEntryAsset.getPath()); + } } } } + } return list; } @@ -502,7 +551,14 @@ public InputStream getResourceAsStream(String name) { ClassPathItem classPathItem = classPathItemsIter.next(); FileObject jarFile = classPathItem.object; - Enumeration jarEntry = (Enumeration) jarFile.getChildren(true); + Enumeration jarEntry; + if (FileUtil.isArchiveFile(jarFile)) { + FileObject jarFileRoot = FileUtil.getArchiveRoot(jarFile); + jarEntry = (Enumeration) jarFileRoot.getChildren(true); + } else { + jarEntry = (Enumeration) jarFile.getChildren(true); + } + while (jarEntry.hasMoreElements()) { FileObject jarEntryAsset = jarEntry.nextElement(); if (jarEntryAsset.getPath().equalsIgnoreCase(name)) { diff --git a/jme3-core/src/com/jme3/gde/core/assets/actions/UpdateProjectAssetManagerAfterBuild.java b/jme3-core/src/com/jme3/gde/core/assets/actions/UpdateProjectAssetManagerAfterBuild.java new file mode 100644 index 000000000..b4381fd02 --- /dev/null +++ b/jme3-core/src/com/jme3/gde/core/assets/actions/UpdateProjectAssetManagerAfterBuild.java @@ -0,0 +1,68 @@ +/* + * Copyright (c) 2009-2023 jMonkeyEngine + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of 'jMonkeyEngine' nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package com.jme3.gde.core.assets.actions; + +import com.jme3.gde.core.assets.ProjectAssetManager; +import java.io.PrintWriter; +import org.netbeans.api.project.Project; +import org.netbeans.modules.gradle.api.NbGradleProject; +import org.netbeans.modules.gradle.spi.actions.AfterBuildActionHook; +import org.netbeans.spi.project.ProjectServiceProvider; +import org.openide.util.Lookup; + +/** + * Hook that fires after a Gradle JME project has been build and requests + * the ProjectAssetManager to update its ClassLoader (e.g. in case new + * dependencies have been added) + * + * @author peedeeboy + */ +@ProjectServiceProvider(service = AfterBuildActionHook.class, projectType = NbGradleProject.GRADLE_PROJECT_TYPE) +public class UpdateProjectAssetManagerAfterBuild implements AfterBuildActionHook { + + final Project project; + + public UpdateProjectAssetManagerAfterBuild(Project project) { + this.project = project; + } + + @Override + public void afterAction(String string, Lookup lkp, int i, PrintWriter writer) { + ProjectAssetManager projectAssetManager = project + .getLookup() + .lookup(ProjectAssetManager.class); + if (projectAssetManager != null) { + projectAssetManager.updateClassLoader(); + } + } + +} From 322969690d3883224d05bd1bd60c39d50306393a Mon Sep 17 00:00:00 2001 From: Pete Whelpton Date: Fri, 6 Jan 2023 00:50:16 +0000 Subject: [PATCH 003/224] Set FlatLaf Dark as deafult Look and Feel --- jme3-dark-laf/nbproject/project.xml | 6 +++ .../netbeans/plaf/darkmonkey/Installer.java | 46 +++++++------------ .../src/com/jme3/gde/welcome/GradPanel.java | 17 +++++-- 3 files changed, 36 insertions(+), 33 deletions(-) diff --git a/jme3-dark-laf/nbproject/project.xml b/jme3-dark-laf/nbproject/project.xml index 4c30149f4..37ddd552c 100644 --- a/jme3-dark-laf/nbproject/project.xml +++ b/jme3-dark-laf/nbproject/project.xml @@ -15,6 +15,12 @@ + + org.netbeans.swing.laf.flatlaf + + 1.11 + + org.netbeans.swing.plaf diff --git a/jme3-dark-laf/src/org/jme3/netbeans/plaf/darkmonkey/Installer.java b/jme3-dark-laf/src/org/jme3/netbeans/plaf/darkmonkey/Installer.java index 7ba0a785c..e25cd49a6 100644 --- a/jme3-dark-laf/src/org/jme3/netbeans/plaf/darkmonkey/Installer.java +++ b/jme3-dark-laf/src/org/jme3/netbeans/plaf/darkmonkey/Installer.java @@ -14,12 +14,13 @@ public class Installer extends ModuleInstall { @Override public void restored() { + DarkMonkeyLookAndFeel darkMonkeyLaf = new DarkMonkeyLookAndFeel(); UIManager.installLookAndFeel(new UIManager.LookAndFeelInfo( - new DarkMonkeyLookAndFeel().getName(), + darkMonkeyLaf.getName(), DarkMonkeyLookAndFeel.class.getName())); - // TODO - - String[] fontsToLoad = { + UIManager.put("Nb.DarkMonkeyLFCustoms", new DarkMonkeyLFCustoms(darkMonkeyLaf)); + + String[] fontsToLoad = { "fonts/DejaVuSans.ttf", "fonts/DejaVuSans-Bold.ttf", "fonts/DejaVuSans-Oblique.ttf", @@ -34,32 +35,19 @@ public void restored() { "fonts/DejaVuSansMono-BoldOblique.ttf" }; DMUtils.loadFontsFromJar(this, fontsToLoad); - } - - static { - // Set DarkMonkey as the default LaF (Note: This code could also be placed inside the DarkMonkey LaF, so it'll be executed ) - try { - if (NbPreferences.root().nodeExists("laf")) { - String LaF = NbPreferences.root().node("laf").get("laf", null); - if (LaF == null) { /* Did the user already set a LaF? */ - NbPreferences.root().node("laf").put("laf", "org.jme3.netbeans.plaf.darkmonkey.DarkMonkeyLookAndFeel"); // Set DarkMonkey as default LaF - // TODO: Make this more generic and code independant. Read some other properties file - - /* The laf file is parsed before this code is executed so we set the LaF once programatically */ - UIManager.setLookAndFeel("org.jme3.netbeans.plaf.darkmonkey.DarkMonkeyLookAndFeel"); - - /* Calling Netbeans Internal API, unfortunately there is no way around that, apart from manually fiddling with the config/.nbattrs file, - which would need some parsing and a restart to take effect: - Also see http://www.netbeans.org/dtds/attributes-1_0.dtd - */ - EditorSettings setting = org.netbeans.modules.editor.settings.storage.api.EditorSettings.getDefault(); - setting.setCurrentFontColorProfile("Dark Monkey"); - } - } - - UIManager.put("Nb.DarkMonkeyLFCustoms", new DarkMonkeyLFCustoms((DarkMonkeyLookAndFeel)UIManager.getLookAndFeel())); - } catch (Exception e) {} + EditorSettings setting = org.netbeans.modules.editor.settings.storage.api.EditorSettings.getDefault(); + setting.setCurrentFontColorProfile("Dark Monkey"); + } + + @Override + public void validate() throws IllegalStateException { + + String LaF = NbPreferences.root().node("laf").get("laf", null); + if (LaF == null) { + /* Did the user already set a LaF? */ + NbPreferences.root().node("laf").put("laf", "com.formdev.flatlaf.FlatDarkLaf"); // Set Flatlaf Dark as default LaF + } } } diff --git a/jme3-welcome-screen/src/com/jme3/gde/welcome/GradPanel.java b/jme3-welcome-screen/src/com/jme3/gde/welcome/GradPanel.java index 1c37c6d35..96a19659a 100644 --- a/jme3-welcome-screen/src/com/jme3/gde/welcome/GradPanel.java +++ b/jme3-welcome-screen/src/com/jme3/gde/welcome/GradPanel.java @@ -5,6 +5,7 @@ import java.awt.Graphics; import java.awt.Graphics2D; import javax.swing.JPanel; +import javax.swing.UIManager; /** * @@ -18,10 +19,18 @@ protected void paintComponent(Graphics grphcs) { int w = getWidth(); int h = getHeight(); Graphics2D g2d = (Graphics2D) grphcs; - GradientPaint gp = new GradientPaint( - 0, 0, Color.WHITE, - 0, h, Color.LIGHT_GRAY); - + + GradientPaint gp; + if (UIManager.getBoolean("nb.dark.theme")) { + gp = new GradientPaint( + 0, 0, Color.DARK_GRAY, + 0, h, Color.GRAY); + } else { + gp = new GradientPaint( + 0, 0, Color.WHITE, + 0, h, Color.LIGHT_GRAY); + } + g2d.setPaint(gp); g2d.fillRect(0, 0, w, h); } From 5768ed42921887ba85a41d337cb9ef530699148f Mon Sep 17 00:00:00 2001 From: Pete Whelpton Date: Sun, 15 Jan 2023 16:31:40 +0000 Subject: [PATCH 004/224] Fix bug breaking Ant projects --- .../gde/core/assets/ProjectAssetManager.java | 29 ++++++++++--------- .../UpdateProjectAssetManagerAfterBuild.java | 2 +- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/jme3-core/src/com/jme3/gde/core/assets/ProjectAssetManager.java b/jme3-core/src/com/jme3/gde/core/assets/ProjectAssetManager.java index b34e9320e..0c358cca4 100644 --- a/jme3-core/src/com/jme3/gde/core/assets/ProjectAssetManager.java +++ b/jme3-core/src/com/jme3/gde/core/assets/ProjectAssetManager.java @@ -210,12 +210,12 @@ private void loadClassLoader() { logger.info(fo.toURL().toExternalForm()); if (!fo.equals(getAssetFolder())) { fo.addRecursiveListener(listener); - logger.log(Level.INFO, "Add classpath:{0}", fo); + logger.log(Level.FINE, "Add classpath:{0}", fo); classPathItems.add(new ClassPathItem(fo, listener)); urls.add(fo.toURL()); } if (fo.toURL().toExternalForm().startsWith("jar")) { - logger.log(Level.INFO, "Add Gradle locator:{0}", fo.toURL()); + logger.log(Level.FINE, "Add Gradle locator:{0}", fo.toURL()); jarItems.add(fo); registerLocator(fo.toURL().toExternalForm(), "com.jme3.asset.plugins.UrlLocator"); @@ -227,7 +227,7 @@ private void loadClassLoader() { loader = new URLClassLoader(urls.toArray(new URL[urls.size()]), getClass().getClassLoader()); addClassLoader(loader); - logger.log(Level.INFO, "Updated {0} classpath entries and {1} url locators for project {2}", new Object[]{classPathItems.size(), jarItems.size(), project.toString()}); + logger.log(Level.FINE, "Updated {0} classpath entries and {1} url locators for project {2}", new Object[]{classPathItems.size(), jarItems.size(), project.toString()}); } } FileChangeListener listener = new FileChangeListener() { @@ -524,19 +524,22 @@ private List collectDependenciesFilesWithSuffix(String suffix, List jarEntry = (Enumeration) jarFileRoot.getChildren(true); - while (jarEntry.hasMoreElements()) { - FileObject jarEntryAsset = jarEntry.nextElement(); - if (jarEntryAsset.getExt().equalsIgnoreCase(suffix)) { - if (!jarEntryAsset.getPath().startsWith("/")) { - list.add(jarEntryAsset.getPath()); - } + + // Gradle projects don't know that the dependency is a Jar file + if (FileUtil.isArchiveFile(jarFile)) { + jarFile = FileUtil.getArchiveRoot(jarFile); + } + + Enumeration jarEntry = (Enumeration) jarFile.getChildren(true); + while (jarEntry.hasMoreElements()) { + FileObject jarEntryAsset = jarEntry.nextElement(); + if (jarEntryAsset.getExt().equalsIgnoreCase(suffix)) { + if (!jarEntryAsset.getPath().startsWith("/")) { + list.add(jarEntryAsset.getPath()); } } } - + } return list; } diff --git a/jme3-core/src/com/jme3/gde/core/assets/actions/UpdateProjectAssetManagerAfterBuild.java b/jme3-core/src/com/jme3/gde/core/assets/actions/UpdateProjectAssetManagerAfterBuild.java index b4381fd02..9dd8ade0d 100644 --- a/jme3-core/src/com/jme3/gde/core/assets/actions/UpdateProjectAssetManagerAfterBuild.java +++ b/jme3-core/src/com/jme3/gde/core/assets/actions/UpdateProjectAssetManagerAfterBuild.java @@ -40,7 +40,7 @@ import org.openide.util.Lookup; /** - * Hook that fires after a Gradle JME project has been build and requests + * Hook that fires after a Gradle JME project has been built and requests * the ProjectAssetManager to update its ClassLoader (e.g. in case new * dependencies have been added) * From 164711910b2f1ab337a7eea9885ad8eaffa3180a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rickard=20Ed=C3=A9n?= Date: Fri, 20 Jan 2023 19:27:57 +0100 Subject: [PATCH 005/224] Material Editor overhaul (#389) * icons and some ui tweaks for material editor * some layout changes to Material Editor * tweaked appearance of icons and components * fixing branch.. * reverting genfiles.properties * used two column grid for options. resized panels to fit. * fixing a bunch of aesthetic issues with the widgets. should be few options cut off, and boxes same size,etc --- .../gde/materials/multiview/Bundle.properties | 13 +- .../multiview/MaterialEditorTopComponent.form | 508 ++++++++++-------- .../multiview/MaterialEditorTopComponent.java | 191 ++++--- .../multiview/widgets/BooleanPanel.form | 38 +- .../multiview/widgets/BooleanPanel.java | 25 +- .../multiview/widgets/Bundle.properties | 21 +- .../multiview/widgets/ColorPanel.form | 84 ++- .../multiview/widgets/ColorPanel.java | 175 +++--- .../multiview/widgets/FloatPanel.form | 51 +- .../multiview/widgets/FloatPanel.java | 34 +- .../materials/multiview/widgets/IntPanel.form | 47 +- .../materials/multiview/widgets/IntPanel.java | 33 +- .../widgets/MaterialPreviewWidget.form | 135 +++-- .../widgets/MaterialPreviewWidget.java | 90 ++-- .../multiview/widgets/TexturePanel.form | 57 +- .../multiview/widgets/TexturePanel.java | 84 ++- .../multiview/widgets/icons/Icons.java | 45 ++ .../materials/multiview/widgets/icons/box.png | Bin 3409 -> 0 bytes .../multiview/widgets/icons/color_wheel.png | Bin 850 -> 0 bytes .../multiview/widgets/icons/cube-on.svg | 63 +++ .../multiview/widgets/icons/cube.svg | 63 +++ .../widgets/icons/light-bulb-off.svg | 1 + .../multiview/widgets/icons/light-bulb-on.svg | 1 + .../multiview/widgets/icons/picture_add.png | Bin 692 -> 0 bytes .../widgets/icons/picture_delete.png | Bin 630 -> 0 bytes .../multiview/widgets/icons/plane-on.svg | 66 +++ .../multiview/widgets/icons/plane.png | Bin 2973 -> 0 bytes .../multiview/widgets/icons/plane.svg | 66 +++ .../widgets/icons/remove_texture.svg | 1 + .../multiview/widgets/icons/sphere-on.svg | 71 +++ .../multiview/widgets/icons/sphere.png | Bin 3247 -> 0 bytes .../multiview/widgets/icons/sphere.svg | 77 +++ 32 files changed, 1320 insertions(+), 720 deletions(-) create mode 100644 jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/icons/Icons.java delete mode 100644 jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/icons/box.png delete mode 100644 jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/icons/color_wheel.png create mode 100644 jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/icons/cube-on.svg create mode 100644 jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/icons/cube.svg create mode 100644 jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/icons/light-bulb-off.svg create mode 100644 jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/icons/light-bulb-on.svg delete mode 100644 jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/icons/picture_add.png delete mode 100644 jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/icons/picture_delete.png create mode 100644 jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/icons/plane-on.svg delete mode 100644 jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/icons/plane.png create mode 100644 jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/icons/plane.svg create mode 100644 jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/icons/remove_texture.svg create mode 100644 jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/icons/sphere-on.svg delete mode 100644 jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/icons/sphere.png create mode 100644 jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/icons/sphere.svg diff --git a/jme3-materialeditor/src/com/jme3/gde/materials/multiview/Bundle.properties b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/Bundle.properties index 76b21c7e5..a503d2b06 100644 --- a/jme3-materialeditor/src/com/jme3/gde/materials/multiview/Bundle.properties +++ b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/Bundle.properties @@ -1,13 +1,14 @@ CTL_MaterialEditorAction=MaterialEditor CTL_MaterialEditorTopComponent=MaterialEditor Window HINT_MaterialEditorTopComponent=This is a MaterialEditor window -MaterialEditorTopComponent.jLabel1.text=Material Definition MaterialEditorTopComponent.jScrollPane1.TabConstraints.tabTitle=Source MaterialEditorTopComponent.jScrollPane2.TabConstraints.tabTitle=Properties -MaterialEditorTopComponent.jPanel4.TabConstraints.tabTitle=Editor -MaterialEditorTopComponent.jLabel3.text=Name +MaterialEditorTopComponent.jScrollPane10.TabConstraints.tabTitle=Additional RenderState +MaterialEditorTopComponent.jCheckBox1.text=save immediately MaterialEditorTopComponent.jTextField1.text=jTextField1 -MaterialEditorTopComponent.jScrollPane3.TabConstraints.tabTitle=Textures & Colors -MaterialEditorTopComponent.jScrollPane9.TabConstraints.tabTitle=Additional RenderState +MaterialEditorTopComponent.jLabel3.text=Name +MaterialEditorTopComponent.jLabel1.text=Material Definition MaterialEditorTopComponent.jScrollPane2.TabConstraints.tabTitle_1=Options -MaterialEditorTopComponent.jCheckBox1.text=save immediately +MaterialEditorTopComponent.jScrollPane3.TabConstraints.tabTitle=Textures & Colors +MaterialEditorTopComponent.editorPanel.TabConstraints.tabTitle=Editor +MaterialEditorTopComponent.jScrollPane4.TabConstraints.tabTitle=Editor diff --git a/jme3-materialeditor/src/com/jme3/gde/materials/multiview/MaterialEditorTopComponent.form b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/MaterialEditorTopComponent.form index cc62fa4d8..527285ccf 100644 --- a/jme3-materialeditor/src/com/jme3/gde/materials/multiview/MaterialEditorTopComponent.form +++ b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/MaterialEditorTopComponent.form @@ -33,18 +33,19 @@ - + - + + @@ -55,7 +56,7 @@ - + @@ -65,273 +66,354 @@ - + - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - + + - + - - - + - + + + + - - - - - - - - - - + - + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + - + - - + + + + + - - - - - - - - - - + - + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + - - - - - - - + - - - - - - + - - - - - - - - - - + - + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - + - - - + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - + + + - + - - - - - - - - - - - + + + - - + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - 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..d40807089 100644 --- a/jme3-materialeditor/src/com/jme3/gde/materials/multiview/MaterialEditorTopComponent.java +++ b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/MaterialEditorTopComponent.java @@ -22,10 +22,13 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; +import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.List; +import java.util.Map; import java.util.Map.Entry; import java.util.logging.Logger; +import java.util.stream.Collectors; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; import org.openide.loaders.DataObjectNotFoundException; @@ -111,25 +114,27 @@ private void initComponents() { jPanel2 = new javax.swing.JPanel(); jTabbedPane1 = new javax.swing.JTabbedPane(); - jPanel4 = new javax.swing.JPanel(); - jTabbedPane2 = new javax.swing.JTabbedPane(); + jScrollPane4 = new javax.swing.JScrollPane(); + editorPanel = new javax.swing.JPanel(); + texturesAndColorsPane = new javax.swing.JTabbedPane(); jScrollPane3 = new javax.swing.JScrollPane(); texturePanel = new javax.swing.JPanel(); - jScrollPane9 = new javax.swing.JScrollPane(); - statesPanel = new javax.swing.JPanel(); jTabbedPane3 = new javax.swing.JTabbedPane(); jScrollPane2 = new javax.swing.JScrollPane(); optionsPanel = new javax.swing.JPanel(); jToolBar2 = new javax.swing.JToolBar(); - jLabel1 = new javax.swing.JLabel(); jPanel3 = new javax.swing.JPanel(); + jLabel1 = new javax.swing.JLabel(); jComboBox1 = new javax.swing.JComboBox(); jToolBar3 = new javax.swing.JToolBar(); - jLabel3 = new javax.swing.JLabel(); jPanel1 = new javax.swing.JPanel(); + jLabel3 = new javax.swing.JLabel(); jTextField1 = new javax.swing.JTextField(); jCheckBox1 = new javax.swing.JCheckBox(); materialPreviewWidget1 = new com.jme3.gde.materials.multiview.widgets.MaterialPreviewWidget(); + additionalRenderStatePane = new javax.swing.JTabbedPane(); + jScrollPane10 = new javax.swing.JScrollPane(); + statesPanel = new javax.swing.JPanel(); jScrollPane1 = new javax.swing.JScrollPane(); jTextArea1 = new javax.swing.JTextArea(); @@ -144,10 +149,17 @@ private void initComponents() { .addGap(0, 100, Short.MAX_VALUE) ); + jTabbedPane1.setTabLayoutPolicy(javax.swing.JTabbedPane.SCROLL_TAB_LAYOUT); jTabbedPane1.setMinimumSize(new java.awt.Dimension(0, 0)); jTabbedPane1.setPreferredSize(new java.awt.Dimension(0, 0)); - jPanel4.setPreferredSize(new java.awt.Dimension(0, 0)); + jScrollPane4.setPreferredSize(new java.awt.Dimension(0, 0)); + + editorPanel.setPreferredSize(new java.awt.Dimension(0, 0)); + + texturesAndColorsPane.setTabLayoutPolicy(javax.swing.JTabbedPane.SCROLL_TAB_LAYOUT); + texturesAndColorsPane.setMinimumSize(new java.awt.Dimension(150, 31)); + texturesAndColorsPane.setPreferredSize(new java.awt.Dimension(480, 355)); jScrollPane3.setBorder(null); jScrollPane3.setMinimumSize(new java.awt.Dimension(0, 0)); @@ -155,19 +167,15 @@ private void initComponents() { texturePanel.setLayout(new javax.swing.BoxLayout(texturePanel, javax.swing.BoxLayout.PAGE_AXIS)); jScrollPane3.setViewportView(texturePanel); - jTabbedPane2.addTab(org.openide.util.NbBundle.getMessage(MaterialEditorTopComponent.class, "MaterialEditorTopComponent.jScrollPane3.TabConstraints.tabTitle"), jScrollPane3); // NOI18N - - jScrollPane9.setBorder(null); - - statesPanel.setLayout(new javax.swing.BoxLayout(statesPanel, javax.swing.BoxLayout.PAGE_AXIS)); - jScrollPane9.setViewportView(statesPanel); + texturesAndColorsPane.addTab(org.openide.util.NbBundle.getMessage(MaterialEditorTopComponent.class, "MaterialEditorTopComponent.jScrollPane3.TabConstraints.tabTitle"), jScrollPane3); // NOI18N - jTabbedPane2.addTab(org.openide.util.NbBundle.getMessage(MaterialEditorTopComponent.class, "MaterialEditorTopComponent.jScrollPane9.TabConstraints.tabTitle"), jScrollPane9); // NOI18N + jTabbedPane3.setMinimumSize(new java.awt.Dimension(380, 355)); + jTabbedPane3.setPreferredSize(new java.awt.Dimension(500, 355)); jScrollPane2.setBorder(null); jScrollPane2.setMinimumSize(new java.awt.Dimension(220, 0)); - optionsPanel.setLayout(new javax.swing.BoxLayout(optionsPanel, javax.swing.BoxLayout.PAGE_AXIS)); + optionsPanel.setLayout(new java.awt.GridLayout(0, 2)); jScrollPane2.setViewportView(optionsPanel); jTabbedPane3.addTab(org.openide.util.NbBundle.getMessage(MaterialEditorTopComponent.class, "MaterialEditorTopComponent.jScrollPane2.TabConstraints.tabTitle_1"), jScrollPane2); // NOI18N @@ -175,18 +183,24 @@ private void initComponents() { jToolBar2.setFloatable(false); jToolBar2.setRollover(true); + jPanel3.setPreferredSize(new java.awt.Dimension(0, 21)); + org.openide.awt.Mnemonics.setLocalizedText(jLabel1, org.openide.util.NbBundle.getMessage(MaterialEditorTopComponent.class, "MaterialEditorTopComponent.jLabel1.text")); // NOI18N - jToolBar2.add(jLabel1); javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3); jPanel3.setLayout(jPanel3Layout); jPanel3Layout.setHorizontalGroup( jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 131, Short.MAX_VALUE) + .addGroup(jPanel3Layout.createSequentialGroup() + .addContainerGap() + .addComponent(jLabel1) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); jPanel3Layout.setVerticalGroup( jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 21, Short.MAX_VALUE) + .addGroup(jPanel3Layout.createSequentialGroup() + .addComponent(jLabel1) + .addGap(0, 4, Short.MAX_VALUE)) ); jToolBar2.add(jPanel3); @@ -194,28 +208,34 @@ private void initComponents() { jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(new String[] { " ", "Common/MatDefs/Misc/SolidColor.j3md", "Common/MatDefs/Misc/VertexColor.j3md", "Common/MatDefs/Misc/SimpleTextured.j3md", "Common/MatDefs/Misc/ColoredTextured.j3md", "Common/MatDefs/Misc/Particle.j3md", "Common/MatDefs/Misc/Sky.j3md", "Common/MatDefs/Gui/Gui.j3md", "Common/MatDefs/Light/Lighting.j3md", "Common/MatDefs/Light/Reflection.j3md", "Common/MatDefs/Misc/ShowNormals.j3md", "Common/MatDefs/Hdr/LogLum.j3md", "Common/MatDefs/Hdr/ToneMap.j3md", "Common/MatDefs/Shadow/PreShadow.j3md", "Common/MatDefs/Shadow/PostShadow.j3md" })); jComboBox1.setMaximumSize(new java.awt.Dimension(32767, 27)); jComboBox1.setMinimumSize(new java.awt.Dimension(256, 27)); + jComboBox1.setPreferredSize(new java.awt.Dimension(390, 23)); jComboBox1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jComboBox1ActionPerformed(evt); } }); jToolBar2.add(jComboBox1); - jToolBar3.setFloatable(false); jToolBar3.setRollover(true); + jPanel1.setPreferredSize(new java.awt.Dimension(140, 21)); + org.openide.awt.Mnemonics.setLocalizedText(jLabel3, org.openide.util.NbBundle.getMessage(MaterialEditorTopComponent.class, "MaterialEditorTopComponent.jLabel3.text")); // NOI18N - jToolBar3.add(jLabel3); javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); jPanel1.setLayout(jPanel1Layout); jPanel1Layout.setHorizontalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 100, Short.MAX_VALUE) + .addGroup(jPanel1Layout.createSequentialGroup() + .addContainerGap() + .addComponent(jLabel3) + .addContainerGap(100, Short.MAX_VALUE)) ); jPanel1Layout.setVerticalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 21, Short.MAX_VALUE) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup() + .addGap(0, 4, Short.MAX_VALUE) + .addComponent(jLabel3)) ); jToolBar3.add(jPanel1); @@ -236,43 +256,61 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { } }); - javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4); - jPanel4.setLayout(jPanel4Layout); - jPanel4Layout.setHorizontalGroup( - jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel4Layout.createSequentialGroup() - .addComponent(materialPreviewWidget1, javax.swing.GroupLayout.PREFERRED_SIZE, 120, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(32, 32, 32) - .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jToolBar3, javax.swing.GroupLayout.DEFAULT_SIZE, 596, Short.MAX_VALUE) - .addComponent(jToolBar2, javax.swing.GroupLayout.DEFAULT_SIZE, 596, Short.MAX_VALUE) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel4Layout.createSequentialGroup() - .addComponent(jCheckBox1) - .addContainerGap()))) - .addGroup(jPanel4Layout.createSequentialGroup() - .addComponent(jTabbedPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 223, javax.swing.GroupLayout.PREFERRED_SIZE) + additionalRenderStatePane.setMinimumSize(new java.awt.Dimension(150, 100)); + additionalRenderStatePane.setPreferredSize(new java.awt.Dimension(380, 355)); + + jScrollPane10.setBorder(null); + + statesPanel.setLayout(new javax.swing.BoxLayout(statesPanel, javax.swing.BoxLayout.PAGE_AXIS)); + jScrollPane10.setViewportView(statesPanel); + + additionalRenderStatePane.addTab(org.openide.util.NbBundle.getMessage(MaterialEditorTopComponent.class, "MaterialEditorTopComponent.jScrollPane10.TabConstraints.tabTitle"), jScrollPane10); // NOI18N + + javax.swing.GroupLayout editorPanelLayout = new javax.swing.GroupLayout(editorPanel); + editorPanel.setLayout(editorPanelLayout); + editorPanelLayout.setHorizontalGroup( + editorPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(editorPanelLayout.createSequentialGroup() + .addGroup(editorPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(materialPreviewWidget1, javax.swing.GroupLayout.PREFERRED_SIZE, 255, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jTabbedPane3, javax.swing.GroupLayout.DEFAULT_SIZE, 477, Short.MAX_VALUE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(jTabbedPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 525, Short.MAX_VALUE)) + .addGroup(editorPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(editorPanelLayout.createSequentialGroup() + .addComponent(texturesAndColorsPane, javax.swing.GroupLayout.PREFERRED_SIZE, 496, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(additionalRenderStatePane, javax.swing.GroupLayout.DEFAULT_SIZE, 352, Short.MAX_VALUE) + .addContainerGap(12, Short.MAX_VALUE)) + .addGroup(editorPanelLayout.createSequentialGroup() + .addGroup(editorPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jToolBar3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(jToolBar2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(jCheckBox1, javax.swing.GroupLayout.PREFERRED_SIZE, 148, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(39, 39, 39)))) ); - jPanel4Layout.setVerticalGroup( - jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(jPanel4Layout.createSequentialGroup() - .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(jPanel4Layout.createSequentialGroup() + editorPanelLayout.setVerticalGroup( + editorPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(editorPanelLayout.createSequentialGroup() + .addGroup(editorPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(editorPanelLayout.createSequentialGroup() .addContainerGap() - .addComponent(jToolBar3, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGroup(editorPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addComponent(jToolBar3, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jCheckBox1)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(jToolBar2, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(23, 23, 23) - .addComponent(jCheckBox1)) - .addComponent(materialPreviewWidget1, javax.swing.GroupLayout.PREFERRED_SIZE, 152, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(jToolBar2, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(materialPreviewWidget1, javax.swing.GroupLayout.PREFERRED_SIZE, 225, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(jTabbedPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 320, Short.MAX_VALUE) - .addComponent(jTabbedPane3, javax.swing.GroupLayout.DEFAULT_SIZE, 326, Short.MAX_VALUE))) + .addGroup(editorPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jTabbedPane3, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(texturesAndColorsPane, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(additionalRenderStatePane, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))) ); - jTabbedPane1.addTab(org.openide.util.NbBundle.getMessage(MaterialEditorTopComponent.class, "MaterialEditorTopComponent.jPanel4.TabConstraints.tabTitle"), jPanel4); // NOI18N + jScrollPane4.setViewportView(editorPanel); + + jTabbedPane1.addTab(org.openide.util.NbBundle.getMessage(MaterialEditorTopComponent.class, "MaterialEditorTopComponent.jScrollPane4.TabConstraints.tabTitle"), jScrollPane4); // NOI18N jTextArea1.setColumns(20); jTextArea1.setRows(5); @@ -284,35 +322,38 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jTabbedPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 769, Short.MAX_VALUE) + .addComponent(jTabbedPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 1351, Short.MAX_VALUE) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jTabbedPane1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 524, Short.MAX_VALUE) + .addComponent(jTabbedPane1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 619, Short.MAX_VALUE) ); }// //GEN-END:initComponents - private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jComboBox1ActionPerformed + private void jCheckBox1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckBox1ActionPerformed + saveImmediate = jCheckBox1.isSelected(); + }//GEN-LAST:event_jCheckBox1ActionPerformed + + private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextField1ActionPerformed if (materialFile != null) { - updateProperties = true; - materialFile.setMatDefName((String) jComboBox1.getSelectedItem()); + materialFile.setName(jTextField1.getText()); String string = materialFile.getUpdatedContent(); jTextArea1.setText(string); } - }//GEN-LAST:event_jComboBox1ActionPerformed + }//GEN-LAST:event_jTextField1ActionPerformed - private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextField1ActionPerformed + private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jComboBox1ActionPerformed if (materialFile != null) { - materialFile.setName(jTextField1.getText()); + updateProperties = true; + materialFile.setMatDefName((String) jComboBox1.getSelectedItem()); String string = materialFile.getUpdatedContent(); jTextArea1.setText(string); } -}//GEN-LAST:event_jTextField1ActionPerformed + }//GEN-LAST:event_jComboBox1ActionPerformed - private void jCheckBox1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckBox1ActionPerformed - saveImmediate = jCheckBox1.isSelected(); - }//GEN-LAST:event_jCheckBox1ActionPerformed // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JTabbedPane additionalRenderStatePane; + private javax.swing.JPanel editorPanel; private javax.swing.JCheckBox jCheckBox1; private javax.swing.JComboBox jComboBox1; private javax.swing.JLabel jLabel1; @@ -320,13 +361,12 @@ private void jCheckBox1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FI private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2; private javax.swing.JPanel jPanel3; - private javax.swing.JPanel jPanel4; private javax.swing.JScrollPane jScrollPane1; + private javax.swing.JScrollPane jScrollPane10; private javax.swing.JScrollPane jScrollPane2; private javax.swing.JScrollPane jScrollPane3; - private javax.swing.JScrollPane jScrollPane9; + private javax.swing.JScrollPane jScrollPane4; private javax.swing.JTabbedPane jTabbedPane1; - private javax.swing.JTabbedPane jTabbedPane2; private javax.swing.JTabbedPane jTabbedPane3; private javax.swing.JTextArea jTextArea1; private javax.swing.JTextField jTextField1; @@ -336,6 +376,7 @@ private void jCheckBox1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FI private javax.swing.JPanel optionsPanel; private javax.swing.JPanel statesPanel; private javax.swing.JPanel texturePanel; + private javax.swing.JTabbedPane texturesAndColorsPane; // End of variables declaration//GEN-END:variables /** @@ -550,12 +591,16 @@ private void updateProperties() { } optionsPanel.removeAll(); texturePanel.removeAll(); - List optionList = new LinkedList(); - List colorList = new LinkedList(); - List valueList = new LinkedList(); - List textureList = new LinkedList(); - List otherList = new LinkedList(); - for (Entry entry : materialFile.getParameterMap().entrySet()) { + List optionList = new LinkedList<>(); + List colorList = new LinkedList<>(); + List valueList = new LinkedList<>(); + List textureList = new LinkedList<>(); + List otherList = new LinkedList<>(); + Map sorted = materialFile.getParameterMap().entrySet().stream() + .sorted(Map.Entry.comparingByKey()) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, + (oldValue, newValue) -> oldValue, LinkedHashMap::new)); + for (Entry entry : sorted.entrySet()) { MaterialPropertyWidget widget = WidgetFactory.getWidget(entry.getValue(), manager); widget.registerChangeListener(this); if ("Boolean".equals(entry.getValue().getType())) { diff --git a/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/BooleanPanel.form b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/BooleanPanel.form index c1c9469f5..300ce3dd4 100644 --- a/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/BooleanPanel.form +++ b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/BooleanPanel.form @@ -1,6 +1,11 @@
+ + + + + @@ -28,7 +33,6 @@ - @@ -42,35 +46,27 @@ + + + - + - + - - + + - - + - - - - - - - - - - - - - - + + + + diff --git a/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/BooleanPanel.java b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/BooleanPanel.java index 5e050c2c4..a29388eb4 100644 --- a/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/BooleanPanel.java +++ b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/BooleanPanel.java @@ -34,7 +34,7 @@ private void initComponents() { jToolBar1 = new javax.swing.JToolBar(); jLabel1 = new javax.swing.JLabel(); - jPanel1 = new javax.swing.JPanel(); + filler1 = new javax.swing.Box.Filler(new java.awt.Dimension(0, 0), new java.awt.Dimension(20, 0), new java.awt.Dimension(32767, 0)); jCheckBox1 = new javax.swing.JCheckBox(); jToolBar1.setFloatable(false); @@ -42,25 +42,10 @@ private void initComponents() { jToolBar1.setPreferredSize(new java.awt.Dimension(81, 27)); org.openide.awt.Mnemonics.setLocalizedText(jLabel1, org.openide.util.NbBundle.getMessage(BooleanPanel.class, "BooleanPanel.jLabel1.text")); // NOI18N - jLabel1.setPreferredSize(new java.awt.Dimension(100, 25)); + jLabel1.setMaximumSize(new java.awt.Dimension(300, 17)); + jLabel1.setPreferredSize(new java.awt.Dimension(150, 25)); jToolBar1.add(jLabel1); - - jPanel1.setMinimumSize(new java.awt.Dimension(0, 0)); - jPanel1.setOpaque(false); - jPanel1.setPreferredSize(new java.awt.Dimension(32767, 23)); - - javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); - jPanel1.setLayout(jPanel1Layout); - jPanel1Layout.setHorizontalGroup( - jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 0, Short.MAX_VALUE) - ); - jPanel1Layout.setVerticalGroup( - jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 23, Short.MAX_VALUE) - ); - - jToolBar1.add(jPanel1); + jToolBar1.add(filler1); org.openide.awt.Mnemonics.setLocalizedText(jCheckBox1, org.openide.util.NbBundle.getMessage(BooleanPanel.class, "BooleanPanel.jCheckBox1.text")); // NOI18N jCheckBox1.setFocusable(false); @@ -114,9 +99,9 @@ public void run() { }); } // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.Box.Filler filler1; private javax.swing.JCheckBox jCheckBox1; private javax.swing.JLabel jLabel1; - private javax.swing.JPanel jPanel1; private javax.swing.JToolBar jToolBar1; // End of variables declaration//GEN-END:variables } diff --git a/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/Bundle.properties b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/Bundle.properties index 8cec2babb..9fdfbceaf 100644 --- a/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/Bundle.properties +++ b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/Bundle.properties @@ -13,9 +13,7 @@ ColorRGBADialog.alphaLabel.text=Alpha: # To change this template, choose Tools | Templates # and open the template in the editor. ColorPanel.jLabel1.text=jLabel1 -ColorPanel.jButton1.text= TexturePanel.jLabel1.text=jLabel1 -TexturePanel.jButton1.text=set... TexturePanel.jButton2.text= # To change this template, choose Tools | Templates # and open the template in the editor. @@ -36,15 +34,6 @@ MaterialPreviewWidget.sphereButton.toolTipText=Preview material on a sphere MaterialPreviewWidget.cubeButton.toolTipText=Preview material on a cube MaterialPreviewWidget.planeButton.toolTipText=Preview material on a plane MaterialPreviewWidget.previewLabel.text= -ColorPanel.colorPreview.text= -ColorPanel.jLabel2.text=\ r : -ColorPanel.jLabel3.text=\ g : -ColorPanel.jLabel4.text=\ b : -ColorPanel.jLabel5.text=\ a : -ColorPanel.rLabel.text=0.2545 -ColorPanel.gLabel.text=0.2545 -ColorPanel.bLabel.text=0.2545 -ColorPanel.aLabel.text=0.2545 TexturePanel.jButton2.toolTipText=Remove this texture TexturePanel.texturePreview.text= TexturePanelSquare.jCheckBox2.text=repeat @@ -54,3 +43,13 @@ TexturePanelSquare.text= MaterialPreviewWidget.jToggleButton1.text=jToggleButton1 MaterialPreviewWidget.togglePbrEnvButton.label= MaterialPreviewWidget.togglePbrEnvButton.toolTipText=Toggle PBR environment +ColorPanel.gLabel.text=0.2545 +ColorPanel.rLabel.text=0.2545 +ColorPanel.colorPreview.text= +ColorPanel.jLabel5.text=\ a : +ColorPanel.aLabel.text=0.2545 +ColorPanel.jLabel4.text=\ b : +ColorPanel.jLabel3.text=\ g : +ColorPanel.jLabel2.text=\ r : +ColorPanel.bLabel.text=0.2545 +TexturePanel.texturePreview.toolTipText=Texture diff --git a/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/ColorPanel.form b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/ColorPanel.form index 78b00f1c9..972fb140c 100644 --- a/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/ColorPanel.form +++ b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/ColorPanel.form @@ -24,15 +24,14 @@ - - - - - + + + + + - - - + + @@ -42,13 +41,13 @@ + - - - + + - - + + @@ -65,14 +64,18 @@ + + + + + - - - + + @@ -93,17 +96,17 @@ - - + - + - - + + + + - - + @@ -199,14 +202,11 @@ - + - - - @@ -241,34 +241,16 @@ + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/ColorPanel.java b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/ColorPanel.java index 82f97afcf..58d2d5ef8 100644 --- a/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/ColorPanel.java +++ b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/ColorPanel.java @@ -10,6 +10,7 @@ */ package com.jme3.gde.materials.multiview.widgets; +import com.jme3.gde.materials.multiview.widgets.icons.Icons; import com.jme3.math.FastMath; import java.awt.Color; import javax.swing.JFrame; @@ -45,7 +46,6 @@ private void initComponents() { aLabel = new javax.swing.JTextField(); jLabel5 = new javax.swing.JLabel(); colorPreview = new javax.swing.JLabel(); - jButton1 = new javax.swing.JButton(); jSeparator1 = new javax.swing.JSeparator(); setMaximumSize(new java.awt.Dimension(32767, 35)); @@ -54,6 +54,8 @@ private void initComponents() { jLabel1.setText(org.openide.util.NbBundle.getMessage(ColorPanel.class, "ColorPanel.jLabel1.text")); // NOI18N jLabel1.setPreferredSize(new java.awt.Dimension(100, 16)); + jPanel2.setPreferredSize(new java.awt.Dimension(377, 40)); + rLabel.setText(org.openide.util.NbBundle.getMessage(ColorPanel.class, "ColorPanel.rLabel.text")); // NOI18N rLabel.setMaximumSize(new java.awt.Dimension(110, 2147483647)); rLabel.setNextFocusableComponent(gLabel); @@ -116,9 +118,8 @@ public void focusLost(java.awt.event.FocusEvent evt) { jLabel4.setText(org.openide.util.NbBundle.getMessage(ColorPanel.class, "ColorPanel.jLabel4.text")); // NOI18N aLabel.setText(org.openide.util.NbBundle.getMessage(ColorPanel.class, "ColorPanel.aLabel.text")); // NOI18N - aLabel.setCursor(new java.awt.Cursor(java.awt.Cursor.TEXT_CURSOR)); + aLabel.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR)); aLabel.setMaximumSize(new java.awt.Dimension(110, 2147483647)); - aLabel.setNextFocusableComponent(jButton1); aLabel.setPreferredSize(new java.awt.Dimension(110, 28)); aLabel.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { @@ -141,15 +142,20 @@ public void focusLost(java.awt.event.FocusEvent evt) { colorPreview.setText(org.openide.util.NbBundle.getMessage(ColorPanel.class, "ColorPanel.colorPreview.text")); // NOI18N colorPreview.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(102, 102, 102))); colorPreview.setOpaque(true); + colorPreview.setPreferredSize(new java.awt.Dimension(64, 2)); + colorPreview.addMouseListener(new java.awt.event.MouseAdapter() { + public void mouseClicked(java.awt.event.MouseEvent evt) { + colorPreviewMouseClicked(evt); + } + }); javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2); jPanel2.setLayout(jPanel2Layout); jPanel2Layout.setHorizontalGroup( jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup() - .addContainerGap() - .addComponent(colorPreview, javax.swing.GroupLayout.DEFAULT_SIZE, 18, Short.MAX_VALUE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(colorPreview, javax.swing.GroupLayout.PREFERRED_SIZE, 41, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 51, Short.MAX_VALUE) .addComponent(jLabel2) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(rLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 46, javax.swing.GroupLayout.PREFERRED_SIZE) @@ -168,60 +174,97 @@ public void focusLost(java.awt.event.FocusEvent evt) { ); jPanel2Layout.setVerticalGroup( jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(gLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 20, Short.MAX_VALUE) - .addComponent(bLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 20, Short.MAX_VALUE) + .addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(jLabel3) + .addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel4) .addComponent(jLabel5) - .addComponent(jLabel2) - .addComponent(rLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 20, Short.MAX_VALUE)) - .addComponent(colorPreview, javax.swing.GroupLayout.DEFAULT_SIZE, 20, Short.MAX_VALUE) - .addComponent(aLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 20, Short.MAX_VALUE) + .addComponent(rLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(gLabel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(bLabel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(aLabel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(colorPreview, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) ); - jButton1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/jme3/gde/materials/multiview/widgets/icons/color_wheel.png"))); // NOI18N - jButton1.setText(org.openide.util.NbBundle.getMessage(ColorPanel.class, "ColorPanel.jButton1.text")); // NOI18N - jButton1.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); - jButton1.setMaximumSize(new java.awt.Dimension(43, 15)); - jButton1.setMinimumSize(new java.awt.Dimension(43, 15)); - jButton1.setPreferredSize(new java.awt.Dimension(43, 15)); - jButton1.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - jButton1.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - jButton1ActionPerformed(evt); - } - }); - javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(jSeparator1, javax.swing.GroupLayout.DEFAULT_SIZE, 420, Short.MAX_VALUE) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jSeparator1, javax.swing.GroupLayout.Alignment.TRAILING) .addGroup(layout.createSequentialGroup() - .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, 70, Short.MAX_VALUE) + .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 91, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE))) + .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, 390, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(0, 0, Short.MAX_VALUE))) .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() + .addGap(4, 4, 4) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addComponent(jButton1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(jSeparator1, javax.swing.GroupLayout.DEFAULT_SIZE, 9, Short.MAX_VALUE)) + .addComponent(jSeparator1, javax.swing.GroupLayout.DEFAULT_SIZE, 1, Short.MAX_VALUE)) ); }// //GEN-END:initComponents - private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed - // TODO add your handling code here: + private void aLabelFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_aLabelFocusLost + updateValue(); + }//GEN-LAST:event_aLabelFocusLost + + private void aLabelFocusGained(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_aLabelFocusGained + aLabel.setSelectionStart(0); + aLabel.setSelectionEnd(aLabel.getText().length()); + }//GEN-LAST:event_aLabelFocusGained + + private void aLabeltextChanged(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_aLabeltextChanged + updateValue(); + }//GEN-LAST:event_aLabeltextChanged + + private void bLabelFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_bLabelFocusLost + updateValue(); + }//GEN-LAST:event_bLabelFocusLost + + private void bLabelFocusGained(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_bLabelFocusGained + bLabel.setSelectionStart(0); + bLabel.setSelectionEnd(bLabel.getText().length()); + }//GEN-LAST:event_bLabelFocusGained + + private void bLabeltextChanged(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bLabeltextChanged + updateValue(); + }//GEN-LAST:event_bLabeltextChanged + + private void gLabelFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_gLabelFocusLost + updateValue(); + }//GEN-LAST:event_gLabelFocusLost + + private void gLabelFocusGained(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_gLabelFocusGained + gLabel.setSelectionStart(0); + gLabel.setSelectionEnd(gLabel.getText().length()); + }//GEN-LAST:event_gLabelFocusGained + + private void gLabeltextChanged(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_gLabeltextChanged + updateValue(); + }//GEN-LAST:event_gLabeltextChanged + + private void rLabelFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_rLabelFocusLost + updateValue(); + }//GEN-LAST:event_rLabelFocusLost + + private void rLabelFocusGained(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_rLabelFocusGained + rLabel.setSelectionStart(0); + rLabel.setSelectionEnd(rLabel.getText().length()); + }//GEN-LAST:event_rLabelFocusGained + + private void textChanged(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_textChanged + updateValue(); + }//GEN-LAST:event_textChanged + + private void colorPreviewMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_colorPreviewMouseClicked ColorRGBADialog dialog = new ColorRGBADialog(new JFrame(), true); dialog.setLocationRelativeTo(null); dialog.setColor(getColor(rLabel.getText(), gLabel.getText(), bLabel.getText(), aLabel.getText())); @@ -238,61 +281,8 @@ private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRS property.setValue(rLabel.getText() + " " + gLabel.getText() + " " + bLabel.getText() + " " + aLabel.getText()); fireChanged(); } - - }//GEN-LAST:event_jButton1ActionPerformed - - private void textChanged(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_textChanged - updateValue(); - }//GEN-LAST:event_textChanged - -private void gLabeltextChanged(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_gLabeltextChanged - updateValue(); -}//GEN-LAST:event_gLabeltextChanged - -private void bLabeltextChanged(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bLabeltextChanged - updateValue(); -}//GEN-LAST:event_bLabeltextChanged - -private void aLabeltextChanged(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_aLabeltextChanged - updateValue(); -}//GEN-LAST:event_aLabeltextChanged - -private void rLabelFocusGained(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_rLabelFocusGained - rLabel.setSelectionStart(0); - rLabel.setSelectionEnd(rLabel.getText().length()); -}//GEN-LAST:event_rLabelFocusGained - -private void gLabelFocusGained(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_gLabelFocusGained - gLabel.setSelectionStart(0); - gLabel.setSelectionEnd(gLabel.getText().length()); -}//GEN-LAST:event_gLabelFocusGained - -private void bLabelFocusGained(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_bLabelFocusGained - bLabel.setSelectionStart(0); - bLabel.setSelectionEnd(bLabel.getText().length()); -}//GEN-LAST:event_bLabelFocusGained - -private void aLabelFocusGained(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_aLabelFocusGained - aLabel.setSelectionStart(0); - aLabel.setSelectionEnd(aLabel.getText().length()); -}//GEN-LAST:event_aLabelFocusGained - -private void rLabelFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_rLabelFocusLost - updateValue(); -}//GEN-LAST:event_rLabelFocusLost - -private void gLabelFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_gLabelFocusLost - updateValue(); -}//GEN-LAST:event_gLabelFocusLost - -private void bLabelFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_bLabelFocusLost - updateValue(); -}//GEN-LAST:event_bLabelFocusLost - -private void aLabelFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_aLabelFocusLost - updateValue(); -}//GEN-LAST:event_aLabelFocusLost - + }//GEN-LAST:event_colorPreviewMouseClicked + private void updateValue() { Color c = getColor(rLabel.getText(), gLabel.getText(), bLabel.getText(), aLabel.getText()); if (c != null) { @@ -354,7 +344,6 @@ private Color getColor(String r, String g, String b, String a) { private javax.swing.JTextField bLabel; private javax.swing.JLabel colorPreview; private javax.swing.JTextField gLabel; - private javax.swing.JButton jButton1; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; diff --git a/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/FloatPanel.form b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/FloatPanel.form index 110fce821..580a483f7 100644 --- a/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/FloatPanel.form +++ b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/FloatPanel.form @@ -1,6 +1,11 @@ + + + + + @@ -16,7 +21,7 @@ - + @@ -28,8 +33,10 @@ - + + + @@ -40,38 +47,36 @@ - - - - + - + - + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + - + diff --git a/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/FloatPanel.java b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/FloatPanel.java index 353530749..700b4ecd7 100644 --- a/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/FloatPanel.java +++ b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/FloatPanel.java @@ -35,34 +35,24 @@ private void initComponents() { jToolBar1 = new javax.swing.JToolBar(); jLabel1 = new javax.swing.JLabel(); - jPanel1 = new javax.swing.JPanel(); + filler1 = new javax.swing.Box.Filler(new java.awt.Dimension(0, 0), new java.awt.Dimension(20, 0), new java.awt.Dimension(32767, 0)); jSpinner1 = new javax.swing.JSpinner(); + setMinimumSize(new java.awt.Dimension(100, 27)); + jToolBar1.setFloatable(false); jToolBar1.setRollover(true); + jToolBar1.setPreferredSize(new java.awt.Dimension(159, 27)); jLabel1.setText(org.openide.util.NbBundle.getMessage(FloatPanel.class, "FloatPanel.jLabel1.text")); // NOI18N - jLabel1.setMaximumSize(new java.awt.Dimension(100, 16)); - jLabel1.setPreferredSize(new java.awt.Dimension(100, 16)); + jLabel1.setMaximumSize(new java.awt.Dimension(300, 16)); jToolBar1.add(jLabel1); + jToolBar1.add(filler1); - jPanel1.setOpaque(false); - - javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); - jPanel1.setLayout(jPanel1Layout); - jPanel1Layout.setHorizontalGroup( - jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 23, Short.MAX_VALUE) - ); - jPanel1Layout.setVerticalGroup( - jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 24, Short.MAX_VALUE) - ); - - jToolBar1.add(jPanel1); - - jSpinner1.setModel(new javax.swing.SpinnerNumberModel(Float.valueOf(0.0f), null, null, Float.valueOf(1.0f))); - jSpinner1.setPreferredSize(new java.awt.Dimension(70, 20)); + jSpinner1.setModel(new javax.swing.SpinnerNumberModel(0.0f, null, null, 1.0f)); + jSpinner1.setMaximumSize(new java.awt.Dimension(100, 23)); + jSpinner1.setMinimumSize(new java.awt.Dimension(100, 23)); + jSpinner1.setPreferredSize(new java.awt.Dimension(100, 23)); jSpinner1.addChangeListener(new javax.swing.event.ChangeListener() { public void stateChanged(javax.swing.event.ChangeEvent evt) { valueChanged(evt); @@ -74,7 +64,7 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jToolBar1, javax.swing.GroupLayout.DEFAULT_SIZE, 155, Short.MAX_VALUE) + .addComponent(jToolBar1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) @@ -109,8 +99,8 @@ public void run() { }); } // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.Box.Filler filler1; private javax.swing.JLabel jLabel1; - private javax.swing.JPanel jPanel1; private javax.swing.JSpinner jSpinner1; private javax.swing.JToolBar jToolBar1; // End of variables declaration//GEN-END:variables diff --git a/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/IntPanel.form b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/IntPanel.form index 45fc686d4..96551a2b7 100644 --- a/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/IntPanel.form +++ b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/IntPanel.form @@ -16,7 +16,7 @@ - + @@ -28,8 +28,10 @@ - + + + @@ -40,44 +42,37 @@ - - - - + - + - - + + - - + - - - - - - - - - - - - - - + + + + + + + + - + + + + diff --git a/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/IntPanel.java b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/IntPanel.java index 30442030d..f9dcf7403 100644 --- a/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/IntPanel.java +++ b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/IntPanel.java @@ -34,36 +34,23 @@ private void initComponents() { jToolBar1 = new javax.swing.JToolBar(); jLabel1 = new javax.swing.JLabel(); - jPanel1 = new javax.swing.JPanel(); + filler1 = new javax.swing.Box.Filler(new java.awt.Dimension(0, 0), new java.awt.Dimension(20, 0), new java.awt.Dimension(32767, 0)); jSpinner1 = new javax.swing.JSpinner(); jToolBar1.setFloatable(false); jToolBar1.setRollover(true); + jToolBar1.setPreferredSize(new java.awt.Dimension(159, 27)); jLabel1.setText(org.openide.util.NbBundle.getMessage(IntPanel.class, "IntPanel.jLabel1.text")); // NOI18N - jLabel1.setMaximumSize(new java.awt.Dimension(100, 16)); - jLabel1.setPreferredSize(new java.awt.Dimension(100, 16)); + jLabel1.setMaximumSize(new java.awt.Dimension(300, 16)); jToolBar1.add(jLabel1); - - jPanel1.setBackground(new java.awt.Color(204, 204, 204)); - jPanel1.setOpaque(false); - jPanel1.setPreferredSize(new java.awt.Dimension(100, 0)); - - javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); - jPanel1.setLayout(jPanel1Layout); - jPanel1Layout.setHorizontalGroup( - jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 34, Short.MAX_VALUE) - ); - jPanel1Layout.setVerticalGroup( - jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 28, Short.MAX_VALUE) - ); - - jToolBar1.add(jPanel1); + jToolBar1.add(filler1); jSpinner1.setModel(new javax.swing.SpinnerNumberModel()); - jSpinner1.setMinimumSize(new java.awt.Dimension(70, 20)); + jSpinner1.setAlignmentX(1.0F); + jSpinner1.setMaximumSize(new java.awt.Dimension(100, 23)); + jSpinner1.setMinimumSize(new java.awt.Dimension(100, 23)); + jSpinner1.setPreferredSize(new java.awt.Dimension(100, 23)); jSpinner1.addChangeListener(new javax.swing.event.ChangeListener() { public void stateChanged(javax.swing.event.ChangeEvent evt) { valueChanged(evt); @@ -75,7 +62,7 @@ public void stateChanged(javax.swing.event.ChangeEvent evt) { this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jToolBar1, javax.swing.GroupLayout.DEFAULT_SIZE, 129, Short.MAX_VALUE) + .addComponent(jToolBar1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) @@ -110,8 +97,8 @@ public void run() { }); } // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.Box.Filler filler1; private javax.swing.JLabel jLabel1; - private javax.swing.JPanel jPanel1; private javax.swing.JSpinner jSpinner1; private javax.swing.JToolBar jToolBar1; // End of variables declaration//GEN-END:variables diff --git a/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/MaterialPreviewWidget.form b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/MaterialPreviewWidget.form index f5a3019be..fc8e4e5b8 100644 --- a/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/MaterialPreviewWidget.form +++ b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/MaterialPreviewWidget.form @@ -5,6 +5,17 @@ + + + + + + + + + + + @@ -20,16 +31,26 @@ - - + + + + + + + + + + - - - - + + + + + + @@ -42,87 +63,133 @@ - + - + + + + + + + + + + + - + - - + + - - + - + - + + + + + + + + + + + + - + - + - - + + - + - + + + + + + + + + + + + + + - + - + - - + + + - + - + + + + + + + + + + + + + - + @@ -130,7 +197,7 @@ - + @@ -141,12 +208,18 @@ - + - + + + + + + + diff --git a/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/MaterialPreviewWidget.java b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/MaterialPreviewWidget.java index c8e921843..22d01b8ff 100644 --- a/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/MaterialPreviewWidget.java +++ b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/MaterialPreviewWidget.java @@ -15,6 +15,7 @@ import com.jme3.gde.core.scene.SceneApplication; import com.jme3.gde.core.scene.SceneRequest; import com.jme3.gde.materials.MaterialPreviewRenderer; +import com.jme3.gde.materials.multiview.widgets.icons.Icons; /** * @@ -69,41 +70,38 @@ private void initComponents() { toggleButtonGroup = new javax.swing.ButtonGroup(); previewLabel = new javax.swing.JLabel(); jToolBar1 = new javax.swing.JToolBar(); - sphereButton = new javax.swing.JToggleButton(); cubeButton = new javax.swing.JToggleButton(); planeButton = new javax.swing.JToggleButton(); + sphereButton = new javax.swing.JToggleButton(); jSeparator1 = new javax.swing.JToolBar.Separator(); togglePbrEnvButton = new javax.swing.JToggleButton(); + setMaximumSize(new java.awt.Dimension(244, 200)); + setMinimumSize(new java.awt.Dimension(244, 200)); + setPreferredSize(new java.awt.Dimension(244, 200)); + previewLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); previewLabel.setText(org.openide.util.NbBundle.getMessage(MaterialPreviewWidget.class, "MaterialPreviewWidget.previewLabel.text")); // NOI18N - previewLabel.setMaximumSize(new java.awt.Dimension(120, 120)); - previewLabel.setMinimumSize(new java.awt.Dimension(120, 120)); + previewLabel.setMaximumSize(new java.awt.Dimension(200, 200)); + previewLabel.setMinimumSize(new java.awt.Dimension(200, 200)); + jToolBar1.setOrientation(javax.swing.SwingConstants.VERTICAL); + jToolBar1.setFloatable(false); jToolBar1.setRollover(true); - - toggleButtonGroup.add(sphereButton); - sphereButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/jme3/gde/materials/multiview/widgets/icons/sphere.png"))); // NOI18N - sphereButton.setSelected(true); - sphereButton.setText(org.openide.util.NbBundle.getMessage(MaterialPreviewWidget.class, "MaterialPreviewWidget.sphereButton.text")); // NOI18N - sphereButton.setToolTipText(org.openide.util.NbBundle.getMessage(MaterialPreviewWidget.class, "MaterialPreviewWidget.sphereButton.toolTipText")); // NOI18N - sphereButton.setFocusable(false); - sphereButton.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); - sphereButton.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); - sphereButton.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); - sphereButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - sphereButtonActionPerformed(evt); - } - }); - jToolBar1.add(sphereButton); + jToolBar1.setMaximumSize(new java.awt.Dimension(80, 50)); + jToolBar1.setMinimumSize(new java.awt.Dimension(80, 50)); + jToolBar1.setPreferredSize(new java.awt.Dimension(80, 50)); toggleButtonGroup.add(cubeButton); - cubeButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/jme3/gde/materials/multiview/widgets/icons/box.png"))); // NOI18N + cubeButton.setIcon(Icons.cube); cubeButton.setText(org.openide.util.NbBundle.getMessage(MaterialPreviewWidget.class, "MaterialPreviewWidget.cubeButton.text")); // NOI18N cubeButton.setToolTipText(org.openide.util.NbBundle.getMessage(MaterialPreviewWidget.class, "MaterialPreviewWidget.cubeButton.toolTipText")); // NOI18N cubeButton.setFocusable(false); cubeButton.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); + cubeButton.setMaximumSize(new java.awt.Dimension(40, 40)); + cubeButton.setMinimumSize(new java.awt.Dimension(40, 40)); + cubeButton.setPreferredSize(new java.awt.Dimension(40, 40)); + cubeButton.setSelectedIcon(Icons.cubeOn); cubeButton.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); cubeButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { @@ -113,12 +111,16 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { jToolBar1.add(cubeButton); toggleButtonGroup.add(planeButton); - planeButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/jme3/gde/materials/multiview/widgets/icons/plane.png"))); // NOI18N + planeButton.setIcon(Icons.plane); planeButton.setText(org.openide.util.NbBundle.getMessage(MaterialPreviewWidget.class, "MaterialPreviewWidget.planeButton.text")); // NOI18N planeButton.setToolTipText(org.openide.util.NbBundle.getMessage(MaterialPreviewWidget.class, "MaterialPreviewWidget.planeButton.toolTipText")); // NOI18N planeButton.setFocusable(false); planeButton.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); planeButton.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); + planeButton.setMaximumSize(new java.awt.Dimension(40, 40)); + planeButton.setMinimumSize(new java.awt.Dimension(40, 40)); + planeButton.setPreferredSize(new java.awt.Dimension(40, 40)); + planeButton.setPressedIcon(Icons.planeOn); planeButton.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); planeButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { @@ -126,16 +128,38 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { } }); jToolBar1.add(planeButton); + + toggleButtonGroup.add(sphereButton); + sphereButton.setIcon(Icons.sphere); + sphereButton.setSelected(true); + sphereButton.setText(org.openide.util.NbBundle.getMessage(MaterialPreviewWidget.class, "MaterialPreviewWidget.sphereButton.text")); // NOI18N + sphereButton.setToolTipText(org.openide.util.NbBundle.getMessage(MaterialPreviewWidget.class, "MaterialPreviewWidget.sphereButton.toolTipText")); // NOI18N + sphereButton.setFocusable(false); + sphereButton.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); + sphereButton.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); + sphereButton.setMaximumSize(new java.awt.Dimension(40, 40)); + sphereButton.setMinimumSize(new java.awt.Dimension(40, 40)); + sphereButton.setPreferredSize(new java.awt.Dimension(40, 40)); + sphereButton.setSelectedIcon(Icons.sphereOn); + sphereButton.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); + sphereButton.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + sphereButtonActionPerformed(evt); + } + }); + jToolBar1.add(sphereButton); jToolBar1.add(jSeparator1); - togglePbrEnvButton.setIcon(IconList.lightYellow); + togglePbrEnvButton.setIcon(Icons.lightOff); togglePbrEnvButton.setToolTipText(org.openide.util.NbBundle.getMessage(MaterialPreviewWidget.class, "MaterialPreviewWidget.togglePbrEnvButton.toolTipText")); // NOI18N togglePbrEnvButton.setFocusable(false); togglePbrEnvButton.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); togglePbrEnvButton.setLabel(org.openide.util.NbBundle.getMessage(MaterialPreviewWidget.class, "MaterialPreviewWidget.togglePbrEnvButton.label")); // NOI18N - togglePbrEnvButton.setMaximumSize(new java.awt.Dimension(26, 24)); - togglePbrEnvButton.setMinimumSize(new java.awt.Dimension(26, 24)); + togglePbrEnvButton.setMaximumSize(new java.awt.Dimension(40, 40)); + togglePbrEnvButton.setMinimumSize(new java.awt.Dimension(40, 40)); togglePbrEnvButton.setName("togglePbrEnvButton"); // NOI18N + togglePbrEnvButton.setPreferredSize(new java.awt.Dimension(40, 40)); + togglePbrEnvButton.setPressedIcon(Icons.lightOn); togglePbrEnvButton.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); togglePbrEnvButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { @@ -148,15 +172,21 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(previewLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 180, Short.MAX_VALUE) - .addComponent(jToolBar1, javax.swing.GroupLayout.DEFAULT_SIZE, 180, Short.MAX_VALUE) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addGap(0, 199, Short.MAX_VALUE) + .addComponent(jToolBar1, javax.swing.GroupLayout.PREFERRED_SIZE, 45, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addComponent(previewLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 200, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(0, 44, Short.MAX_VALUE))) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() - .addComponent(previewLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 120, Short.MAX_VALUE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(jToolBar1, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(jToolBar1, javax.swing.GroupLayout.DEFAULT_SIZE, 200, Short.MAX_VALUE) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addComponent(previewLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 194, Short.MAX_VALUE) + .addContainerGap())) ); }// //GEN-END:initComponents diff --git a/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/TexturePanel.form b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/TexturePanel.form index 3ec9fdcc7..b57c94a45 100644 --- a/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/TexturePanel.form +++ b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/TexturePanel.form @@ -26,19 +26,17 @@ - + - - - - - + + + - + @@ -61,17 +59,19 @@ - - + + + + - + - + @@ -111,25 +111,6 @@ - - - - - - - - - - - - - - - - - - - @@ -162,8 +143,8 @@ - - + + @@ -171,8 +152,14 @@ + + + + + + @@ -186,6 +173,9 @@ + + + @@ -203,6 +193,9 @@ + + + diff --git a/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/TexturePanel.java b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/TexturePanel.java index 950e46af0..5b35ca3dc 100644 --- a/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/TexturePanel.java +++ b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/TexturePanel.java @@ -16,6 +16,7 @@ import com.jme3.gde.core.properties.preview.TexturePreview; import com.jme3.gde.materials.MaterialProperty; import com.jme3.gde.materials.multiview.MaterialEditorTopComponent; +import com.jme3.gde.materials.multiview.widgets.icons.Icons; import java.awt.Component; import java.awt.Graphics2D; import java.awt.image.BufferedImage; @@ -111,7 +112,6 @@ private void initComponents() { jLabel1 = new javax.swing.JLabel(); jPanel1 = new javax.swing.JPanel(); - jButton1 = new javax.swing.JButton(); jCheckBox1 = new javax.swing.JCheckBox(); jCheckBox2 = new javax.swing.JCheckBox(); jButton2 = new javax.swing.JButton(); @@ -138,18 +138,6 @@ private void initComponents() { .addGap(0, 0, Short.MAX_VALUE) ); - jButton1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/jme3/gde/materials/multiview/widgets/icons/picture_add.png"))); // NOI18N - jButton1.setText(org.openide.util.NbBundle.getMessage(TexturePanel.class, "TexturePanel.jButton1.text")); // NOI18N - jButton1.setFocusable(false); - jButton1.setHorizontalAlignment(javax.swing.SwingConstants.LEFT); - jButton1.setIconTextGap(2); - jButton1.setMargin(new java.awt.Insets(2, 5, 2, 5)); - jButton1.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - jButton1ActionPerformed(evt); - } - }); - jCheckBox1.setFont(new java.awt.Font("Lucida Grande", 0, 10)); // NOI18N jCheckBox1.setText(org.openide.util.NbBundle.getMessage(TexturePanel.class, "TexturePanel.jCheckBox1.text")); // NOI18N jCheckBox1.setFocusable(false); @@ -170,11 +158,13 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { } }); - jButton2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/jme3/gde/materials/multiview/widgets/icons/picture_delete.png"))); // NOI18N + jButton2.setIcon(Icons.textureRemove); jButton2.setText(org.openide.util.NbBundle.getMessage(TexturePanel.class, "TexturePanel.jButton2.text")); // NOI18N jButton2.setToolTipText(org.openide.util.NbBundle.getMessage(TexturePanel.class, "TexturePanel.jButton2.toolTipText")); // NOI18N + jButton2.setBorder(null); jButton2.setFocusable(false); jButton2.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); + jButton2.setMargin(new java.awt.Insets(0, 0, 0, 0)); jButton2.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); jButton2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { @@ -183,12 +173,18 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { }); texturePreview.setText(org.openide.util.NbBundle.getMessage(TexturePanel.class, "TexturePanel.texturePreview.text")); // NOI18N + texturePreview.setToolTipText(org.openide.util.NbBundle.getMessage(TexturePanel.class, "TexturePanel.texturePreview.toolTipText")); // NOI18N texturePreview.setVerticalAlignment(javax.swing.SwingConstants.TOP); texturePreview.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(153, 153, 153))); texturePreview.setFocusable(false); texturePreview.setIconTextGap(0); texturePreview.setMaximumSize(new java.awt.Dimension(75, 25)); texturePreview.setMinimumSize(new java.awt.Dimension(75, 25)); + texturePreview.addMouseListener(new java.awt.event.MouseAdapter() { + public void mouseClicked(java.awt.event.MouseEvent evt) { + texturePreviewMouseClicked(evt); + } + }); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); @@ -196,19 +192,17 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(jSeparator1, javax.swing.GroupLayout.DEFAULT_SIZE, 474, Short.MAX_VALUE) + .addComponent(jSeparator1, javax.swing.GroupLayout.DEFAULT_SIZE, 455, Short.MAX_VALUE) .addGroup(layout.createSequentialGroup() - .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, 211, Short.MAX_VALUE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(texturePreview, javax.swing.GroupLayout.PREFERRED_SIZE, 81, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(jButton1) + .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, 236, Short.MAX_VALUE) + .addGap(55, 55, 55) + .addComponent(texturePreview, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jCheckBox2) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jCheckBox1) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE))) + .addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 24, javax.swing.GroupLayout.PREFERRED_SIZE))) .addContainerGap()) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() @@ -221,39 +215,23 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, 25, Short.MAX_VALUE) - .addComponent(jButton2, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 25, Short.MAX_VALUE) + .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(jButton2, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jCheckBox2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jCheckBox1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(jButton1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(texturePreview, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addGroup(layout.createSequentialGroup() + .addComponent(texturePreview, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(0, 0, Short.MAX_VALUE))) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() - .addGap(0, 30, Short.MAX_VALUE) + .addGap(0, 34, Short.MAX_VALUE) .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(0, 15, Short.MAX_VALUE))) + .addGap(0, 19, Short.MAX_VALUE))) ); }// //GEN-END:initComponents - private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed - Component view = editor.getCustomEditor(); - view.setVisible(true); - if (editor.getValue() != null) { - textureName = "\"" + editor.getAsText() + "\""; - displayPreview(); - updateFlipRepeat(); - fireChanged(); - } else { // "No Texture" has been clicked - textureName = "\"\""; - texturePreview.setIcon(null); - texturePreview.setToolTipText(""); - property.setValue(""); - fireChanged(); - } - }//GEN-LAST:event_jButton1ActionPerformed - private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed textureName = "\"\""; texturePreview.setIcon(null); @@ -280,6 +258,23 @@ private void jCheckBox2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FI fireChanged(); }//GEN-LAST:event_jCheckBox2ActionPerformed + private void texturePreviewMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_texturePreviewMouseClicked + Component view = editor.getCustomEditor(); + view.setVisible(true); + if (editor.getValue() != null) { + textureName = "\"" + editor.getAsText() + "\""; + displayPreview(); + updateFlipRepeat(); + fireChanged(); + } else { // "No Texture" has been clicked + textureName = "\"\""; + texturePreview.setIcon(null); + texturePreview.setToolTipText(""); + property.setValue(""); + fireChanged(); + } + }//GEN-LAST:event_texturePreviewMouseClicked + @Override protected void readProperty() { java.awt.EventQueue.invokeLater(new Runnable() { @@ -320,7 +315,6 @@ public void cleanUp() { exec.shutdownNow(); } // Variables declaration - do not modify//GEN-BEGIN:variables - private javax.swing.JButton jButton1; private javax.swing.JButton jButton2; private javax.swing.JCheckBox jCheckBox1; private javax.swing.JCheckBox jCheckBox2; diff --git a/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/icons/Icons.java b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/icons/Icons.java new file mode 100644 index 000000000..69ed42de3 --- /dev/null +++ b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/icons/Icons.java @@ -0,0 +1,45 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template + */ +package com.jme3.gde.materials.multiview.widgets.icons; + +import javax.swing.ImageIcon; +import org.openide.util.ImageUtilities; + +/** + * + * @author rickard + */ +public class Icons { + + public static final String ICONS_PATH = "com/jme3/gde/materials/multiview/widgets/icons/"; + public static final String TEXTURE_REMOVE = ICONS_PATH + "remove_texture.svg"; + public static final String CUBE_OFF = ICONS_PATH + "cube.svg"; + public static final String SPHERE_OFF = ICONS_PATH + "sphere.svg"; + public static final String PLANE_OFF = ICONS_PATH + "plane.svg"; + public static final String CUBE_ON = ICONS_PATH + "cube-on.svg"; + public static final String SPHERE_ON = ICONS_PATH + "sphere-on.svg"; + public static final String PLANE_ON = ICONS_PATH + "plane-on.svg"; + public static final String LIGHT_ON = ICONS_PATH + "light-bulb-on.svg"; + public static final String LIGHT_OFF = ICONS_PATH + "light-bulb-off.svg"; + + public static final ImageIcon textureRemove = + ImageUtilities.loadImageIcon(TEXTURE_REMOVE, false); + public static final ImageIcon cube = + ImageUtilities.loadImageIcon(CUBE_OFF, false); + public static final ImageIcon sphere = + ImageUtilities.loadImageIcon(SPHERE_OFF, false); + public static final ImageIcon plane = + ImageUtilities.loadImageIcon(PLANE_OFF, false); + public static final ImageIcon cubeOn = + ImageUtilities.loadImageIcon(CUBE_OFF, false); + public static final ImageIcon sphereOn = + ImageUtilities.loadImageIcon(SPHERE_OFF, false); + public static final ImageIcon planeOn = + ImageUtilities.loadImageIcon(PLANE_OFF, false); + public static final ImageIcon lightOn = + ImageUtilities.loadImageIcon(LIGHT_ON, false); + public static final ImageIcon lightOff = + ImageUtilities.loadImageIcon(LIGHT_OFF, false); +} diff --git a/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/icons/box.png b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/icons/box.png deleted file mode 100644 index 6974118bbbbeb2b93f63d50ebac10563572d8c8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3409 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 diff --git a/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/icons/color_wheel.png b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/icons/color_wheel.png deleted file mode 100644 index 287a344584b97a9b3152db48f6ea50a56fc5f95f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 850 zcmV-Y1FigtP)b2X+jYQsKJYvJ+d33Bg`8@Z#Bb(dvX z+VZD-C6{GF9<&aMxF0IvDMeM>>YU`hO-SyhHNHV$b_jyj?cYaE;@UnFoZ$|69HR8F z8;l;LdLQPGU^^}&hkqal%-b7Nm}DO%gdzz_r0`ZT%)Bh6ZX%XWU28ol>-plME8cKsV1XfBh0Lx)`aE|_MZxg_= zbplHq$2PU=6D`XqUR8o&D!ka~PLNTO81h&J^DO-zGuSZ)BcuargnNG*qOr*)Tu8IU zu}C^LeNKkWnpS`U7_04moDZD9^PWQqd_=+caYl79=7H-5$VxMd!b@H zrEGib@wY-fiYY#>X%m!VP#eO?H}K}StP`|DZEvpp%#J5|DJ~T#Ej}Wih_X-DaMeu( zd6R+FABmK;DBdI(jMI4hH-Qm&9fIK5%GF=*^U+9ui`iU({-o|}3Vlm`JdJcZ5Ow#F zC|$zN)?sXvh1wq!{nphr0z)y(=$G?{-xwp28qkjoCRPu!qnTzn3K?Iub78;#E+mtb ziWOGA`<~riW4jt@Va-SjRA(lCxi`b?!b37aoXlLBCrhf?BXIMIRrL{{v-)tF;@zLP z@xi$aAM&o%}-7asP(V zbxv``uJ`!)ghlEDEbJXhze~sW1H2ODYbSaAYt5NeR5otG;Q1I + + + + + image/svg+xml + + + + + + + + + + + diff --git a/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/icons/cube.svg b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/icons/cube.svg new file mode 100644 index 000000000..e76ca5369 --- /dev/null +++ b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/icons/cube.svg @@ -0,0 +1,63 @@ + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/icons/light-bulb-off.svg b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/icons/light-bulb-off.svg new file mode 100644 index 000000000..5f1362b6b --- /dev/null +++ b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/icons/light-bulb-off.svg @@ -0,0 +1 @@ + diff --git a/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/icons/light-bulb-on.svg b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/icons/light-bulb-on.svg new file mode 100644 index 000000000..b9a67aa35 --- /dev/null +++ b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/icons/light-bulb-on.svg @@ -0,0 +1 @@ + diff --git a/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/icons/picture_add.png b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/icons/picture_add.png deleted file mode 100644 index 01fd4b99bc429487cfb02ebf869ee82c7af70fe1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 692 zcmV;l0!#ggP)9GGrq`Jazjy7tC^ zY~v%A0A3wB&MU*yOi2V7uFW||zdle1MwkfL$o_PQ%>h>Bx?j#tQ^QDDG2jeTJ(=>B z$1cl_!K{(xvuJ_9QeETQ!Je?!0Fh-d$yx z^+o^7{!;7JvFEZ8PkHah@3@mIF3bI%fi~-jt1E#jP@cQPTN=A2YP&|;D+g}!Uwh9s zo}OGl2IrlFYd~V&g!nUf>R%ZV0O)8cnHleG@pj|ciDlHA2BJW2CJP`e!%&-t%x2An z3WWZ%P=M4$VsoHqjZ|ObsSSJT90z7d)5X{0+0VTy(t;jz<8dEEcN3O}3#ro&8pAM-bOC0kM|98^h(GybiJrV&kDUxND0 zq1;NObhO$BJ$TIMY{W9KmB>WqB2a7L2#`f?=76|9B+ktnpyu2Znr#~sl&=9);7Cut zBmglJhyc)$1<;*L-9u!@#Q$F#gjRR{#v2WcO+j;T#=6!0UJh2YF}}5Z23fW3usK+N a1sDKHpb&6W&O>JP)Y}^)13?#sg4QmyS}{aHtg*yT zkR&hj^UixAQcY@c;JwAnnKS3yb1%Da?U4cLfKd(rgRLz?P)7rx1hkiNWNj9Qt4{-x zEiC3Jkd?$?Sx!x&(L|7{K8#GfyKRV!p$gUL-g1~L0ao<7D5WQPph!6}kO-z0Px{Ma z=k(XXbYM$h=L1DhixFmnk0@n|jR!|=iPhX?<|<%Tgkiu*l_+J;>e@h_ zalJuJhrr6lOl2;5Xypdg0@Sy`z0HM*JM!c1GuD3(0uFpf_XP3}h zUlMQk6q}C^-q(#-(tkdF9fTW|A5v3f!RboCxB=rwxA`x|rd4%EuJvm4s{Fj`WPSeF zqFPIwf@lj=b^8HT89L5T|4jfknzA?LFBE3#_l_=;-(g?|^!Iq)rUN#a7D8(^cQNP# z1A!N88_*V@ehd_xY~=}^x-e9e1Wf!9p#5b{Bj!=jtTZ>2I~DM}wbE8}llD({ zX@ewa{u1+_BK?#O2JyWfxgyKyqA~48)tp84y)R(q3$w-T+Dx`)wu=Lw^_T}g`@POA z5K(h+Kd>da`A7&$U|%H?aP&s22Eq>9bSN}nuW1Vb=AVOwztR7*4Ez#c08EqW%sKrG QzW@LL07*qoM6N<$f)Z>U$p8QV diff --git a/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/icons/plane-on.svg b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/icons/plane-on.svg new file mode 100644 index 000000000..42a993183 --- /dev/null +++ b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/icons/plane-on.svg @@ -0,0 +1,66 @@ + + + + + + image/svg+xml + + + + + + + + + + diff --git a/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/icons/plane.png b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/icons/plane.png deleted file mode 100644 index 46b379332a3bb35d19632f5391d6337a3f59634b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2973 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 Tu00000NkvXXu0mjf3!s9l diff --git a/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/icons/plane.svg b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/icons/plane.svg new file mode 100644 index 000000000..1a8c2a2bf --- /dev/null +++ b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/icons/plane.svg @@ -0,0 +1,66 @@ + + + + + + image/svg+xml + + + + + + + + + + diff --git a/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/icons/remove_texture.svg b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/icons/remove_texture.svg new file mode 100644 index 000000000..969e234ef --- /dev/null +++ b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/icons/remove_texture.svg @@ -0,0 +1 @@ + diff --git a/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/icons/sphere-on.svg b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/icons/sphere-on.svg new file mode 100644 index 000000000..04c6db323 --- /dev/null +++ b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/icons/sphere-on.svg @@ -0,0 +1,71 @@ + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/icons/sphere.png b/jme3-materialeditor/src/com/jme3/gde/materials/multiview/widgets/icons/sphere.png deleted file mode 100644 index c659897770a7910884912c9d83a3694cd23f02dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3247 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 + + + + + image/svg+xml + + + + + + + + + + + + From 60e49d6c509328132aecbabce8cb7becf5b5772b Mon Sep 17 00:00:00 2001 From: Toni Helenius Date: Sat, 21 Jan 2023 14:20:14 +0200 Subject: [PATCH 006/224] Update some stephengold libraries and make mavenCentral the first place --- build.gradle | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/build.gradle b/build.gradle index 7942471ef..0e36e9503 100644 --- a/build.gradle +++ b/build.gradle @@ -14,11 +14,11 @@ if (!hasProperty('mainClass')) { } repositories { + mavenCentral() maven { url "https://jitpack.io" } maven { url "https://maven.google.com/" } - mavenCentral() } configurations { @@ -43,7 +43,7 @@ dependencies { corelibs dep("org.jmonkeyengine:jme3-lwjgl:$jmeVersion-$jmeVersionTag", true, true) corelibs dep("org.jmonkeyengine:jme3-effects:$jmeVersion-$jmeVersionTag", true, true) corelibs dep("org.jmonkeyengine:jme3-blender:3.3.2-stable", false, false) // Pin Pointed until jme3-blender has a dedicated release or support is phased out. - optlibs dep("com.github.stephengold:Minie:6.0.0", false, false) // replacement for bullet-native + optlibs dep("com.github.stephengold:Minie:7.1.0", false, false) // replacement for bullet-native corelibs dep(fileTree("lib"), false, false) corelibs dep("org.jmonkeyengine:jme3-jogg:$jmeVersion-$jmeVersionTag", true, true) @@ -57,7 +57,7 @@ dependencies { optlibs dep("org.jmonkeyengine:jme3-ios:$jmeVersion-$jmeVersionTag", true, true) optlibs dep("org.jmonkeyengine:jme3-android-native:$jmeVersion-$jmeVersionTag", true, true) optlibs dep("org.jmonkeyengine:jme3-lwjgl3:$jmeVersion-$jmeVersionTag", true, true) - optlibs dep("com.github.stephengold:Heart:8.1.0", true, true) + optlibs dep("com.github.stephengold:Heart:8.2.0", true, true) optlibs dep("com.github.stephengold:Wes:0.7.2", true, true) testdatalibs dep("org.jmonkeyengine:jme3-testdata:$jmeVersion-$jmeVersionTag", false, false) examplelibs dep("org.jmonkeyengine:jme3-examples:$jmeVersion-$jmeVersionTag", false, true) From 89836e4e0867e6faf0d5ef8a8c5c95c432319603 Mon Sep 17 00:00:00 2001 From: Toni Helenius Date: Sat, 21 Jan 2023 14:36:58 +0200 Subject: [PATCH 007/224] Update copyright year --- .../org/netbeans/core/ui/Bundle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/branding/modules/org-netbeans-core.jar/org/netbeans/core/ui/Bundle.properties b/branding/modules/org-netbeans-core.jar/org/netbeans/core/ui/Bundle.properties index 10d40a8ea..cd29774b6 100644 --- a/branding/modules/org-netbeans-core.jar/org/netbeans/core/ui/Bundle.properties +++ b/branding/modules/org-netbeans-core.jar/org/netbeans/core/ui/Bundle.properties @@ -1,3 +1,3 @@ -LBL_Copyright=

Copyright © 2022 jMonkeyEngine.\n
Please visit http://jmonkeyengine.org for more information.

Icons sets :