Author: dgeraskov
Date: 2008-10-06 06:02:22 -0400 (Mon, 06 Oct 2008)
New Revision: 10680
Added:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/src/org/jboss/tools/hibernate/jpt/ui/internal/persistence/
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/src/org/jboss/tools/hibernate/jpt/ui/internal/persistence/details/
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/src/org/jboss/tools/hibernate/jpt/ui/internal/persistence/details/HibernatePropertiesComposite.java
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/src/org/jboss/tools/hibernate/jpt/ui/internal/platform/HibernateUiFactory.java
Modified:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/META-INF/MANIFEST.MF
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/src/org/jboss/tools/hibernate/jpt/ui/internal/platform/HibernatePlatformUI.java
Log:
Modified:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/META-INF/MANIFEST.MF
===================================================================
---
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/META-INF/MANIFEST.MF 2008-10-05
20:23:55 UTC (rev 10679)
+++
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/META-INF/MANIFEST.MF 2008-10-06
10:02:22 UTC (rev 10680)
@@ -15,7 +15,10 @@
org.eclipse.datatools.connectivity;bundle-version="1.1.0",
org.eclipse.jdt.launching;bundle-version="3.4.0",
org.eclipse.wst.common.project.facet.ui;bundle-version="1.3.0",
- org.eclipse.wst.common.frameworks;bundle-version="1.1.200"
+ org.eclipse.wst.common.frameworks;bundle-version="1.1.200",
+ org.eclipse.jpt.utility;bundle-version="1.2.0",
+ org.eclipse.ui.forms;bundle-version="3.3.100",
+ org.jboss.tools.hibernate.jpt.core;bundle-version="1.0.0"
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Bundle-Vendor: Hibernate Team
Added:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/src/org/jboss/tools/hibernate/jpt/ui/internal/persistence/details/HibernatePropertiesComposite.java
===================================================================
---
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/src/org/jboss/tools/hibernate/jpt/ui/internal/persistence/details/HibernatePropertiesComposite.java
(rev 0)
+++
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/src/org/jboss/tools/hibernate/jpt/ui/internal/persistence/details/HibernatePropertiesComposite.java 2008-10-06
10:02:22 UTC (rev 10680)
@@ -0,0 +1,316 @@
+/*******************************************************************************
+ * Copyright (c) 2007-2008 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at
http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributor:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.hibernate.jpt.ui.internal.persistence.details;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.jpt.core.context.persistence.PersistenceUnit;
+import org.eclipse.jpt.ui.WidgetFactory;
+import org.eclipse.jpt.ui.details.JpaPageComposite;
+import org.eclipse.jpt.ui.internal.widgets.AbstractFormPane;
+import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
+import org.eclipse.jpt.utility.internal.model.value.SimpleListValueModel;
+import org.eclipse.jpt.utility.model.event.PropertyChangeEvent;
+import org.eclipse.jpt.utility.model.listener.PropertyChangeListener;
+import org.eclipse.jpt.utility.model.value.PropertyValueModel;
+import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Text;
+import org.hibernate.eclipse.console.HibernateConsoleMessages;
+import org.hibernate.eclipse.console.utils.DialogSelectionHelper;
+import org.hibernate.eclipse.console.utils.DriverClassHelpers;
+import org.hibernate.eclipse.launch.PathHelper;
+import
org.jboss.tools.hibernate.jpt.core.internal.context.basic.BasicHibernateProperties;
+
+/**
+ * @author Dmitry Geraskov
+ *
+ */
+public class HibernatePropertiesComposite extends
AbstractFormPane<BasicHibernateProperties> implements
+ JpaPageComposite<PersistenceUnit> {
+
+ private Text cfgFile;
+
+ /**
+ * @param subjectHolder
+ * @param container
+ * @param widgetFactory
+ */
+ public HibernatePropertiesComposite(PropertyValueModel<BasicHibernateProperties>
subjectHolder,
+ Composite container, WidgetFactory widgetFactory) {
+ super(subjectHolder, container, widgetFactory);
+ }
+
+ protected void initializeLayout(Composite container) {
+
+ final DriverClassHelpers helper = new DriverClassHelpers();
+
+ Composite section = buildSection(container, "Basic properties");
+
+ final SimpleListValueModel<String> lvmDialect = new
SimpleListValueModel<String>(Arrays.asList(helper
+ .getDialectNames()));
+ PropertyValueModel<BasicHibernateProperties> p = getSubjectHolder();
+ List<String> drivers = new ArrayList<String>();
+ BasicHibernateProperties props = p.getValue();
+ if (props != null) {
+ String dialectClass = helper.getDialectClass(props.getDialect());
+ String[] driverClasses = helper.getDriverClasses(dialectClass);
+ drivers.addAll(Arrays.asList(driverClasses));
+ }
+
+ final SimpleListValueModel<String> lvmDriver = new
SimpleListValueModel<String>(drivers);
+
+ List<String> urls = new ArrayList<String>();
+ if (props != null) {
+ String driverClass = props.getDriver();
+ String[] connectionURLS = helper.getConnectionURLS(driverClass);
+ urls.addAll(Arrays.asList(connectionURLS));
+ }
+ final SimpleListValueModel<String> lvmUrl = new
SimpleListValueModel<String>(urls);
+
+ WritablePropertyValueModel<String> dialectHolder = buildDialectHolder();
+ WritablePropertyValueModel<String> driverHolder = buildDriverHolder();
+ WritablePropertyValueModel<String> urlHolder = buildUrlHolder();
+
+ Button b = buildButton(section,
HibernateConsoleMessages.CodeGenerationSettingsTab_browse, createSetupAction());
+ cfgFile = buildLabeledText(section,
+ HibernateConsoleMessages.ConsoleConfigurationPropertySource_config_file +
':', buildConfigFileHolder(),
+ b, null);
+
+ buildLabeledEditableCombo(
+ section,
+ HibernateConsoleMessages.NewConfigurationWizardPage_database_dialect,
+ lvmDialect,
+ dialectHolder,
+ null);
+
+ buildLabeledEditableCombo(
+ section,
+ HibernateConsoleMessages.NewConfigurationWizardPage_driver_class,
+ lvmDriver,
+ driverHolder,
+ null);
+
+ buildLabeledEditableCombo(
+ section,
+ HibernateConsoleMessages.NewConfigurationWizardPage_connection_url,
+ lvmUrl,
+ urlHolder,
+ null);
+
+ dialectHolder.addPropertyChangeListener(new PropertyChangeListener() {
+ public void propertyChanged(PropertyChangeEvent event) {
+ String dialectClass = helper.getDialectClass((String) event.getNewValue());
+ String[] driverClasses = helper.getDriverClasses(dialectClass);
+ lvmDriver.clear();
+ lvmDriver.addAll(Arrays.asList(driverClasses));
+ }
+ });
+
+ driverHolder.addPropertyChangeListener(new PropertyChangeListener() {
+ public void propertyChanged(PropertyChangeEvent event) {
+ String driverClass = helper.getDialectClass((String) event.getNewValue());
+ String[] connectionURLS = helper.getConnectionURLS(driverClass);
+ lvmUrl.clear();
+ lvmUrl.addAll(Arrays.asList(connectionURLS));
+ }
+ });
+
+ buildLabeledText(
+ section,
+ HibernateConsoleMessages.NewConfigurationWizardPage_default_schema,
+ buildSchemaDefaultHolder());
+
+ buildLabeledText(
+ section,
+ HibernateConsoleMessages.NewConfigurationWizardPage_default_catalog,
+ buildCatalogDefaultHolder());
+
+ buildLabeledText(
+ section,
+ HibernateConsoleMessages.NewConfigurationWizardPage_user_name,
+ buildUsernameHolder());
+
+ buildLabeledText(
+ section,
+ HibernateConsoleMessages.NewConfigurationWizardPage_password,
+ buildPasswordHolder());
+ }
+
+ private IPath getConfigurationFilePath() {
+ return PathHelper.pathOrNull(cfgFile.getText());
+ }
+
+ private Runnable createSetupAction() {
+ return new Runnable() {
+ public void run() {
+ IPath initialPath = getConfigurationFilePath();
+ IPath[] paths = DialogSelectionHelper.chooseFileEntries(getControl().getShell(),
initialPath,
+ new IPath[0],
+ HibernateConsoleMessages.ConsoleConfigurationMainTab_select_hibernate_cfg_xml_file,
+ HibernateConsoleMessages.ConsoleConfigurationMainTab_choose_file_to_use_as_hibernate_cfg_xml,
+ new String[] { HibernateConsoleMessages.ConsoleConfigurationMainTab_cfg_xml },
false, false,
+ true);
+ if (paths != null && paths.length == 1) {
+ // TODO update to subpath
+ cfgFile.setText((paths[0]).toOSString());
+ }
+ }
+ };
+ }
+
+ private WritablePropertyValueModel<String> buildConfigFileHolder() {
+ return new PropertyAspectAdapter<BasicHibernateProperties,
String>(getSubjectHolder(),
+ BasicHibernateProperties.CONFIG_FILE_PROPERTY) {
+ @Override
+ protected String buildValue_() {
+ return subject.getConfigurationFile();
+ }
+
+ @Override
+ protected void setValue_(String value) {
+ if ("".equals(value))value = null;//$NON-NLS-1$
+ subject.setConfigurationFile(value);
+ }
+ };
+ }
+
+ private WritablePropertyValueModel<String> buildDialectHolder() {
+ return new PropertyAspectAdapter<BasicHibernateProperties,
String>(getSubjectHolder(),
+ BasicHibernateProperties.DIALECT_PROPERTY) {
+ @Override
+ protected String buildValue_() {
+ return subject.getDialect();
+ }
+
+ @Override
+ protected void setValue_(String value) {
+ if ("".equals(value))value = null; //$NON-NLS-1$
+ subject.setDialect(value);
+ }
+ };
+ }
+
+ private WritablePropertyValueModel<String> buildDriverHolder() {
+ return new PropertyAspectAdapter<BasicHibernateProperties,
String>(getSubjectHolder(),
+ BasicHibernateProperties.DRIVER_PROPERTY) {
+ @Override
+ protected String buildValue_() {
+ return subject.getDriver();
+ }
+
+ @Override
+ protected void setValue_(String value) {
+ if ("".equals(value))value = null;//$NON-NLS-1$
+ subject.setDriver(value);
+ }
+ };
+ }
+
+ private WritablePropertyValueModel<String> buildUrlHolder() {
+ return new PropertyAspectAdapter<BasicHibernateProperties,
String>(getSubjectHolder(),
+ BasicHibernateProperties.URL_PROPERTY) {
+ @Override
+ protected String buildValue_() {
+ return subject.getUrl();
+ }
+
+ @Override
+ protected void setValue_(String value) {
+ if ("".equals(value))value = null;//$NON-NLS-1$
+ subject.setUrl(value);
+ }
+ };
+ }
+
+ private WritablePropertyValueModel<String> buildSchemaDefaultHolder() {
+ return new PropertyAspectAdapter<BasicHibernateProperties,
String>(getSubjectHolder(),
+ BasicHibernateProperties.SCHEMA_DEFAULT_PROPERTY) {
+ @Override
+ protected String buildValue_() {
+ return subject.getSchemaDefault();
+ }
+
+ @Override
+ protected void setValue_(String value) {
+ if ("".equals(value))value = null;//$NON-NLS-1$
+ subject.setSchemaDefault(value);
+ }
+ };
+ }
+
+ private WritablePropertyValueModel<String> buildCatalogDefaultHolder() {
+ return new PropertyAspectAdapter<BasicHibernateProperties,
String>(getSubjectHolder(),
+ BasicHibernateProperties.CATALOG_DEFAULT_PROPERTY) {
+ @Override
+ protected String buildValue_() {
+ return subject.getCatalogDefault();
+ }
+
+ @Override
+ protected void setValue_(String value) {
+ if ("".equals(value))value = null;//$NON-NLS-1$
+ subject.setCatalogDefault(value);
+ }
+ };
+ }
+
+ private WritablePropertyValueModel<String> buildUsernameHolder() {
+ return new PropertyAspectAdapter<BasicHibernateProperties,
String>(getSubjectHolder(),
+ BasicHibernateProperties.USERNAME_PROPERTY) {
+ @Override
+ protected String buildValue_() {
+ return subject.getUsername();
+ }
+
+ @Override
+ protected void setValue_(String value) {
+ if ("".equals(value))value = null;//$NON-NLS-1$
+ subject.setUsername(value);
+ }
+ };
+ }
+
+ private WritablePropertyValueModel<String> buildPasswordHolder() {
+ return new PropertyAspectAdapter<BasicHibernateProperties,
String>(getSubjectHolder(),
+ BasicHibernateProperties.PASSWORD_PROPERTY) {
+ @Override
+ protected String buildValue_() {
+ return subject.getPassword();
+ }
+
+ @Override
+ protected void setValue_(String value) {
+ if ("".equals(value))value = null;//$NON-NLS-1$
+ subject.setPassword(value);
+ }
+ };
+ }
+
+ public String getHelpID() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public Image getPageImage() {
+ return null;
+ }
+
+ public String getPageText() {
+ return "Hibernate";
+ }
+
+}
Property changes on:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/src/org/jboss/tools/hibernate/jpt/ui/internal/persistence/details/HibernatePropertiesComposite.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Name: svn:keywords
+ Author Id Revision Date
Name: svn:eol-style
+ native
Modified:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/src/org/jboss/tools/hibernate/jpt/ui/internal/platform/HibernatePlatformUI.java
===================================================================
---
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/src/org/jboss/tools/hibernate/jpt/ui/internal/platform/HibernatePlatformUI.java 2008-10-05
20:23:55 UTC (rev 10679)
+++
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/src/org/jboss/tools/hibernate/jpt/ui/internal/platform/HibernatePlatformUI.java 2008-10-06
10:02:22 UTC (rev 10680)
@@ -21,6 +21,7 @@
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.wizard.WizardDialog;
import org.eclipse.jpt.core.JpaProject;
+import org.eclipse.jpt.ui.JpaUiFactory;
import org.eclipse.jpt.ui.internal.platform.generic.GenericPlatformUi;
import org.hibernate.eclipse.launch.HibernateLaunchConstants;
import org.jboss.tools.hibernate.jpt.ui.HibernateJptUIPlugin;
@@ -53,7 +54,12 @@
WizardDialog dialog = new WizardDialog(null, wizard);
dialog.open();
}
-
+
+ @Override
+ protected JpaUiFactory createJpaUiFactory() {
+ return new HibernateUiFactory();
+ }
+
public static ILaunchConfigurationWorkingCopy createDefaultLaunchConfig(String
projectName) {
ILaunchManager launchManager = DebugPlugin.getDefault().getLaunchManager();
ILaunchConfigurationType launchConfigurationType = launchManager
Added:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/src/org/jboss/tools/hibernate/jpt/ui/internal/platform/HibernateUiFactory.java
===================================================================
---
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/src/org/jboss/tools/hibernate/jpt/ui/internal/platform/HibernateUiFactory.java
(rev 0)
+++
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/src/org/jboss/tools/hibernate/jpt/ui/internal/platform/HibernateUiFactory.java 2008-10-06
10:02:22 UTC (rev 10680)
@@ -0,0 +1,61 @@
+package org.jboss.tools.hibernate.jpt.ui.internal.platform;
+
+import java.util.ArrayList;
+import java.util.ListIterator;
+
+import org.eclipse.jpt.core.context.persistence.PersistenceUnit;
+import org.eclipse.jpt.ui.WidgetFactory;
+import org.eclipse.jpt.ui.details.JpaPageComposite;
+import org.eclipse.jpt.ui.internal.GenericJpaUiFactory;
+import
org.eclipse.jpt.ui.internal.persistence.details.PersistenceUnitConnectionComposite;
+import org.eclipse.jpt.ui.internal.persistence.details.PersistenceUnitGeneralComposite;
+import
org.eclipse.jpt.ui.internal.persistence.details.PersistenceUnitPropertiesComposite;
+import org.eclipse.jpt.utility.internal.model.value.TransformationPropertyValueModel;
+import org.eclipse.jpt.utility.model.value.PropertyValueModel;
+import org.eclipse.swt.widgets.Composite;
+import org.jboss.tools.hibernate.jpt.core.internal.context.HibernatePersistenceUnit;
+import
org.jboss.tools.hibernate.jpt.core.internal.context.basic.BasicHibernateProperties;
+import
org.jboss.tools.hibernate.jpt.ui.internal.persistence.details.HibernatePropertiesComposite;
+
+public class HibernateUiFactory extends GenericJpaUiFactory {
+
+ public ListIterator<JpaPageComposite<PersistenceUnit>>
createPersistenceUnitComposites(
+ PropertyValueModel<PersistenceUnit> subjectHolder, Composite parent,
WidgetFactory widgetFactory) {
+
+ ArrayList<JpaPageComposite<PersistenceUnit>> pages = new
ArrayList<JpaPageComposite<PersistenceUnit>>(1);
+
+ pages.add(new PersistenceUnitGeneralComposite(subjectHolder, parent, widgetFactory));
+ pages.add(new PersistenceUnitConnectionComposite(subjectHolder, parent,
widgetFactory));
+ pages.add(new PersistenceUnitPropertiesComposite(subjectHolder, parent,
widgetFactory));
+
+ // ************Hibernate pages***************
+ PropertyValueModel<HibernatePersistenceUnit> hibernatePersistenceUnitHolder =
this
+ .buildHibernatePersistenceUnitHolder(subjectHolder);
+
+ PropertyValueModel<BasicHibernateProperties> basicHolder =
this.buildBasicHolder(hibernatePersistenceUnitHolder);
+ pages.add(new HibernatePropertiesComposite(basicHolder, parent, widgetFactory));
+
+ return pages.listIterator();
+ }
+
+ private PropertyValueModel<BasicHibernateProperties> buildBasicHolder(
+ PropertyValueModel<HibernatePersistenceUnit> subjectHolder) {
+ return new TransformationPropertyValueModel<HibernatePersistenceUnit,
BasicHibernateProperties>(subjectHolder) {
+ @Override
+ protected BasicHibernateProperties transform_(HibernatePersistenceUnit value) {
+ return value.getBasicProperties();
+ }
+ };
+ }
+
+ private PropertyValueModel<HibernatePersistenceUnit>
buildHibernatePersistenceUnitHolder(
+ PropertyValueModel<PersistenceUnit> subjectHolder) {
+ return new TransformationPropertyValueModel<PersistenceUnit,
HibernatePersistenceUnit>(subjectHolder) {
+ @Override
+ protected HibernatePersistenceUnit transform_(PersistenceUnit value) {
+ return (HibernatePersistenceUnit) value;
+ }
+ };
+ }
+
+}
\ No newline at end of file
Property changes on:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/src/org/jboss/tools/hibernate/jpt/ui/internal/platform/HibernateUiFactory.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Name: svn:keywords
+ Author Id Revision Date
Name: svn:eol-style
+ native