Author: dgeraskov
Date: 2008-11-11 06:06:25 -0500 (Tue, 11 Nov 2008)
New Revision: 11661
Modified:
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/EclipseConsoleConfigurationPreferences.java
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/EclipseLaunchConsoleConfigurationPreferences.java
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/launch/ConsoleConfigurationOptionsTab.java
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/launch/IConsoleConfigurationLaunchConstants.java
Log:
https://jira.jboss.org/jira/browse/JBIDE-2740
dialect option added.
Modified:
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/EclipseConsoleConfigurationPreferences.java
===================================================================
---
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/EclipseConsoleConfigurationPreferences.java 2008-11-11
11:06:19 UTC (rev 11660)
+++
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/EclipseConsoleConfigurationPreferences.java 2008-11-11
11:06:25 UTC (rev 11661)
@@ -62,8 +62,8 @@
ConfigurationMode cmode, String projectName, boolean useProjectClasspath,
String entityResolver, IPath cfgFile, IPath propertyFilename,
IPath[] mappings, IPath[] classpaths, String persistenceUnitName, String
namingStrategy,
- String connectionProfile, boolean connectionProfileFlag) {
- super(configName, cmode, projectName, useProjectClasspath, entityResolver,
persistenceUnitName, namingStrategy, connectionProfile);
+ String connectionProfile, String dialectName) {
+ super(configName, cmode, projectName, useProjectClasspath, entityResolver,
persistenceUnitName, namingStrategy, connectionProfile, dialectName);
this.cfgFile = cfgFile;
this.propertyFilename = propertyFilename;
this.mappings = mappings;
Modified:
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/EclipseLaunchConsoleConfigurationPreferences.java
===================================================================
---
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/EclipseLaunchConsoleConfigurationPreferences.java 2008-11-11
11:06:19 UTC (rev 11660)
+++
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/console/EclipseLaunchConsoleConfigurationPreferences.java 2008-11-11
11:06:25 UTC (rev 11661)
@@ -15,11 +15,14 @@
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
+import org.eclipse.datatools.connectivity.IConnectionProfile;
+import org.eclipse.datatools.connectivity.ProfileManager;
import org.eclipse.debug.core.ILaunchConfiguration;
import org.eclipse.osgi.util.NLS;
import org.hibernate.console.HibernateConsoleRuntimeException;
import org.hibernate.console.preferences.ConsoleConfigurationPreferences;
import org.hibernate.eclipse.console.utils.ClassLoaderHelper;
+import org.hibernate.eclipse.console.utils.DriverClassHelpers;
import org.hibernate.eclipse.launch.IConsoleConfigurationLaunchConstants;
import org.w3c.dom.Element;
@@ -160,5 +163,16 @@
public void writeStateTo(Element node) {
throw new
IllegalStateException(HibernateConsoleMessages.EclipseLaunchConsoleConfigurationPreferences_cannot_write_to_xml);
}
+
+ public String getDialectName() {
+ String dialect = getAttribute( IConsoleConfigurationLaunchConstants.DIALECT, null );
+ // determine dialect when connection profile is used
+ if (dialect == null && getConnectionProfileName() != null) {
+ IConnectionProfile profile =
ProfileManager.getInstance().getProfileByName(getConnectionProfileName());
+ String driver =
profile.getProperties(profile.getProviderId()).getProperty("org.eclipse.datatools.connectivity.db.driverClass");
+ dialect = new DriverClassHelpers().getDialect(driver);
+ }
+ return dialect;
+ }
}
Modified:
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/launch/ConsoleConfigurationOptionsTab.java
===================================================================
---
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/launch/ConsoleConfigurationOptionsTab.java 2008-11-11
11:06:19 UTC (rev 11660)
+++
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/launch/ConsoleConfigurationOptionsTab.java 2008-11-11
11:06:25 UTC (rev 11661)
@@ -10,7 +10,9 @@
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Text;
@@ -18,13 +20,15 @@
import org.hibernate.eclipse.console.HibernateConsoleMessages;
import org.hibernate.eclipse.console.HibernateConsolePlugin;
import org.hibernate.eclipse.console.utils.DialogSelectionHelper;
+import org.hibernate.eclipse.console.utils.DriverClassHelpers;
import org.xml.sax.EntityResolver;
public class ConsoleConfigurationOptionsTab extends ConsoleConfigurationTab {
-
+ private Combo dialectNameCombo;
private Text entityResolverClassNameText;
private Text namingStrategyClassNameText;
+ private DriverClassHelpers helper = new DriverClassHelpers();
public void createControl(Composite parent) {
Font font = parent.getFont();
@@ -35,10 +39,22 @@
comp.setLayout(layout);
comp.setFont(font);
+ createDialectNameCombo( comp );
createNamingStrategyClassNameEditor( comp );
createEntityResolverClassNameEditor( comp );
}
+
+ private void createDialectNameCombo(Composite parent) {
+ Group group = createGroup( parent,
HibernateConsoleMessages.NewConfigurationWizardPage_database_dialect );
+
+ dialectNameCombo = new Combo(group, SWT.NONE);
+ dialectNameCombo.setItems(helper.getDialectNames());
+ Font font=parent.getFont();
+ GridData gd = new GridData(GridData.FILL_HORIZONTAL);
+ dialectNameCombo.setLayoutData(gd);
+ dialectNameCombo.setFont(font);
+ }
private void createNamingStrategyClassNameEditor(Composite parent) {
Group group = createGroup( parent,
HibernateConsoleMessages.ConsoleConfigurationOptionsTab_naming_strategy );
@@ -71,6 +87,11 @@
public void initializeFrom(ILaunchConfiguration configuration) {
try {
+ String dialect = configuration.getAttribute(
IConsoleConfigurationLaunchConstants.DIALECT , (String)null );
+ if (dialect != null){
+ String dialectShort = helper.getShortDialectName(dialect);
+ dialectNameCombo.setText( dialectShort != null ? dialectShort : dialect );
+ }
namingStrategyClassNameText.setText( configuration.getAttribute(
IConsoleConfigurationLaunchConstants.NAMING_STRATEGY, "" ) ); //$NON-NLS-1$
entityResolverClassNameText.setText( configuration.getAttribute(
IConsoleConfigurationLaunchConstants.ENTITY_RESOLVER, "" ) ); //$NON-NLS-1$
}
@@ -80,6 +101,14 @@
}
public void performApply(ILaunchConfigurationWorkingCopy configuration) {
+ String dialect = nonEmptyTrimOrNull( dialectNameCombo.getText() );
+ if ( dialect != null ) {
+ String dialectFull = helper.getDialectClass(dialect);
+ /*It can be unknown dialect*/
+ if (dialectFull != null) dialect = dialectFull;
+ }
+
+ configuration.setAttribute( IConsoleConfigurationLaunchConstants.DIALECT,
nonEmptyTrimOrNull( dialect ) );
configuration.setAttribute( IConsoleConfigurationLaunchConstants.NAMING_STRATEGY,
nonEmptyTrimOrNull( namingStrategyClassNameText ) );
configuration.setAttribute( IConsoleConfigurationLaunchConstants.ENTITY_RESOLVER,
nonEmptyTrimOrNull( entityResolverClassNameText ) );
}
Modified:
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/launch/IConsoleConfigurationLaunchConstants.java
===================================================================
---
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/launch/IConsoleConfigurationLaunchConstants.java 2008-11-11
11:06:19 UTC (rev 11660)
+++
trunk/hibernatetools/plugins/org.hibernate.eclipse.console/src/org/hibernate/eclipse/launch/IConsoleConfigurationLaunchConstants.java 2008-11-11
11:06:25 UTC (rev 11661)
@@ -5,6 +5,7 @@
public interface IConsoleConfigurationLaunchConstants {
public static final String ID = "org.hibernate.eclipse.launch"; //$NON-NLS-1$
+ public static final String DIALECT = ID + "DIALECT"; //$NON-NLS-1$
public static final String NAMING_STRATEGY = ID + "NAMING_STRATEGY";
//$NON-NLS-1$
public static final String ENTITY_RESOLVER = ID + "ENTITY_RESOLVER";
//$NON-NLS-1$
public static final String PROPERTY_FILE = ID + ".PROPERTY_FILE";
//$NON-NLS-1$