Author: dgeraskov
Date: 2008-08-26 07:18:46 -0400 (Tue, 26 Aug 2008)
New Revision: 9897
Modified:
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/HibernateConsoleMessages.java
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/HibernateConsoleMessages.properties
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/wizards/ConsoleConfigurationWizardPage.java
Log:
https://jira.jboss.org/jira/browse/JBIDE-2681
Modified:
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/HibernateConsoleMessages.java
===================================================================
---
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/HibernateConsoleMessages.java 2008-08-26
09:58:46 UTC (rev 9896)
+++
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/HibernateConsoleMessages.java 2008-08-26
11:18:46 UTC (rev 9897)
@@ -201,6 +201,8 @@
public static String ConsoleConfigurationWizardPage_mappings;
public static String ConsoleConfigurationWizardPage_name;
public static String ConsoleConfigurationWizardPage_name_must_specified;
+ public static String ConsoleConfigurationWizardPage_bad_name;
+ public static String ConsoleConfigurationWizardPage_bad_char;
public static String ConsoleConfigurationWizardPage_naming_strategy;
public static String ConsoleConfigurationWizardPage_need_to_specify_classpath;
public static String
ConsoleConfigurationWizardPage_both_hibernate_properties_and_hibernate_cfg_xml;
Modified:
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/HibernateConsoleMessages.properties
===================================================================
---
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/HibernateConsoleMessages.properties 2008-08-26
09:58:46 UTC (rev 9896)
+++
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/HibernateConsoleMessages.properties 2008-08-26
11:18:46 UTC (rev 9897)
@@ -192,6 +192,8 @@
ConsoleConfigurationWizardPage_mappings=Mappings
ConsoleConfigurationWizardPage_name=&Name:
ConsoleConfigurationWizardPage_name_must_specified=A name must be specified
+ConsoleConfigurationWizardPage_bad_name={0} is an invalid configuration name.
+ConsoleConfigurationWizardPage_bad_char=''{0}'' is an invalid character
in a configuration name.
ConsoleConfigurationWizardPage_naming_strategy=&Naming strategy:
ConsoleConfigurationWizardPage_need_to_specify_classpath=Need to specify a classpath when
not using a project classpath
ConsoleConfigurationWizardPage_both_hibernate_properties_and_hibernate_cfg_xml=If you
have both 'Property file' and 'Configuration file', the settings of
'Configuration file' will override the settings used in 'Property file'.
Modified:
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/wizards/ConsoleConfigurationWizardPage.java
===================================================================
---
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/wizards/ConsoleConfigurationWizardPage.java 2008-08-26
09:58:46 UTC (rev 9896)
+++
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/wizards/ConsoleConfigurationWizardPage.java 2008-08-26
11:18:46 UTC (rev 9897)
@@ -38,6 +38,7 @@
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Platform;
import org.eclipse.debug.core.DebugPlugin;
import org.eclipse.debug.core.ILaunchManager;
import org.eclipse.jdt.core.IJavaElement;
@@ -78,7 +79,6 @@
import org.eclipse.swt.widgets.TableItem;
import org.eclipse.swt.widgets.Text;
import org.hibernate.cfg.NamingStrategy;
-import org.hibernate.console.KnownConfigurations;
import
org.hibernate.console.preferences.ConsoleConfigurationPreferences.ConfigurationMode;
import org.hibernate.eclipse.console.EclipseConsoleConfiguration;
import org.hibernate.eclipse.console.EclipseConsoleConfigurationPreferences;
@@ -693,22 +693,10 @@
persistenceUnitNameText.setEnabled( getConfigurationMode().equals(
ConfigurationMode.JPA) );
- if(getConfigurationName()==null || getConfigurationName().trim().length() == 0) {
- updateStatus(HibernateConsoleMessages.ConsoleConfigurationWizardPage_name_must_specified);
+ String error = verifyConfigurationName();
+ if (error != null){
+ updateStatus(error);
return;
- } else {
- if(oldConfiguaration==null){
- ILaunchManager lm = DebugPlugin.getDefault().getLaunchManager();
- try {
- if (lm.isExistingLaunchConfigurationName(getConfigurationName())){
-
- updateStatus(HibernateConsoleMessages.ConsoleConfigurationWizardPage_config_name_already_exist);
- return;
- }
- } catch (CoreException e) {
- HibernateConsolePlugin.getDefault().logErrorMessage(e.getMessage(), e);
- }
- }
}
if(getProjectName()!=null && StringHelper.isNotEmpty(getProjectName().trim()))
{
@@ -766,7 +754,46 @@
updateStatus(null);
}
+
+ private String verifyConfigurationName(){
+ String currentName = getConfigurationName().trim();
+ if (currentName == null || currentName.length() < 1) {
+ return HibernateConsoleMessages.ConsoleConfigurationWizardPage_name_must_specified;
+ }
+
+ ILaunchManager lm = DebugPlugin.getDefault().getLaunchManager();
+ try {
+ if (lm.isExistingLaunchConfigurationName(currentName)) {
+ return
HibernateConsoleMessages.ConsoleConfigurationWizardPage_config_name_already_exist;
+ }
+ } catch (CoreException e) {
+ HibernateConsolePlugin.getDefault().logErrorMessage(e.getMessage(), e);
+ }
+
+ if (Platform.OS_WIN32.equals(Platform.getOS())) {
+ String[] badnames = new String[] { "aux", "clock$",
"com1", "com2", "com3", "com4", //$NON-NLS-1$
//$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
+ "com5", "com6", "com7", "com8",
"com9", "con", "lpt1", "lpt2", //$NON-NLS-1$
//$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$
//$NON-NLS-8$
+ "lpt3", "lpt4", "lpt5", "lpt6",
"lpt7", "lpt8", "lpt9", "nul", "prn" };
//$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
//$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$
+ for (int i = 0; i < badnames.length; i++) {
+ if (currentName.equals(badnames[i])) {
+ return NLS.bind(HibernateConsoleMessages.ConsoleConfigurationWizardPage_bad_name,
currentName);
+ }
+ }
+ }
+ // See if name contains any characters that we deem illegal.
+ // '@' and '&' are disallowed because they corrupt menu items.
+ char[] disallowedChars = new char[] { '@', '&', '\\',
'/', ':', '*', '?', '"', '<',
'>', '|', '\0' };
+ for (int i = 0; i < disallowedChars.length; i++) {
+ char c = disallowedChars[i];
+ if (currentName.indexOf(c) > -1) {
+ return NLS.bind(HibernateConsoleMessages.ConsoleConfigurationWizardPage_bad_char,
c);
+ }
+ }
+
+ return null;
+ }
+
String getProjectName() {
return projectNameText.getText();
}