JBoss Tools SVN: r33133 - in trunk/cdi/plugins/org.jboss.tools.cdi.seam.core: src/org/jboss/tools/cdi/seam/core/international/el and 1 other directory.
by jbosstools-commits@lists.jboss.org
Author: vrubezhny
Date: 2011-07-22 06:46:36 -0400 (Fri, 22 Jul 2011)
New Revision: 33133
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.seam.core/META-INF/MANIFEST.MF
trunk/cdi/plugins/org.jboss.tools.cdi.seam.core/src/org/jboss/tools/cdi/seam/core/international/el/CDIInternationalMessagesELResolver.java
Log:
JBIDE-9087
Support of Bundles bean in CDI projects with Seam International module.
Indirect dependency on jsf or other possible modules is avoided
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.seam.core/META-INF/MANIFEST.MF
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.seam.core/META-INF/MANIFEST.MF 2011-07-22 09:35:18 UTC (rev 33132)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.seam.core/META-INF/MANIFEST.MF 2011-07-22 10:46:36 UTC (rev 33133)
@@ -17,3 +17,4 @@
org.jboss.tools.cdi.core;bundle-version="1.2.0"
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Bundle-ActivationPolicy: lazy
+Export-Package: org.jboss.tools.cdi.seam.core
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.seam.core/src/org/jboss/tools/cdi/seam/core/international/el/CDIInternationalMessagesELResolver.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.seam.core/src/org/jboss/tools/cdi/seam/core/international/el/CDIInternationalMessagesELResolver.java 2011-07-22 09:35:18 UTC (rev 33132)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.seam.core/src/org/jboss/tools/cdi/seam/core/international/el/CDIInternationalMessagesELResolver.java 2011-07-22 10:46:36 UTC (rev 33133)
@@ -55,7 +55,6 @@
import org.jboss.tools.common.model.XModel;
import org.jboss.tools.common.model.XModelObject;
import org.jboss.tools.common.model.filesystems.FileSystemsHelper;
-import org.jboss.tools.common.model.project.IModelNature;
import org.jboss.tools.common.model.util.EclipseResourceUtil;
import org.jboss.tools.common.text.TextProposal;
import org.jboss.tools.common.util.FileUtil;
@@ -490,11 +489,9 @@
return;
for(Variable variable : variables){
if(expr.getFirstToken().getText().equals(variable.name)){
- IModelNature n = EclipseResourceUtil.getModelNature(variable.f.getProject());
-
- XModel model = n == null ? null : n.getModel();
- if(model == null)
- return;
+ XModelObject modelObject = EclipseResourceUtil.createObjectForResource(variable.f.getProject());
+ XModel model = modelObject == null ? null : modelObject.getModel();
+ if(model == null) return;
XModelObject[] properties = keyHelper.findBundles(model, variable.basename, null);
if(properties == null)
@@ -511,13 +508,9 @@
return;
for(Variable variable : variables){
if(expr.getFirstToken().getText().equals(variable.name)){
-
- IModelNature n = EclipseResourceUtil.getModelNature(variable.f.getProject());
- if(n == null)
- return;
- XModel model = n.getModel();
- if(model == null)
- return;
+ XModelObject modelObject = EclipseResourceUtil.createObjectForResource(variable.f.getProject());
+ XModel model = modelObject == null ? null : modelObject.getModel();
+ if(model == null) return;
XModelObject[] properties = keyHelper.findBundles(model, variable.basename, null);
if(properties == null)
@@ -622,9 +615,10 @@
public Collection<String> getKeys() {
TreeSet<String> result = new TreeSet<String>();
- IModelNature n = EclipseResourceUtil.getModelNature(f.getProject());
- if(n == null) return result;
- XModel model = n.getModel();
+
+ XModelObject modelObject = EclipseResourceUtil.createObjectForResource(f.getProject());
+ XModel model = modelObject == null ? null : modelObject.getModel();
+ if(model == null) return result;
List<Object> l = keyHelper.getBundleProperties(model, basename);
if (l == null) return result;
@@ -716,12 +710,42 @@
return result.values().toArray(new IResourceBundle[0]);
}
+ /**
+ * The method returns bundles of all the existing locales for specified bundle name
+ *
+ * @param model
+ * @param bundle
+ * @param locale
+ * @return
+ */
public XModelObject[] findBundles(XModel model, String bundle, String locale) {
ArrayList<XModelObject> l = new ArrayList<XModelObject>();
+
+ String parentPath = bundle.replace('.', '/');
+ String bundleName = parentPath.substring(parentPath.lastIndexOf('/') + 1);
+ if (parentPath != null) parentPath = parentPath.substring(0, parentPath.lastIndexOf('/'));
+ XModelObject parentObject = model.getByPath(parentPath);
+ if (parentObject != null) {
+ for (XModelObject o : parentObject.getChildren()) {
+ String name = o.getPathPart();
+ if (name != null && name.toLowerCase().endsWith(".properties") &&
+ name.startsWith(bundleName) &&
+ (name.equalsIgnoreCase(bundleName + ".properties") ||
+ name.startsWith(bundleName + '_'))) {
+ l.add(o);
+ }
+ }
+ }
+ /* The following is commented because:
+ * - we decided to show properties defined in any locale
+ * - Seam3 International module has its own locate API which is probably to be supported
+ *
+
if(locale == null || locale.length() == 0) locale = getDeafultLocale(model);
while(locale != null && locale.length() > 0) {
String path = bundle.replace('.', '/') + "_" + locale + ".properties"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
XModelObject o = model.getByPath(path);
+ model.getByPath(path.substring(0, path.lastIndexOf('/')));
if(o != null) l.add(o);
int i = locale.lastIndexOf('_');
if(i < 0) break;
@@ -730,6 +754,7 @@
String path = bundle.replace('.', '/') + ".properties"; //$NON-NLS-1$ //$NON-NLS-2$
XModelObject o = model.getByPath(path);
if(o != null) l.add(o);
+ */
return l.toArray(new XModelObject[0]);
}
14 years, 8 months
JBoss Tools SVN: r33132 - trunk/maven/plugins/org.jboss.tools.maven.ui/src/org/jboss/tools/maven/ui/internal/profiles.
by jbosstools-commits@lists.jboss.org
Author: adietish
Date: 2011-07-22 05:35:18 -0400 (Fri, 22 Jul 2011)
New Revision: 33132
Modified:
trunk/maven/plugins/org.jboss.tools.maven.ui/src/org/jboss/tools/maven/ui/internal/profiles/SelectProfilesDialog.java
Log:
[JBIDE-8969] corrected layout so that warning label gets aligned correctly
Modified: trunk/maven/plugins/org.jboss.tools.maven.ui/src/org/jboss/tools/maven/ui/internal/profiles/SelectProfilesDialog.java
===================================================================
--- trunk/maven/plugins/org.jboss.tools.maven.ui/src/org/jboss/tools/maven/ui/internal/profiles/SelectProfilesDialog.java 2011-07-22 08:56:52 UTC (rev 33131)
+++ trunk/maven/plugins/org.jboss.tools.maven.ui/src/org/jboss/tools/maven/ui/internal/profiles/SelectProfilesDialog.java 2011-07-22 09:35:18 UTC (rev 33132)
@@ -19,6 +19,8 @@
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.dialogs.TitleAreaDialog;
+import org.eclipse.jface.layout.GridDataFactory;
+import org.eclipse.jface.resource.JFaceResources;
import org.eclipse.jface.viewers.ArrayContentProvider;
import org.eclipse.jface.viewers.CheckStateChangedEvent;
import org.eclipse.jface.viewers.CheckboxTableViewer;
@@ -103,10 +105,11 @@
@Override
protected Control createDialogArea(Composite parent) {
Composite area = (Composite) super.createDialogArea(parent);
+
Composite container = new Composite(area, SWT.NONE);
container.setEnabled(true);
- GridLayout layout = new GridLayout(2, false);
+ GridLayout layout = new GridLayout(3, false);
layout.marginLeft = 12;
container.setLayout(layout);
container.setLayoutData(new GridData(GridData.FILL_BOTH));
@@ -125,7 +128,7 @@
if (facade != null) {
Label profilesLabel = new Label(container, SWT.NONE);
- profilesLabel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 2, 1));
+ profilesLabel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1));
profilesLabel.setText(NLS.bind(Messages.SelectProfilesDialog_Active_Profiles_for_Project, facade.getProject().getName()));
profilesText = new Text(container, SWT.BORDER);
@@ -137,16 +140,17 @@
}
boolean hasProfiles = !sharedProfiles.isEmpty();
- //Label warningLabel = new Label(container, SWT.CENTER);
- //warningLabel.setVisible(false);
+ Label warningLabel = new Label(container, SWT.CENTER);
+ warningLabel.setVisible(false);
+ GridDataFactory.fillDefaults().align(SWT.LEFT, SWT.CENTER).applyTo(warningLabel);
Label lblAvailable = new Label(container, SWT.NONE);
String textLabel;
if (hasProfiles) {
if (facade == null) {
textLabel = Messages.SelectProfilesDialog_Common_profiles;
- //warningLabel.setImage(JFaceResources.getImage(DLG_IMG_MESSAGE_WARNING));
- //warningLabel.setVisible(true);
+ warningLabel.setImage(JFaceResources.getImage(DLG_IMG_MESSAGE_WARNING));
+ warningLabel.setVisible(true);
} else {
textLabel = Messages.SelectProfilesDialog_Available_profiles;
}
@@ -164,7 +168,7 @@
if (hasProfiles) {
- GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 4);
+ GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true, 2, 4);
gd.heightHint = 200;
gd.widthHint = 500;
14 years, 8 months
JBoss Tools SVN: r33131 - trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7.
by jbosstools-commits@lists.jboss.org
Author: adietish
Date: 2011-07-22 04:56:52 -0400 (Fri, 22 Jul 2011)
New Revision: 33131
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/LocalJBoss7ServerRuntime.java
Log:
[jbide-9391] reformatted argument creation so that each argument is on its own line (and better readable to catch mistakes, removals, etc.)
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/LocalJBoss7ServerRuntime.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/LocalJBoss7ServerRuntime.java 2011-07-22 08:50:14 UTC (rev 33130)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/LocalJBoss7ServerRuntime.java 2011-07-22 08:56:52 UTC (rev 33131)
@@ -29,23 +29,27 @@
@Override
public String getDefaultRunArgs(IPath serverHome) {
- return "-mp \"" //$NON-NLS-1$
- + serverHome.append("modules").toString() //$NON-NLS-1$
- + "\" -logmodule org.jboss.logmanager -jaxpmodule javax.xml.jaxp-provider org.jboss.as.standalone"; //$NON-NLS-1$
+ return "-mp \"" + serverHome.append("modules").toString() + "\"" //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ + " -logmodule org.jboss.logmanager" //$NON-NLS-1$
+ + " -jaxpmodule javax.xml.jaxp-provider" //$NON-NLS-1$
+ + " org.jboss.as.standalone"; //$NON-NLS-1$
}
@Override
public String getDefaultRunVMArgs(IPath serverHome) {
IPath bootLog = serverHome.append("standalone").append("log").append("boot.log"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
IPath logConfig = serverHome.append("standalone").append("configuration").append("logging.properties"); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
- return "-server -Xms64m -Xmx512m -XX:MaxPermSize=256m " //$NON-NLS-1$
- + "-Djava.net.preferIPv4Stack=true " //$NON-NLS-1$
- + "-Dorg.jboss.resolver.warning=true " //$NON-NLS-1$
- + "-Dsun.rmi.dgc.client.gcInterval=3600000 " //$NON-NLS-1$
- + "-Dsun.rmi.dgc.server.gcInterval=3600000 " //$NON-NLS-1$
- + "\"-Dorg.jboss.boot.log.file=" + bootLog.toString() + "\" " //$NON-NLS-1$ //$NON-NLS-2$
- + "\"-Dlogging.configuration=file:" + logConfig.toString() + "\" " //$NON-NLS-1$ //$NON-NLS-2$
- + "\"-Djboss.home.dir=" + serverHome.toString() + "\""; //$NON-NLS-1$ //$NON-NLS-2$"
+ return "-server" //$NON-NLS-1$
+ + " -Xms64m" //$NON-NLS-1$
+ + " -Xmx512m" //$NON-NLS-1$
+ + " -XX:MaxPermSize=256m" //$NON-NLS-1$
+ + " -Djava.net.preferIPv4Stack=true" //$NON-NLS-1$
+ + " -Dorg.jboss.resolver.warning=true" //$NON-NLS-1$
+ + " -Dsun.rmi.dgc.client.gcInterval=3600000" //$NON-NLS-1$
+ + " -Dsun.rmi.dgc.server.gcInterval=3600000" //$NON-NLS-1$
+ + " \"-Dorg.jboss.boot.log.file=" + bootLog.toString() + "\"" //$NON-NLS-1$ //$NON-NLS-2$
+ + " \"-Dlogging.configuration=file:" + logConfig.toString() + "\"" //$NON-NLS-1$ //$NON-NLS-2$
+ + " \"-Djboss.home.dir=" + serverHome.toString() + "\""; //$NON-NLS-1$ //$NON-NLS-2$"
}
@Override
@@ -53,13 +57,16 @@
IPath loc = getRuntime().getLocation();
IPath bootLog = loc.append("standalone").append("log").append("boot.log"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
IPath logConfig = loc.append("standalone").append("configuration").append("logging.properties"); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
- return "-server -Xms64m -Xmx512m -XX:MaxPermSize=256m " //$NON-NLS-1$
- + "-Djava.net.preferIPv4Stack=true " //$NON-NLS-1$
- + "-Dorg.jboss.resolver.warning=true " //$NON-NLS-1$
- + "-Dsun.rmi.dgc.client.gcInterval=3600000 " //$NON-NLS-1$
- + "-Dsun.rmi.dgc.server.gcInterval=3600000 " //$NON-NLS-1$
- + "\"-Dorg.jboss.boot.log.file=" + bootLog.toString() + "\" " //$NON-NLS-1$ //$NON-NLS-2$
- + "\"-Dlogging.configuration=file:" + logConfig.toString() + "\" " //$NON-NLS-1$ //$NON-NLS-2$
- + "\"-Djboss.home.dir=" + loc.toString() + "\""; //$NON-NLS-1$ //$NON-NLS-2$"
+ return "-server" //$NON-NLS-1$
+ + " -Xms64m" //$NON-NLS-1$
+ + " -Xmx512m" //$NON-NLS-1$
+ + " -XX:MaxPermSize=256m" //$NON-NLS-1$
+ + " -Djava.net.preferIPv4Stack=true" //$NON-NLS-1$
+ + " -Dorg.jboss.resolver.warning=true" //$NON-NLS-1$
+ + " -Dsun.rmi.dgc.client.gcInterval=3600000" //$NON-NLS-1$
+ + " -Dsun.rmi.dgc.server.gcInterval=3600000" //$NON-NLS-1$
+ + " \"-Dorg.jboss.boot.log.file=" + bootLog.toString() + "\"" //$NON-NLS-1$ //$NON-NLS-2$
+ + " \"-Dlogging.configuration=file:" + logConfig.toString() + "\"" //$NON-NLS-1$ //$NON-NLS-2$
+ + " \"-Djboss.home.dir=" + loc.toString() + "\""; //$NON-NLS-1$ //$NON-NLS-2$"
}
}
14 years, 8 months
JBoss Tools SVN: r33130 - trunk/gwt/plugins/org.jboss.tools.gwt.core.
by jbosstools-commits@lists.jboss.org
Author: adietish
Date: 2011-07-22 04:50:14 -0400 (Fri, 22 Jul 2011)
New Revision: 33130
Modified:
trunk/gwt/plugins/org.jboss.tools.gwt.core/sample-hello-src.zip
trunk/gwt/plugins/org.jboss.tools.gwt.core/sample-hello-webContent.zip
Log:
[JBIDE-8653] rebuilt the archives with the sample using GWT 2.3
Modified: trunk/gwt/plugins/org.jboss.tools.gwt.core/sample-hello-src.zip
===================================================================
(Binary files differ)
Modified: trunk/gwt/plugins/org.jboss.tools.gwt.core/sample-hello-webContent.zip
===================================================================
(Binary files differ)
14 years, 8 months
JBoss Tools SVN: r33129 - trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7.
by jbosstools-commits@lists.jboss.org
Author: adietish
Date: 2011-07-22 04:46:16 -0400 (Fri, 22 Jul 2011)
New Revision: 33129
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/LocalJBoss7ServerRuntime.java
Log:
[jbide-9391] added overriding method so that run args now are fetched from the as7 subclass (and not from as6 superclass)
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/LocalJBoss7ServerRuntime.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/LocalJBoss7ServerRuntime.java 2011-07-22 07:38:18 UTC (rev 33128)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/v7/LocalJBoss7ServerRuntime.java 2011-07-22 08:46:16 UTC (rev 33129)
@@ -23,6 +23,11 @@
}
@Override
+ public String getDefaultRunArgs() {
+ return getDefaultRunArgs(getRuntime().getLocation());
+ }
+
+ @Override
public String getDefaultRunArgs(IPath serverHome) {
return "-mp \"" //$NON-NLS-1$
+ serverHome.append("modules").toString() //$NON-NLS-1$
14 years, 8 months
JBoss Tools SVN: r33128 - trunk/gwt/features/org.jboss.tools.gwt.feature.
by jbosstools-commits@lists.jboss.org
Author: adietish
Date: 2011-07-22 03:38:18 -0400 (Fri, 22 Jul 2011)
New Revision: 33128
Modified:
trunk/gwt/features/org.jboss.tools.gwt.feature/feature.xml
trunk/gwt/features/org.jboss.tools.gwt.feature/pom.xml
Log:
[JBIDE-9338] updated dependencies to GWT 2.3 for Eclipse Indigo
Modified: trunk/gwt/features/org.jboss.tools.gwt.feature/feature.xml
===================================================================
--- trunk/gwt/features/org.jboss.tools.gwt.feature/feature.xml 2011-07-22 06:26:32 UTC (rev 33127)
+++ trunk/gwt/features/org.jboss.tools.gwt.feature/feature.xml 2011-07-22 07:38:18 UTC (rev 33128)
@@ -2,7 +2,7 @@
<feature
id="org.jboss.tools.gwt.feature"
label="%featureName"
- version="1.0.1.qualifier"
+ version="1.0.2.qualifier"
provider-name="%providerName">
<description url="http://www.example.com/description">
Modified: trunk/gwt/features/org.jboss.tools.gwt.feature/pom.xml
===================================================================
--- trunk/gwt/features/org.jboss.tools.gwt.feature/pom.xml 2011-07-22 06:26:32 UTC (rev 33127)
+++ trunk/gwt/features/org.jboss.tools.gwt.feature/pom.xml 2011-07-22 07:38:18 UTC (rev 33128)
@@ -9,6 +9,6 @@
</parent>
<groupId>org.jboss.tools.gwt.features</groupId>
<artifactId>org.jboss.tools.gwt.feature</artifactId>
- <version>1.0.1-SNAPSHOT</version>
+ <version>1.0.2-SNAPSHOT</version>
<packaging>eclipse-feature</packaging>
</project>
14 years, 8 months
JBoss Tools SVN: r33127 - in trunk: tests/plugins/org.jboss.tools.ui.bot.ext/src/org/jboss/tools/ui/bot/ext/types and 3 other directories.
by jbosstools-commits@lists.jboss.org
Author: vpakan(a)redhat.com
Date: 2011-07-22 02:26:32 -0400 (Fri, 22 Jul 2011)
New Revision: 33127
Modified:
trunk/jsf/tests/org.jboss.tools.jsf.ui.bot.test/src/org/jboss/tools/jsf/ui/bot/test/smoke/CodeCompletionTest.java
trunk/jsf/tests/org.jboss.tools.jsf.ui.bot.test/src/org/jboss/tools/jsf/ui/bot/test/smoke/OpenOnTest.java
trunk/tests/plugins/org.jboss.tools.ui.bot.ext/src/org/jboss/tools/ui/bot/ext/types/IDELabel.java
trunk/vpe/tests/org.jboss.tools.vpe.ui.bot.test/src/org/jboss/tools/vpe/ui/bot/test/VPEAutoTestCase.java
trunk/vpe/tests/org.jboss.tools.vpe.ui.bot.test/src/org/jboss/tools/vpe/ui/bot/test/smoke/OpenOnTest.java
trunk/vpe/tests/org.jboss.tools.vpe.ui.bot.test/src/org/jboss/tools/vpe/ui/bot/test/tools/SWTBotWebBrowser.java
Log:
Added Open On and Code Completion tests for JSF2 Composite Component
Modified: trunk/jsf/tests/org.jboss.tools.jsf.ui.bot.test/src/org/jboss/tools/jsf/ui/bot/test/smoke/CodeCompletionTest.java
===================================================================
--- trunk/jsf/tests/org.jboss.tools.jsf.ui.bot.test/src/org/jboss/tools/jsf/ui/bot/test/smoke/CodeCompletionTest.java 2011-07-22 00:14:35 UTC (rev 33126)
+++ trunk/jsf/tests/org.jboss.tools.jsf.ui.bot.test/src/org/jboss/tools/jsf/ui/bot/test/smoke/CodeCompletionTest.java 2011-07-22 06:26:32 UTC (rev 33127)
@@ -10,13 +10,17 @@
******************************************************************************/
package org.jboss.tools.jsf.ui.bot.test.smoke;
+import java.awt.event.KeyEvent;
import java.util.LinkedList;
import java.util.List;
import org.jboss.tools.jsf.ui.bot.test.JSFAutoTestCase;
import org.jboss.tools.ui.bot.ext.SWTJBTExt;
import org.jboss.tools.ui.bot.ext.SWTTestExt;
+import org.jboss.tools.ui.bot.ext.Timing;
import org.jboss.tools.ui.bot.ext.helper.ContentAssistHelper;
+import org.jboss.tools.ui.bot.ext.helper.KeyboardHelper;
+import org.jboss.tools.ui.bot.ext.helper.OpenOnHelper;
import org.jboss.tools.ui.bot.ext.parts.ContentAssistBot;
import org.jboss.tools.ui.bot.ext.parts.SWTBotEditorExt;
/** * Test Code Completion functionality of JSF components within xhtml page
@@ -25,12 +29,16 @@
*/
public class CodeCompletionTest extends JSFAutoTestCase{
private SWTBotEditorExt editor;
+ private SWTBotEditorExt compositeComponentDefEditor;
+ private SWTBotEditorExt compositeComponentContainerEditor;
private String originalEditorText;
+ private String compositeComponentDefEditorText;
+ private String origCompositeComponentContainerEditorText;
/**
* Test Code Completion functionality for managed bean
*/
public void testCodeCompletionOfManagedBean(){
-
+ initFaceletsPageTest();
String textForSelection = "value=\"#{person.name}\"";
List<String> expectedProposals = new LinkedList<String>();
expectedProposals.add("msg");
@@ -56,7 +64,7 @@
* Test Code Completion functionality for resource
*/
public void testCodeCompletionOfResource(){
-
+ initFaceletsPageTest();
ContentAssistBot contentAssist = editor.contentAssist();
String textForSelection = "${msg.prompt}";
// Check content assist for ${ prefix
@@ -82,7 +90,7 @@
* Test Code Completion functionality of <input> tag attributes within xhtml page
*/
public void testCodeCompletionOfInputTagAttributes(){
-
+ initFaceletsPageTest();
ContentAssistBot contentAssist = editor.contentAssist();
String textForSelection = "action=\"greeting\" value=\"Say Hello\" ";
// Check content assist menu content
@@ -106,6 +114,7 @@
* Test Code Completion functionality of <input> tag for jsfc attribute within xhtml page
*/
public void testCodeCompletionOfInputTagForJsfcAttribute(){
+ initFaceletsPageTest();
// check jsfc attribute insertion via Content Assist
SWTJBTExt.selectTextInSourcePane(SWTTestExt.bot,
FACELETS_TEST_PAGE,
@@ -160,10 +169,102 @@
editor.getText().contains(expectedInsertedText));
editor.save();
}
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
+ /**
+ * Test Code Completion functionality for Composite Component
+ */
+ public void testCodeCompletionOfCompositeComponent(){
+ eclipse.closeAllEditors();
+ openPage(JSF2_TEST_PAGE, JSF2_TEST_PROJECT_NAME);
+ compositeComponentContainerEditor = SWTTestExt.bot.swtBotEditorExtByTitle(FACELETS_TEST_PAGE);
+ origCompositeComponentContainerEditorText = compositeComponentContainerEditor.getText();
+ ContentAssistBot contentAssist = compositeComponentContainerEditor.contentAssist();
+ SWTJBTExt.selectTextInSourcePane(SWTTestExt.bot,
+ JSF2_TEST_PAGE,
+ "<ez:input ",
+ 0,
+ 0,
+ 0);
+ String textToInsert = "<ez:";
+ compositeComponentContainerEditor.insertText(textToInsert);
+ SWTJBTExt.selectTextInSourcePane(SWTTestExt.bot,
+ JSF2_TEST_PAGE,
+ textToInsert,
+ textToInsert.length(),
+ 0,
+ 0);
+ // Check content assist menu content for "<ez:"
+ contentAssist.checkContentAssist("ez:input", true);
+ bot.sleep(Timing.time2S());
+ compositeComponentContainerEditor.save();
+ String currentLineText = compositeComponentContainerEditor.getTextOnCurrentLine();
+ String expectedInsertedText = "<ez:input value=\"\" action=\"\"></ez:input>";
+ if (!currentLineText.toLowerCase().contains(expectedInsertedText.toLowerCase())){
+ expectedInsertedText = "<ez:input action=\"\" value=\"\"></ez:input>";
+ assertTrue("Inserted text should be " + expectedInsertedText + " but is not.\n"
+ + "Current line text is " + currentLineText,
+ currentLineText.toLowerCase().contains(expectedInsertedText.toLowerCase()));
+ }
+ // Check content assist menu content for Composite Components attributes
+ ContentAssistHelper.checkContentAssistContent(SWTTestExt.bot,
+ JSF2_TEST_PAGE,
+ expectedInsertedText,
+ 10,
+ 0,
+ getCompositeComponentsAttributesProposalList());
+ // Open Composite Component definition file
+ String compositeComponentFileName = "input.xhtml";
+ OpenOnHelper.checkOpenOnFileIsOpened(
+ SWTTestExt.bot, JSF2_TEST_PAGE, "<ez:input ", 5,
+ 0, 0, compositeComponentFileName);
+ compositeComponentDefEditor = SWTTestExt.bot.swtBotEditorExtByTitle(compositeComponentFileName);
+ compositeComponentDefEditorText = compositeComponentDefEditor.getText();
+ textToInsert = "<h:commandButton action=\"";
+ SWTJBTExt.selectTextInSourcePane(SWTTestExt.bot,
+ compositeComponentFileName,
+ textToInsert,
+ 0,
+ 0,
+ 0);
+ compositeComponentDefEditor.insertText(textToInsert + "\"/> "); // add closing "/>
+ SWTJBTExt.selectTextInSourcePane(SWTTestExt.bot,
+ compositeComponentFileName,
+ textToInsert,
+ textToInsert.length(),
+ 0,
+ 0);
+ // Check content assist menu content for ""<h:commandButton action="" />"
+ contentAssist = compositeComponentDefEditor.contentAssist();
+ contentAssist.checkContentAssist("cc.attrs", true);
+ bot.sleep(Timing.time2S());
+ compositeComponentDefEditor.save();
+ currentLineText = compositeComponentDefEditor.getTextOnCurrentLine();
+ expectedInsertedText = "#{cc.attrs}";
+ assertTrue("Inserted text should be " + expectedInsertedText + " but is not.\n"
+ + "Current line text is " + currentLineText,
+ currentLineText.toLowerCase().contains(expectedInsertedText.toLowerCase()));
+ compositeComponentDefEditor.insertText(".");
+ KeyboardHelper.typeKeyCodeUsingAWT(KeyEvent.VK_RIGHT);
+ // Check content assist menu content for Composite Components attributes
+ ContentAssistHelper.checkContentAssistContent(SWTTestExt.bot,
+ compositeComponentFileName,
+ "#{cc.attrs.}",
+ 11,
+ 0,
+ getCompositeComponentsAttributeDefProposalList());
+ // check inserting of "submitlabel" content assist
+ String contentAssistToUse = "submitlabel";
+ contentAssist.checkContentAssist(contentAssistToUse, true);
+ expectedInsertedText = "<h:commandButton action=\"#{cc.attrs." + contentAssistToUse + "}\"";
+ assertTrue("Editor has to contain text '" + expectedInsertedText + "' but it doesn't\n" +
+ "Editor Text is\n" + compositeComponentDefEditor.getText(),
+ compositeComponentDefEditor.getText().toLowerCase().contains(expectedInsertedText.toLowerCase()));
+ compositeComponentDefEditor.save();
+ }
+ /**
+ * Initialize test which are using facelets test page
+ */
+ private void initFaceletsPageTest() {
+ eclipse.closeAllEditors();
openPage(FACELETS_TEST_PAGE,FACELETS_TEST_PROJECT_NAME);
editor = SWTTestExt.bot.swtBotEditorExtByTitle(FACELETS_TEST_PAGE);
originalEditorText = editor.getText();
@@ -295,6 +396,14 @@
editor.setText(originalEditorText);
editor.saveAndClose();
}
+ if (compositeComponentDefEditor != null){
+ compositeComponentDefEditor.setText(compositeComponentDefEditorText);
+ compositeComponentDefEditor.saveAndClose();
+ }
+ if (compositeComponentContainerEditor != null){
+ compositeComponentContainerEditor.setText(origCompositeComponentContainerEditorText);
+ compositeComponentContainerEditor.saveAndClose();
+ }
super.tearDown();
}
/**
@@ -355,4 +464,45 @@
result.add("valueChangeListener");
return result;
}
+ /**
+ * Returns list of expected Content Assist proposals for Composite Component Attributes
+ * @return
+ */
+ private static List<String> getCompositeComponentsAttributesProposalList(){
+ LinkedList<String> result = new LinkedList<String>();
+
+ result.add("id");
+ result.add("label");
+ result.add("rendered");
+ result.add("submitlabel");
+ return result;
+ }
+
+ /**
+ * Returns list of expected Content Assist proposals for Composite Component Attributes
+ * within file containing Composite Component definition
+ * @return
+ */
+ private static List<String> getCompositeComponentsAttributeDefProposalList(){
+ LinkedList<String> result = new LinkedList<String>();
+
+ result.add("action");
+ result.add("label");
+ result.add("onclick");
+ result.add("ondblclick");
+ result.add("onkeydown");
+ result.add("onkeypress");
+ result.add("onkeyup");
+ result.add("onmousedown");
+ result.add("onmousemove");
+ result.add("onmouseout");
+ result.add("onmouseover");
+ result.add("onmouseup");
+ result.add("submitlabel");
+ result.add("value");
+ result.add("\"#{cc.attrs.}\"");
+ return result;
+ }
+
+
}
\ No newline at end of file
Modified: trunk/jsf/tests/org.jboss.tools.jsf.ui.bot.test/src/org/jboss/tools/jsf/ui/bot/test/smoke/OpenOnTest.java
===================================================================
--- trunk/jsf/tests/org.jboss.tools.jsf.ui.bot.test/src/org/jboss/tools/jsf/ui/bot/test/smoke/OpenOnTest.java 2011-07-22 00:14:35 UTC (rev 33126)
+++ trunk/jsf/tests/org.jboss.tools.jsf.ui.bot.test/src/org/jboss/tools/jsf/ui/bot/test/smoke/OpenOnTest.java 2011-07-22 06:26:32 UTC (rev 33127)
@@ -146,5 +146,28 @@
openedEditor.close();
}
+
+ /**
+ * Test Open On functionality for Composite Component
+ */
+ public void testOpenOnForCompositeComponent() {
+ eclipse.closeAllEditors();
+ openPage(JSF2_TEST_PAGE,JSF2_TEST_PROJECT_NAME);
+ // Check open on for <ez:input
+ String expectedOpenedFileName = "input.xhtml";
+ SWTBotEditor compositeComponentEditor = OpenOnHelper.checkOpenOnFileIsOpened(
+ SWTTestExt.bot, JSF2_TEST_PAGE, "<ez:input ", 5,
+ 0, 0, expectedOpenedFileName);
+ // Check open on for cc.attrs.submitlabel
+ compositeComponentEditor = OpenOnHelper.checkOpenOnFileIsOpened(
+ SWTTestExt.bot, expectedOpenedFileName, "value=\"#{cc.attrs.submitlabel}\"", 20,
+ 0, 0, expectedOpenedFileName);
+ String selectedText = compositeComponentEditor.toTextEditor().getSelection();
+ String expectedSelectedText = "<composite:attribute name=\"submitlabel\"/>";
+ assertTrue("Selected text in editor has to be " + expectedSelectedText
+ + " but it is " + selectedText,
+ selectedText.equalsIgnoreCase(expectedSelectedText));
+ compositeComponentEditor.close();
+ }
}
\ No newline at end of file
Modified: trunk/tests/plugins/org.jboss.tools.ui.bot.ext/src/org/jboss/tools/ui/bot/ext/types/IDELabel.java
===================================================================
--- trunk/tests/plugins/org.jboss.tools.ui.bot.ext/src/org/jboss/tools/ui/bot/ext/types/IDELabel.java 2011-07-22 00:14:35 UTC (rev 33126)
+++ trunk/tests/plugins/org.jboss.tools.ui.bot.ext/src/org/jboss/tools/ui/bot/ext/types/IDELabel.java 2011-07-22 06:26:32 UTC (rev 33127)
@@ -399,6 +399,7 @@
public static final String JBOSS_EAP_5_0 = "JBoss Enterprise Middleware";
public static final String JBOSS_EAP_5_x = "JBoss Enterprise Middleware";
public static final String JBOSS_COMMUNITY = "JBoss Community";
+ public static final String JBOSS_AS_6_0 = "JBoss Community";
}
public static final class ServerRuntimeType {
@@ -407,6 +408,7 @@
public static final String JBOSS_EAP_5_0 = "JBoss Enterprise Application Platform 5.0 Runtime";
public static final String JBOSS_EAP_5_x = "JBoss Enterprise Application Platform 5.x Runtime";
public static final String JBOSS_AS_5_1 = "JBoss 5.1 Runtime";
+ public static final String JBOSS_AS_6_0 = "JBoss 6.0 Runtime";
}
public static final class ServerType {
@@ -414,7 +416,7 @@
public static final String JBOSS_EAP_4_3 = "JBoss Enterprise Application Platform 4.3";
public static final String JBOSS_EAP_5_0 = "JBoss Enterprise Application Platform 5.0";
public static final String JBOSS_EAP_5_x = "JBoss Enterprise Application Platform 5.x";
- public static final String JBOSS_AS_5_1 = "JBoss AS 5.1";
+ public static final String JBOSS_AS_6_0 = "JBoss 6.0 Runtime";
}
public static final class DroolsRuntimeDialog {
@@ -675,4 +677,13 @@
public static final String DIAGRAM_TAB_LABEL = "Diagram";
}
+
+ public static class NewJsfProjectDialog{
+
+ public static final String PROJECT_NAME_LABEL = "Project Name*";
+ public static final String JSF_ENVIRONMENT_LABEL = "JSF Environment*";
+ public static final String TEMPLATE_LABEL = "Template*";
+ public static final String RUNTIME_LABEL = "Runtime*";
+ public static final String HOME_DIRECTORY_LABEL = "Home Directory";
+ }
}
Modified: trunk/vpe/tests/org.jboss.tools.vpe.ui.bot.test/src/org/jboss/tools/vpe/ui/bot/test/VPEAutoTestCase.java
===================================================================
--- trunk/vpe/tests/org.jboss.tools.vpe.ui.bot.test/src/org/jboss/tools/vpe/ui/bot/test/VPEAutoTestCase.java 2011-07-22 00:14:35 UTC (rev 33126)
+++ trunk/vpe/tests/org.jboss.tools.vpe.ui.bot.test/src/org/jboss/tools/vpe/ui/bot/test/VPEAutoTestCase.java 2011-07-22 06:26:32 UTC (rev 33127)
@@ -48,6 +48,7 @@
protected static final String TEST_PAGE = "inputUserName.jsp"; //$NON-NLS-1$
protected static final String FACELETS_TEST_PAGE = "inputname.xhtml"; //$NON-NLS-1$
protected static String PROJECT_PROPERTIES = "projectProperties.properties"; //$NON-NLS-1$
+ protected static String JSF2_TEST_PAGE = "inputname.xhtml"; //$NON-NLS-1$
/**
* Variable defines JBoss EAP 4.3 server location on a file system
@@ -56,9 +57,14 @@
protected final static String JBOSS_EAP_HOME;
protected final static String JBT_TEST_PROJECT_NAME;
protected final static String FACELETS_TEST_PROJECT_NAME;
+ protected final static String JSF2_TEST_PROJECT_NAME;
protected final static String JBOSS_SERVER_GROUP;
protected final static String JBOSS_SERVER_TYPE;
protected final static String JBOSS_SERVER_RUNTIME_TYPE;
+ protected final static String JBOSS_AS_FOR_JSF2_HOME;
+ protected final static String JBOSS_AS_FOR_JSF2_SERVER_GROUP;
+ protected final static String JBOSS_AS_FOR_JSF2_SERVER_TYPE;
+ protected final static String JBOSS_AS_FOR_JSF2_SERVER_RUNTIME_TYPE;
/* (non-Javadoc)
* This static block read properties from
@@ -101,8 +107,29 @@
JBOSS_SERVER_RUNTIME_TYPE = IDELabel.ServerRuntimeType.JBOSS_EAP_4_3;
JBOSS_SERVER_TYPE = IDELabel.ServerType.JBOSS_EAP_4_3;
}
+ // Setup JSF2 project related properties
+ if (projectProperties.containsKey("JBossASForJSF2")){
+ JBOSS_AS_FOR_JSF2_HOME = projectProperties.getProperty("JBossASForJSF2");
+ String version = projectProperties.getProperty("JBossASForJSF2Version","6.0");
+ if (version.equals("6.0")){
+ JBOSS_AS_FOR_JSF2_SERVER_GROUP = IDELabel.ServerGroup.JBOSS_AS_6_0;
+ JBOSS_AS_FOR_JSF2_SERVER_RUNTIME_TYPE = IDELabel.ServerRuntimeType.JBOSS_AS_6_0;
+ JBOSS_AS_FOR_JSF2_SERVER_TYPE = IDELabel.ServerType.JBOSS_AS_6_0;
+ }
+ else{
+ throw new RuntimeException("Unsupported version of JBoss AS runtime for JSF2 [version=" + version +
+ "location='" + JBOSS_AS_FOR_JSF2_HOME + "' specified.");
+ }
+ }
+ else{
+ JBOSS_AS_FOR_JSF2_HOME = JBOSS_EAP_HOME;
+ JBOSS_AS_FOR_JSF2_SERVER_GROUP = JBOSS_SERVER_GROUP;
+ JBOSS_AS_FOR_JSF2_SERVER_TYPE = JBOSS_SERVER_TYPE;
+ JBOSS_AS_FOR_JSF2_SERVER_RUNTIME_TYPE = JBOSS_SERVER_RUNTIME_TYPE;
+ }
JBT_TEST_PROJECT_NAME = projectProperties.getProperty("JSFProjectName"); //$NON-NLS-1$
FACELETS_TEST_PROJECT_NAME = projectProperties.getProperty("FaceletsProjectName"); //$NON-NLS-1$
+ JSF2_TEST_PROJECT_NAME = projectProperties.getProperty("JSF2ProjectName"); //$NON-NLS-1$
}
/**
@@ -131,6 +158,14 @@
} catch (WidgetNotFoundException e) {
createFaceletsProject(FACELETS_TEST_PROJECT_NAME);
}
+ /*
+ * Test JSF2 project
+ */
+ try {
+ tree.getTreeItem(JSF2_TEST_PROJECT_NAME);
+ } catch (WidgetNotFoundException e) {
+ createJSF2Project(JSF2_TEST_PROJECT_NAME);
+ }
}
/**
@@ -599,4 +634,49 @@
}
+ /**
+ * Create JSF2 Project with <b>jsf2ProjectName</b>
+ * @param jsf2ProjectName - name of created project
+ */
+ protected void createJSF2Project(String jsf2ProjectName){
+ open.newObject(ActionItem.NewObject.JBossToolsWebJSFJSFProject.LABEL);
+ bot.textWithLabel(IDELabel.NewJsfProjectDialog.PROJECT_NAME_LABEL).setText(jsf2ProjectName);
+ bot.comboBoxWithLabel(IDELabel.NewJsfProjectDialog.JSF_ENVIRONMENT_LABEL)
+ .setSelection("JSF 2.0");//$NON-NLS-1$
+ bot.comboBoxWithLabel(IDELabel.NewJsfProjectDialog.TEMPLATE_LABEL)
+ .setSelection("JSFKickStartWithoutLibs");//$NON-NLS-1$
+ bot.button(IDELabel.Button.NEXT).click();
+ try {
+ bot.comboBoxWithLabel(IDELabel.NewJsfProjectDialog.RUNTIME_LABEL)
+ .setSelection(JBOSS_AS_FOR_JSF2_SERVER_RUNTIME_TYPE);
+ delay();
+ bot.button(IDELabel.Button.FINISH).click();
+ try {
+ bot.button(IDELabel.Button.YES).click();
+ openErrorLog();
+ openPackageExplorer();
+ } catch (WidgetNotFoundException e) {
+ }
+ } catch (Exception e) {
+ bot.button(0).click();
+ SWTBotTree innerTree = bot.tree();
+ delay();
+ innerTree.expandNode(JBOSS_AS_FOR_JSF2_SERVER_GROUP).select(JBOSS_AS_FOR_JSF2_SERVER_RUNTIME_TYPE);
+ delay();
+ bot.button(IDELabel.Button.NEXT).click();
+ bot.textWithLabel(IDELabel.NewJsfProjectDialog.HOME_DIRECTORY_LABEL).setText(JBOSS_AS_FOR_JSF2_HOME);
+ bot.button(IDELabel.Button.FINISH).click();
+ delay();
+ bot.button(IDELabel.Button.FINISH).click();
+ try {
+ bot.button(IDELabel.Button.YES).click();
+ openErrorLog();
+ openPackageExplorer();
+ } catch (WidgetNotFoundException e2) {
+ }
+ }
+ waitForBlockingJobsAcomplished(60*1000L, BUILDING_WS);
+ setException(null);
+ }
+
}
Modified: trunk/vpe/tests/org.jboss.tools.vpe.ui.bot.test/src/org/jboss/tools/vpe/ui/bot/test/smoke/OpenOnTest.java
===================================================================
--- trunk/vpe/tests/org.jboss.tools.vpe.ui.bot.test/src/org/jboss/tools/vpe/ui/bot/test/smoke/OpenOnTest.java 2011-07-22 00:14:35 UTC (rev 33126)
+++ trunk/vpe/tests/org.jboss.tools.vpe.ui.bot.test/src/org/jboss/tools/vpe/ui/bot/test/smoke/OpenOnTest.java 2011-07-22 06:26:32 UTC (rev 33127)
@@ -20,17 +20,12 @@
*
*/
public class OpenOnTest extends VPEEditorTestCase{
- public void testOpenOn() throws Throwable{
-
- eclipse.closeAllEditors();
- openPage();
- checkOpenOn();
-
- }
/**
- * Check Open On functionality for jsp page
+ * Test Open On functionality for jsp page
*/
- private void checkOpenOn() {
+ public void testOpenOn() {
+ eclipse.closeAllEditors();
+ openPage();
// Check open on for uri="http://java.sun.com/jsf/html"
String expectedOpenedFileName = "html_basic.tld";
SWTBotEditor openedEditor = OpenOnHelper.checkOpenOnFileIsOpened(
@@ -67,4 +62,5 @@
expectedOpenedFileName);
openedEditor.close();
}
+
}
\ No newline at end of file
Modified: trunk/vpe/tests/org.jboss.tools.vpe.ui.bot.test/src/org/jboss/tools/vpe/ui/bot/test/tools/SWTBotWebBrowser.java
===================================================================
--- trunk/vpe/tests/org.jboss.tools.vpe.ui.bot.test/src/org/jboss/tools/vpe/ui/bot/test/tools/SWTBotWebBrowser.java 2011-07-22 00:14:35 UTC (rev 33126)
+++ trunk/vpe/tests/org.jboss.tools.vpe.ui.bot.test/src/org/jboss/tools/vpe/ui/bot/test/tools/SWTBotWebBrowser.java 2011-07-22 06:26:32 UTC (rev 33127)
@@ -92,7 +92,7 @@
public static final String SETUP_VISUAL_TEMPLATE_FOR_MENU_LABEL = "Setup Visual Template for ";
public static final String SELECT_THIS_TAG_MENU_LABEL = "Select This Tag";
public static final String PREFERENCES_MENU_LABEL = "Preferences..";
- public static final String EXTERNALIZE_STRING_MENU_LABEL = "Externalize selected string...";
+ public static final String EXTERNALIZE_STRING_MENU_LABEL = "Externalize strings...";
public static final String JSF_MENU_LABEL = "JSF";
public static final String JBOSS_MENU_LABEL = "JBoss";
14 years, 8 months
JBoss Tools SVN: r33126 - trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/src/org/jboss/tools/cdi/text/ext/hyperlink/xpl.
by jbosstools-commits@lists.jboss.org
Author: dazarov
Date: 2011-07-21 20:14:35 -0400 (Thu, 21 Jul 2011)
New Revision: 33126
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/src/org/jboss/tools/cdi/text/ext/hyperlink/xpl/MultipleHyperlinkPresenter.java
Log:
https://issues.jboss.org/browse/JBIDE-9390
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/src/org/jboss/tools/cdi/text/ext/hyperlink/xpl/MultipleHyperlinkPresenter.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/src/org/jboss/tools/cdi/text/ext/hyperlink/xpl/MultipleHyperlinkPresenter.java 2011-07-21 23:45:34 UTC (rev 33125)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/src/org/jboss/tools/cdi/text/ext/hyperlink/xpl/MultipleHyperlinkPresenter.java 2011-07-22 00:14:35 UTC (rev 33126)
@@ -581,24 +581,15 @@
* @see org.eclipse.jface.text.AbstractInformationControlManager#computeInformationControlLocation(org.eclipse.swt.graphics.Rectangle, org.eclipse.swt.graphics.Point)
*/
protected Point computeInformationControlLocation(Rectangle subjectArea, Point controlSize) {
- Point result= super.computeInformationControlLocation(subjectArea, controlSize);
-
- Point cursorLocation= fTextViewer.getTextWidget().getDisplay().getCursorLocation();
- if (cursorLocation.x <= result.x + controlSize.x)
- return result;
-
- result.x= cursorLocation.x + 20 - controlSize.x;
- return result;
+ Point point = Display.getCurrent().getCursorLocation();
+ Point location = new Point(point.x-20, point.y-20);
+ return location;
}
/*
* @see org.eclipse.jface.text.AbstractInformationControlManager#showInformationControl(org.eclipse.swt.graphics.Rectangle)
*/
protected void showInformationControl(Rectangle subjectArea) {
- Point point = Display.getCurrent().getCursorLocation();
- Point location = new Point(point.x-20, point.y-20);
- fInformationControl.setLocation(location);
-
if (fTextViewer instanceof IWidgetTokenOwnerExtension) {
if (((IWidgetTokenOwnerExtension) fTextViewer).requestWidgetToken(this, WIDGET_TOKEN_PRIORITY))
super.showInformationControl(subjectArea);
14 years, 8 months
JBoss Tools SVN: r33125 - in trunk/cdi/tests: org.jboss.tools.cdi.ui.test/src/org/jboss/tools/cdi/ui/test/marker and 1 other directory.
by jbosstools-commits@lists.jboss.org
Author: dazarov
Date: 2011-07-21 19:45:34 -0400 (Thu, 21 Jul 2011)
New Revision: 33125
Added:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/quickfixes/TestInjectDisposerMethod.java
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/quickfixes/TestInjectObserverMethod.java
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/quickfixes/TestInjectProducerField.java
trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/quickfixes/TestInjectProducerMethod.java
Modified:
trunk/cdi/tests/org.jboss.tools.cdi.ui.test/src/org/jboss/tools/cdi/ui/test/marker/CDIMarkerResolutionTest.java
Log:
https://issues.jboss.org/browse/JBIDE-7667
Added: trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/quickfixes/TestInjectDisposerMethod.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/quickfixes/TestInjectDisposerMethod.java (rev 0)
+++ trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/quickfixes/TestInjectDisposerMethod.java 2011-07-21 23:45:34 UTC (rev 33125)
@@ -0,0 +1,16 @@
+package org.jboss.jsr299.tck.tests.jbt.quickfixes;
+
+import javax.enterprise.inject.Disposes;
+import javax.enterprise.inject.Produces;
+import javax.inject.Inject;
+
+public class TestInjectDisposerMethod {
+ @Produces
+ public String produce(){
+ return "test";
+ }
+
+ @Inject
+ public void dispose(@Disposes String aaa){
+ }
+}
Property changes on: trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/quickfixes/TestInjectDisposerMethod.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/quickfixes/TestInjectObserverMethod.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/quickfixes/TestInjectObserverMethod.java (rev 0)
+++ trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/quickfixes/TestInjectObserverMethod.java 2011-07-21 23:45:34 UTC (rev 33125)
@@ -0,0 +1,11 @@
+package org.jboss.jsr299.tck.tests.jbt.quickfixes;
+
+import javax.enterprise.event.Observes;
+import javax.inject.Inject;
+
+public class TestInjectObserverMethod {
+
+ @Inject
+ public void observ(@Observes String aaa){
+ }
+}
Property changes on: trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/quickfixes/TestInjectObserverMethod.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/quickfixes/TestInjectProducerField.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/quickfixes/TestInjectProducerField.java (rev 0)
+++ trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/quickfixes/TestInjectProducerField.java 2011-07-21 23:45:34 UTC (rev 33125)
@@ -0,0 +1,10 @@
+package org.jboss.jsr299.tck.tests.jbt.quickfixes;
+
+import javax.enterprise.inject.Produces;
+import javax.inject.Inject;
+
+public class TestInjectProducerField {
+ @Inject
+ @Produces
+ public String str = "test";
+}
Property changes on: trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/quickfixes/TestInjectProducerField.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/quickfixes/TestInjectProducerMethod.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/quickfixes/TestInjectProducerMethod.java (rev 0)
+++ trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/quickfixes/TestInjectProducerMethod.java 2011-07-21 23:45:34 UTC (rev 33125)
@@ -0,0 +1,12 @@
+package org.jboss.jsr299.tck.tests.jbt.quickfixes;
+
+import javax.enterprise.inject.Produces;
+import javax.inject.Inject;
+
+public class TestInjectProducerMethod {
+ @Inject
+ @Produces
+ public String produceString(){
+ return "test";
+ }
+}
Property changes on: trunk/cdi/tests/org.jboss.tools.cdi.core.test/resources/tck/tests/jbt/quickfixes/TestInjectProducerMethod.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified: trunk/cdi/tests/org.jboss.tools.cdi.ui.test/src/org/jboss/tools/cdi/ui/test/marker/CDIMarkerResolutionTest.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.ui.test/src/org/jboss/tools/cdi/ui/test/marker/CDIMarkerResolutionTest.java 2011-07-21 23:12:46 UTC (rev 33124)
+++ trunk/cdi/tests/org.jboss.tools.cdi.ui.test/src/org/jboss/tools/cdi/ui/test/marker/CDIMarkerResolutionTest.java 2011-07-21 23:45:34 UTC (rev 33125)
@@ -36,6 +36,7 @@
import org.jboss.tools.cdi.ui.marker.ChangeTargetAnnotationMarkerResolution;
import org.jboss.tools.cdi.ui.marker.DeleteAllDisposerDuplicantMarkerResolution;
import org.jboss.tools.cdi.ui.marker.DeleteAllInjectedConstructorsMarkerResolution;
+import org.jboss.tools.cdi.ui.marker.DeleteAnnotationMarkerResolution;
import org.jboss.tools.cdi.ui.marker.MakeFieldStaticMarkerResolution;
import org.jboss.tools.cdi.ui.marker.MakeMethodBusinessMarkerResolution;
import org.jboss.tools.cdi.ui.marker.MakeMethodPublicMarkerResolution;
@@ -606,4 +607,48 @@
AddAnnotationMarkerResolution.class);
}
+ public void testDeleteInjectFromProducerFieldResolution() throws CoreException{
+ checkResolution(tckProject,
+ new String[]{
+ "JavaSource/org/jboss/jsr299/tck/tests/jbt/quickfixes/TestInjectProducerField.java"
+ },
+ CDICoreValidator.PROBLEM_TYPE,
+ CDIValidationErrorManager.MESSAGE_ID_ATTRIBUTE_NAME,
+ CDIValidationErrorManager.PRODUCER_ANNOTATED_INJECT_ID,
+ DeleteAnnotationMarkerResolution.class);
+ }
+
+ public void testDeleteInjectFromProducerMethodResolution() throws CoreException{
+ checkResolution(tckProject,
+ new String[]{
+ "JavaSource/org/jboss/jsr299/tck/tests/jbt/quickfixes/TestInjectProducerMethod.java"
+ },
+ CDICoreValidator.PROBLEM_TYPE,
+ CDIValidationErrorManager.MESSAGE_ID_ATTRIBUTE_NAME,
+ CDIValidationErrorManager.PRODUCER_ANNOTATED_INJECT_ID,
+ DeleteAnnotationMarkerResolution.class);
+ }
+
+ public void testDeleteInjectFromObserverMethodResolution() throws CoreException{
+ checkResolution(tckProject,
+ new String[]{
+ "JavaSource/org/jboss/jsr299/tck/tests/jbt/quickfixes/TestInjectObserverMethod.java"
+ },
+ CDICoreValidator.PROBLEM_TYPE,
+ CDIValidationErrorManager.MESSAGE_ID_ATTRIBUTE_NAME,
+ CDIValidationErrorManager.OBSERVER_ANNOTATED_INJECT_ID,
+ DeleteAnnotationMarkerResolution.class);
+ }
+
+ public void testDeleteInjectFromDisposerMethodResolution() throws CoreException{
+ checkResolution(tckProject,
+ new String[]{
+ "JavaSource/org/jboss/jsr299/tck/tests/jbt/quickfixes/TestInjectDisposerMethod.java"
+ },
+ CDICoreValidator.PROBLEM_TYPE,
+ CDIValidationErrorManager.MESSAGE_ID_ATTRIBUTE_NAME,
+ CDIValidationErrorManager.DISPOSER_ANNOTATED_INJECT_ID,
+ DeleteAnnotationMarkerResolution.class);
+ }
+
}
\ No newline at end of file
14 years, 8 months
JBoss Tools SVN: r33124 - in trunk/cdi: plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui and 2 other directories.
by jbosstools-commits@lists.jboss.org
Author: dazarov
Date: 2011-07-21 19:12:46 -0400 (Thu, 21 Jul 2011)
New Revision: 33124
Added:
trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/marker/AddAnnotationMarkerResolution.java
trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/marker/DeleteAnnotationMarkerResolution.java
Removed:
trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/marker/AddNonbindingAnnotationMarkerResolution.java
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/CDICoreValidator.java
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/CDIValidationErrorManager.java
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
trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/marker/CDIProblemMarkerResolutionGenerator.java
trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/marker/MarkerResolutionUtils.java
trunk/cdi/tests/org.jboss.tools.cdi.ui.test/src/org/jboss/tools/cdi/ui/test/marker/CDIMarkerResolutionTest.java
Log:
https://issues.jboss.org/browse/JBIDE-7667
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/CDICoreValidator.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/CDICoreValidator.java 2011-07-21 22:25:52 UTC (rev 33123)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/CDICoreValidator.java 2011-07-21 23:12:46 UTC (rev 33124)
@@ -927,9 +927,10 @@
if (injectDeclaration != null) {
String pref = observer.getMethod().isConstructor()?CDIPreferences.CONSTRUCTOR_PARAMETER_ILLEGALLY_ANNOTATED:CDIPreferences.OBSERVER_ANNOTATED_INJECT;
String message = observer.getMethod().isConstructor()?CDIValidationMessages.CONSTRUCTOR_PARAMETER_ANNOTATED_OBSERVES:CDIValidationMessages.OBSERVER_ANNOTATED_INJECT;
- addError(message, pref, injectDeclaration, bean.getResource());
+ int messageId = observer.getMethod().isConstructor()?CONSTRUCTOR_PARAMETER_ANNOTATED_OBSERVES_ID:OBSERVER_ANNOTATED_INJECT_ID;
+ addError(message, pref, injectDeclaration, bean.getResource(), messageId);
for (ITextSourceReference declaration : declarations) {
- addError(message, pref, declaration, bean.getResource());
+ addError(message, pref, declaration, bean.getResource(), messageId);
}
}
} catch (JavaModelException e) {
@@ -1039,9 +1040,10 @@
if (injectDeclaration != null) {
String pref = disposer.getMethod().isConstructor()?CDIPreferences.CONSTRUCTOR_PARAMETER_ILLEGALLY_ANNOTATED:CDIPreferences.DISPOSER_ANNOTATED_INJECT;
String message = disposer.getMethod().isConstructor()?CDIValidationMessages.CONSTRUCTOR_PARAMETER_ANNOTATED_DISPOSES:CDIValidationMessages.DISPOSER_ANNOTATED_INJECT;
- addError(message, pref, injectDeclaration, bean.getResource());
+ int messageId = disposer.getMethod().isConstructor()?CONSTRUCTOR_PARAMETER_ANNOTATED_DISPOSES_ID:DISPOSER_ANNOTATED_INJECT_ID;
+ addError(message, pref, injectDeclaration, bean.getResource(), messageId);
for (ITextSourceReference declaration : disposerDeclarations) {
- addError(message, pref, declaration, bean.getResource());
+ addError(message, pref, declaration, bean.getResource(), messageId);
}
}
} catch (JavaModelException e) {
@@ -1185,7 +1187,7 @@
*/
IAnnotationDeclaration inject = producer.getAnnotation(CDIConstants.INJECT_ANNOTATION_TYPE_NAME);
if (inject != null) {
- addError(CDIValidationMessages.PRODUCER_ANNOTATED_INJECT, CDIPreferences.PRODUCER_ANNOTATED_INJECT, inject, inject.getResource() != null ? inject.getResource() : producer.getResource());
+ addError(CDIValidationMessages.PRODUCER_ANNOTATED_INJECT, CDIPreferences.PRODUCER_ANNOTATED_INJECT, inject, inject.getResource() != null ? inject.getResource() : producer.getResource(), PRODUCER_ANNOTATED_INJECT_ID);
}
if (producer instanceof IProducerField) {
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/CDIValidationErrorManager.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/CDIValidationErrorManager.java 2011-07-21 22:25:52 UTC (rev 33123)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/CDIValidationErrorManager.java 2011-07-21 23:12:46 UTC (rev 33124)
@@ -39,6 +39,12 @@
public static final int MISSING_NONBINDING_FOR_ARRAY_VALUE_IN_QUALIFIER_TYPE_MEMBER_ID = 18;
public static final int MISSING_NONBINDING_FOR_ANNOTATION_VALUE_IN_INTERCEPTOR_BINDING_TYPE_MEMBER_ID = 19;
public static final int MISSING_NONBINDING_FOR_ARRAY_VALUE_IN_INTERCEPTOR_BINDING_TYPE_MEMBER_ID = 20;
+ public static final int PRODUCER_ANNOTATED_INJECT_ID = 21;
+ public static final int OBSERVER_ANNOTATED_INJECT_ID = 22;
+ public static final int DISPOSER_ANNOTATED_INJECT_ID = 23;
+
+ public static final int CONSTRUCTOR_PARAMETER_ANNOTATED_OBSERVES_ID = 24;
+ public static final int CONSTRUCTOR_PARAMETER_ANNOTATED_DISPOSES_ID = 25;
/*
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 2011-07-21 22:25:52 UTC (rev 33123)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/CDIUIMessages.java 2011-07-21 23:12:46 UTC (rev 33124)
@@ -107,7 +107,8 @@
public static String CHANGE_RETENTION_MARKER_RESOLUTION_TITLE;
public static String ADD_TARGET_MARKER_RESOLUTION_TITLE;
public static String CHANGE_TARGET_MARKER_RESOLUTION_TITLE;
- public static String ADD_NONBINDING_MARKER_RESOLUTION_TITLE;
+ public static String ADD_ANNOTATION_MARKER_RESOLUTION_TITLE;
+ public static String DELETE_ANNOTATION_MARKER_RESOLUTION_TITLE;
public static String QUESTION;
public static String DECREASING_FIELD_VISIBILITY_MAY_CAUSE_COMPILATION_PROBLEMS;
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 2011-07-21 22:25:52 UTC (rev 33123)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/CDIUIMessages.properties 2011-07-21 23:12:46 UTC (rev 33124)
@@ -91,7 +91,8 @@
CHANGE_RETENTION_MARKER_RESOLUTION_TITLE=Change ''{0}'' annotation to @Retention(RUNTIME)
ADD_TARGET_MARKER_RESOLUTION_TITLE=Add @Target({0}) annotation to ''{1}'' class
CHANGE_TARGET_MARKER_RESOLUTION_TITLE=Change ''{0}'' annotation to @Target({1})
-ADD_NONBINDING_MARKER_RESOLUTION_TITLE=Add @Nonbinding annotation to ''{0}'' member
+ADD_ANNOTATION_MARKER_RESOLUTION_TITLE=Add @{0} annotation to ''{1}'' {2}
+DELETE_ANNOTATION_MARKER_RESOLUTION_TITLE=Delete @{0} annotation from ''{1}'' {2}
QUESTION=Question
DECREASING_FIELD_VISIBILITY_MAY_CAUSE_COMPILATION_PROBLEMS=Decreasing field visibility may cause compilation problems. Do you want to continue?
Added: trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/marker/AddAnnotationMarkerResolution.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/marker/AddAnnotationMarkerResolution.java (rev 0)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/marker/AddAnnotationMarkerResolution.java 2011-07-21 23:12:46 UTC (rev 33124)
@@ -0,0 +1,78 @@
+/*******************************************************************************
+ * Copyright (c) 2011 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
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.cdi.ui.marker;
+
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.jdt.core.ICompilationUnit;
+import org.eclipse.jdt.core.IField;
+import org.eclipse.jdt.core.IJavaElement;
+import org.eclipse.jdt.core.ILocalVariable;
+import org.eclipse.jdt.core.IMember;
+import org.eclipse.jdt.core.IMethod;
+import org.eclipse.jdt.core.IType;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.ui.IMarkerResolution2;
+import org.jboss.tools.cdi.ui.CDIUIMessages;
+import org.jboss.tools.cdi.ui.CDIUIPlugin;
+
+public class AddAnnotationMarkerResolution implements
+ IMarkerResolution2 {
+ private IJavaElement element;
+ private String qualifiedName;
+ private String label;
+
+ public AddAnnotationMarkerResolution(IJavaElement element, String qualifiedName){
+ this.element = element;
+ this.qualifiedName = qualifiedName;
+ String shortName = MarkerResolutionUtils.getShortName(qualifiedName);
+ String type = "";
+ if(element instanceof IType){
+ type = "class";
+ }else if(element instanceof IMethod){
+ type = "method";
+ }else if(element instanceof IField){
+ type = "field";
+ }else if(element instanceof ILocalVariable && ((ILocalVariable) element).isParameter()){
+ type = "parameter";
+ }
+
+ label = NLS.bind(CDIUIMessages.ADD_ANNOTATION_MARKER_RESOLUTION_TITLE, new String[]{shortName, element.getElementName(), type});
+ }
+
+ public String getLabel() {
+ return label;
+ }
+
+ public void run(IMarker marker) {
+ try{
+ ICompilationUnit original = MarkerResolutionUtils.getJavaMember(element).getCompilationUnit();
+ ICompilationUnit compilationUnit = original.getWorkingCopy(new NullProgressMonitor());
+
+ MarkerResolutionUtils.addAnnotation(qualifiedName, compilationUnit, element);
+
+ compilationUnit.commitWorkingCopy(false, new NullProgressMonitor());
+ compilationUnit.discardWorkingCopy();
+ }catch(CoreException ex){
+ CDIUIPlugin.getDefault().logError(ex);
+ }
+ }
+
+ public String getDescription() {
+ return label;
+ }
+
+ public Image getImage() {
+ return null;
+ }
+}
Property changes on: trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/marker/AddAnnotationMarkerResolution.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Deleted: trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/marker/AddNonbindingAnnotationMarkerResolution.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/marker/AddNonbindingAnnotationMarkerResolution.java 2011-07-21 22:25:52 UTC (rev 33123)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/marker/AddNonbindingAnnotationMarkerResolution.java 2011-07-21 23:12:46 UTC (rev 33124)
@@ -1,60 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011 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
- *
- * Contributors:
- * Red Hat, Inc. - initial API and implementation
- ******************************************************************************/
-package org.jboss.tools.cdi.ui.marker;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jdt.core.IMember;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.IMarkerResolution2;
-import org.jboss.tools.cdi.core.CDIConstants;
-import org.jboss.tools.cdi.ui.CDIUIMessages;
-import org.jboss.tools.cdi.ui.CDIUIPlugin;
-
-public class AddNonbindingAnnotationMarkerResolution implements
- IMarkerResolution2 {
- private IMember member;
- private String label;
-
- public AddNonbindingAnnotationMarkerResolution(IMember member){
- this.member = member;
- label = NLS.bind(CDIUIMessages.ADD_NONBINDING_MARKER_RESOLUTION_TITLE, member.getElementName());
- }
-
- public String getLabel() {
- return label;
- }
-
- public void run(IMarker marker) {
- try{
- ICompilationUnit original = member.getCompilationUnit();
- ICompilationUnit compilationUnit = original.getWorkingCopy(new NullProgressMonitor());
-
- MarkerResolutionUtils.addAnnotation(CDIConstants.NON_BINDING_ANNOTATION_TYPE_NAME, compilationUnit, member);
-
- compilationUnit.commitWorkingCopy(false, new NullProgressMonitor());
- compilationUnit.discardWorkingCopy();
- }catch(CoreException ex){
- CDIUIPlugin.getDefault().logError(ex);
- }
- }
-
- public String getDescription() {
- return label;
- }
-
- public Image getImage() {
- return null;
- }
-}
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/marker/CDIProblemMarkerResolutionGenerator.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/marker/CDIProblemMarkerResolutionGenerator.java 2011-07-21 22:25:52 UTC (rev 33123)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/marker/CDIProblemMarkerResolutionGenerator.java 2011-07-21 23:12:46 UTC (rev 33124)
@@ -24,6 +24,7 @@
import org.eclipse.jdt.core.ICompilationUnit;
import org.eclipse.jdt.core.IField;
import org.eclipse.jdt.core.IJavaElement;
+import org.eclipse.jdt.core.ILocalVariable;
import org.eclipse.jdt.core.IMember;
import org.eclipse.jdt.core.IMethod;
import org.eclipse.jdt.core.IType;
@@ -267,10 +268,46 @@
IAnnotation annotation = getAnnotation(element, CDIConstants.NON_BINDING_ANNOTATION_TYPE_NAME);
if(element instanceof IMember && annotation == null){
return new IMarkerResolution[] {
- new AddNonbindingAnnotationMarkerResolution((IMember)element)
+ new AddAnnotationMarkerResolution((IMember)element, CDIConstants.NON_BINDING_ANNOTATION_TYPE_NAME)
};
}
}
+ }else if(messageId == CDIValidationErrorManager.DISPOSER_ANNOTATED_INJECT_ID){
+ IJavaElement element = findJavaElement(file, start);
+ if(element != null){
+ IJavaElement injectElement = findJavaElementByAnnotation(element, CDIConstants.INJECT_ANNOTATION_TYPE_NAME);
+ IJavaElement disposesElement = findJavaElementByAnnotation(element, CDIConstants.DISPOSES_ANNOTATION_TYPE_NAME);
+ if(injectElement != null && disposesElement != null){
+ return new IMarkerResolution[] {
+ new DeleteAnnotationMarkerResolution(injectElement, CDIConstants.INJECT_ANNOTATION_TYPE_NAME),
+ new DeleteAnnotationMarkerResolution(disposesElement, CDIConstants.DISPOSES_ANNOTATION_TYPE_NAME)
+ };
+ }
+ }
+ }else if(messageId == CDIValidationErrorManager.PRODUCER_ANNOTATED_INJECT_ID){
+ IJavaElement element = findJavaElement(file, start);
+ if(element != null){
+ IJavaElement injectElement = findJavaElementByAnnotation(element, CDIConstants.INJECT_ANNOTATION_TYPE_NAME);
+ IJavaElement produsesElement = findJavaElementByAnnotation(element, CDIConstants.PRODUCES_ANNOTATION_TYPE_NAME);
+ if(injectElement != null && produsesElement != null){
+ return new IMarkerResolution[] {
+ new DeleteAnnotationMarkerResolution(injectElement, CDIConstants.INJECT_ANNOTATION_TYPE_NAME),
+ new DeleteAnnotationMarkerResolution(produsesElement, CDIConstants.PRODUCES_ANNOTATION_TYPE_NAME)
+ };
+ }
+ }
+ }else if(messageId == CDIValidationErrorManager.OBSERVER_ANNOTATED_INJECT_ID){
+ IJavaElement element = findJavaElement(file, start);
+ if(element != null){
+ IJavaElement injectElement = findJavaElementByAnnotation(element, CDIConstants.INJECT_ANNOTATION_TYPE_NAME);
+ IJavaElement observerElement = findJavaElementByAnnotation(element, CDIConstants.OBSERVERS_ANNOTATION_TYPE_NAME);
+ if(injectElement != null && observerElement != null){
+ return new IMarkerResolution[] {
+ new DeleteAnnotationMarkerResolution(injectElement, CDIConstants.INJECT_ANNOTATION_TYPE_NAME),
+ new DeleteAnnotationMarkerResolution(observerElement, CDIConstants.OBSERVERS_ANNOTATION_TYPE_NAME)
+ };
+ }
+ }
}
}
return new IMarkerResolution[] {};
@@ -502,4 +539,26 @@
return null;
}
+ private IJavaElement findJavaElementByAnnotation(IJavaElement element, String qualifiedName) throws JavaModelException{
+ IAnnotation annotation = getAnnotation(element, qualifiedName);
+ if(annotation != null)
+ return element;
+
+ if(element instanceof IMethod){
+ for(ILocalVariable parameter : ((IMethod)element).getParameters()){
+ annotation = getAnnotation(parameter, qualifiedName);
+ if(annotation != null)
+ return parameter;
+ }
+ }else if(element instanceof ILocalVariable){
+ IJavaElement parent = element.getParent();
+ if(parent != null){
+ annotation = getAnnotation(parent, qualifiedName);
+ if(annotation != null)
+ return parent;
+ }
+ }
+ return null;
+ }
+
}
Added: trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/marker/DeleteAnnotationMarkerResolution.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/marker/DeleteAnnotationMarkerResolution.java (rev 0)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/marker/DeleteAnnotationMarkerResolution.java 2011-07-21 23:12:46 UTC (rev 33124)
@@ -0,0 +1,78 @@
+/*******************************************************************************
+ * Copyright (c) 2011 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
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.cdi.ui.marker;
+
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.jdt.core.ICompilationUnit;
+import org.eclipse.jdt.core.IField;
+import org.eclipse.jdt.core.IJavaElement;
+import org.eclipse.jdt.core.ILocalVariable;
+import org.eclipse.jdt.core.IMember;
+import org.eclipse.jdt.core.IMethod;
+import org.eclipse.jdt.core.IType;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.ui.IMarkerResolution2;
+import org.jboss.tools.cdi.ui.CDIUIMessages;
+import org.jboss.tools.cdi.ui.CDIUIPlugin;
+
+public class DeleteAnnotationMarkerResolution implements
+ IMarkerResolution2 {
+ private IJavaElement element;
+ private String qualifiedName;
+ private String label;
+
+ public DeleteAnnotationMarkerResolution(IJavaElement element, String qualifiedName){
+ this.element = element;
+ this.qualifiedName = qualifiedName;
+ String shortName = MarkerResolutionUtils.getShortName(qualifiedName);
+ String type = "";
+ if(element instanceof IType){
+ type = "class";
+ }else if(element instanceof IMethod){
+ type = "method";
+ }else if(element instanceof IField){
+ type = "field";
+ }else if(element instanceof ILocalVariable && ((ILocalVariable) element).isParameter()){
+ type = "parameter";
+ }
+
+ label = NLS.bind(CDIUIMessages.DELETE_ANNOTATION_MARKER_RESOLUTION_TITLE, new String[]{shortName, element.getElementName(), type});
+ }
+
+ public String getLabel() {
+ return label;
+ }
+
+ public void run(IMarker marker) {
+ try{
+ ICompilationUnit original = MarkerResolutionUtils.getJavaMember(element).getCompilationUnit();
+ ICompilationUnit compilationUnit = original.getWorkingCopy(new NullProgressMonitor());
+
+ MarkerResolutionUtils.deleteAnnotation(qualifiedName, compilationUnit, element);
+
+ compilationUnit.commitWorkingCopy(false, new NullProgressMonitor());
+ compilationUnit.discardWorkingCopy();
+ }catch(CoreException ex){
+ CDIUIPlugin.getDefault().logError(ex);
+ }
+ }
+
+ public String getDescription() {
+ return label;
+ }
+
+ public Image getImage() {
+ return null;
+ }
+}
Property changes on: trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/marker/DeleteAnnotationMarkerResolution.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/marker/MarkerResolutionUtils.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/marker/MarkerResolutionUtils.java 2011-07-21 22:25:52 UTC (rev 33123)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/marker/MarkerResolutionUtils.java 2011-07-21 23:12:46 UTC (rev 33124)
@@ -15,6 +15,8 @@
import java.util.HashSet;
import java.util.List;
import java.util.Set;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.runtime.CoreException;
@@ -25,6 +27,7 @@
import org.eclipse.jdt.core.IBuffer;
import org.eclipse.jdt.core.ICompilationUnit;
import org.eclipse.jdt.core.IField;
+import org.eclipse.jdt.core.IImportContainer;
import org.eclipse.jdt.core.IImportDeclaration;
import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.jdt.core.ILocalVariable;
@@ -157,15 +160,20 @@
return false;
}
- public static void addAnnotation(String qualifiedName, ICompilationUnit compilationUnit, IMember element) throws JavaModelException{
+ public static void addAnnotation(String qualifiedName, ICompilationUnit compilationUnit, IJavaElement element) throws JavaModelException{
addAnnotation(qualifiedName, compilationUnit, element, "");
}
- public static void addAnnotation(String qualifiedName, ICompilationUnit compilationUnit, IMember element, String params) throws JavaModelException{
- IMember workingCopyMember = findWorkingCopy(compilationUnit, element);
- if(workingCopyMember == null)
+ public static void addAnnotation(String qualifiedName, ICompilationUnit compilationUnit, IJavaElement element, String params) throws JavaModelException{
+ IJavaElement workingCopyElement = findWorkingCopy(compilationUnit, element);
+ if(workingCopyElement == null)
return;
+ if(!(workingCopyElement instanceof IMember))
+ return;
+
+ IMember workingCopyMember = (IMember) workingCopyElement;
+
IAnnotation annotation = getAnnotation(workingCopyMember, qualifiedName);
if(annotation != null && annotation.exists())
return;
@@ -261,6 +269,8 @@
member = (IMember)element;
}else if(element instanceof ITypeParameter){
member = ((ITypeParameter)element).getDeclaringMember();
+ }else if(element instanceof ILocalVariable){
+ member = ((ILocalVariable)element).getDeclaringMember();
}
if (member != null && annotation != null && qualifiedName.equals(EclipseJavaUtil.resolveType(member.getDeclaringType(), name))) {
return annotation;
@@ -501,6 +511,14 @@
return (T)a;
}
}
+ }else if(element instanceof ILocalVariable && ((ILocalVariable) element).isParameter()){
+ IJavaElement parent = findWorkingCopy(compilationUnit, element.getParent());
+ if(parent instanceof IMethod){
+ for(ILocalVariable parameter : ((IMethod)parent).getParameters()){
+ if(parameter.getElementName().equals(element.getElementName()) && parameter.getTypeSignature().equals(((ILocalVariable)element).getTypeSignature()))
+ return (T)parameter;
+ }
+ }
}else{
IJavaElement[] elements = compilationUnit.findElements(element);
if(elements != null){
@@ -513,4 +531,56 @@
return null;
}
+ public static void deleteAnnotation(String qualifiedName, ICompilationUnit compilationUnit, IJavaElement element) throws JavaModelException{
+ IJavaElement workingCopyElement = findWorkingCopy(compilationUnit, element);
+ if(workingCopyElement == null)
+ return;
+
+ IAnnotation annotation = getAnnotation(workingCopyElement, qualifiedName);
+ if(annotation != null){
+ IBuffer buffer = compilationUnit.getBuffer();
+
+ int position = annotation.getSourceRange().getOffset() + annotation.getSourceRange().getLength();
+ int numberOfSpaces = 0;
+ if(position < buffer.getLength()-1){
+ char c = buffer.getChar(position);
+ while(c == ' ' && position < buffer.getLength()-1){
+ numberOfSpaces++;
+ position++;
+ c = buffer.getChar(position);
+ }
+ }
+
+ // delete annotation
+ buffer.replace(annotation.getSourceRange().getOffset(), annotation.getSourceRange().getLength()+numberOfSpaces, "");
+
+ // check and delete import
+ IImportDeclaration importDeclaration = compilationUnit.getImport(qualifiedName);
+ IImportContainer importContainer = compilationUnit.getImportContainer();
+ if(importDeclaration != null && importContainer != null){
+ int importSize = importContainer.getSourceRange().getOffset()+importContainer.getSourceRange().getLength();
+ String text = buffer.getText(importSize, buffer.getLength()-importSize);
+ if(checkImport(text, qualifiedName))
+ importDeclaration.delete(false, new NullProgressMonitor());
+ }
+ }
+ }
+
+ private static boolean checkImport(String text, String qualifiedName){
+ String name = getShortName(qualifiedName);
+
+ Pattern p = Pattern.compile(".*\\W"+name+"\\W.*",Pattern.DOTALL); //$NON-NLS-1$ //$NON-NLS-2$
+ Matcher m = p.matcher(text);
+ return !m.matches();
+ }
+
+ public static IMember getJavaMember(IJavaElement element){
+ while(element != null){
+ if(element instanceof IMember)
+ return (IMember)element;
+ element = element.getParent();
+ }
+ return null;
+ }
+
}
Modified: trunk/cdi/tests/org.jboss.tools.cdi.ui.test/src/org/jboss/tools/cdi/ui/test/marker/CDIMarkerResolutionTest.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.ui.test/src/org/jboss/tools/cdi/ui/test/marker/CDIMarkerResolutionTest.java 2011-07-21 22:25:52 UTC (rev 33123)
+++ trunk/cdi/tests/org.jboss.tools.cdi.ui.test/src/org/jboss/tools/cdi/ui/test/marker/CDIMarkerResolutionTest.java 2011-07-21 23:12:46 UTC (rev 33124)
@@ -27,8 +27,8 @@
import org.jboss.tools.cdi.core.test.tck.validation.ValidationTest;
import org.jboss.tools.cdi.internal.core.validation.CDICoreValidator;
import org.jboss.tools.cdi.internal.core.validation.CDIValidationErrorManager;
+import org.jboss.tools.cdi.ui.marker.AddAnnotationMarkerResolution;
import org.jboss.tools.cdi.ui.marker.AddLocalBeanMarkerResolution;
-import org.jboss.tools.cdi.ui.marker.AddNonbindingAnnotationMarkerResolution;
import org.jboss.tools.cdi.ui.marker.AddRetentionAnnotationMarkerResolution;
import org.jboss.tools.cdi.ui.marker.AddSerializableInterfaceMarkerResolution;
import org.jboss.tools.cdi.ui.marker.AddTargetAnnotationMarkerResolution;
@@ -561,7 +561,7 @@
CDICoreValidator.PROBLEM_TYPE,
CDIValidationErrorManager.MESSAGE_ID_ATTRIBUTE_NAME,
CDIValidationErrorManager.MISSING_NONBINDING_FOR_ANNOTATION_VALUE_IN_QUALIFIER_TYPE_MEMBER_ID,
- AddNonbindingAnnotationMarkerResolution.class);
+ AddAnnotationMarkerResolution.class);
}
public void testAddNonbindingToArrayMemberOfQualifierResolution() throws CoreException{
@@ -575,7 +575,7 @@
CDICoreValidator.PROBLEM_TYPE,
CDIValidationErrorManager.MESSAGE_ID_ATTRIBUTE_NAME,
CDIValidationErrorManager.MISSING_NONBINDING_FOR_ARRAY_VALUE_IN_QUALIFIER_TYPE_MEMBER_ID,
- AddNonbindingAnnotationMarkerResolution.class);
+ AddAnnotationMarkerResolution.class);
}
public void testAddNonbindingToAnnotationMemberOfInterceptorResolution() throws CoreException{
@@ -589,7 +589,7 @@
CDICoreValidator.PROBLEM_TYPE,
CDIValidationErrorManager.MESSAGE_ID_ATTRIBUTE_NAME,
CDIValidationErrorManager.MISSING_NONBINDING_FOR_ANNOTATION_VALUE_IN_INTERCEPTOR_BINDING_TYPE_MEMBER_ID,
- AddNonbindingAnnotationMarkerResolution.class);
+ AddAnnotationMarkerResolution.class);
}
public void testAddNonbindingToArrayMemberOfInterceptorResolution() throws CoreException{
@@ -603,7 +603,7 @@
CDICoreValidator.PROBLEM_TYPE,
CDIValidationErrorManager.MESSAGE_ID_ATTRIBUTE_NAME,
CDIValidationErrorManager.MISSING_NONBINDING_FOR_ARRAY_VALUE_IN_INTERCEPTOR_BINDING_TYPE_MEMBER_ID,
- AddNonbindingAnnotationMarkerResolution.class);
+ AddAnnotationMarkerResolution.class);
}
}
\ No newline at end of file
14 years, 8 months