You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@netbeans.apache.org by ma...@apache.org on 2020/09/17 10:13:50 UTC

[netbeans] branch master updated: [NETBEANS-4718] Disallow FXML controller in default package when modular java

This is an automated email from the ASF dual-hosted git repository.

matthiasblaesing pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/netbeans.git


The following commit(s) were added to refs/heads/master by this push:
     new 61ffe62  [NETBEANS-4718] Disallow FXML controller in default package when modular java
     new de6c967  Merge pull request #2331 from errael/ValidateFxmlControllerLocation
61ffe62 is described below

commit 61ffe62dbf956ede26c86302def877d96c161092
Author: Ernie Rael <er...@raelity.com>
AuthorDate: Tue Aug 25 19:26:35 2020 +0100

    [NETBEANS-4718] Disallow FXML controller in default package when modular java
---
 .../modules/javafx2/project/JFXProjectUtils.java         | 16 ++++++++++++++++
 .../modules/javafx2/project/fxml/Bundle.properties       |  1 +
 .../project/fxml/ConfigureFXMLControllerPanelVisual.java |  8 ++++++++
 3 files changed, 25 insertions(+)

diff --git a/javafx/javafx2.project/src/org/netbeans/modules/javafx2/project/JFXProjectUtils.java b/javafx/javafx2.project/src/org/netbeans/modules/javafx2/project/JFXProjectUtils.java
index 5a84cbb..83129b5 100644
--- a/javafx/javafx2.project/src/org/netbeans/modules/javafx2/project/JFXProjectUtils.java
+++ b/javafx/javafx2.project/src/org/netbeans/modules/javafx2/project/JFXProjectUtils.java
@@ -31,6 +31,7 @@ import java.util.logging.Level;
 import java.util.logging.Logger;
 import java.util.zip.CRC32;
 import java.util.zip.Checksum;
+
 import javax.lang.model.element.TypeElement;
 import javax.lang.model.util.Elements;
 import javax.xml.parsers.DocumentBuilder;
@@ -41,6 +42,7 @@ import javax.xml.xpath.XPathConstants;
 import javax.xml.xpath.XPathExpression;
 import javax.xml.xpath.XPathExpressionException;
 import javax.xml.xpath.XPathFactory;
+
 import org.netbeans.api.annotations.common.CheckForNull;
 import org.netbeans.api.annotations.common.NonNull;
 import org.netbeans.api.java.classpath.ClassPath;
@@ -61,6 +63,8 @@ import org.netbeans.modules.java.j2seproject.api.J2SEPropertyEvaluator;
 import org.netbeans.modules.javafx2.platform.api.JavaFXPlatformUtils;
 import org.netbeans.modules.javafx2.platform.api.JavaFxRuntimeInclusion;
 import org.netbeans.modules.javafx2.project.JavaFXProjectWizardIterator.WizardType;
+import org.netbeans.modules.javafx2.project.fxml.SourceGroupSupport;
+import org.netbeans.modules.javafx2.project.fxml.SourceGroupSupport.SourceGroupProxy;
 import org.netbeans.modules.javafx2.project.ui.JSEApplicationClassChooser;
 import org.netbeans.spi.project.ProjectIconAnnotator;
 import org.netbeans.spi.project.support.ant.AntProjectHelper;
@@ -1776,5 +1780,17 @@ public final class JFXProjectUtils {
             }
         }
     }
+
+    private static final String MODULE_INFO = "module-info.java"; // NOI18N
+
+    // as in org.netbeans.modules.maven.api.ModuleInfoUtils.hasModuleInfoInSource;
+    public static boolean hasModuleInfo(SourceGroupSupport support) {
+        for (SourceGroupProxy sourceGroup : support.getSourceGroups()) {
+            if(sourceGroup.getRootFolder().getFileObject(MODULE_INFO) != null) {
+                return true;
+            }
+        }
+        return false;
+    }
     
 }
diff --git a/javafx/javafx2.project/src/org/netbeans/modules/javafx2/project/fxml/Bundle.properties b/javafx/javafx2.project/src/org/netbeans/modules/javafx2/project/fxml/Bundle.properties
index 2ed0f7d..3d94df3 100644
--- a/javafx/javafx2.project/src/org/netbeans/modules/javafx2/project/fxml/Bundle.properties
+++ b/javafx/javafx2.project/src/org/netbeans/modules/javafx2/project/fxml/Bundle.properties
@@ -91,6 +91,7 @@ WARN_ConfigureFXMLPanel_Provide_Java_Name=Provide valid Java Controller File nam
 WARN_ConfigureFXMLPanel_Provide_CSS_Name=Provide valid CSS File name
 WARN_ConfigureFXMLPanel_Provide_Package_Name=Provide valid Package name
 WARN_ConfigureFXMLPanel_Package_Invalid=The Package is not a folder
+WARN_ConfigureFXMLPanel_Default_Package_Invalid=Default Package not allowed
 
 #MSG_FXMLTemplateWizardIterator_Folder_Exists=Directory already exists: {0}
 MSG_fs_or_folder_does_not_exist=The target folder does not exist.
diff --git a/javafx/javafx2.project/src/org/netbeans/modules/javafx2/project/fxml/ConfigureFXMLControllerPanelVisual.java b/javafx/javafx2.project/src/org/netbeans/modules/javafx2/project/fxml/ConfigureFXMLControllerPanelVisual.java
index e8abd19..4a136b3 100644
--- a/javafx/javafx2.project/src/org/netbeans/modules/javafx2/project/fxml/ConfigureFXMLControllerPanelVisual.java
+++ b/javafx/javafx2.project/src/org/netbeans/modules/javafx2/project/fxml/ConfigureFXMLControllerPanelVisual.java
@@ -22,6 +22,7 @@ import java.awt.Component;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.io.File;
+
 import javax.swing.ComboBoxModel;
 import javax.swing.DefaultComboBoxModel;
 import javax.swing.JFileChooser;
@@ -31,6 +32,8 @@ import javax.swing.SwingUtilities;
 import javax.swing.event.ChangeListener;
 import javax.swing.event.DocumentEvent;
 import javax.swing.event.DocumentListener;
+
+import org.netbeans.modules.javafx2.project.JFXProjectUtils;
 import org.netbeans.spi.java.project.support.ui.PackageView;
 import org.netbeans.spi.project.ui.templates.support.Templates;
 import org.openide.WizardDescriptor;
@@ -675,6 +678,11 @@ public class ConfigureFXMLControllerPanelVisual extends JPanel implements Action
                     return false;
                 }
 
+                if (JFXProjectUtils.hasModuleInfo(support) && component.getPackageName().isEmpty()) {
+                    FXMLTemplateWizardIterator.setErrorMessage("WARN_ConfigureFXMLPanel_Default_Package_Invalid", settings); // NOI18N
+                    return false;
+                }
+
                 if (!FXMLTemplateWizardIterator.isValidPackage(component.getLocationFolder(), component.getPackageName())) {
                     FXMLTemplateWizardIterator.setErrorMessage("WARN_ConfigureFXMLPanel_Package_Invalid", settings); // NOI18N
                     return false;


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists