Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortle2008-05-12 12:54:13 -0400
committertle2008-05-12 12:54:13 -0400
commit2758e338bcdfa15952b1cb31899f7eaaa866783c (patch)
tree4840e26274a57d5903817483b6dd4626b461b358
parent4c5c3fc578b7179c6d7ba91c994689426198c8ac (diff)
downloadwebtools.dali-2758e338bcdfa15952b1cb31899f7eaaa866783c.tar.gz
webtools.dali-2758e338bcdfa15952b1cb31899f7eaaa866783c.tar.xz
webtools.dali-2758e338bcdfa15952b1cb31899f7eaaa866783c.zip
229511 - EclipseLink persistence.xml DDL Gen Location Browse button does not work
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.ui/property_files/eclipselink_ui.properties1
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/EclipseLinkUiMessages.java1
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/schema/generation/DdlGenerationLocationComposite.java18
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/widgets/FolderChooserPane.java145
4 files changed, 154 insertions, 11 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/property_files/eclipselink_ui.properties b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/property_files/eclipselink_ui.properties
index 0b9362df53..7ed6517730 100644
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/property_files/eclipselink_ui.properties
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/property_files/eclipselink_ui.properties
@@ -89,6 +89,7 @@ DdlGenerationTypeComposite_drop_and_create_tables = Drop and Create Tables
PersistenceXmlSchemaGenerationTab_ddlGenerationLocationLabel = DDL Generation Location:
DdlGenerationLocationComposite_dialogTitle = Generation Location
+DdlGenerationLocationComposite_dialogMessage = Choose a folder for the generated DDL files:
# Caching
PersistenceXmlCachingTab_title = Caching
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/EclipseLinkUiMessages.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/EclipseLinkUiMessages.java
index c950fbb2ff..00f1e4af42 100644
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/EclipseLinkUiMessages.java
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/EclipseLinkUiMessages.java
@@ -111,6 +111,7 @@ public class EclipseLinkUiMessages extends NLS
public static String PersistenceXmlSchemaGenerationTab_ddlGenerationLocationLabel;
public static String DdlGenerationLocationComposite_dialogTitle;
+ public static String DdlGenerationLocationComposite_dialogMessage;
// Caching
public static String PersistenceXmlCachingTab_title;
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/schema/generation/DdlGenerationLocationComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/schema/generation/DdlGenerationLocationComposite.java
index 8913542b47..2d8705ee3c 100644
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/schema/generation/DdlGenerationLocationComposite.java
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/schema/generation/DdlGenerationLocationComposite.java
@@ -10,10 +10,11 @@
package org.eclipse.jpt.eclipselink.ui.internal.schema.generation;
import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.jpt.eclipselink.core.internal.context.schema.generation.SchemaGeneration;
import org.eclipse.jpt.eclipselink.ui.internal.EclipseLinkUiMessages;
import org.eclipse.jpt.ui.internal.widgets.AbstractPane;
-import org.eclipse.jpt.ui.internal.widgets.FileChooserPane;
+import org.eclipse.jpt.ui.internal.widgets.FolderChooserPane;
import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
import org.eclipse.osgi.util.NLS;
@@ -32,12 +33,13 @@ public class DdlGenerationLocationComposite extends AbstractPane<SchemaGeneratio
@Override
protected void initializeLayout(Composite container) {
-
- new FileChooserPane<SchemaGeneration>(this, container) {
+
+ new FolderChooserPane<SchemaGeneration>(this, container) {
@Override
protected WritablePropertyValueModel<String> buildTextHolder() {
- return new PropertyAspectAdapter<SchemaGeneration, String>(getSubjectHolder(), SchemaGeneration.APPLICATION_LOCATION_PROPERTY) {
+ return new PropertyAspectAdapter<SchemaGeneration, String>(
+ getSubjectHolder(), SchemaGeneration.APPLICATION_LOCATION_PROPERTY) {
@Override
protected String buildValue_() {
@@ -75,8 +77,7 @@ public class DdlGenerationLocationComposite extends AbstractPane<SchemaGeneratio
@Override
protected String dialogMessage() {
- //TODO
- return "TODO";
+ return EclipseLinkUiMessages.DdlGenerationLocationComposite_dialogMessage;
}
@Override
@@ -85,11 +86,6 @@ public class DdlGenerationLocationComposite extends AbstractPane<SchemaGeneratio
}
@Override
- protected IResource getDialogInput() {
- return null;
- }
-
- @Override
protected String labelText() {
return EclipseLinkUiMessages.PersistenceXmlSchemaGenerationTab_ddlGenerationLocationLabel;
}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/widgets/FolderChooserPane.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/widgets/FolderChooserPane.java
new file mode 100644
index 0000000000..618578bc65
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/widgets/FolderChooserPane.java
@@ -0,0 +1,145 @@
+/*******************************************************************************
+ * Copyright (c) 2008 Oracle. All rights reserved.
+ * This program and the accompanying materials are 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.
+ *
+ * Contributors:
+ * Oracle - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.ui.internal.widgets;
+
+import org.eclipse.jpt.utility.model.Model;
+import org.eclipse.jpt.utility.model.value.PropertyValueModel;
+import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.DirectoryDialog;
+
+/**
+ * This chooser allows the user to choose a folder when browsing.
+ * <p>
+ * Here the layout of this pane:
+ * <pre>
+ * -----------------------------------------------------------------------------
+ * | ---------------------------------------------------- ------------- |
+ * | Label: | I | | Browse... | |
+ * | ---------------------------------------------------- ------------- |
+ * -----------------------------------------------------------------------------</pre>
+ *
+ * @version 2.0
+ * @since 2.0
+ */
+public abstract class FolderChooserPane<T extends Model> extends AbstractChooserPane<T>
+{
+ private WritablePropertyValueModel<String> textHolder;
+
+ /**
+ * Creates a new <code>FolderChooserPane</code>.
+ *
+ * @param parentPane The parent pane of this one
+ * @param parent The parent container
+ */
+ public FolderChooserPane(AbstractPane<? extends T> parentPane,
+ Composite parent) {
+
+ super(parentPane, parent);
+ }
+
+ /**
+ * Creates a new <code>FolderChooserPane</code>.
+ *
+ * @param parentPane The parent container of this one
+ * @param subjectHolder The holder of this pane's subject
+ * @param parent The parent container
+ */
+ public FolderChooserPane(AbstractPane<?> parentPane,
+ PropertyValueModel<? extends T> subjectHolder,
+ Composite parent) {
+
+ super(parentPane, subjectHolder, parent);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected Runnable buildBrowseAction() {
+ return new Runnable() {
+ public void run() {
+ promptFolder();
+ }
+ };
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected Control buildMainControl(Composite container) {
+ return buildText(container, textHolder);
+ }
+
+ /**
+ * Creates the value holder of the subject's property.
+ *
+ * @return The holder of the class name
+ */
+ protected abstract WritablePropertyValueModel<String> buildTextHolder();
+
+ /**
+ * Returns the message to be shown in the selection dialog.
+ *
+ * @return A non-<code>null</code> string shown above the text field of the
+ * selection dialog
+ */
+ protected abstract String dialogMessage();
+
+ /**
+ * Returns the selection dialog's title.
+ *
+ * @return A non-<code>null</code> string
+ */
+ protected abstract String dialogTitle();
+
+ /**
+ * Returns the path that the dialog will use to filter the directories it
+ * shows to the argument, which may be null. If the string is null, then the
+ * operating system's default filter path will be used.
+ * <p>
+ * Note that the path string is platform dependent. For convenience, either
+ * '/' or '\' can be used as a path separator.
+ * </p>
+ *
+ * @return The filter path
+ */
+ protected String filterPath() {
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ protected void initialize() {
+ super.initialize();
+ textHolder = buildTextHolder();
+ }
+
+ /**
+ * The browse button was clicked, its action invokes this action which should
+ * prompt the user to select a folder and set it.
+ */
+ protected void promptFolder() {
+
+ DirectoryDialog dialog = new DirectoryDialog(shell());
+ dialog.setMessage(dialogMessage());
+ dialog.setText(dialogTitle());
+ dialog.setFilterPath(filterPath());
+ String directory = dialog.open();
+
+ if (directory != null) {
+ textHolder.setValue(directory);
+ }
+ }
+}

Back to the top