Author: scabanovich
Date: 2010-12-10 10:16:06 -0500 (Fri, 10 Dec 2010)
New Revision: 27360
Added:
trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/wizard/NewBeansXMLCreationWizard.java
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.ui/plugin.properties
trunk/cdi/plugins/org.jboss.tools.cdi.ui/plugin.xml
trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/CDIUIMessages.java
trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/CDIUIMessages.properties
Log:
JBIDE-7842
https://issues.jboss.org/browse/JBIDE-7842
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.ui/plugin.properties
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.ui/plugin.properties 2010-12-10 14:51:16 UTC
(rev 27359)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.ui/plugin.properties 2010-12-10 15:16:06 UTC
(rev 27360)
@@ -11,4 +11,8 @@
proposalCategory.cdiClass= JBoss CDI (Context and Dependency Injection) Class Proposals
-preferenceKeywords.newJava=CDI (Context and Dependency Injection)
+preferenceKeywords.newJava=CDI
+preferenceKeywords.newBeansXML=CDI XML
+
+NewWizards.file=File beans.xml
+NewWizards.file.description=Create a new beans.xml File
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.ui/plugin.xml
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.ui/plugin.xml 2010-12-10 14:51:16 UTC (rev
27359)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.ui/plugin.xml 2010-12-10 15:16:06 UTC (rev
27360)
@@ -221,6 +221,23 @@
</keywordReference>
</wizard>
+ <wizard
+ name="%NewWizards.file"
+ icon="icons/cdi16.png"
+ category="org.jboss.tools.cdi.ui"
+ class="org.jboss.tools.cdi.ui.wizard.NewBeansXMLCreationWizard"
+ id="org.jboss.tools.cdi.ui.wizard.NewBeansXMLCreationWizard">
+ <description>
+ %NewWizards.file.description
+ </description>
+ <selection
+ class="org.eclipse.core.resources.IResource">
+ </selection>
+ <keywordReference
+ id="org.jboss.tools.cdi.ui.newBeansXML">
+ </keywordReference>
+ </wizard>
+
</extension>
<extension
@@ -228,6 +245,9 @@
<keyword
label="%preferenceKeywords.newJava"
id="org.jboss.tools.cdi.ui.newJava"/>
+ <keyword
+ label="%preferenceKeywords.newBeansXML"
+ id="org.jboss.tools.cdi.ui.newBeansXML"/>
</extension>
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/CDIUIMessages.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/CDIUIMessages.java 2010-12-10
14:51:16 UTC (rev 27359)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/CDIUIMessages.java 2010-12-10
15:16:06 UTC (rev 27360)
@@ -1,4 +1,5 @@
/*******************************************************************************
+
* Copyright (c) 2010 Red Hat, Inc.
* Distributed under license by Red Hat, Inc. All rights reserved.
* This program is made available under the terms of the
@@ -45,6 +46,10 @@
public static String NEW_DECORATOR_WIZARD_PAGE_NAME;
public static String NEW_DECORATOR_WIZARD_DESCRIPTION;
+ public static String NEW_BEANS_XML_WIZARD_TITLE;
+ public static String NEW_BEANS_XML_WIZARD_PAGE_NAME;
+ public static String NEW_BEANS_XML_WIZARD_DESCRIPTION;
+
public static String SELECT_STEREOTYPE;
public static String SELECT_INTERCEPTOR_BINDING;
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/CDIUIMessages.properties
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/CDIUIMessages.properties 2010-12-10
14:51:16 UTC (rev 27359)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/CDIUIMessages.properties 2010-12-10
15:16:06 UTC (rev 27360)
@@ -58,3 +58,7 @@
CDI_GENERATE_BEANS_XML=Generate beans.xml file:
CDI_INSTALL_WIZARD_PAGE_FACET=Context and Dependency Injection (CDI) Facet
CDI_INSTALL_WIZARD_PAGE_CONFIGURE=Configure Context and Dependency Injection (CDI) Facet
Settings>>>>>>> .r27235
+
+NEW_BEANS_XML_WIZARD_TITLE=New beans.xml File
+NEW_BEANS_XML_WIZARD_PAGE_NAME=beans.xml File
+NEW_BEANS_XML_WIZARD_DESCRIPTION=Create a new beans.xml File
Added:
trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/wizard/NewBeansXMLCreationWizard.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/wizard/NewBeansXMLCreationWizard.java
(rev 0)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/wizard/NewBeansXMLCreationWizard.java 2010-12-10
15:16:06 UTC (rev 27360)
@@ -0,0 +1,181 @@
+package org.jboss.tools.cdi.ui.wizard;
+
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+import java.lang.reflect.Field;
+import java.util.Properties;
+import java.util.Set;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.IWorkbench;
+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.ide.IDEWorkbenchPlugin;
+import org.eclipse.ui.internal.ide.misc.ContainerSelectionGroup;
+import org.eclipse.ui.internal.ide.misc.ResourceAndContainerGroup;
+import org.eclipse.ui.internal.wizards.newresource.ResourceMessages;
+import org.eclipse.ui.wizards.newresource.BasicNewResourceWizard;
+import org.jboss.tools.cdi.ui.CDIUIMessages;
+import org.jboss.tools.cdi.ui.CDIUIPlugin;
+import org.jboss.tools.common.model.filesystems.impl.FileAnyImpl;
+import org.jboss.tools.common.model.options.PreferenceModelUtilities;
+import org.jboss.tools.common.model.project.ProjectHome;
+import org.jboss.tools.common.model.util.EclipseResourceUtil;
+
+public class NewBeansXMLCreationWizard extends BasicNewResourceWizard {
+ public static final String WIZARD_ID =
"org.jboss.tools.cdi.ui.wizard.NewBeansXMLCreationWizard"; //$NON-NLS-1$
+
+ private WizardNewFileCreationPage mainPage;
+
+ /**
+ * Creates a wizard for creating a new file resource in the workspace.
+ */
+ public NewBeansXMLCreationWizard() {
+ super();
+ }
+
+ /* (non-Javadoc)
+ * Method declared on IWizard.
+ */
+ public void addPages() {
+ super.addPages();
+ mainPage = new WizardNewBeansXMLFileCreationPage("newFilePage1",
getSelection());//$NON-NLS-1$
+ mainPage.setTitle(CDIUIMessages.NEW_BEANS_XML_WIZARD_PAGE_NAME);
+ mainPage.setDescription(CDIUIMessages.NEW_BEANS_XML_WIZARD_DESCRIPTION);
+
+ mainPage.setFileName("beans.xml");
+
+ addPage(mainPage);
+ }
+
+ /* (non-Javadoc)
+ * Method declared on IWorkbenchWizard.
+ */
+ public void init(IWorkbench workbench, IStructuredSelection currentSelection) {
+ super.init(workbench, currentSelection);
+ setWindowTitle(CDIUIMessages.NEW_BEANS_XML_WIZARD_TITLE);
+ setNeedsProgressMonitor(true);
+ }
+
+ /* (non-Javadoc)
+ * Method declared on BasicNewResourceWizard.
+ */
+ protected void initializeDefaultPageImageDescriptor() {
+ ImageDescriptor desc =
IDEWorkbenchPlugin.getIDEImageDescriptor("wizban/newfile_wiz.png");//$NON-NLS-1$
+ setDefaultPageImageDescriptor(desc);
+ }
+
+ /* (non-Javadoc)
+ * Method declared on IWizard.
+ */
+ public boolean performFinish() {
+ IFile file = mainPage.createNewFile();
+ if (file == null) {
+ return false;
+ }
+
+ selectAndReveal(file);
+
+ // 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 WizardNewBeansXMLFileCreationPage extends WizardNewFileCreationPage {
+
+ public WizardNewBeansXMLFileCreationPage(String pageName, IStructuredSelection
selection) {
+ super(pageName, selection);
+ }
+
+ protected void initialPopulateContainerNameField() {
+ super.initialPopulateContainerNameField();
+ if(!selection.isEmpty() && selection instanceof IStructuredSelection) {
+ Object o = ((IStructuredSelection)selection).getFirstElement();
+ IResource r = null;
+ if(o instanceof IResource) {
+ r = (IResource)o;
+ } else if(o instanceof IAdaptable) {
+ r = (IResource)((IAdaptable)o).getAdapter(IResource.class);
+ }
+ if(r != null) {
+ boolean needMetaInf = false;
+ IPath current = getContainerFullPath();
+ IProject p = r.getProject();
+ IPath path = ProjectHome.getWebInfPath(p);
+ if(current != null && current.equals(path)) return;
+ if(path == null) {
+
+ Set<IFolder> fs = EclipseResourceUtil.getSourceFolders(p);
+ if(fs != null) for (IFolder f: fs) {
+ IFolder fm = f.getFolder("META-INF");
+ if(!fm.exists()) {
+ needMetaInf = true;
+ fm = f;
+ }
+ IPath pth = fm.getFullPath();
+ if(current != null && current.equals(pth)) return;
+ if(path == null) path = pth;
+ }
+ }
+ if(path != null) {
+ setContainerFullPath(path);
+ if(needMetaInf) {
+ String value = path.append("META-INF").toString();
+ try {
+ setContainerValue(value);
+ } catch (NoSuchFieldException e) {
+ CDIUIPlugin.getDefault().logError(e);
+ } catch (IllegalAccessException e) {
+ CDIUIPlugin.getDefault().logError(e);
+ }
+ }
+ }
+ }
+ }
+ }
+
+ void setContainerValue(String value) throws NoSuchFieldException,
IllegalAccessException {
+ Field f =
WizardNewFileCreationPage.class.getDeclaredField("resourceGroup");
+ f.setAccessible(true);
+ ResourceAndContainerGroup resourceGroup = (ResourceAndContainerGroup)f.get(this);
+ Field f2 =
ResourceAndContainerGroup.class.getDeclaredField("containerGroup");
+ f2.setAccessible(true);
+ ContainerSelectionGroup containerGroup =
(ContainerSelectionGroup)f2.get(resourceGroup);
+ Field f3 =
ContainerSelectionGroup.class.getDeclaredField("containerNameField");
+ f3.setAccessible(true);
+ Text text = (Text)f3.get(containerGroup);
+ text.setText(value);
+ }
+
+ protected InputStream getInitialContents() {
+ FileAnyImpl file =
(FileAnyImpl)PreferenceModelUtilities.getPreferenceModel().createModelObject("FileCDIBeans",
new Properties());
+ return new ByteArrayInputStream(file.getAsText().getBytes());
+ }
+
+ }
+
+}
Property changes on:
trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/wizard/NewBeansXMLCreationWizard.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain