diff --git a/java.project/src/org/netbeans/modules/java/project/JavaTargetChooserPanel.java b/java.project/src/org/netbeans/modules/java/project/JavaTargetChooserPanel.java --- a/java.project/src/org/netbeans/modules/java/project/JavaTargetChooserPanel.java +++ b/java.project/src/org/netbeans/modules/java/project/JavaTargetChooserPanel.java @@ -379,15 +379,34 @@ return true; } + static String getTypeFromFQN(String name) { + int lastIndexOf = name.lastIndexOf('.'); + final boolean isFQN = (lastIndexOf > 0 && lastIndexOf < name.length()); + if (isFQN) { + return name.substring(lastIndexOf + 1); + } + return null; + } + + static String getPackageFromFQN(String name) { + int lastIndexOf = name.lastIndexOf('.'); + final boolean isFQN = (lastIndexOf > 0 && lastIndexOf < name.length()); + if (isFQN) { + return name.substring(0, lastIndexOf); + } + return null; + } + static boolean isValidTypeIdentifier(String ident) { - if (ident == null || "".equals(ident) || !Utilities.isJavaIdentifier( ident ) ) { - return false; - } - else { - return true; - } + final boolean javaIdentifier = Utilities.isJavaIdentifier(ident); + final boolean javaIdenfifierWithinFQN = isValidTypeIdentifierWithinFQN(ident); + return ident != null && !"".equals(ident) && (javaIdentifier || javaIdenfifierWithinFQN); } - + + static boolean isValidTypeIdentifierWithinFQN(String ident) { + String type = getTypeFromFQN(ident); + return type != null && Utilities.isJavaIdentifier(type); + } // helper methods copied from project/ui/ProjectUtilities /** Checks if the given file name can be created in the target folder. * diff --git a/java.project/src/org/netbeans/modules/java/project/JavaTargetChooserPanelGUI.form b/java.project/src/org/netbeans/modules/java/project/JavaTargetChooserPanelGUI.form --- a/java.project/src/org/netbeans/modules/java/project/JavaTargetChooserPanelGUI.form +++ b/java.project/src/org/netbeans/modules/java/project/JavaTargetChooserPanelGUI.form @@ -1,4 +1,4 @@ - +