Skip to main content
aboutsummaryrefslogtreecommitdiffstats
path: root/jaxb
diff options
context:
space:
mode:
authortle2012-07-13 00:27:00 +0000
committertle2012-07-13 00:27:00 +0000
commit296e9a86d7e134c4538f1724a83c6a66fda41dda (patch)
tree9afe0062e79d781dc3ff3e814f68c65310a9da32 /jaxb
parent2110afedf1e96d8c1020703338c16fe135b80214 (diff)
downloadwebtools.dali-296e9a86d7e134c4538f1724a83c6a66fda41dda.tar.gz
webtools.dali-296e9a86d7e134c4538f1724a83c6a66fda41dda.tar.xz
webtools.dali-296e9a86d7e134c4538f1724a83c6a66fda41dda.zip
322550 - JAXB Class Generation wizard should display the default package
Diffstat (limited to 'jaxb')
-rw-r--r--jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/prefs/JaxbPreferencesManager.java27
-rw-r--r--jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/wizards/classesgen/ClassesGeneratorWizardPage.java41
2 files changed, 63 insertions, 5 deletions
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/prefs/JaxbPreferencesManager.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/prefs/JaxbPreferencesManager.java
index cdbc71baf4..22c8f80049 100644
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/prefs/JaxbPreferencesManager.java
+++ b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/prefs/JaxbPreferencesManager.java
@@ -82,6 +82,15 @@ public class JaxbPreferencesManager
*/
public static final String SCHEMA_LOCATION_PREF_KEY = "location"; //$NON-NLS-1$
+ /**
+ * The node for storing a JAXB class generator in the project's preferences.
+ */
+ protected static final String CLASS_GEN_PREF_NODE = "classgen"; //$NON-NLS-1$
+
+ /**
+ * The key for storing a package name in the project's preferences
+ */
+ protected static final String PACKAGE_PREF_KEY = "package"; //$NON-NLS-1$
// ********** preferences **********
@@ -244,6 +253,24 @@ public class JaxbPreferencesManager
return schemaLocations;
}
+ public String getClassGenPackage() {
+ Preferences prefs = this.getProjectPreferences();
+ Preferences classgenPrefs = prefs.node(CLASS_GEN_PREF_NODE);
+ return classgenPrefs.get(PACKAGE_PREF_KEY, ""); //$NON-NLS-1$
+ }
+
+ public void setClassGenPackage(String packageName) {
+ Preferences prefs = this.getProjectPreferences();
+ Preferences classgenPrefs = prefs.node(CLASS_GEN_PREF_NODE);
+ classgenPrefs.put(PACKAGE_PREF_KEY, packageName);
+ try {
+ classgenPrefs.flush();
+ }
+ catch (BackingStoreException bse) {
+ JptJaxbCorePlugin.log(bse);
+ }
+ }
+
public void setSchemaLocations(List<String> schemaLocations) {
Preferences prefs = this.getProjectPreferences();
Preferences schemasPrefs = prefs.node(SCHEMAS_PREF_NODE);
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/wizards/classesgen/ClassesGeneratorWizardPage.java b/jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/wizards/classesgen/ClassesGeneratorWizardPage.java
index 762aea5275..12773e3828 100644
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/wizards/classesgen/ClassesGeneratorWizardPage.java
+++ b/jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/wizards/classesgen/ClassesGeneratorWizardPage.java
@@ -1,5 +1,5 @@
/*******************************************************************************
-* Copyright (c) 2010, 2011 Oracle. All rights reserved.
+* Copyright (c) 2010, 2012 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.
@@ -53,6 +53,7 @@ import org.eclipse.jpt.common.utility.internal.ArrayTools;
import org.eclipse.jpt.common.utility.internal.StringTools;
import org.eclipse.jpt.jaxb.core.JptJaxbCorePlugin;
import org.eclipse.jpt.jaxb.core.internal.gen.ClassesGenerator;
+import org.eclipse.jpt.jaxb.core.internal.prefs.JaxbPreferencesManager;
import org.eclipse.jpt.jaxb.core.platform.JaxbPlatformDescription;
import org.eclipse.jpt.jaxb.core.platform.JaxbPlatformGroupDescription;
import org.eclipse.jpt.jaxb.ui.JptJaxbUiPlugin;
@@ -143,12 +144,20 @@ public class ClassesGeneratorWizardPage extends NewTypeWizardPage {
@Override
protected IStatus packageChanged() {
IStatus status = super.packageChanged();
- IPackageFragment packageFragment = getPackageFragment();
- if(!status.matches(IStatus.ERROR)) {
+ IPackageFragment packageFragment = this.getPackageFragment();
+ if( ! status.matches(IStatus.ERROR)) {
+ String newPackageName = packageFragment.getElementName();
+
+ if( ! this.isPackageInitialInitialization(newPackageName)) {
+ JaxbPreferencesManager prefs = new JaxbPreferencesManager(this.getJavaProject().getProject());
+ if( ! newPackageName.equals(prefs.getClassGenPackage())) {
+ prefs.setClassGenPackage(newPackageName);
+ }
+ }
this.targetPackage = packageFragment.getElementName();
}
return status;
- }
+ }
@Override
protected IStatus containerChanged() {
@@ -199,11 +208,18 @@ public class ClassesGeneratorWizardPage extends NewTypeWizardPage {
}
this.validateProjectClasspath();
+ if(this.getPackageText().equals("")) { //$NON-NLS-1$
+ String packagePref = (new JaxbPreferencesManager(this.getJavaProject().getProject()).getClassGenPackage());
+ if( ! StringTools.stringIsEmpty(packagePref)) {
+ this.setPackageName(this.getPackageFragmentRoot(), packagePref);
+ }
+ }
+
String schemaName = ((ClassesGeneratorWizard) getWizard()).getLocalSchemaUri().lastSegment();
this.setTitle(NLS.bind(JptJaxbUiMessages.ClassesGeneratorWizardPage_title, schemaName));
}
}
-
+
/**
* Override to allow selection of source folder in current project only
* @see org.eclipse.jdt.ui.wizards.NewContainerWizardPage#chooseContainer()
@@ -445,6 +461,21 @@ public class ClassesGeneratorWizardPage extends NewTypeWizardPage {
return jaxbPlatformGroup == ECLIPSELINK_PLATFORM_GROUP;
}
+ private boolean isPackageInitialInitialization(String newPackageName) {
+ return this.targetPackage == null && newPackageName.equals(""); //$NON-NLS-1$
+ }
+
+ private void setPackageName(IPackageFragmentRoot packageFragmentRoot, String packageName) {
+ if( packageName == null || packageName.length() == 0 || packageFragmentRoot == null) {
+ return;
+ }
+ IPackageFragment packageFragment = packageFragmentRoot.getPackageFragment(packageName);
+ this.setPackageFragment(packageFragment, true);
+
+ JaxbPreferencesManager prefs = new JaxbPreferencesManager(this.getJavaProject().getProject());
+ prefs.setClassGenPackage(packageName);
+ }
+
private void displayWarning(String message) {
this.setMessage(message, WARNING);
}

Back to the top