JBoss Tools SVN: r28373 - branches/jbosstools-3.2.0.CR1/build/aggregate/site.
by jbosstools-commits@lists.jboss.org
Author: dgolovin
Date: 2011-01-18 18:31:17 -0500 (Tue, 18 Jan 2011)
New Revision: 28373
Added:
branches/jbosstools-3.2.0.CR1/build/aggregate/site/remove-uncategorized.xsl
Modified:
branches/jbosstools-3.2.0.CR1/build/aggregate/site/build.xml
Log:
https://issues.jboss.org/browse/JBIDE-8029 Unable to install VPE on MacOSX 10.5 64bit
workaround for issue. xsl transformation is used to remove Uncategorized category from content.xml.
added to task intended to add references to save time
Modified: branches/jbosstools-3.2.0.CR1/build/aggregate/site/build.xml
===================================================================
--- branches/jbosstools-3.2.0.CR1/build/aggregate/site/build.xml 2011-01-18 23:22:44 UTC (rev 28372)
+++ branches/jbosstools-3.2.0.CR1/build/aggregate/site/build.xml 2011-01-18 23:31:17 UTC (rev 28373)
@@ -207,6 +207,9 @@
<echo file="${update.site.source.dir}/content.xml" append="true"> </references>
</repository>
</echo>
+
+ <xslt style="remove-uncategorized.xsl" in="${update.site.source.dir}/content.xml" out="${update.site.source.dir}/content.new.xml" />
+ <move file="${update.site.source.dir}/content.new.xml" tofile="${update.site.source.dir}/content.xml" overwrite="true" />
<zip destfile="${update.site.source.dir}/content.jar" basedir="${update.site.source.dir}" includes="content.xml" />
<delete file="${update.site.source.dir}/content.xml" />
</then>
@@ -354,4 +357,13 @@
<delete dir="${aggegate.zips.dir}" quiet="true" />
</target>
+ <target name="remove-uncategorized" >
+ <!-- content.jar - full path to content.jar -->
+ <property name="content.jar" value="/home/eskimo/Temp/content.jar" />
+ <mkdir dir="${java.io.tmpdir}/content"/>
+ <unzip src="${content.jar}" dest="${java.io.tmpdir}/content" />
+
+ <xslt style="remove-uncategorized.xsl" in="${java.io.tmpdir}/content/content.xml" out="${java.io.tmpdir}/content/content.xml">
+ </xslt>
+ </target>
</project>
Added: branches/jbosstools-3.2.0.CR1/build/aggregate/site/remove-uncategorized.xsl
===================================================================
--- branches/jbosstools-3.2.0.CR1/build/aggregate/site/remove-uncategorized.xsl (rev 0)
+++ branches/jbosstools-3.2.0.CR1/build/aggregate/site/remove-uncategorized.xsl 2011-01-18 23:31:17 UTC (rev 28373)
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
+
+<xsl:template match="/">
+ <xsl:apply-templates select="*"/>
+</xsl:template>
+
+
+<xsl:template match="*">
+ <xsl:copy >
+ <xsl:for-each select="@*">
+ <xsl:copy />
+ </xsl:for-each>
+ <xsl:apply-templates />
+ </xsl:copy>
+</xsl:template>
+
+<xsl:template match="unit[contains(@id,'site.xml.Default')]" />
+
+</xsl:stylesheet>
\ No newline at end of file
Property changes on: branches/jbosstools-3.2.0.CR1/build/aggregate/site/remove-uncategorized.xsl
___________________________________________________________________
Name: svn:mime-type
+ text/plain
15 years, 2 months
JBoss Tools SVN: r28372 - in workspace/rstryker/hudson/plugins: org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/model and 3 other directories.
by jbosstools-commits@lists.jboss.org
Author: rob.stryker(a)jboss.com
Date: 2011-01-18 18:22:44 -0500 (Tue, 18 Jan 2011)
New Revision: 28372
Added:
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/model/HudsonPasswordStorageKey.java
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/model/SecurePasswordStore.java
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/wizards/
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/wizards/HudsonServerDialog.java
Modified:
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/META-INF/MANIFEST.MF
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/model/AbstractHudsonListener.java
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/model/HudsonModel.java
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/model/HudsonServer.java
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/model/IHudsonListener.java
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/views/HudsonActionProvider.java
workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/views/HudsonManagerView.java
Log:
workspace hudson tooling - allows creation and deletion of connections and secure persistant storage
Modified: workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/META-INF/MANIFEST.MF
===================================================================
--- workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/META-INF/MANIFEST.MF 2011-01-18 19:01:41 UTC (rev 28371)
+++ workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/META-INF/MANIFEST.MF 2011-01-18 23:22:44 UTC (rev 28372)
@@ -5,7 +5,8 @@
Bundle-Version: 1.0.0.qualifier
Bundle-Activator: org.jboss.tools.hudson.manager.core.Activator
Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime
+ org.eclipse.core.runtime,
+ org.eclipse.equinox.security;bundle-version="1.0.200"
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Export-Package: org.jboss.tools.hudson.manager.core,
Modified: workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/model/AbstractHudsonListener.java
===================================================================
--- workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/model/AbstractHudsonListener.java 2011-01-18 19:01:41 UTC (rev 28371)
+++ workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/model/AbstractHudsonListener.java 2011-01-18 23:22:44 UTC (rev 28372)
@@ -4,5 +4,8 @@
public void jobFetched(HudsonJob job) {
}
-
+ public void serverAdded(HudsonServer server) {
+ }
+ public void serverRemoved(HudsonServer server) {
+ }
}
Modified: workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/model/HudsonModel.java
===================================================================
--- workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/model/HudsonModel.java 2011-01-18 19:01:41 UTC (rev 28371)
+++ workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/model/HudsonModel.java 2011-01-18 23:22:44 UTC (rev 28372)
@@ -1,14 +1,26 @@
package org.jboss.tools.hudson.manager.core.model;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.Writer;
import java.net.URL;
+import java.net.URLDecoder;
+import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
+import java.util.List;
import org.dom4j.Document;
+import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
+import org.dom4j.Element;
import org.dom4j.io.SAXReader;
+import org.eclipse.core.runtime.IPath;
+import org.jboss.tools.hudson.manager.core.Activator;
public class HudsonModel {
public static final String API_XML = "api/xml";
@@ -54,12 +66,74 @@
return hudsons.toArray(new HudsonServer[hudsons.size()]);
}
+ public void addServer(HudsonServer server) {
+ hudsons.add(server);
+ saveHudsons();
+ fireServerAdded(server);
+ }
+ public void removeServer(HudsonServer server) {
+ hudsons.remove(server);
+ saveHudsons();
+ fireServerRemoved(server);
+ }
+
private HudsonServer[] loadHudsons() {
- return new HudsonServer[]{
- new HudsonServer("Test1", "http://hudson.qa.jboss.com/hudson/view/DevStudio_Trunk/"),
- };
+ IPath stateLocation = Activator.getDefault().getStateLocation();
+ File f = stateLocation.append("hudsons.xml").toFile();
+ if( !f.exists()) {
+ return new HudsonServer[]{};
+ }
+
+ ArrayList<HudsonServer> storedServers = new ArrayList<HudsonServer>();
+ try {
+ SAXReader reader = new SAXReader();
+ Document document = reader.read(f);
+ Element root = document.getRootElement();
+ List servers = root.selectNodes("hudson");
+ for( int i = 0; i < servers.size(); i++ ) {
+ Element e = ((Element)servers.get(i));
+ storedServers.add(new HudsonServer(
+ URLDecoder.decode(e.attributeValue("name")),
+ URLDecoder.decode(e.attributeValue("url")),
+ URLDecoder.decode(e.attributeValue("user"))));
+ }
+ } catch( DocumentException de) {
+ de.printStackTrace();
+ }
+
+ return (HudsonServer[]) storedServers.toArray(new HudsonServer[storedServers.size()]);
+// return new HudsonServer[]{
+// new HudsonServer("Test1", "http://hudson.qa.jboss.com/hudson/view/DevStudio_Trunk/"),
+// };
}
+ private void saveHudsons() {
+ IPath stateLocation = Activator.getDefault().getStateLocation();
+ File f = stateLocation.append("hudsons.xml").toFile();
+ String val = "<hudsons>\n";
+ HudsonServer tmp;
+ for( int i = 0; i < hudsons.size(); i++ ) {
+ tmp=hudsons.get(i);
+ val += "<hudson name=\"" + URLEncoder.encode(tmp.getName())
+ + "\" url=\"" + URLEncoder.encode(tmp.getUrl())
+ + "\" user=\"" + URLEncoder.encode(tmp.getUser()) + "\"/>\n";
+ }
+ val += "</hudsons>";
+ Writer output = null;
+ try {
+ //use buffering
+ output = new BufferedWriter(new FileWriter(f));
+ //FileWriter always assumes default encoding is OK!
+ output.write( val );
+ } catch(IOException ioe) {
+ } finally {
+ if( output != null)
+ try {
+ output.close();
+ } catch(IOException ioe) {}
+ }
+ }
+
private DocumentRepository docRepo;
public DocumentRepository getDocumentRepository() {
if( docRepo == null ) {
@@ -105,12 +179,21 @@
}
}
-
void fireJobFetched(HudsonJob job) {
for( Iterator<IHudsonListener> i = listeners.iterator(); i.hasNext(); ) {
i.next().jobFetched(job);
}
}
-
+ void fireServerAdded(HudsonServer server) {
+ for( Iterator<IHudsonListener> i = listeners.iterator(); i.hasNext(); ) {
+ i.next().serverAdded(server);
+ }
+ }
+
+ void fireServerRemoved(HudsonServer server) {
+ for( Iterator<IHudsonListener> i = listeners.iterator(); i.hasNext(); ) {
+ i.next().serverRemoved(server);
+ }
+ }
}
Added: workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/model/HudsonPasswordStorageKey.java
===================================================================
--- workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/model/HudsonPasswordStorageKey.java (rev 0)
+++ workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/model/HudsonPasswordStorageKey.java 2011-01-18 23:22:44 UTC (rev 28372)
@@ -0,0 +1,53 @@
+/*******************************************************************************
+ * 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
+ * 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.hudson.manager.core.model;
+
+import org.eclipse.equinox.security.storage.EncodingUtils;
+import org.jboss.tools.hudson.manager.core.Activator;
+import org.jboss.tools.hudson.manager.core.model.SecurePasswordStore.IStorageKey;
+
+/**
+ * Implements a key to be used to store values in the preferences store.
+ *
+ * @author Andre Dietisheim
+ *
+ */
+public class HudsonPasswordStorageKey implements IStorageKey {
+
+ private static final String PREFERNCES_BASEKEY = Activator.PLUGIN_ID.replace('.', '/');
+ private String hudsonName;
+ private String userName;
+
+ public HudsonPasswordStorageKey(String hudsonName, String userName) {
+ this.userName = EncodingUtils.encodeBase64(userName.getBytes());
+ this.hudsonName = EncodingUtils.encodeBase64(hudsonName.getBytes());
+ }
+
+ @Override
+ public String getKey() {
+ String key = new StringBuilder(PREFERNCES_BASEKEY)
+ .append(hudsonName)
+ .append('/') //$NON-NLS-1$
+ .append(userName)
+ .toString();
+ return EncodingUtils.encodeSlashes(key);
+ }
+
+ @Override
+ public boolean equals(IStorageKey key) {
+ if (!key.getClass().isAssignableFrom(HudsonPasswordStorageKey.class)) {
+ return false;
+ }
+ HudsonPasswordStorageKey hudsonKey = (HudsonPasswordStorageKey) key;
+ return userName.equals(hudsonKey.userName)
+ && hudsonName.equals(hudsonKey.hudsonName);
+ }
+}
Modified: workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/model/HudsonServer.java
===================================================================
--- workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/model/HudsonServer.java 2011-01-18 19:01:41 UTC (rev 28371)
+++ workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/model/HudsonServer.java 2011-01-18 23:22:44 UTC (rev 28372)
@@ -8,16 +8,33 @@
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
-import org.eclipse.core.runtime.Path;
public class HudsonServer {
private String name;
private String url;
+ private String user;
+ private SecurePasswordStore secureStore;
private ArrayList<HudsonJob> jobs = null;
- public HudsonServer(String name, String url) {
+
+ public HudsonServer(String name, String url, String user) {
+ this(name, url, user, null);
+ }
+ public HudsonServer(String name, String url, String user, String password) {
this.name = name;
this.url = url;
+ this.user = user;
+ secureStore = createSecurePasswordStore(name, url, password);
+ }
+
+ public String getPassword() {
+ return secureStore.getPassword();
}
+
+ protected SecurePasswordStore createSecurePasswordStore(String name2, String username2, String password) {
+ return new SecurePasswordStore(new HudsonPasswordStorageKey(name, user), password);
+ }
+
+
public String getName() {
return name;
}
@@ -81,4 +98,10 @@
}
return (HudsonJob[]) list.toArray(new HudsonJob[list.size()]);
}
+ public String getUser() {
+ return user;
+ }
+ public void setUser(String user) {
+ this.user = user;
+ }
}
Modified: workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/model/IHudsonListener.java
===================================================================
--- workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/model/IHudsonListener.java 2011-01-18 19:01:41 UTC (rev 28371)
+++ workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/model/IHudsonListener.java 2011-01-18 23:22:44 UTC (rev 28372)
@@ -1,5 +1,7 @@
package org.jboss.tools.hudson.manager.core.model;
public interface IHudsonListener {
+ public void serverAdded(HudsonServer server);
+ public void serverRemoved(HudsonServer server);
public void jobFetched(HudsonJob job);
}
Added: workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/model/SecurePasswordStore.java
===================================================================
--- workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/model/SecurePasswordStore.java (rev 0)
+++ workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.core/src/org/jboss/tools/hudson/manager/core/model/SecurePasswordStore.java 2011-01-18 23:22:44 UTC (rev 28372)
@@ -0,0 +1,99 @@
+/*******************************************************************************
+ * 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
+ * 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.hudson.manager.core.model;
+
+import org.eclipse.equinox.security.storage.ISecurePreferences;
+import org.eclipse.equinox.security.storage.SecurePreferencesFactory;
+import org.eclipse.equinox.security.storage.StorageException;
+
+/**
+ * @author Andre Dietisheim
+ */
+public class SecurePasswordStore {
+
+ public static interface IStorageKey {
+ public String getKey();
+ public boolean equals(IStorageKey key);
+ }
+
+ private String password;
+ private boolean stored;
+ private IStorageKey storageKey;
+
+ public SecurePasswordStore(IStorageKey key, String password) {
+ this.storageKey = key;
+ this.password = password;
+ }
+
+ public String getPassword() {
+ try {
+ if (password != null) {
+ if (!stored) {
+ storeInPreferences(password, storageKey);
+ stored = true;
+ }
+ return password;
+ } else {
+ return this.password = getFromPreferences(storageKey);
+ }
+ } catch (StorageException e) {
+ // TODO
+ }
+ return null;
+ }
+
+ public void setPassword(String password) {
+ update(storageKey, password);
+ }
+
+ public void update(IStorageKey key, String password) {
+ try {
+ if (!storageKey.equals(key)
+ || isPasswordChanged(password)) {
+ storeInPreferences(this.password = password, this.storageKey = key);
+ }
+ } catch(StorageException se) {
+ // TODO
+ }
+ }
+
+ private boolean isPasswordChanged(String password) {
+ if (this.password == null && password == null) {
+ return false;
+ } else {
+ return (this.password == null && password != null)
+ || (this.password != null && password == null)
+ || !password.equals(this.password);
+ }
+ }
+
+ public void remove() {
+ ISecurePreferences node = getNode(storageKey);
+ if (node != null)
+ node.clear();
+ }
+
+ private String getFromPreferences(IStorageKey key) throws StorageException {
+ ISecurePreferences node = getNode(key);
+ String password = node.get("password", null); //$NON-NLS-1$
+ return password;
+ }
+
+ private void storeInPreferences(String password, IStorageKey key) throws StorageException {
+ ISecurePreferences node = getNode(key);
+ node.put("password", password, true /* encrypt */); //$NON-NLS-1$
+ }
+
+ private ISecurePreferences getNode(IStorageKey key) {
+ ISecurePreferences root = SecurePreferencesFactory.getDefault();
+ return root.node(key.getKey());
+ }
+}
Modified: workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/views/HudsonActionProvider.java
===================================================================
--- workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/views/HudsonActionProvider.java 2011-01-18 19:01:41 UTC (rev 28371)
+++ workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/views/HudsonActionProvider.java 2011-01-18 23:22:44 UTC (rev 28372)
@@ -2,20 +2,33 @@
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.Separator;
import org.eclipse.jface.viewers.ISelectionProvider;
import org.eclipse.ui.navigator.CommonViewer;
import org.jboss.tools.hudson.manager.core.model.HudsonJob;
import org.jboss.tools.hudson.manager.core.model.HudsonJob.JobBuild;
+import org.jboss.tools.hudson.manager.core.model.HudsonModel;
+import org.jboss.tools.hudson.manager.core.model.HudsonServer;
+import org.jboss.tools.hudson.manager.ui.wizards.HudsonServerDialog;
public class HudsonActionProvider extends AbstractCommonNavActionProvider {
- private Action refreshJobAction, openBuiltOnAction;
+ private Action newConnectionAction, deleteConnectionAction,
+ refreshJobAction, openBuiltOnAction;
public HudsonActionProvider() {
super();
}
public void fillContextMenu(IMenuManager menu) {
- Object first = getSelection();
+ createActions(cv, null); // TODO remove
+
+ Object first = getSelectedItem();
+ Separator visible = new Separator();
+ visible.setVisible(true);
+ menu.add(newConnectionAction);
+ if( first != null && first instanceof HudsonServer )
+ menu.add(deleteConnectionAction);
+ menu.add(visible);
if (first == null)
return;
if( getSelectedItem() instanceof HudsonJob )
@@ -27,7 +40,30 @@
}
}
- public void createActions(CommonViewer tableViewer, ISelectionProvider provider) {
+ public void createActions(final CommonViewer tableViewer, ISelectionProvider provider) {
+ newConnectionAction = new Action() {
+ public void run() {
+ HudsonServerDialog d = new HudsonServerDialog(tableViewer.getTree().getShell());
+ if( d.open() == HudsonServerDialog.OK) {
+ HudsonServer s = new HudsonServer(d.getName(), d.getUrl(), d.getUser(), d.getPass());
+ if( s != null ) {
+ HudsonModel.getInstance().addServer(s);
+ }
+ }
+ }
+ };
+ newConnectionAction.setText("Create New Hudson Server");
+
+ deleteConnectionAction = new Action() {
+ public void run() {
+ HudsonServer sel = (HudsonServer)getSelectedItem();
+ if( sel != null ) {
+ HudsonModel.getInstance().removeServer(sel);
+ }
+ }
+ };
+ deleteConnectionAction.setText("Delete Hudson Server");
+
refreshJobAction = new Action() {
public void run() {
HudsonJob job = (HudsonJob)getSelectedItem();
Modified: workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/views/HudsonManagerView.java
===================================================================
--- workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/views/HudsonManagerView.java 2011-01-18 19:01:41 UTC (rev 28371)
+++ workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/views/HudsonManagerView.java 2011-01-18 23:22:44 UTC (rev 28372)
@@ -2,13 +2,31 @@
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.navigator.CommonNavigator;
-import org.eclipse.ui.navigator.CommonViewerSorter;
+import org.jboss.tools.hudson.manager.core.model.AbstractHudsonListener;
+import org.jboss.tools.hudson.manager.core.model.HudsonModel;
+import org.jboss.tools.hudson.manager.core.model.HudsonServer;
+import org.jboss.tools.hudson.manager.core.model.IHudsonListener;
public class HudsonManagerView extends CommonNavigator {
+ private IHudsonListener modelListener = new AbstractHudsonListener() {
+ public void serverAdded(HudsonServer server) {
+ getCommonViewer().refresh();
+ }
+ public void serverRemoved(HudsonServer server) {
+ getCommonViewer().refresh();
+ }
+ };
+
public HudsonManagerView() {
- // TODO Auto-generated constructor stub
+ HudsonModel.getInstance().addListener(modelListener);
}
+
+ public void dispose() {
+ super.dispose();
+ HudsonModel.getInstance().removeListener(modelListener);
+ }
+
protected Object getInitialInput() {
return this;
}
Added: workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/wizards/HudsonServerDialog.java
===================================================================
--- workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/wizards/HudsonServerDialog.java (rev 0)
+++ workspace/rstryker/hudson/plugins/org.jboss.tools.hudson.manager.ui/src/org/jboss/tools/hudson/manager/ui/wizards/HudsonServerDialog.java 2011-01-18 23:22:44 UTC (rev 28372)
@@ -0,0 +1,144 @@
+package org.jboss.tools.hudson.manager.ui.wizards;
+
+import org.eclipse.jface.dialogs.TitleAreaDialog;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.layout.FormAttachment;
+import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.layout.FormLayout;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.jboss.tools.hudson.manager.core.model.HudsonModel;
+import org.jboss.tools.hudson.manager.core.model.HudsonServer;
+
+public class HudsonServerDialog extends TitleAreaDialog {
+
+ public static FormData createFormData(
+ Object top, int topOffset, Object bottom, int bottomOffset,
+ Object left, int leftOffset, Object right, int rightOffset) {
+ FormData data = new FormData();
+ if( top != null ) data.top = createAttachment(top, topOffset);
+ if( bottom != null ) data.bottom = createAttachment(bottom, bottomOffset);
+ if( left != null ) data.left = createAttachment(left, leftOffset);
+ if( right != null ) data.right = createAttachment(right, rightOffset);
+ return data;
+ }
+
+ public static FormAttachment createAttachment(Object attachment, int offset) {
+ if( attachment instanceof Integer) {
+ return new FormAttachment(((Integer)attachment).intValue(), offset);
+ }
+ return new FormAttachment((Control)attachment, offset);
+ }
+
+ private HudsonServer initialServer;
+ private String name, url, user, pass;
+ private Text nameText, urlText, usernameText, passText;
+
+ public HudsonServerDialog(Shell parentShell) {
+ super(parentShell);
+ this.initialServer = null;
+ }
+
+ public HudsonServerDialog(Shell parentShell, HudsonServer initial) {
+ this(parentShell);
+ this.initialServer = initial;
+ }
+
+ protected Control createDialogArea(Composite parent) {
+ setTitle("Create new Hudson Server");
+ setMessage("Get on it, dork");
+
+ // create the top level composite for the dialog area
+ Composite composite = new Composite(parent, SWT.NONE);
+ composite.setLayout(new FormLayout());
+ composite.setLayoutData(new GridData(GridData.FILL_BOTH));
+ composite.setFont(parent.getFont());
+ // Build the separator line
+ Label titleBarSeparator = new Label(composite, SWT.HORIZONTAL | SWT.SEPARATOR);
+ titleBarSeparator.setLayoutData(createFormData(0, 0, null, 0, 0,0,100,0));
+
+ Label name = new Label(composite, SWT.None);
+ Label url = new Label(composite, SWT.None);
+ name.setLayoutData(createFormData(titleBarSeparator, 5, null, 0, 0,5,null,0));
+ nameText = new Text(composite, SWT.BORDER);
+ nameText.setLayoutData(createFormData(titleBarSeparator,5,null,0,url,5,100,-5));
+
+ url.setLayoutData(createFormData(nameText, 5, null, 0, 0,5,null,0));
+ urlText = new Text(composite, SWT.BORDER);
+ urlText.setLayoutData(createFormData(nameText,5,null,0,url,5,100,-5));
+
+ Label username = new Label(composite, SWT.None);
+ username.setLayoutData(createFormData(urlText, 5, null, 0, 0,5,null,0));
+ usernameText = new Text(composite, SWT.BORDER);
+ usernameText.setLayoutData(createFormData(urlText,5,null,0,url,5,100,-5));
+
+ Label pass = new Label(composite, SWT.None);
+ pass.setLayoutData(createFormData(usernameText, 5, null, 0, 0,5,null,0));
+ passText = new Text(composite, SWT.BORDER | SWT.PASSWORD);
+ passText.setLayoutData(createFormData(usernameText,5,null,0,url,5,100,-5));
+
+ name.setText("Name: ");
+ url.setText("Hudson URL: ");
+ username.setText("Username: ");
+ pass.setText("Password: ");
+
+ // Initialize
+ if( initialServer != null ) {
+ // TODO fix this
+ }
+
+ ModifyListener listener = new ModifyListener() {
+ public void modifyText(ModifyEvent e) {
+ saveVals();
+ }
+ };
+ nameText.addModifyListener(listener);
+ urlText.addModifyListener(listener);
+ usernameText.addModifyListener(listener);
+ passText.addModifyListener(listener);
+ return composite;
+ }
+
+ private void saveVals() {
+ this.name = nameText.getText();
+ this.url = urlText.getText();
+ this.user = usernameText.getText();
+ this.pass = passText.getText();
+
+ // validate
+ HudsonServer[] allServers = HudsonModel.getInstance().getServers();
+ for( int i = 0; i < allServers.length; i++ ) {
+ if( allServers[i].getName().equals(name)) {
+ setErrorMessage("Name already in use");
+ return;
+ }
+ }
+ setErrorMessage(null);
+ }
+
+ public HudsonServer getInitialServer() {
+ return initialServer;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public String getUrl() {
+ return url;
+ }
+
+ public String getUser() {
+ return user;
+ }
+
+ public String getPass() {
+ return pass;
+ }
+}
15 years, 2 months
JBoss Tools SVN: r28371 - trunk/maven/tests/org.jboss.tools.maven.ui.bot.test.
by jbosstools-commits@lists.jboss.org
Author: snjeza
Date: 2011-01-18 14:01:41 -0500 (Tue, 18 Jan 2011)
New Revision: 28371
Modified:
trunk/maven/tests/org.jboss.tools.maven.ui.bot.test/pom.xml
Log:
JBIDE-7989 Maven bot test plugin has no runnable tests
Modified: trunk/maven/tests/org.jboss.tools.maven.ui.bot.test/pom.xml
===================================================================
--- trunk/maven/tests/org.jboss.tools.maven.ui.bot.test/pom.xml 2011-01-18 18:20:46 UTC (rev 28370)
+++ trunk/maven/tests/org.jboss.tools.maven.ui.bot.test/pom.xml 2011-01-18 19:01:41 UTC (rev 28371)
@@ -10,6 +10,10 @@
<artifactId>org.jboss.tools.maven.ui.bot.test</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>eclipse-test-plugin</packaging>
+
+ <properties>
+ <systemProperties>-Djbosstools.test.jboss.home.5.1=${requirement.build.root}/jboss-5.1.0.GA -Djbosstools.test.seam.2.0.1.GA.home=${requirement.build.root}/jboss-seam-2.1.1.GA</systemProperties>
+ </properties>
<build>
<plugins>
<plugin>
@@ -18,6 +22,9 @@
<version>${tychoVersion}</version>
<configuration>
<useUIThread>false</useUIThread>
+ <useUIHarness>true</useUIHarness>
+ <testSuite>org.jboss.tools.maven.ui.bot.test</testSuite>
+ <testClass>org.jboss.tools.maven.ui.bot.test.MavenAllBotTests</testClass>
</configuration>
</plugin>
</plugins>
15 years, 2 months
JBoss Tools SVN: r28370 - branches/jbosstools-3.2.0.CR1/cdi/tests/org.jboss.tools.cdi.ui.test/src/org/jboss/tools/cdi/ui/test/wizard.
by jbosstools-commits@lists.jboss.org
Author: scabanovich
Date: 2011-01-18 13:20:46 -0500 (Tue, 18 Jan 2011)
New Revision: 28370
Modified:
branches/jbosstools-3.2.0.CR1/cdi/tests/org.jboss.tools.cdi.ui.test/src/org/jboss/tools/cdi/ui/test/wizard/NewCDIWizardTest.java
Log:
JBIDE-8124
https://issues.jboss.org/browse/JBIDE-8124
Modified: branches/jbosstools-3.2.0.CR1/cdi/tests/org.jboss.tools.cdi.ui.test/src/org/jboss/tools/cdi/ui/test/wizard/NewCDIWizardTest.java
===================================================================
--- branches/jbosstools-3.2.0.CR1/cdi/tests/org.jboss.tools.cdi.ui.test/src/org/jboss/tools/cdi/ui/test/wizard/NewCDIWizardTest.java 2011-01-18 18:01:01 UTC (rev 28369)
+++ branches/jbosstools-3.2.0.CR1/cdi/tests/org.jboss.tools.cdi.ui.test/src/org/jboss/tools/cdi/ui/test/wizard/NewCDIWizardTest.java 2011-01-18 18:20:46 UTC (rev 28370)
@@ -43,6 +43,7 @@
import org.jboss.tools.cdi.ui.CDIUIPlugin;
//import org.jboss.tools.cdi.ui.wizard.NewCDIAnnotationWizardPage;
import org.jboss.tools.cdi.ui.wizard.NewAnnotationLiteralWizardPage;
+import org.jboss.tools.cdi.ui.wizard.NewBeanWizardPage;
import org.jboss.tools.cdi.ui.wizard.NewBeansXMLCreationWizard;
import org.jboss.tools.cdi.ui.wizard.NewDecoratorWizardPage;
import org.jboss.tools.cdi.ui.wizard.NewInterceptorBindingWizardPage;
@@ -71,6 +72,7 @@
static String INTERCEPTOR_BINDING2_NAME = "MyInterceptorBinding2";
static String INTERCEPTOR_NAME = "MyInterceptor";
static String DECORATOR_NAME = "MapDecorator<K,V>";
+ static String BEAN_NAME = "MyBean";
static class WizardContext {
NewElementWizard wizard;
@@ -371,6 +373,30 @@
}
}
+ public void testNewBeanWizard() {
+ WizardContext context = new WizardContext();
+ context.init("org.jboss.tools.cdi.ui.wizard.NewBeanCreationWizard",
+ PACK_NAME, BEAN_NAME);JobUtils.waitForIdle(2000);
+ JobUtils.waitForIdle(2000);
+ ICDIProject cdi = CDICorePlugin.getCDIProject(context.tck, true);
+
+ try {
+ NewBeanWizardPage page = (NewBeanWizardPage)context.page;
+
+ page.setBeanName("myNewBean");
+
+ context.wizard.performFinish();
+
+ String text = context.getNewTypeContent();
+ System.out.println(text);
+
+ assertTrue(text.contains("@Named"));
+ assertTrue(text.contains("\"myNewBean\""));
+ } finally {
+ context.close();
+ }
+ }
+
public void testNewAnnotationLiteralWizard() {
WizardContext context = new WizardContext();
context.init("org.jboss.tools.cdi.ui.wizard.NewAnnotationLiteralCreationWizard",
15 years, 2 months
JBoss Tools SVN: r28369 - in trunk/download.jboss.org/jbosstools/updates: requirements/helios and 1 other directory.
by jbosstools-commits@lists.jboss.org
Author: nickboldt
Date: 2011-01-18 13:01:01 -0500 (Tue, 18 Jan 2011)
New Revision: 28369
Added:
trunk/download.jboss.org/jbosstools/updates/helios/site.xml
trunk/download.jboss.org/jbosstools/updates/requirements/helios/site.xml
Removed:
trunk/download.jboss.org/jbosstools/updates/helios/compositeArtifacts.xml
trunk/download.jboss.org/jbosstools/updates/helios/compositeContent.xml
trunk/download.jboss.org/jbosstools/updates/requirements/helios/composite...
trunk/download.jboss.org/jbosstools/updates/requirements/helios/composite...
Modified:
trunk/download.jboss.org/jbosstools/updates/helios/README.txt
trunk/download.jboss.org/jbosstools/updates/requirements/helios/README.txt
Log:
replace pointer to target platform with no-op empty site.xml
Modified: trunk/download.jboss.org/jbosstools/updates/helios/README.txt
===================================================================
--- trunk/download.jboss.org/jbosstools/updates/helios/README.txt 2011-01-18 17:27:45 UTC (rev 28368)
+++ trunk/download.jboss.org/jbosstools/updates/helios/README.txt 2011-01-18 18:01:01 UTC (rev 28369)
@@ -1,3 +1 @@
-Instead of mirroring Helios, instead we're providing a target platform repo here:
-
-http://download.jboss.org/jbosstools/updates/target-platform/latest/
+Instead of mirroring Helios here, this site is now a no-op empty placeholder.
Deleted: trunk/download.jboss.org/jbosstools/updates/helios/compositeArtifacts.xml
===================================================================
--- trunk/download.jboss.org/jbosstools/updates/helios/compositeArtifacts.xml 2011-01-18 17:27:45 UTC (rev 28368)
+++ trunk/download.jboss.org/jbosstools/updates/helios/compositeArtifacts.xml 2011-01-18 18:01:01 UTC (rev 28369)
@@ -1,15 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<?compositeArtifactRepository version='1.0.0'?>
-<repository name='JBoss Tools Staging Repository' type='org.eclipse.equinox.internal.p2.artifact.repository.CompositeArtifactRepository' version='1.0.0'>
-<properties size='2'>
-<property name='p2.compressed' value='true'/>
-<!--
- get new time w/
- date +%s000
--->
-<property name='p2.timestamp' value='1295284436000'/>
-</properties>
-<children size='1'>
-<child location='http://download.jboss.org/jbosstools/updates/target-platform/latest/'/>
-</children>
-</repository>
Deleted: trunk/download.jboss.org/jbosstools/updates/helios/compositeContent.xml
===================================================================
--- trunk/download.jboss.org/jbosstools/updates/helios/compositeContent.xml 2011-01-18 17:27:45 UTC (rev 28368)
+++ trunk/download.jboss.org/jbosstools/updates/helios/compositeContent.xml 2011-01-18 18:01:01 UTC (rev 28369)
@@ -1,15 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<?compositeMetadataRepository version='1.0.0'?>
-<repository name='JBoss Tools Staging Repository' type='org.eclipse.equinox.internal.p2.metadata.repository.CompositeMetadataRepository' version='1.0.0'>
-<properties size='2'>
-<property name='p2.compressed' value='true'/>
-<!--
- get new time w/
- date +%s000
--->
-<property name='p2.timestamp' value='1295284436000'/>
-</properties>
-<children size='1'>
-<child location='http://download.jboss.org/jbosstools/updates/target-platform/latest/'/>
-</children>
-</repository>
Added: trunk/download.jboss.org/jbosstools/updates/helios/site.xml
===================================================================
--- trunk/download.jboss.org/jbosstools/updates/helios/site.xml (rev 0)
+++ trunk/download.jboss.org/jbosstools/updates/helios/site.xml 2011-01-18 18:01:01 UTC (rev 28369)
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<site/>
+
Modified: trunk/download.jboss.org/jbosstools/updates/requirements/helios/README.txt
===================================================================
--- trunk/download.jboss.org/jbosstools/updates/requirements/helios/README.txt 2011-01-18 17:27:45 UTC (rev 28368)
+++ trunk/download.jboss.org/jbosstools/updates/requirements/helios/README.txt 2011-01-18 18:01:01 UTC (rev 28369)
@@ -1,3 +1 @@
-Instead of mirroring Helios, instead we're providing a target platform repo here:
-
-http://download.jboss.org/jbosstools/updates/target-platform/latest/
+Instead of mirroring Helios here, this site is now a no-op empty placeholder.
Deleted: trunk/download.jboss.org/jbosstools/updates/requirements/helios/composite...
===================================================================
--- trunk/download.jboss.org/jbosstools/updates/requirements/helios/composite... 2011-01-18 17:27:45 UTC (rev 28368)
+++ trunk/download.jboss.org/jbosstools/updates/requirements/helios/composite... 2011-01-18 18:01:01 UTC (rev 28369)
@@ -1,15 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<?compositeArtifactRepository version='1.0.0'?>
-<repository name='JBoss Tools Staging Repository' type='org.eclipse.equinox.internal.p2.artifact.repository.CompositeArtifactRepository' version='1.0.0'>
-<properties size='2'>
-<property name='p2.compressed' value='true'/>
-<!--
- get new time w/
- date +%s000
--->
-<property name='p2.timestamp' value='1295284436000'/>
-</properties>
-<children size='1'>
-<child location='http://download.jboss.org/jbosstools/updates/target-platform/latest/'/>
-</children>
-</repository>
Deleted: trunk/download.jboss.org/jbosstools/updates/requirements/helios/composite...
===================================================================
--- trunk/download.jboss.org/jbosstools/updates/requirements/helios/composite... 2011-01-18 17:27:45 UTC (rev 28368)
+++ trunk/download.jboss.org/jbosstools/updates/requirements/helios/composite... 2011-01-18 18:01:01 UTC (rev 28369)
@@ -1,15 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<?compositeMetadataRepository version='1.0.0'?>
-<repository name='JBoss Tools Staging Repository' type='org.eclipse.equinox.internal.p2.metadata.repository.CompositeMetadataRepository' version='1.0.0'>
-<properties size='2'>
-<property name='p2.compressed' value='true'/>
-<!--
- get new time w/
- date +%s000
--->
-<property name='p2.timestamp' value='1295284436000'/>
-</properties>
-<children size='1'>
-<child location='http://download.jboss.org/jbosstools/updates/target-platform/latest/'/>
-</children>
-</repository>
Added: trunk/download.jboss.org/jbosstools/updates/requirements/helios/site.xml
===================================================================
--- trunk/download.jboss.org/jbosstools/updates/requirements/helios/site.xml (rev 0)
+++ trunk/download.jboss.org/jbosstools/updates/requirements/helios/site.xml 2011-01-18 18:01:01 UTC (rev 28369)
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<site/>
+
15 years, 2 months
JBoss Tools SVN: r28368 - branches/jbosstools-3.2.0.CR1/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/i18n/handlers.
by jbosstools-commits@lists.jboss.org
Author: mareshkau
Date: 2011-01-18 12:27:45 -0500 (Tue, 18 Jan 2011)
New Revision: 28368
Modified:
branches/jbosstools-3.2.0.CR1/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/i18n/handlers/I18nHandler.java
Log:
https://issues.jboss.org/browse/JBIDE-8138
Modified: branches/jbosstools-3.2.0.CR1/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/i18n/handlers/I18nHandler.java
===================================================================
--- branches/jbosstools-3.2.0.CR1/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/i18n/handlers/I18nHandler.java 2011-01-18 17:23:45 UTC (rev 28367)
+++ branches/jbosstools-3.2.0.CR1/jst/plugins/org.jboss.tools.jst.jsp/src/org/jboss/tools/jst/jsp/i18n/handlers/I18nHandler.java 2011-01-18 17:27:45 UTC (rev 28368)
@@ -17,10 +17,12 @@
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.commands.HandlerEvent;
+import org.eclipse.core.expressions.IEvaluationContext;
import org.eclipse.jface.text.TextSelection;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.ISources;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.commands.IElementUpdater;
import org.eclipse.ui.handlers.HandlerUtil;
@@ -40,17 +42,16 @@
@Override
public void setEnabled(Object evaluationContext) {
- IEditorPart activeEditor= PlatformUI
- .getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor();
- boolean enabled;
- if(activeEditor instanceof ITextEditor){
- ITextEditor txtEditor = (ITextEditor) activeEditor;
- ISelection selection = txtEditor.getSelectionProvider().getSelection();
- enabled = getExternalizeStringsCommandEnabled(selection);
- } else {
- enabled = false;
+ boolean enabled=false;
+ if (evaluationContext instanceof IEvaluationContext) {
+ IEvaluationContext context = (IEvaluationContext) evaluationContext;
+ Object activeEditor = context.getVariable(ISources.ACTIVE_EDITOR_NAME);
+ if(activeEditor instanceof ITextEditor){
+ ITextEditor txtEditor = (ITextEditor) activeEditor;
+ ISelection selection = txtEditor.getSelectionProvider().getSelection();
+ enabled = getExternalizeStringsCommandEnabled(selection);
+ }
}
-
if (isEnabled() != enabled) {
setBaseEnabled(enabled);
}
15 years, 2 months
JBoss Tools SVN: r28367 - trunk/cdi/tests/org.jboss.tools.cdi.ui.test/src/org/jboss/tools/cdi/ui/test/wizard.
by jbosstools-commits@lists.jboss.org
Author: scabanovich
Date: 2011-01-18 12:23:45 -0500 (Tue, 18 Jan 2011)
New Revision: 28367
Modified:
trunk/cdi/tests/org.jboss.tools.cdi.ui.test/src/org/jboss/tools/cdi/ui/test/wizard/NewCDIWizardTest.java
Log:
JBIDE-8124
https://issues.jboss.org/browse/JBIDE-8124
Modified: trunk/cdi/tests/org.jboss.tools.cdi.ui.test/src/org/jboss/tools/cdi/ui/test/wizard/NewCDIWizardTest.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.ui.test/src/org/jboss/tools/cdi/ui/test/wizard/NewCDIWizardTest.java 2011-01-18 17:22:50 UTC (rev 28366)
+++ trunk/cdi/tests/org.jboss.tools.cdi.ui.test/src/org/jboss/tools/cdi/ui/test/wizard/NewCDIWizardTest.java 2011-01-18 17:23:45 UTC (rev 28367)
@@ -43,6 +43,7 @@
import org.jboss.tools.cdi.ui.CDIUIPlugin;
//import org.jboss.tools.cdi.ui.wizard.NewCDIAnnotationWizardPage;
import org.jboss.tools.cdi.ui.wizard.NewAnnotationLiteralWizardPage;
+import org.jboss.tools.cdi.ui.wizard.NewBeanWizardPage;
import org.jboss.tools.cdi.ui.wizard.NewBeansXMLCreationWizard;
import org.jboss.tools.cdi.ui.wizard.NewDecoratorWizardPage;
import org.jboss.tools.cdi.ui.wizard.NewInterceptorBindingWizardPage;
@@ -71,6 +72,7 @@
static String INTERCEPTOR_BINDING2_NAME = "MyInterceptorBinding2";
static String INTERCEPTOR_NAME = "MyInterceptor";
static String DECORATOR_NAME = "MapDecorator<K,V>";
+ static String BEAN_NAME = "MyBean";
static class WizardContext {
NewElementWizard wizard;
@@ -371,6 +373,30 @@
}
}
+ public void testNewBeanWizard() {
+ WizardContext context = new WizardContext();
+ context.init("org.jboss.tools.cdi.ui.wizard.NewBeanCreationWizard",
+ PACK_NAME, BEAN_NAME);JobUtils.waitForIdle(2000);
+ JobUtils.waitForIdle(2000);
+ ICDIProject cdi = CDICorePlugin.getCDIProject(context.tck, true);
+
+ try {
+ NewBeanWizardPage page = (NewBeanWizardPage)context.page;
+
+ page.setBeanName("myNewBean");
+
+ context.wizard.performFinish();
+
+ String text = context.getNewTypeContent();
+ System.out.println(text);
+
+ assertTrue(text.contains("@Named"));
+ assertTrue(text.contains("\"myNewBean\""));
+ } finally {
+ context.close();
+ }
+ }
+
public void testNewAnnotationLiteralWizard() {
WizardContext context = new WizardContext();
context.init("org.jboss.tools.cdi.ui.wizard.NewAnnotationLiteralCreationWizard",
15 years, 2 months
JBoss Tools SVN: r28366 - trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/wizard.
by jbosstools-commits@lists.jboss.org
Author: scabanovich
Date: 2011-01-18 12:22:50 -0500 (Tue, 18 Jan 2011)
New Revision: 28366
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/wizard/NewBeanWizardPage.java
Log:
JBIDE-8124
https://issues.jboss.org/browse/JBIDE-8124
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/wizard/NewBeanWizardPage.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/wizard/NewBeanWizardPage.java 2011-01-18 17:20:56 UTC (rev 28365)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/wizard/NewBeanWizardPage.java 2011-01-18 17:22:50 UTC (rev 28366)
@@ -57,7 +57,7 @@
import org.jboss.tools.cdi.core.CDICorePlugin;
import org.jboss.tools.cdi.core.ICDIAnnotation;
import org.jboss.tools.cdi.core.ICDIProject;
-import org.jboss.tools.cdi.core.IStereotype;
+import org.jboss.tools.cdi.core.IQualifier;
import org.jboss.tools.cdi.ui.CDIUIMessages;
import org.jboss.tools.cdi.ui.CDIUiImages;
import org.jboss.tools.common.ui.widget.editor.CheckBoxFieldEditor;
@@ -334,7 +334,7 @@
}
}
- public void addQualifier(IStereotype s) {
+ public void addQualifier(IQualifier s) {
List vs = (List)qualifiers.getValue();
List nvs = new ArrayList();
if(vs != null) nvs.addAll(vs);
@@ -342,6 +342,11 @@
qualifiers.setValue(nvs);
}
+ public void setBeanName(String name) {
+ isNamed.composite.setValue(Boolean.valueOf(true));
+ beanName.composite.setValue(name);
+ }
+
protected static class CheckBoxEditorWrapper {
protected IFieldEditor composite = null;
protected CheckBoxFieldEditor checkBox = null;
@@ -405,4 +410,4 @@
}
-}
\ No newline at end of file
+}
15 years, 2 months
JBoss Tools SVN: r28365 - in branches/jbosstools-3.2.0.CR1/cdi/plugins/org.jboss.tools.cdi.ui: src/org/jboss/tools/cdi/ui and 1 other directories.
by jbosstools-commits@lists.jboss.org
Author: scabanovich
Date: 2011-01-18 12:20:56 -0500 (Tue, 18 Jan 2011)
New Revision: 28365
Added:
branches/jbosstools-3.2.0.CR1/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/wizard/NewBeanCreationWizard.java
branches/jbosstools-3.2.0.CR1/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/wizard/NewBeanWizardPage.java
Modified:
branches/jbosstools-3.2.0.CR1/cdi/plugins/org.jboss.tools.cdi.ui/plugin.xml
branches/jbosstools-3.2.0.CR1/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/CDIUIMessages.java
branches/jbosstools-3.2.0.CR1/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/CDIUIMessages.properties
Log:
JBIDE-8124
https://issues.jboss.org/browse/JBIDE-8124
Modified: branches/jbosstools-3.2.0.CR1/cdi/plugins/org.jboss.tools.cdi.ui/plugin.xml
===================================================================
--- branches/jbosstools-3.2.0.CR1/cdi/plugins/org.jboss.tools.cdi.ui/plugin.xml 2011-01-18 17:06:22 UTC (rev 28364)
+++ branches/jbosstools-3.2.0.CR1/cdi/plugins/org.jboss.tools.cdi.ui/plugin.xml 2011-01-18 17:20:56 UTC (rev 28365)
@@ -223,6 +223,21 @@
<wizard
category="org.jboss.tools.cdi.ui"
+ class="org.jboss.tools.cdi.ui.wizard.NewBeanCreationWizard"
+ icon="icons/cdi16.png"
+ id="org.jboss.tools.cdi.ui.wizard.NewBeanCreationWizard"
+ name="Bean"
+ project="false">
+ <description>
+ Create a Bean Type
+ </description>
+ <keywordReference
+ id="org.jboss.tools.cdi.ui.newBean">
+ </keywordReference>
+ </wizard>
+
+ <wizard
+ category="org.jboss.tools.cdi.ui"
class="org.jboss.tools.cdi.ui.wizard.NewAnnotationLiteralCreationWizard"
icon="icons/cdi16.png"
id="org.jboss.tools.cdi.ui.wizard.NewAnnotationLiteralCreationWizard"
Modified: branches/jbosstools-3.2.0.CR1/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/CDIUIMessages.java
===================================================================
--- branches/jbosstools-3.2.0.CR1/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/CDIUIMessages.java 2011-01-18 17:06:22 UTC (rev 28364)
+++ branches/jbosstools-3.2.0.CR1/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/CDIUIMessages.java 2011-01-18 17:20:56 UTC (rev 28365)
@@ -46,6 +46,10 @@
public static String NEW_DECORATOR_WIZARD_PAGE_NAME;
public static String NEW_DECORATOR_WIZARD_DESCRIPTION;
+ public static String NEW_BEAN_WIZARD_TITLE;
+ public static String NEW_BEAN_WIZARD_PAGE_NAME;
+ public static String NEW_BEAN_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;
Modified: branches/jbosstools-3.2.0.CR1/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/CDIUIMessages.properties
===================================================================
--- branches/jbosstools-3.2.0.CR1/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/CDIUIMessages.properties 2011-01-18 17:06:22 UTC (rev 28364)
+++ branches/jbosstools-3.2.0.CR1/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/CDIUIMessages.properties 2011-01-18 17:20:56 UTC (rev 28365)
@@ -34,6 +34,10 @@
NEW_DECORATOR_WIZARD_PAGE_NAME=Decorator Type
NEW_DECORATOR_WIZARD_DESCRIPTION=Create a new Decorator Java class
+NEW_BEAN_WIZARD_TITLE=New CDI Bean
+NEW_BEAN_WIZARD_PAGE_NAME=Bean Type
+NEW_BEAN_WIZARD_DESCRIPTION=Create a new Bean Java class
+
NEW_ANNOTATION_LITERAL_WIZARD_TITLE=New Annotation Literal
NEW_ANNOTATION_LITERAL_WIZARD_PAGE_NAME=Annotation Literal Type
NEW_ANNOTATION_LITERAL_WIZARD_DESCRIPTION=Create a new Annotation Literal Java class
Added: branches/jbosstools-3.2.0.CR1/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/wizard/NewBeanCreationWizard.java
===================================================================
--- branches/jbosstools-3.2.0.CR1/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/wizard/NewBeanCreationWizard.java (rev 0)
+++ branches/jbosstools-3.2.0.CR1/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/wizard/NewBeanCreationWizard.java 2011-01-18 17:20:56 UTC (rev 28365)
@@ -0,0 +1,89 @@
+/*******************************************************************************
+ * 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
+ * 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.wizard;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jdt.core.IJavaElement;
+import org.eclipse.jdt.internal.ui.wizards.NewElementWizard;
+import org.eclipse.jdt.ui.wizards.NewClassWizardPage;
+import org.jboss.tools.cdi.ui.CDIUIMessages;
+
+/**
+ *
+ * @author Viacheslav Kabanovich
+ *
+ */
+public class NewBeanCreationWizard extends NewElementWizard {
+ private NewClassWizardPage fPage;
+ private boolean fOpenEditorOnFinish = true;
+
+
+ public NewBeanCreationWizard() {
+ setWindowTitle(CDIUIMessages.NEW_BEAN_WIZARD_TITLE);
+ }
+
+ /*
+ * @see Wizard#createPages
+ */
+ public void addPages() {
+ super.addPages();
+ if (fPage == null) {
+ fPage = new NewBeanWizardPage();
+ fPage.init(getSelection());
+ }
+ addPage(fPage);
+ }
+
+ /*(non-Javadoc)
+ * @see org.eclipse.jdt.internal.ui.wizards.NewElementWizard#canRunForked()
+ */
+ protected boolean canRunForked() {
+ return !fPage.isEnclosingTypeSelected();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jdt.internal.ui.wizards.NewElementWizard#finishPage(org.eclipse.core.runtime.IProgressMonitor)
+ */
+ protected void finishPage(IProgressMonitor monitor) throws InterruptedException, CoreException {
+ fPage.createType(monitor); // use the full progress monitor
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.wizard.IWizard#performFinish()
+ */
+ public boolean performFinish() {
+ warnAboutTypeCommentDeprecation();
+ boolean res= super.performFinish();
+ if (res) {
+ IResource resource= fPage.getModifiedResource();
+ if (resource != null) {
+ selectAndReveal(resource);
+ if (fOpenEditorOnFinish) {
+ openResource((IFile) resource);
+ }
+ }
+ }
+ return res;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jdt.internal.ui.wizards.NewElementWizard#getCreatedElement()
+ */
+ public IJavaElement getCreatedElement() {
+ return fPage.getCreatedType();
+ }
+
+
+}
Property changes on: branches/jbosstools-3.2.0.CR1/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/wizard/NewBeanCreationWizard.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: branches/jbosstools-3.2.0.CR1/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/wizard/NewBeanWizardPage.java
===================================================================
--- branches/jbosstools-3.2.0.CR1/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/wizard/NewBeanWizardPage.java (rev 0)
+++ branches/jbosstools-3.2.0.CR1/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/wizard/NewBeanWizardPage.java 2011-01-18 17:20:56 UTC (rev 28365)
@@ -0,0 +1,414 @@
+/*******************************************************************************
+ * 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
+ * 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.wizard;
+
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeMap;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.SubProgressMonitor;
+import org.eclipse.jdt.core.Flags;
+import org.eclipse.jdt.core.IBuffer;
+import org.eclipse.jdt.core.ICompilationUnit;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.IPackageFragmentRoot;
+import org.eclipse.jdt.core.ISourceRange;
+import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.jdt.core.formatter.CodeFormatter;
+import org.eclipse.jdt.internal.corext.codemanipulation.CodeGenerationSettings;
+import org.eclipse.jdt.internal.corext.codemanipulation.StubUtility;
+import org.eclipse.jdt.internal.corext.util.JavaConventionsUtil;
+import org.eclipse.jdt.internal.corext.util.JavaModelUtil;
+import org.eclipse.jdt.internal.ui.IJavaHelpContextIds;
+import org.eclipse.jdt.internal.ui.dialogs.StatusInfo;
+import org.eclipse.jdt.internal.ui.dialogs.StatusUtil;
+import org.eclipse.jdt.internal.ui.preferences.JavaPreferencesSettings;
+import org.eclipse.jdt.ui.CodeGeneration;
+import org.eclipse.jdt.ui.wizards.NewClassWizardPage;
+import org.eclipse.jdt.ui.wizards.NewTypeWizardPage.ImportsManager;
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.PlatformUI;
+import org.jboss.tools.cdi.core.CDIConstants;
+import org.jboss.tools.cdi.core.CDICorePlugin;
+import org.jboss.tools.cdi.core.ICDIAnnotation;
+import org.jboss.tools.cdi.core.ICDIProject;
+import org.jboss.tools.cdi.core.IQualifier;
+import org.jboss.tools.cdi.core.IStereotype;
+import org.jboss.tools.cdi.ui.CDIUIMessages;
+import org.jboss.tools.cdi.ui.CDIUiImages;
+import org.jboss.tools.common.ui.widget.editor.CheckBoxFieldEditor;
+import org.jboss.tools.common.ui.widget.editor.CompositeEditor;
+import org.jboss.tools.common.ui.widget.editor.IFieldEditor;
+import org.jboss.tools.common.ui.widget.editor.IFieldEditorFactory;
+import org.jboss.tools.common.ui.widget.editor.ITaggedFieldEditor;
+import org.jboss.tools.common.ui.widget.editor.LabelFieldEditor;
+import org.jboss.tools.common.ui.widget.editor.ListFieldEditor;
+import org.jboss.tools.common.ui.widget.editor.TextFieldEditor;
+
+/**
+ *
+ * @author Viacheslav Kabanovich
+ *
+ */
+public class NewBeanWizardPage extends NewClassWizardPage {
+
+ protected CheckBoxEditorWrapper isNamed;
+ protected BeanNameEditorWrapper beanName;
+
+ protected ITaggedFieldEditor scope = null;
+ protected Map<String, String> scopes = new TreeMap<String, String>();
+
+ protected QualifierSelectionProvider qualifiersProvider = new QualifierSelectionProvider();
+ protected ListFieldEditor qualifiers = null;
+
+ protected StatusInfo fieldNameStatus = new StatusInfo();
+
+ public NewBeanWizardPage() {
+ setTitle(CDIUIMessages.NEW_BEAN_WIZARD_PAGE_NAME);
+ setDescription(CDIUIMessages.NEW_BEAN_WIZARD_DESCRIPTION);
+ setImageDescriptor(CDIUiImages.getImageDescriptor(CDIUiImages.WELD_WIZARD_IMAGE_PATH));
+ }
+
+ public void init(IStructuredSelection selection) {
+ super.init(selection);
+ if (!selection.isEmpty()) {
+ Object o = selection.iterator().next();
+ IType type = null;
+ if (o instanceof IType) {
+ type = (IType) o;
+ } else if (o instanceof ICompilationUnit) {
+ ICompilationUnit cu = (ICompilationUnit) o;
+ try {
+ IType[] ts = cu.getTypes();
+ if (ts != null && ts.length > 0)
+ type = ts[0];
+ } catch (JavaModelException e) {
+ CDICorePlugin.getDefault().logError(e);
+ }
+
+ }
+ boolean isInterface = false;
+ try {
+ isInterface = type != null && type.isInterface();
+ } catch (JavaModelException e) {
+ CDICorePlugin.getDefault().logError(e);
+ }
+ if (isInterface) {
+ ArrayList<String> interfacesNames = new ArrayList<String>();
+ String name = "";
+ try {
+ name = type.getFullyQualifiedParameterizedName();
+ } catch (JavaModelException e) {
+ name = type.getFullyQualifiedName();
+ }
+ interfacesNames.add(name);
+ setSuperInterfaces(interfacesNames, true);
+ superInterfacesChanged();
+ setDefaultTypeName(name);
+ }
+ }
+ setModifiers(getModifiers() | Flags.AccAbstract, true);
+
+ doStatusUpdate();
+ }
+
+ void setDefaultTypeName(String interfaceName) {
+ }
+
+ public void createControl(Composite parent) {
+ initializeDialogUnits(parent);
+
+ Composite composite = new Composite(parent, SWT.NONE);
+ composite.setFont(parent.getFont());
+
+ int nColumns = 4;
+
+ GridLayout layout = new GridLayout();
+ layout.numColumns = nColumns;
+ composite.setLayout(layout);
+
+ // pick & choose the wanted UI components
+
+ createContainerControls(composite, nColumns);
+ createPackageControls(composite, nColumns);
+ // createEnclosingTypeControls(composite, nColumns);
+
+ createSeparator(composite, nColumns);
+
+ createTypeNameControls(composite, nColumns);
+ createModifierControls(composite, nColumns);
+
+ createSuperClassControls(composite, nColumns);
+ createSuperInterfacesControls(composite, nColumns);
+
+ // createMethodStubSelectionControls(composite, nColumns);
+
+ createCustomFields(composite);
+
+ createCommentControls(composite, nColumns);
+ enableCommentControl(true);
+
+ setControl(composite);
+
+ Dialog.applyDialogFont(composite);
+ PlatformUI.getWorkbench().getHelpSystem()
+ .setHelp(composite, IJavaHelpContextIds.NEW_CLASS_WIZARD_PAGE);
+
+ // onInterceptorBindingChange();
+ doStatusUpdate();
+ }
+
+ protected void createTypeMembers(IType newType,
+ final ImportsManager imports, IProgressMonitor monitor)
+ throws CoreException {
+ createInheritedMethods(newType, true, true, imports,
+ new SubProgressMonitor(monitor, 1));
+
+ ISourceRange range = newType.getSourceRange();
+ IBuffer buf = newType.getCompilationUnit().getBuffer();
+ String lineDelimiter = StubUtility.getLineDelimiterUsed(newType
+ .getJavaProject());
+ StringBuffer sb = new StringBuffer();
+ addAnnotations(imports, sb, lineDelimiter);
+ buf.replace(range.getOffset(), 0, sb.toString());
+
+ }
+
+ void addAnnotations(ImportsManager imports, StringBuffer sb,
+ String lineDelimiter) {
+ addNamedAnnotation(imports, sb, lineDelimiter);
+ addScopeAnnotation(imports, sb, lineDelimiter);
+ addQualifiersAnnotations(imports, sb, lineDelimiter);
+ }
+
+ protected void addNamedAnnotation(ImportsManager imports, StringBuffer sb, String lineDelimiter) {
+ if(isNamed.checkBox != null && isNamed.checkBox.getValue() != null && "true".equals(isNamed.checkBox.getValueAsString())) {
+ if(beanName.text.getValue() != null && beanName.text.getValueAsString().length() > 0) {
+ addAnnotation(CDIConstants.NAMED_QUALIFIER_TYPE_NAME, imports, sb, lineDelimiter, beanName.text.getValueAsString());
+ } else {
+ NewCDIAnnotationWizardPage.addAnnotation(CDIConstants.NAMED_QUALIFIER_TYPE_NAME, imports, sb, lineDelimiter);
+ }
+ }
+ }
+
+ static void addAnnotation(String typeName, ImportsManager imports, StringBuffer sb, String lineDelimiter, String value) {
+ int i = typeName.lastIndexOf('.');
+ String name = typeName.substring(i + 1);
+ imports.addImport(typeName);
+ sb.append("@").append(name).append("(\"").append(value).append("\")").append(lineDelimiter);
+ }
+
+ protected void addScopeAnnotation(ImportsManager imports, StringBuffer sb, String lineDelimiter) {
+ if(scope != null && scope.getValue() != null && scope.getValue().toString().length() > 0) {
+ String scopeName = scope.getValue().toString();
+ String qScopeName = scopes.get(scopeName);
+ NewCDIAnnotationWizardPage.addAnnotation(qScopeName, imports, sb, lineDelimiter);
+ }
+ }
+
+ protected void addQualifiersAnnotations(ImportsManager imports, StringBuffer sb, String lineDelimiter) {
+ if(qualifiers != null) {
+ List list = (List)qualifiers.getValue();
+ for (Object o: list) {
+ if(o instanceof ICDIAnnotation) {
+ ICDIAnnotation a = (ICDIAnnotation)o;
+ String typeName = a.getSourceType().getFullyQualifiedName();
+ NewCDIAnnotationWizardPage.addAnnotation(typeName, imports, sb, lineDelimiter);
+ }
+ }
+ }
+ }
+
+ protected void createCustomFields(Composite composite) {
+ createBeanNameField(composite);
+ createScopeField(composite);
+ createQualifiersField(composite);
+ }
+
+ private void doStatusUpdate() {
+ // status of all used components
+ IStatus[] status = new IStatus[] {
+ fContainerStatus,
+ isEnclosingTypeSelected() ? fEnclosingTypeStatus
+ : fPackageStatus, fTypeNameStatus, fModifierStatus,
+ fSuperClassStatus, fSuperInterfacesStatus };
+
+ // the mode severe status will be displayed and the OK button
+ // enabled/disabled.
+ updateStatus(status);
+ }
+
+ protected void updateStatus(IStatus[] status) {
+ IStatus[] ns = new IStatus[status.length + 1];
+ System.arraycopy(status, 0, ns, 0, status.length);
+ ns[status.length] = fieldNameStatus;
+ status = ns;
+ updateStatus(StatusUtil.getMostSevere(status));
+ }
+
+ public void setPackageFragmentRoot(IPackageFragmentRoot root, boolean canBeModified) {
+ super.setPackageFragmentRoot(root, canBeModified);
+ setScopes(root);
+ setQualifiers(root);
+ }
+
+ void setScopes(IPackageFragmentRoot root) {
+ if(root != null) {
+ IJavaProject jp = root.getJavaProject();
+ ICDIProject cdi = NewCDIAnnotationWizardPage.getCDIProject(jp);
+ if(cdi != null) {
+ Set<String> scopes = cdi.getScopeNames();
+ String[] tags = scopes.toArray(new String[0]);
+ setScopes(tags);
+ } else {
+ setScopes(new String[]{""});
+ }
+ } else {
+ setScopes(new String[]{""});
+ }
+ }
+
+ void setScopes(String[] tags) {
+ scopes.clear();
+ scopes.put("", "");
+ for (String tag: tags) {
+ if(tag.length() == 0) continue;
+ int i = tag.lastIndexOf('.');
+ String name = "@" + tag.substring(i + 1);
+ scopes.put(name, tag);
+ }
+ if(scope != null) {
+ scope.setTags(scopes.keySet().toArray(new String[0]));
+ scope.setValue("");
+ }
+ }
+
+ void setQualifiers(IPackageFragmentRoot root) {
+ qualifiersProvider.setProject(null);
+ if(root != null) {
+ IJavaProject jp = root.getJavaProject();
+ ICDIProject cdi = CDICorePlugin.getCDIProject(jp.getProject(), true);
+ if(cdi != null) qualifiersProvider.setProject(cdi);
+ }
+ }
+
+ protected void createQualifiersField(Composite composite) {
+ qualifiers = new ListFieldEditor("qualifiers", CDIUIMessages.FIELD_EDITOR_QUALIFIER_LABEL, new ArrayList<Object>());
+ qualifiers.setProvider(qualifiersProvider);
+ qualifiersProvider.setEditorField(qualifiers);
+ qualifiers.doFillIntoGrid(composite);
+ setQualifiers(getPackageFragmentRoot());
+ qualifiers.addPropertyChangeListener(new PropertyChangeListener() {
+ public void propertyChange(PropertyChangeEvent evt) {
+// validateTargetAndStereotype();
+ }});
+ Object data = qualifiers.getLabelControl().getLayoutData();
+ if(data instanceof GridData) {
+ GridData d = (GridData)data;
+ d.verticalAlignment = SWT.BEGINNING;
+ qualifiers.getLabelControl().setData(d);
+ }
+ }
+
+ public void addQualifier(IQualifier s) {
+ List vs = (List)qualifiers.getValue();
+ List nvs = new ArrayList();
+ if(vs != null) nvs.addAll(vs);
+ nvs.add(s);
+ qualifiers.setValue(nvs);
+ }
+
+ public void setBeanName(String name) {
+ isNamed.composite.setValue(Boolean.valueOf(true));
+ beanName.composite.setValue(name);
+ }
+
+ protected static class CheckBoxEditorWrapper {
+ protected IFieldEditor composite = null;
+ protected CheckBoxFieldEditor checkBox = null;
+ }
+
+ protected static class BeanNameEditorWrapper {
+ protected IFieldEditor composite = null;
+ protected TextFieldEditor text = null;
+ }
+
+ protected void createBeanNameField(Composite composite) {
+ isNamed = createCheckBoxField(composite, "isNamed", "Add @Named", false);
+ beanName = createTextField(composite, "name", "Bean Name:", "");
+ beanName.composite.setEnabled(false);
+ isNamed.checkBox.addPropertyChangeListener(new PropertyChangeListener() {
+ public void propertyChange(PropertyChangeEvent evt) {
+ boolean named = "true".equals(isNamed.checkBox.getValueAsString());
+ beanName.composite.setEnabled(named);
+ }});
+ }
+
+ protected CheckBoxEditorWrapper createCheckBoxField(Composite composite, String name, String label, boolean defaultValue) {
+ CheckBoxEditorWrapper wrapper = new CheckBoxEditorWrapper();
+ wrapper.checkBox = new CheckBoxFieldEditor(name,"",Boolean.valueOf(defaultValue));
+ CompositeEditor editor = new CompositeEditor(name,"", defaultValue);
+ editor.addFieldEditors(new IFieldEditor[]{new LabelFieldEditor(name, ""), wrapper.checkBox});
+ wrapper.composite = editor;
+ wrapper.composite.doFillIntoGrid(composite);
+ ((Button)wrapper.checkBox.getCheckBoxControl()).setText(label);
+ return wrapper;
+ }
+
+ protected BeanNameEditorWrapper createTextField(Composite composite, String name, String label, String defaultValue) {
+ BeanNameEditorWrapper wrapper = new BeanNameEditorWrapper();
+ wrapper.text = new TextFieldEditor(name,"",defaultValue);
+ CompositeEditor editor = new CompositeEditor(name,"", defaultValue);
+ LabelFieldEditor l = new LabelFieldEditor(name, label);
+ editor.addFieldEditors(new IFieldEditor[]{l, wrapper.text, new LabelFieldEditor(name, "")});
+ wrapper.composite = editor;
+ wrapper.composite.doFillIntoGrid(composite);
+ return wrapper;
+ }
+
+ protected void createScopeField(Composite composite) {
+ ArrayList<String> values = new ArrayList<String>();
+ values.add("");
+ scope = createComboField("Scope", CDIUIMessages.FIELD_EDITOR_SCOPE_LABEL, composite, values);
+ setScopes(getPackageFragmentRoot());
+ }
+
+ protected ITaggedFieldEditor createComboField(String name, String label, Composite composite, List<String> values) {
+ ITaggedFieldEditor result = IFieldEditorFactory.INSTANCE.createComboEditor(name, label, values, values.get(0));
+ ((CompositeEditor)result).addFieldEditors(new IFieldEditor[]{new LabelFieldEditor(name, "")});
+ result.doFillIntoGrid(composite);
+ Combo combo = (Combo)result.getEditorControls()[1];
+ Object layoutData = combo.getLayoutData();
+ if(layoutData instanceof GridData) {
+ ((GridData)layoutData).horizontalAlignment = GridData.FILL;
+ }
+ return result;
+ }
+
+
+}
\ No newline at end of file
Property changes on: branches/jbosstools-3.2.0.CR1/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/wizard/NewBeanWizardPage.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
15 years, 2 months
JBoss Tools SVN: r28364 - in trunk/cdi/plugins/org.jboss.tools.cdi.ui: src/org/jboss/tools/cdi/ui and 1 other directories.
by jbosstools-commits@lists.jboss.org
Author: scabanovich
Date: 2011-01-18 12:06:22 -0500 (Tue, 18 Jan 2011)
New Revision: 28364
Added:
trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/wizard/NewBeanCreationWizard.java
trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/wizard/NewBeanWizardPage.java
Modified:
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-8124
https://issues.jboss.org/browse/JBIDE-8124
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.ui/plugin.xml
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.ui/plugin.xml 2011-01-18 16:50:39 UTC (rev 28363)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.ui/plugin.xml 2011-01-18 17:06:22 UTC (rev 28364)
@@ -223,6 +223,21 @@
<wizard
category="org.jboss.tools.cdi.ui"
+ class="org.jboss.tools.cdi.ui.wizard.NewBeanCreationWizard"
+ icon="icons/cdi16.png"
+ id="org.jboss.tools.cdi.ui.wizard.NewBeanCreationWizard"
+ name="Bean"
+ project="false">
+ <description>
+ Create a Bean Type
+ </description>
+ <keywordReference
+ id="org.jboss.tools.cdi.ui.newBean">
+ </keywordReference>
+ </wizard>
+
+ <wizard
+ category="org.jboss.tools.cdi.ui"
class="org.jboss.tools.cdi.ui.wizard.NewAnnotationLiteralCreationWizard"
icon="icons/cdi16.png"
id="org.jboss.tools.cdi.ui.wizard.NewAnnotationLiteralCreationWizard"
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-01-18 16:50:39 UTC (rev 28363)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/CDIUIMessages.java 2011-01-18 17:06:22 UTC (rev 28364)
@@ -46,6 +46,10 @@
public static String NEW_DECORATOR_WIZARD_PAGE_NAME;
public static String NEW_DECORATOR_WIZARD_DESCRIPTION;
+ public static String NEW_BEAN_WIZARD_TITLE;
+ public static String NEW_BEAN_WIZARD_PAGE_NAME;
+ public static String NEW_BEAN_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;
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-01-18 16:50:39 UTC (rev 28363)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/CDIUIMessages.properties 2011-01-18 17:06:22 UTC (rev 28364)
@@ -34,6 +34,10 @@
NEW_DECORATOR_WIZARD_PAGE_NAME=Decorator Type
NEW_DECORATOR_WIZARD_DESCRIPTION=Create a new Decorator Java class
+NEW_BEAN_WIZARD_TITLE=New CDI Bean
+NEW_BEAN_WIZARD_PAGE_NAME=Bean Type
+NEW_BEAN_WIZARD_DESCRIPTION=Create a new Bean Java class
+
NEW_ANNOTATION_LITERAL_WIZARD_TITLE=New Annotation Literal
NEW_ANNOTATION_LITERAL_WIZARD_PAGE_NAME=Annotation Literal Type
NEW_ANNOTATION_LITERAL_WIZARD_DESCRIPTION=Create a new Annotation Literal Java class
Added: trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/wizard/NewBeanCreationWizard.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/wizard/NewBeanCreationWizard.java (rev 0)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/wizard/NewBeanCreationWizard.java 2011-01-18 17:06:22 UTC (rev 28364)
@@ -0,0 +1,89 @@
+/*******************************************************************************
+ * 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
+ * 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.wizard;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jdt.core.IJavaElement;
+import org.eclipse.jdt.internal.ui.wizards.NewElementWizard;
+import org.eclipse.jdt.ui.wizards.NewClassWizardPage;
+import org.jboss.tools.cdi.ui.CDIUIMessages;
+
+/**
+ *
+ * @author Viacheslav Kabanovich
+ *
+ */
+public class NewBeanCreationWizard extends NewElementWizard {
+ private NewClassWizardPage fPage;
+ private boolean fOpenEditorOnFinish = true;
+
+
+ public NewBeanCreationWizard() {
+ setWindowTitle(CDIUIMessages.NEW_BEAN_WIZARD_TITLE);
+ }
+
+ /*
+ * @see Wizard#createPages
+ */
+ public void addPages() {
+ super.addPages();
+ if (fPage == null) {
+ fPage = new NewBeanWizardPage();
+ fPage.init(getSelection());
+ }
+ addPage(fPage);
+ }
+
+ /*(non-Javadoc)
+ * @see org.eclipse.jdt.internal.ui.wizards.NewElementWizard#canRunForked()
+ */
+ protected boolean canRunForked() {
+ return !fPage.isEnclosingTypeSelected();
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jdt.internal.ui.wizards.NewElementWizard#finishPage(org.eclipse.core.runtime.IProgressMonitor)
+ */
+ protected void finishPage(IProgressMonitor monitor) throws InterruptedException, CoreException {
+ fPage.createType(monitor); // use the full progress monitor
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jface.wizard.IWizard#performFinish()
+ */
+ public boolean performFinish() {
+ warnAboutTypeCommentDeprecation();
+ boolean res= super.performFinish();
+ if (res) {
+ IResource resource= fPage.getModifiedResource();
+ if (resource != null) {
+ selectAndReveal(resource);
+ if (fOpenEditorOnFinish) {
+ openResource((IFile) resource);
+ }
+ }
+ }
+ return res;
+ }
+
+ /* (non-Javadoc)
+ * @see org.eclipse.jdt.internal.ui.wizards.NewElementWizard#getCreatedElement()
+ */
+ public IJavaElement getCreatedElement() {
+ return fPage.getCreatedType();
+ }
+
+
+}
Property changes on: trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/wizard/NewBeanCreationWizard.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/wizard/NewBeanWizardPage.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/wizard/NewBeanWizardPage.java (rev 0)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/wizard/NewBeanWizardPage.java 2011-01-18 17:06:22 UTC (rev 28364)
@@ -0,0 +1,408 @@
+/*******************************************************************************
+ * 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
+ * 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.wizard;
+
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeMap;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.SubProgressMonitor;
+import org.eclipse.jdt.core.Flags;
+import org.eclipse.jdt.core.IBuffer;
+import org.eclipse.jdt.core.ICompilationUnit;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.IPackageFragmentRoot;
+import org.eclipse.jdt.core.ISourceRange;
+import org.eclipse.jdt.core.IType;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.jdt.core.formatter.CodeFormatter;
+import org.eclipse.jdt.internal.corext.codemanipulation.CodeGenerationSettings;
+import org.eclipse.jdt.internal.corext.codemanipulation.StubUtility;
+import org.eclipse.jdt.internal.corext.util.JavaConventionsUtil;
+import org.eclipse.jdt.internal.corext.util.JavaModelUtil;
+import org.eclipse.jdt.internal.ui.IJavaHelpContextIds;
+import org.eclipse.jdt.internal.ui.dialogs.StatusInfo;
+import org.eclipse.jdt.internal.ui.dialogs.StatusUtil;
+import org.eclipse.jdt.internal.ui.preferences.JavaPreferencesSettings;
+import org.eclipse.jdt.ui.CodeGeneration;
+import org.eclipse.jdt.ui.wizards.NewClassWizardPage;
+import org.eclipse.jdt.ui.wizards.NewTypeWizardPage.ImportsManager;
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.PlatformUI;
+import org.jboss.tools.cdi.core.CDIConstants;
+import org.jboss.tools.cdi.core.CDICorePlugin;
+import org.jboss.tools.cdi.core.ICDIAnnotation;
+import org.jboss.tools.cdi.core.ICDIProject;
+import org.jboss.tools.cdi.core.IStereotype;
+import org.jboss.tools.cdi.ui.CDIUIMessages;
+import org.jboss.tools.cdi.ui.CDIUiImages;
+import org.jboss.tools.common.ui.widget.editor.CheckBoxFieldEditor;
+import org.jboss.tools.common.ui.widget.editor.CompositeEditor;
+import org.jboss.tools.common.ui.widget.editor.IFieldEditor;
+import org.jboss.tools.common.ui.widget.editor.IFieldEditorFactory;
+import org.jboss.tools.common.ui.widget.editor.ITaggedFieldEditor;
+import org.jboss.tools.common.ui.widget.editor.LabelFieldEditor;
+import org.jboss.tools.common.ui.widget.editor.ListFieldEditor;
+import org.jboss.tools.common.ui.widget.editor.TextFieldEditor;
+
+/**
+ *
+ * @author Viacheslav Kabanovich
+ *
+ */
+public class NewBeanWizardPage extends NewClassWizardPage {
+
+ protected CheckBoxEditorWrapper isNamed;
+ protected BeanNameEditorWrapper beanName;
+
+ protected ITaggedFieldEditor scope = null;
+ protected Map<String, String> scopes = new TreeMap<String, String>();
+
+ protected QualifierSelectionProvider qualifiersProvider = new QualifierSelectionProvider();
+ protected ListFieldEditor qualifiers = null;
+
+ protected StatusInfo fieldNameStatus = new StatusInfo();
+
+ public NewBeanWizardPage() {
+ setTitle(CDIUIMessages.NEW_BEAN_WIZARD_PAGE_NAME);
+ setDescription(CDIUIMessages.NEW_BEAN_WIZARD_DESCRIPTION);
+ setImageDescriptor(CDIUiImages.getImageDescriptor(CDIUiImages.WELD_WIZARD_IMAGE_PATH));
+ }
+
+ public void init(IStructuredSelection selection) {
+ super.init(selection);
+ if (!selection.isEmpty()) {
+ Object o = selection.iterator().next();
+ IType type = null;
+ if (o instanceof IType) {
+ type = (IType) o;
+ } else if (o instanceof ICompilationUnit) {
+ ICompilationUnit cu = (ICompilationUnit) o;
+ try {
+ IType[] ts = cu.getTypes();
+ if (ts != null && ts.length > 0)
+ type = ts[0];
+ } catch (JavaModelException e) {
+ CDICorePlugin.getDefault().logError(e);
+ }
+
+ }
+ boolean isInterface = false;
+ try {
+ isInterface = type != null && type.isInterface();
+ } catch (JavaModelException e) {
+ CDICorePlugin.getDefault().logError(e);
+ }
+ if (isInterface) {
+ ArrayList<String> interfacesNames = new ArrayList<String>();
+ String name = "";
+ try {
+ name = type.getFullyQualifiedParameterizedName();
+ } catch (JavaModelException e) {
+ name = type.getFullyQualifiedName();
+ }
+ interfacesNames.add(name);
+ setSuperInterfaces(interfacesNames, true);
+ superInterfacesChanged();
+ setDefaultTypeName(name);
+ }
+ }
+ setModifiers(getModifiers() | Flags.AccAbstract, true);
+
+ doStatusUpdate();
+ }
+
+ void setDefaultTypeName(String interfaceName) {
+ }
+
+ public void createControl(Composite parent) {
+ initializeDialogUnits(parent);
+
+ Composite composite = new Composite(parent, SWT.NONE);
+ composite.setFont(parent.getFont());
+
+ int nColumns = 4;
+
+ GridLayout layout = new GridLayout();
+ layout.numColumns = nColumns;
+ composite.setLayout(layout);
+
+ // pick & choose the wanted UI components
+
+ createContainerControls(composite, nColumns);
+ createPackageControls(composite, nColumns);
+ // createEnclosingTypeControls(composite, nColumns);
+
+ createSeparator(composite, nColumns);
+
+ createTypeNameControls(composite, nColumns);
+ createModifierControls(composite, nColumns);
+
+ createSuperClassControls(composite, nColumns);
+ createSuperInterfacesControls(composite, nColumns);
+
+ // createMethodStubSelectionControls(composite, nColumns);
+
+ createCustomFields(composite);
+
+ createCommentControls(composite, nColumns);
+ enableCommentControl(true);
+
+ setControl(composite);
+
+ Dialog.applyDialogFont(composite);
+ PlatformUI.getWorkbench().getHelpSystem()
+ .setHelp(composite, IJavaHelpContextIds.NEW_CLASS_WIZARD_PAGE);
+
+ // onInterceptorBindingChange();
+ doStatusUpdate();
+ }
+
+ protected void createTypeMembers(IType newType,
+ final ImportsManager imports, IProgressMonitor monitor)
+ throws CoreException {
+ createInheritedMethods(newType, true, true, imports,
+ new SubProgressMonitor(monitor, 1));
+
+ ISourceRange range = newType.getSourceRange();
+ IBuffer buf = newType.getCompilationUnit().getBuffer();
+ String lineDelimiter = StubUtility.getLineDelimiterUsed(newType
+ .getJavaProject());
+ StringBuffer sb = new StringBuffer();
+ addAnnotations(imports, sb, lineDelimiter);
+ buf.replace(range.getOffset(), 0, sb.toString());
+
+ }
+
+ void addAnnotations(ImportsManager imports, StringBuffer sb,
+ String lineDelimiter) {
+ addNamedAnnotation(imports, sb, lineDelimiter);
+ addScopeAnnotation(imports, sb, lineDelimiter);
+ addQualifiersAnnotations(imports, sb, lineDelimiter);
+ }
+
+ protected void addNamedAnnotation(ImportsManager imports, StringBuffer sb, String lineDelimiter) {
+ if(isNamed.checkBox != null && isNamed.checkBox.getValue() != null && "true".equals(isNamed.checkBox.getValueAsString())) {
+ if(beanName.text.getValue() != null && beanName.text.getValueAsString().length() > 0) {
+ addAnnotation(CDIConstants.NAMED_QUALIFIER_TYPE_NAME, imports, sb, lineDelimiter, beanName.text.getValueAsString());
+ } else {
+ NewCDIAnnotationWizardPage.addAnnotation(CDIConstants.NAMED_QUALIFIER_TYPE_NAME, imports, sb, lineDelimiter);
+ }
+ }
+ }
+
+ static void addAnnotation(String typeName, ImportsManager imports, StringBuffer sb, String lineDelimiter, String value) {
+ int i = typeName.lastIndexOf('.');
+ String name = typeName.substring(i + 1);
+ imports.addImport(typeName);
+ sb.append("@").append(name).append("(\"").append(value).append("\")").append(lineDelimiter);
+ }
+
+ protected void addScopeAnnotation(ImportsManager imports, StringBuffer sb, String lineDelimiter) {
+ if(scope != null && scope.getValue() != null && scope.getValue().toString().length() > 0) {
+ String scopeName = scope.getValue().toString();
+ String qScopeName = scopes.get(scopeName);
+ NewCDIAnnotationWizardPage.addAnnotation(qScopeName, imports, sb, lineDelimiter);
+ }
+ }
+
+ protected void addQualifiersAnnotations(ImportsManager imports, StringBuffer sb, String lineDelimiter) {
+ if(qualifiers != null) {
+ List list = (List)qualifiers.getValue();
+ for (Object o: list) {
+ if(o instanceof ICDIAnnotation) {
+ ICDIAnnotation a = (ICDIAnnotation)o;
+ String typeName = a.getSourceType().getFullyQualifiedName();
+ NewCDIAnnotationWizardPage.addAnnotation(typeName, imports, sb, lineDelimiter);
+ }
+ }
+ }
+ }
+
+ protected void createCustomFields(Composite composite) {
+ createBeanNameField(composite);
+ createScopeField(composite);
+ createQualifiersField(composite);
+ }
+
+ private void doStatusUpdate() {
+ // status of all used components
+ IStatus[] status = new IStatus[] {
+ fContainerStatus,
+ isEnclosingTypeSelected() ? fEnclosingTypeStatus
+ : fPackageStatus, fTypeNameStatus, fModifierStatus,
+ fSuperClassStatus, fSuperInterfacesStatus };
+
+ // the mode severe status will be displayed and the OK button
+ // enabled/disabled.
+ updateStatus(status);
+ }
+
+ protected void updateStatus(IStatus[] status) {
+ IStatus[] ns = new IStatus[status.length + 1];
+ System.arraycopy(status, 0, ns, 0, status.length);
+ ns[status.length] = fieldNameStatus;
+ status = ns;
+ updateStatus(StatusUtil.getMostSevere(status));
+ }
+
+ public void setPackageFragmentRoot(IPackageFragmentRoot root, boolean canBeModified) {
+ super.setPackageFragmentRoot(root, canBeModified);
+ setScopes(root);
+ setQualifiers(root);
+ }
+
+ void setScopes(IPackageFragmentRoot root) {
+ if(root != null) {
+ IJavaProject jp = root.getJavaProject();
+ ICDIProject cdi = NewCDIAnnotationWizardPage.getCDIProject(jp);
+ if(cdi != null) {
+ Set<String> scopes = cdi.getScopeNames();
+ String[] tags = scopes.toArray(new String[0]);
+ setScopes(tags);
+ } else {
+ setScopes(new String[]{""});
+ }
+ } else {
+ setScopes(new String[]{""});
+ }
+ }
+
+ void setScopes(String[] tags) {
+ scopes.clear();
+ scopes.put("", "");
+ for (String tag: tags) {
+ if(tag.length() == 0) continue;
+ int i = tag.lastIndexOf('.');
+ String name = "@" + tag.substring(i + 1);
+ scopes.put(name, tag);
+ }
+ if(scope != null) {
+ scope.setTags(scopes.keySet().toArray(new String[0]));
+ scope.setValue("");
+ }
+ }
+
+ void setQualifiers(IPackageFragmentRoot root) {
+ qualifiersProvider.setProject(null);
+ if(root != null) {
+ IJavaProject jp = root.getJavaProject();
+ ICDIProject cdi = CDICorePlugin.getCDIProject(jp.getProject(), true);
+ if(cdi != null) qualifiersProvider.setProject(cdi);
+ }
+ }
+
+ protected void createQualifiersField(Composite composite) {
+ qualifiers = new ListFieldEditor("qualifiers", CDIUIMessages.FIELD_EDITOR_QUALIFIER_LABEL, new ArrayList<Object>());
+ qualifiers.setProvider(qualifiersProvider);
+ qualifiersProvider.setEditorField(qualifiers);
+ qualifiers.doFillIntoGrid(composite);
+ setQualifiers(getPackageFragmentRoot());
+ qualifiers.addPropertyChangeListener(new PropertyChangeListener() {
+ public void propertyChange(PropertyChangeEvent evt) {
+// validateTargetAndStereotype();
+ }});
+ Object data = qualifiers.getLabelControl().getLayoutData();
+ if(data instanceof GridData) {
+ GridData d = (GridData)data;
+ d.verticalAlignment = SWT.BEGINNING;
+ qualifiers.getLabelControl().setData(d);
+ }
+ }
+
+ public void addQualifier(IStereotype s) {
+ List vs = (List)qualifiers.getValue();
+ List nvs = new ArrayList();
+ if(vs != null) nvs.addAll(vs);
+ nvs.add(s);
+ qualifiers.setValue(nvs);
+ }
+
+ protected static class CheckBoxEditorWrapper {
+ protected IFieldEditor composite = null;
+ protected CheckBoxFieldEditor checkBox = null;
+ }
+
+ protected static class BeanNameEditorWrapper {
+ protected IFieldEditor composite = null;
+ protected TextFieldEditor text = null;
+ }
+
+ protected void createBeanNameField(Composite composite) {
+ isNamed = createCheckBoxField(composite, "isNamed", "Add @Named", false);
+ beanName = createTextField(composite, "name", "Bean Name:", "");
+ beanName.composite.setEnabled(false);
+ isNamed.checkBox.addPropertyChangeListener(new PropertyChangeListener() {
+ public void propertyChange(PropertyChangeEvent evt) {
+ boolean named = "true".equals(isNamed.checkBox.getValueAsString());
+ beanName.composite.setEnabled(named);
+ }});
+ }
+
+ protected CheckBoxEditorWrapper createCheckBoxField(Composite composite, String name, String label, boolean defaultValue) {
+ CheckBoxEditorWrapper wrapper = new CheckBoxEditorWrapper();
+ wrapper.checkBox = new CheckBoxFieldEditor(name,"",Boolean.valueOf(defaultValue));
+ CompositeEditor editor = new CompositeEditor(name,"", defaultValue);
+ editor.addFieldEditors(new IFieldEditor[]{new LabelFieldEditor(name, ""), wrapper.checkBox});
+ wrapper.composite = editor;
+ wrapper.composite.doFillIntoGrid(composite);
+ ((Button)wrapper.checkBox.getCheckBoxControl()).setText(label);
+ return wrapper;
+ }
+
+ protected BeanNameEditorWrapper createTextField(Composite composite, String name, String label, String defaultValue) {
+ BeanNameEditorWrapper wrapper = new BeanNameEditorWrapper();
+ wrapper.text = new TextFieldEditor(name,"",defaultValue);
+ CompositeEditor editor = new CompositeEditor(name,"", defaultValue);
+ LabelFieldEditor l = new LabelFieldEditor(name, label);
+ editor.addFieldEditors(new IFieldEditor[]{l, wrapper.text, new LabelFieldEditor(name, "")});
+ wrapper.composite = editor;
+ wrapper.composite.doFillIntoGrid(composite);
+ return wrapper;
+ }
+
+ protected void createScopeField(Composite composite) {
+ ArrayList<String> values = new ArrayList<String>();
+ values.add("");
+ scope = createComboField("Scope", CDIUIMessages.FIELD_EDITOR_SCOPE_LABEL, composite, values);
+ setScopes(getPackageFragmentRoot());
+ }
+
+ protected ITaggedFieldEditor createComboField(String name, String label, Composite composite, List<String> values) {
+ ITaggedFieldEditor result = IFieldEditorFactory.INSTANCE.createComboEditor(name, label, values, values.get(0));
+ ((CompositeEditor)result).addFieldEditors(new IFieldEditor[]{new LabelFieldEditor(name, "")});
+ result.doFillIntoGrid(composite);
+ Combo combo = (Combo)result.getEditorControls()[1];
+ Object layoutData = combo.getLayoutData();
+ if(layoutData instanceof GridData) {
+ ((GridData)layoutData).horizontalAlignment = GridData.FILL;
+ }
+ return result;
+ }
+
+
+}
\ No newline at end of file
Property changes on: trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/wizard/NewBeanWizardPage.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
15 years, 2 months