Author: scabanovich
Date: 2012-02-13 21:19:52 -0500 (Mon, 13 Feb 2012)
New Revision: 38674
Added:
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/SeamDSXMLWizard.java
Modified:
trunk/seam/plugins/org.jboss.tools.seam.ui/plugin.xml
Log:
JBIDE-10787
https://issues.jboss.org/browse/JBIDE-10787
Initial implementation for New DS XML wizard.
Modified: trunk/seam/plugins/org.jboss.tools.seam.ui/plugin.xml
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.ui/plugin.xml 2012-02-14 00:06:26 UTC (rev
38673)
+++ trunk/seam/plugins/org.jboss.tools.seam.ui/plugin.xml 2012-02-14 02:19:52 UTC (rev
38674)
@@ -97,6 +97,20 @@
</selection>
</wizard>
+ <wizard
+ name="New DS XML"
+ icon="$nl$/icons/seam16.png"
+ category="org.jboss.tools.seam.ui"
+ class="org.jboss.tools.seam.ui.wizard.SeamDSXMLWizard"
+ id="org.jboss.tools.seam.ui.wizard.SeamDSXMLWizard">
+ <description>
+ Creates New DS XML file
+ </description>
+ <selection
+ class="org.eclipse.core.resources.IResource">
+ </selection>
+ </wizard>
+
</extension>
<extension
point="org.eclipse.wst.common.project.facet.ui.wizardPages">
Added:
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/SeamDSXMLWizard.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/SeamDSXMLWizard.java
(rev 0)
+++
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/SeamDSXMLWizard.java 2012-02-14
02:19:52 UTC (rev 38674)
@@ -0,0 +1,121 @@
+package org.jboss.tools.seam.ui.wizard;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.datatools.connectivity.IConnectionProfile;
+import org.eclipse.datatools.connectivity.ProfileManager;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.dialogs.WizardNewFileCreationPage;
+import org.eclipse.ui.ide.IDE;
+import org.eclipse.ui.internal.dialogs.DialogUtil;
+import org.eclipse.ui.internal.wizards.newresource.ResourceMessages;
+import org.eclipse.ui.wizards.newresource.BasicNewResourceWizard;
+import org.jboss.tools.common.ui.IValidator;
+import org.jboss.tools.common.ui.widget.editor.IFieldEditor;
+import org.jboss.tools.seam.core.project.facet.SeamProjectPreferences;
+import org.jboss.tools.seam.ui.internal.project.facet.DataModelSynchronizer;
+import org.jboss.tools.seam.ui.internal.project.facet.SeamValidatorFactory;
+
+public class SeamDSXMLWizard extends BasicNewResourceWizard {
+ public static final String WIZARD_ID =
"org.jboss.tools.seam.ui.wizard.SeamDSXMLWizard"; //$NON-NLS-1$
+
+ WizardNewDSXMLFileCreationPage mainPage;
+
+ private boolean fOpenEditorOnFinish;
+
+ public SeamDSXMLWizard() {
+
+ }
+
+ public void addPages() {
+ super.addPages();
+ mainPage = new WizardNewDSXMLFileCreationPage("newFilePage1",
getSelection());
+ mainPage.setTitle("New DS XML");
+
+ addPage(mainPage);
+ }
+
+ @Override
+ public boolean performFinish() {
+ IFile file = mainPage.createNewFile();
+ if (file == null) {
+ return false;
+ }
+
+ selectAndReveal(file);
+ if (fOpenEditorOnFinish) {
+ // Open editor on new file.
+ IWorkbenchWindow dw = getWorkbench().getActiveWorkbenchWindow();
+ try {
+ if (dw != null) {
+ IWorkbenchPage page = dw.getActivePage();
+ if (page != null) {
+ IDE.openEditor(page, file, true);
+ }
+ }
+ } catch (PartInitException e) {
+ DialogUtil.openError(dw.getShell(), ResourceMessages.FileResource_errorMessage,
e.getMessage(), e);
+ }
+ }
+ return true;
+ }
+
+ class WizardNewDSXMLFileCreationPage extends WizardNewFileCreationPage {
+
+ public WizardNewDSXMLFileCreationPage(String pageName, IStructuredSelection selection)
{
+ super(pageName, selection);
+ }
+
+ public void createControl(Composite parent) {
+ super.createControl(parent);
+
+ Composite topLevel = (Composite)getControl();
+ IFieldEditor editor =
SeamWizardFactory.createConnectionProfileSelectionFieldEditor(getConnectionProfileDefaultValue(),
new IValidator() {
+ public Map<String, IStatus> validate(Object value, Object context) {
+ validatePage();
+ return SeamValidatorFactory.NO_ERRORS;
+ }
+ });
+// sync.register(editor);
+
+ Composite q = new Composite(topLevel, 0);
+ GridLayout l = new GridLayout(4, false);
+ q.setLayout(l);
+ editor.doFillIntoGrid(q);
+
+ validatePage();
+ }
+
+ }
+
+ /**
+ * @return
+ */
+ private Object getConnectionProfileDefaultValue() {
+ String defaultDs = SeamProjectPreferences
+ .getStringPreference(SeamProjectPreferences.SEAM_DEFAULT_CONNECTION_PROFILE);
+ return getConnectionProfileNameList().contains(defaultDs) ? defaultDs
+ : ""; //$NON-NLS-1$
+ }
+
+ private static List<String> getConnectionProfileNameList() {
+ IConnectionProfile[] profiles = ProfileManager.getInstance()
+ .getProfilesByCategory(
+ "org.eclipse.datatools.connectivity.db.category"); //$NON-NLS-1$
+ List<String> names = new ArrayList<String>();
+ for (IConnectionProfile connectionProfile : profiles) {
+ names.add(connectionProfile.getName());
+ }
+ return names;
+ }
+
+}
Property changes on:
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/wizard/SeamDSXMLWizard.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain