JBoss Tools SVN: r12270 - trunk/esb/plugins/org.jboss.tools.esb.project.core/src/org/jboss/tools/esb/core/facet.
by jbosstools-commits@lists.jboss.org
Author: dennyxu
Date: 2008-12-04 00:59:25 -0500 (Thu, 04 Dec 2008)
New Revision: 12270
Modified:
trunk/esb/plugins/org.jboss.tools.esb.project.core/src/org/jboss/tools/esb/core/facet/JBossESBFacetInstallationDelegate.java
Log:
JBIDE-3333: to make esb project wizard work with WTP3.03 and early versions
Modified: trunk/esb/plugins/org.jboss.tools.esb.project.core/src/org/jboss/tools/esb/core/facet/JBossESBFacetInstallationDelegate.java
===================================================================
--- trunk/esb/plugins/org.jboss.tools.esb.project.core/src/org/jboss/tools/esb/core/facet/JBossESBFacetInstallationDelegate.java 2008-12-04 02:34:35 UTC (rev 12269)
+++ trunk/esb/plugins/org.jboss.tools.esb.project.core/src/org/jboss/tools/esb/core/facet/JBossESBFacetInstallationDelegate.java 2008-12-04 05:59:25 UTC (rev 12270)
@@ -1,6 +1,8 @@
package org.jboss.tools.esb.core.facet;
import java.io.ByteArrayInputStream;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IFolder;
@@ -43,7 +45,15 @@
WtpUtils.addNatures(project);
// Setup the flexible project structure.
- final IVirtualComponent c = ComponentCore.createComponent(project, false);
+ IVirtualComponent c = null;
+ try {
+ Method createMethod = ComponentCore.class.getMethod("createComponent", IProject.class, boolean.class);
+ c = (IVirtualComponent)createMethod.invoke(null, project, false);
+ } catch (Exception e) {
+ c = ComponentCore.createComponent(project);
+ }
+
+
c.create(0, null);
//String esbContent = model.getStringProperty(IJBossESBFacetDataModelProperties.ESB_CONTENT_FOLDER);
c.setMetaProperty("java-output-path", "/build/classes/");
17 years, 4 months
JBoss Tools SVN: r12269 - in trunk/as/plugins/org.jboss.ide.eclipse.as.ui: jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions and 1 other directory.
by jbosstools-commits@lists.jboss.org
Author: rob.stryker(a)jboss.com
Date: 2008-12-03 21:34:35 -0500 (Wed, 03 Dec 2008)
New Revision: 12269
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/JMXProvider.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/ServerLogActionProvider.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/plugin.xml
Log:
JBIDE-3232 - =D
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/JMXProvider.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/JMXProvider.java 2008-12-04 01:45:55 UTC (rev 12268)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/JMXProvider.java 2008-12-04 02:34:35 UTC (rev 12269)
@@ -1,17 +1,145 @@
package org.jboss.ide.eclipse.as.ui.views.server.extensions;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.jface.action.IContributionItem;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.StructuredViewer;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.navigator.CommonActionProvider;
+import org.eclipse.ui.navigator.CommonViewer;
+import org.eclipse.ui.navigator.ICommonActionExtensionSite;
+import org.eclipse.ui.navigator.ICommonViewerSite;
+import org.eclipse.ui.navigator.ICommonViewerWorkbenchSite;
+import org.eclipse.ui.views.IViewDescriptor;
+import org.eclipse.ui.views.IViewRegistry;
import org.eclipse.wst.server.core.IServer;
+import org.eclipse.wst.server.ui.internal.view.servers.AbstractServerAction;
+import org.jboss.ide.eclipse.as.core.extensions.jmx.JBossServerConnection;
import org.jboss.ide.eclipse.as.core.extensions.jmx.JBossServerConnectionProvider;
+import org.jboss.ide.eclipse.as.core.server.internal.JBossServer;
import org.jboss.ide.eclipse.as.ui.JBossServerUISharedImages;
+import org.jboss.tools.jmx.core.ExtensionManager;
import org.jboss.tools.jmx.core.IConnectionWrapper;
+import org.jboss.tools.jmx.ui.internal.views.navigator.JMXNavigator;
import org.jboss.tools.jmx.ui.internal.views.navigator.MBeanExplorerContentProvider;
import org.jboss.tools.jmx.ui.internal.views.navigator.MBeanExplorerLabelProvider;
public class JMXProvider {
+ public static class ActionProvider extends CommonActionProvider {
+ private ICommonActionExtensionSite actionSite;
+ private ShowInJMXViewAction showInJMXViewAction;
+ public ActionProvider() {
+ super();
+ }
+
+ public void init(ICommonActionExtensionSite aSite) {
+ super.init(aSite);
+ this.actionSite = aSite;
+ createActions(aSite);
+ }
+
+ protected void createActions(ICommonActionExtensionSite aSite) {
+ ICommonViewerSite site = aSite.getViewSite();
+ if( site instanceof ICommonViewerWorkbenchSite ) {
+ StructuredViewer v = aSite.getStructuredViewer();
+ if( v instanceof CommonViewer ) {
+ CommonViewer cv = (CommonViewer)v;
+ ICommonViewerWorkbenchSite wsSite = (ICommonViewerWorkbenchSite)site;
+ showInJMXViewAction = new ShowInJMXViewAction(wsSite.getSelectionProvider());
+ }
+ }
+ }
+
+ public void fillContextMenu(IMenuManager menu) {
+ ICommonViewerSite site = actionSite.getViewSite();
+ IStructuredSelection selection = null;
+ if (site instanceof ICommonViewerWorkbenchSite) {
+ ICommonViewerWorkbenchSite wsSite = (ICommonViewerWorkbenchSite) site;
+ selection = (IStructuredSelection) wsSite.getSelectionProvider()
+ .getSelection();
+ }
+ if( selection != null && selection.toArray().length == 1 ) {
+ if( selection.getFirstElement() instanceof IServer ) {
+ if( menu instanceof MenuManager ) {
+ MenuManager mgr = (MenuManager)menu;
+ IContributionItem[] items = mgr.getItems();
+ for( int i = 0; i < items.length; i++ ) {
+ if( "org.eclipse.ui.navigate.showInQuickMenu".equals(items[i].getId())) {
+ ((MenuManager)items[i]).add(showInJMXViewAction);
+ }
+ }
+ }
+ }
+ }
+ }
+
+ public class ShowInJMXViewAction extends AbstractServerAction {
+ public ShowInJMXViewAction(ISelectionProvider sp) {
+ super(sp, null);
+
+ IViewRegistry reg = PlatformUI.getWorkbench().getViewRegistry();
+ IViewDescriptor desc = reg.find(JMXNavigator.VIEW_ID);
+ setText(desc.getLabel());
+ setImageDescriptor(desc.getImageDescriptor());
+ }
+
+ public boolean accept(IServer server) {
+ return (server.getServerType() != null &&
+ server.loadAdapter(JBossServer.class, new NullProgressMonitor()) != null
+ && server.getServerState() == IServer.STATE_STARTED);
+ }
+
+ public void perform(final IServer server) {
+ IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow() ;
+ if (window != null) {
+ IWorkbenchPage page = window.getActivePage();
+ if (page != null) {
+ IWorkbenchPart part = page.findView(JMXNavigator.VIEW_ID);
+ if (part == null) {
+ try {
+ part = page.showView(JMXNavigator.VIEW_ID);
+ } catch (PartInitException e) {
+ }
+ } else /* if( part != null ) */ {
+ final JMXNavigator view = (JMXNavigator) part.getAdapter(JMXNavigator.class);
+ if (view != null) {
+ view.setFocus();
+ Display.getDefault().asyncExec(new Runnable() {
+ public void run() {
+ JBossServerConnectionProvider provider =
+ (JBossServerConnectionProvider)ExtensionManager.getProvider(
+ JBossServerConnectionProvider.PROVIDER_ID);
+ JBossServerConnection connection = provider.getConnection(server);
+ if( connection != null ) {
+ view.getCommonViewer().collapseAll();
+ ISelection sel = new StructuredSelection(new Object[] { connection });
+ view.getCommonViewer().setSelection(sel, true);
+ view.getCommonViewer().expandToLevel(connection, 2);
+ }
+ }
+ });
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
public static class ContentProvider implements ITreeContentProvider {
private MBeanExplorerContentProvider delegate;
public ContentProvider() {
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/ServerLogActionProvider.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/ServerLogActionProvider.java 2008-12-04 01:45:55 UTC (rev 12268)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/ServerLogActionProvider.java 2008-12-04 02:34:35 UTC (rev 12269)
@@ -74,7 +74,7 @@
public class ShowInServerLogAction extends AbstractServerAction {
public ShowInServerLogAction(ISelectionProvider sp) {
- super(sp, "Server Log");
+ super(sp, null);
IViewRegistry reg = PlatformUI.getWorkbench().getViewRegistry();
IViewDescriptor desc = reg.find(ServerLogView.VIEW_ID);
@@ -98,8 +98,7 @@
part = page.showView(ServerLogView.VIEW_ID);
} catch (PartInitException e) {
}
- }
- if (part != null) {
+ } else /* if (part != null) */ {
ServerLogView view = (ServerLogView) part.getAdapter(ServerLogView.class);
if (view != null) {
view.setFocus();
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/plugin.xml
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/plugin.xml 2008-12-04 01:45:55 UTC (rev 12268)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/plugin.xml 2008-12-04 02:34:35 UTC (rev 12269)
@@ -426,6 +426,15 @@
</instanceof>
</enablement>
</actionProvider>
+ <actionProvider
+ class="org.jboss.ide.eclipse.as.ui.views.server.extensions.JMXProvider$ActionProvider"
+ id="org.jboss.ide.eclipse.as.ui.extensions.showInJMXView">
+ <enablement>
+ <instanceof
+ value="org.eclipse.wst.server.core.IServer">
+ </instanceof>
+ </enablement>
+ </actionProvider>
<navigatorContent
activeByDefault="false"
contentProvider="org.jboss.ide.eclipse.as.ui.views.server.extensions.JMXProvider$ContentProvider"
@@ -487,6 +496,8 @@
<actionExtension
pattern="org.jboss.ide.eclipse.as.ui.extensions.serverLog"/>
<actionExtension
+ pattern="org.jboss.ide.eclipse.as.ui.extensions.showInJMXView"/>
+ <actionExtension
pattern="org.jboss.tools.jmx.ui.internal.views.navigator.actionProvider">
</actionExtension>
</includes>
17 years, 4 months
JBoss Tools SVN: r12268 - in trunk/jmx/plugins/org.jboss.tools.jmx.ui: src/org/jboss/tools/jmx/ui/internal/editors and 2 other directories.
by jbosstools-commits@lists.jboss.org
Author: rob.stryker(a)jboss.com
Date: 2008-12-03 20:45:55 -0500 (Wed, 03 Dec 2008)
New Revision: 12268
Added:
trunk/jmx/plugins/org.jboss.tools.jmx.ui/src/org/jboss/tools/jmx/ui/internal/views/navigator/JMXNavigator.java
Removed:
trunk/jmx/plugins/org.jboss.tools.jmx.ui/src/org/jboss/tools/jmx/ui/internal/views/navigator/Navigator.java
Modified:
trunk/jmx/plugins/org.jboss.tools.jmx.ui/plugin.xml
trunk/jmx/plugins/org.jboss.tools.jmx.ui/src/org/jboss/tools/jmx/ui/internal/editors/AttributesPage.java
trunk/jmx/plugins/org.jboss.tools.jmx.ui/src/org/jboss/tools/jmx/ui/internal/editors/OperationsPage.java
trunk/jmx/plugins/org.jboss.tools.jmx.ui/src/org/jboss/tools/jmx/ui/internal/perspectives/JMXPerspective.java
trunk/jmx/plugins/org.jboss.tools.jmx.ui/src/org/jboss/tools/jmx/ui/internal/views/navigator/QueryContribution.java
Log:
Changed View class's name to be less generic
Modified: trunk/jmx/plugins/org.jboss.tools.jmx.ui/plugin.xml
===================================================================
--- trunk/jmx/plugins/org.jboss.tools.jmx.ui/plugin.xml 2008-12-04 01:20:45 UTC (rev 12267)
+++ trunk/jmx/plugins/org.jboss.tools.jmx.ui/plugin.xml 2008-12-04 01:45:55 UTC (rev 12268)
@@ -13,7 +13,7 @@
</category>
<view
category="org.jboss.tools.jmx.ui.views"
- class="org.jboss.tools.jmx.ui.internal.views.navigator.Navigator"
+ class="org.jboss.tools.jmx.ui.internal.views.navigator.JMXNavigator"
icon="icons/full/obj16/jmeth_obj.gif"
id="org.jboss.tools.jmx.ui.internal.views.navigator.MBeanExplorer"
name="%MBeanExplorer.name"
Modified: trunk/jmx/plugins/org.jboss.tools.jmx.ui/src/org/jboss/tools/jmx/ui/internal/editors/AttributesPage.java
===================================================================
--- trunk/jmx/plugins/org.jboss.tools.jmx.ui/src/org/jboss/tools/jmx/ui/internal/editors/AttributesPage.java 2008-12-04 01:20:45 UTC (rev 12267)
+++ trunk/jmx/plugins/org.jboss.tools.jmx.ui/src/org/jboss/tools/jmx/ui/internal/editors/AttributesPage.java 2008-12-04 01:45:55 UTC (rev 12268)
@@ -24,7 +24,7 @@
import org.jboss.tools.jmx.core.MBeanAttributeInfoWrapper;
import org.jboss.tools.jmx.core.MBeanInfoWrapper;
import org.jboss.tools.jmx.ui.Messages;
-import org.jboss.tools.jmx.ui.internal.views.navigator.Navigator;
+import org.jboss.tools.jmx.ui.internal.views.navigator.JMXNavigator;
import org.jboss.tools.jmx.ui.internal.views.navigator.UpdateSelectionJob;
public class AttributesPage extends FormPage {
@@ -89,7 +89,7 @@
block.createContent(managedForm);
block.masterSection.getTableViewer().addSelectionChangedListener(new ISelectionChangedListener() {
public void selectionChanged(SelectionChangedEvent event) {
- UpdateSelectionJob.launchJob(Navigator.VIEW_ID);
+ UpdateSelectionJob.launchJob(JMXNavigator.VIEW_ID);
}
});
}
Modified: trunk/jmx/plugins/org.jboss.tools.jmx.ui/src/org/jboss/tools/jmx/ui/internal/editors/OperationsPage.java
===================================================================
--- trunk/jmx/plugins/org.jboss.tools.jmx.ui/src/org/jboss/tools/jmx/ui/internal/editors/OperationsPage.java 2008-12-04 01:20:45 UTC (rev 12267)
+++ trunk/jmx/plugins/org.jboss.tools.jmx.ui/src/org/jboss/tools/jmx/ui/internal/editors/OperationsPage.java 2008-12-04 01:45:55 UTC (rev 12268)
@@ -25,7 +25,7 @@
import org.jboss.tools.jmx.core.MBeanInfoWrapper;
import org.jboss.tools.jmx.core.MBeanOperationInfoWrapper;
import org.jboss.tools.jmx.ui.Messages;
-import org.jboss.tools.jmx.ui.internal.views.navigator.Navigator;
+import org.jboss.tools.jmx.ui.internal.views.navigator.JMXNavigator;
import org.jboss.tools.jmx.ui.internal.views.navigator.UpdateSelectionJob;
public class OperationsPage extends FormPage {
@@ -90,7 +90,7 @@
block.createContent(managedForm);
block.masterSection.getTableViewer().addSelectionChangedListener(new ISelectionChangedListener() {
public void selectionChanged(SelectionChangedEvent event) {
- UpdateSelectionJob.launchJob(Navigator.VIEW_ID);
+ UpdateSelectionJob.launchJob(JMXNavigator.VIEW_ID);
}
});
}
Modified: trunk/jmx/plugins/org.jboss.tools.jmx.ui/src/org/jboss/tools/jmx/ui/internal/perspectives/JMXPerspective.java
===================================================================
--- trunk/jmx/plugins/org.jboss.tools.jmx.ui/src/org/jboss/tools/jmx/ui/internal/perspectives/JMXPerspective.java 2008-12-04 01:20:45 UTC (rev 12267)
+++ trunk/jmx/plugins/org.jboss.tools.jmx.ui/src/org/jboss/tools/jmx/ui/internal/perspectives/JMXPerspective.java 2008-12-04 01:45:55 UTC (rev 12268)
@@ -11,7 +11,7 @@
import org.eclipse.ui.IFolderLayout;
import org.eclipse.ui.IPageLayout;
import org.eclipse.ui.IPerspectiveFactory;
-import org.jboss.tools.jmx.ui.internal.views.navigator.Navigator;
+import org.jboss.tools.jmx.ui.internal.views.navigator.JMXNavigator;
public class JMXPerspective implements IPerspectiveFactory {
@@ -31,11 +31,11 @@
private void addViews() {
IFolderLayout left = factory.createFolder("left", //$NON-NLS-1$
IPageLayout.LEFT, 0.2f, factory.getEditorArea());
- left.addView(Navigator.VIEW_ID);
+ left.addView(JMXNavigator.VIEW_ID);
}
private void addViewShortcuts() {
- factory.addShowViewShortcut(Navigator.VIEW_ID);
+ factory.addShowViewShortcut(JMXNavigator.VIEW_ID);
factory.addShowViewShortcut("org.eclipse.ui.views.PropertySheet"); //$NON-NLS-1$
}
Copied: trunk/jmx/plugins/org.jboss.tools.jmx.ui/src/org/jboss/tools/jmx/ui/internal/views/navigator/JMXNavigator.java (from rev 12053, trunk/jmx/plugins/org.jboss.tools.jmx.ui/src/org/jboss/tools/jmx/ui/internal/views/navigator/Navigator.java)
===================================================================
--- trunk/jmx/plugins/org.jboss.tools.jmx.ui/src/org/jboss/tools/jmx/ui/internal/views/navigator/JMXNavigator.java (rev 0)
+++ trunk/jmx/plugins/org.jboss.tools.jmx.ui/src/org/jboss/tools/jmx/ui/internal/views/navigator/JMXNavigator.java 2008-12-04 01:45:55 UTC (rev 12268)
@@ -0,0 +1,82 @@
+/*******************************************************************************
+ * Copyright (c) 2006 Jeff Mesnil
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * "Rob Stryker" <rob.stryker(a)redhat.com> - Initial implementation
+ *******************************************************************************/
+package org.jboss.tools.jmx.ui.internal.views.navigator;
+
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.FormAttachment;
+import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.layout.FormLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.navigator.CommonNavigator;
+import org.jboss.tools.jmx.ui.internal.actions.NewConnectionAction;
+
+/**
+ * The view itself
+ */
+public class JMXNavigator extends CommonNavigator {
+ public static final String VIEW_ID = "org.jboss.tools.jmx.ui.internal.views.navigator.MBeanExplorer"; //$NON-NLS-1$
+ private Text filterText;
+ private QueryContribution query;
+
+ public JMXNavigator() {
+ super();
+ }
+ protected IAdaptable getInitialInput() {
+ return this;
+ }
+ public void createPartControl(Composite aParent) {
+ fillActionBars();
+ Composite newParent = new Composite(aParent, SWT.NONE);
+ newParent.setLayout(new FormLayout());
+ super.createPartControl(newParent);
+ filterText = new Text(newParent, SWT.SINGLE | SWT.BORDER );
+
+ // layout the two objects
+ FormData fd = new FormData();
+ fd.left = new FormAttachment(0,5);
+ fd.right = new FormAttachment(100,-5);
+ fd.top = new FormAttachment(0,5);
+ filterText.setLayoutData(fd);
+
+ fd = new FormData();
+ fd.left = new FormAttachment(0,0);
+ fd.right = new FormAttachment(100,0);
+ fd.top = new FormAttachment(filterText, 5);
+ fd.bottom = new FormAttachment(100,0);
+ getCommonViewer().getTree().setLayoutData(fd);
+
+ filterText.setToolTipText("Type in a filter");
+ filterText.setText("Type in a filter");
+
+ Display.getDefault().asyncExec(new Runnable() {
+ public void run() {
+ query = new QueryContribution(JMXNavigator.this);
+ }
+ });
+ }
+
+ public Text getFilterText() {
+ return filterText;
+ }
+
+ public void fillActionBars() {
+// queryContribution = new QueryContribution(this);
+// getViewSite().getActionBars().getToolBarManager().add(queryContribution);
+ getViewSite().getActionBars().getToolBarManager().add(new NewConnectionAction());
+ getViewSite().getActionBars().getToolBarManager().add(new Separator());
+ getViewSite().getActionBars().updateActionBars();
+ }
+}
Property changes on: trunk/jmx/plugins/org.jboss.tools.jmx.ui/src/org/jboss/tools/jmx/ui/internal/views/navigator/JMXNavigator.java
___________________________________________________________________
Name: svn:mergeinfo
+
Deleted: trunk/jmx/plugins/org.jboss.tools.jmx.ui/src/org/jboss/tools/jmx/ui/internal/views/navigator/Navigator.java
===================================================================
--- trunk/jmx/plugins/org.jboss.tools.jmx.ui/src/org/jboss/tools/jmx/ui/internal/views/navigator/Navigator.java 2008-12-04 01:20:45 UTC (rev 12267)
+++ trunk/jmx/plugins/org.jboss.tools.jmx.ui/src/org/jboss/tools/jmx/ui/internal/views/navigator/Navigator.java 2008-12-04 01:45:55 UTC (rev 12268)
@@ -1,82 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006 Jeff Mesnil
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * "Rob Stryker" <rob.stryker(a)redhat.com> - Initial implementation
- *******************************************************************************/
-package org.jboss.tools.jmx.ui.internal.views.navigator;
-
-
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FormAttachment;
-import org.eclipse.swt.layout.FormData;
-import org.eclipse.swt.layout.FormLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.navigator.CommonNavigator;
-import org.jboss.tools.jmx.ui.internal.actions.NewConnectionAction;
-
-/**
- * The view itself
- */
-public class Navigator extends CommonNavigator {
- public static final String VIEW_ID = "org.jboss.tools.jmx.ui.internal.views.navigator.MBeanExplorer"; //$NON-NLS-1$
- private Text filterText;
- private QueryContribution query;
-
- public Navigator() {
- super();
- }
- protected IAdaptable getInitialInput() {
- return this;
- }
- public void createPartControl(Composite aParent) {
- fillActionBars();
- Composite newParent = new Composite(aParent, SWT.NONE);
- newParent.setLayout(new FormLayout());
- super.createPartControl(newParent);
- filterText = new Text(newParent, SWT.SINGLE | SWT.BORDER );
-
- // layout the two objects
- FormData fd = new FormData();
- fd.left = new FormAttachment(0,5);
- fd.right = new FormAttachment(100,-5);
- fd.top = new FormAttachment(0,5);
- filterText.setLayoutData(fd);
-
- fd = new FormData();
- fd.left = new FormAttachment(0,0);
- fd.right = new FormAttachment(100,0);
- fd.top = new FormAttachment(filterText, 5);
- fd.bottom = new FormAttachment(100,0);
- getCommonViewer().getTree().setLayoutData(fd);
-
- filterText.setToolTipText("Type in a filter");
- filterText.setText("Type in a filter");
-
- Display.getDefault().asyncExec(new Runnable() {
- public void run() {
- query = new QueryContribution(Navigator.this);
- }
- });
- }
-
- public Text getFilterText() {
- return filterText;
- }
-
- public void fillActionBars() {
-// queryContribution = new QueryContribution(this);
-// getViewSite().getActionBars().getToolBarManager().add(queryContribution);
- getViewSite().getActionBars().getToolBarManager().add(new NewConnectionAction());
- getViewSite().getActionBars().getToolBarManager().add(new Separator());
- getViewSite().getActionBars().updateActionBars();
- }
-}
Modified: trunk/jmx/plugins/org.jboss.tools.jmx.ui/src/org/jboss/tools/jmx/ui/internal/views/navigator/QueryContribution.java
===================================================================
--- trunk/jmx/plugins/org.jboss.tools.jmx.ui/src/org/jboss/tools/jmx/ui/internal/views/navigator/QueryContribution.java 2008-12-04 01:20:45 UTC (rev 12267)
+++ trunk/jmx/plugins/org.jboss.tools.jmx.ui/src/org/jboss/tools/jmx/ui/internal/views/navigator/QueryContribution.java 2008-12-04 01:45:55 UTC (rev 12268)
@@ -54,12 +54,12 @@
private String filterText;
- private Navigator navigator;
+ private JMXNavigator navigator;
private HashMap<Object, Boolean> matches = null;
private HashMap<Object, Boolean> shouldShow = null;
private RefineThread refineThread;
- public QueryContribution(final Navigator navigator) {
+ public QueryContribution(final JMXNavigator navigator) {
this.navigator = navigator;
map.put(navigator.getCommonViewer(), this);
addListener();
17 years, 4 months
JBoss Tools SVN: r12267 - trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui.
by jbosstools-commits@lists.jboss.org
Author: rob.stryker(a)jboss.com
Date: 2008-12-03 20:20:45 -0500 (Wed, 03 Dec 2008)
New Revision: 12267
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/IPreferenceKeys.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/JBossServerUIPlugin.java
Log:
JBIDE-3342
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/IPreferenceKeys.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/IPreferenceKeys.java 2008-12-04 00:48:27 UTC (rev 12266)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/IPreferenceKeys.java 2008-12-04 01:20:45 UTC (rev 12267)
@@ -2,5 +2,5 @@
public interface IPreferenceKeys {
- public static final String ENABLED_DECORATORS = "org.jboss.ide.eclipse.as.ui.preferences.enabledDecorators";
+ public static final String ENABLED_DECORATORS = "org.jboss.ide.eclipse.as.ui.preferences.enabledDecorators.3.0.0.CR1";
}
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/JBossServerUIPlugin.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/JBossServerUIPlugin.java 2008-12-04 00:48:27 UTC (rev 12266)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/JBossServerUIPlugin.java 2008-12-04 01:20:45 UTC (rev 12267)
@@ -69,7 +69,6 @@
IDecoratorManager manager = WorkbenchPlugin.getDefault().getDecoratorManager();
manager.setEnabled("org.jboss.tools.as.wst.server.ui.navigatorDecorator", true);
manager.setEnabled("org.jboss.ide.eclipse.as.ui.extensions.xml.decorator", true);
- manager.setEnabled("org.jboss.ide.eclipse.as.ui.views.ServerLogView.decorator", true);
prefs.setValue(IPreferenceKeys.ENABLED_DECORATORS, true);
savePluginPreferences();
}
17 years, 4 months
JBoss Tools SVN: r12266 - trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal.
by jbosstools-commits@lists.jboss.org
Author: rob.stryker(a)jboss.com
Date: 2008-12-03 19:48:27 -0500 (Wed, 03 Dec 2008)
New Revision: 12266
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/JBossServerBehavior.java
Log:
JBIDE-3308, JBIDE-3323 Fixed deployment scanner additions. See issues for more information.
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/JBossServerBehavior.java
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/JBossServerBehavior.java 2008-12-03 22:42:35 UTC (rev 12265)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/JBossServerBehavior.java 2008-12-04 00:48:27 UTC (rev 12266)
@@ -21,12 +21,17 @@
*/
package org.jboss.ide.eclipse.as.core.server.internal;
+import java.io.File;
+
import javax.management.MBeanServerConnection;
import javax.management.ObjectName;
import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.Status;
import org.eclipse.debug.core.DebugEvent;
import org.eclipse.debug.core.DebugException;
@@ -34,12 +39,16 @@
import org.eclipse.debug.core.IDebugEventSetListener;
import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
import org.eclipse.debug.core.model.IProcess;
+import org.eclipse.wst.server.core.IRuntime;
import org.eclipse.wst.server.core.IServer;
import org.jboss.ide.eclipse.as.core.JBossServerCorePlugin;
import org.jboss.ide.eclipse.as.core.extensions.events.IEventCodes;
import org.jboss.ide.eclipse.as.core.extensions.events.ServerLogger;
import org.jboss.ide.eclipse.as.core.extensions.jmx.JBossServerConnectionProvider;
+import org.jboss.ide.eclipse.as.core.extensions.jmx.JMXClassLoaderRepository;
import org.jboss.ide.eclipse.as.core.server.IDeployableServer;
+import org.jboss.ide.eclipse.as.core.server.IJBossServerConstants;
+import org.jboss.ide.eclipse.as.core.server.IJBossServerRuntime;
import org.jboss.ide.eclipse.as.core.server.IServerStatePoller;
import org.jboss.ide.eclipse.as.core.server.internal.launch.JBossServerStartupLaunchConfiguration;
import org.jboss.ide.eclipse.as.core.server.internal.launch.StopLaunchConfiguration;
@@ -192,29 +201,70 @@
protected void publishStart(IProgressMonitor monitor) throws CoreException {
super.publishStart(monitor);
- suspendDeployment();
- ensureDeployLocationAdded();
+ JMXClassLoaderRepository.getDefault().addConcerned(getServer(), this);
+ final boolean suspend = shouldSuspendScanner();
+ final boolean add = shouldAddDeployLocation();
+ if( suspend || add) {
+ IJMXRunnable r = new IJMXRunnable() {
+ public void run(MBeanServerConnection connection) throws Exception {
+ if( suspend )
+ suspendDeployment(connection);
+ if( add )
+ ensureDeployLocationAdded(connection);
+ }
+ };
+ JBossServerConnectionProvider.run(getServer(), r);
+ }
}
- protected void ensureDeployLocationAdded() {
- final IDeployableServer ds = ServerConverter.getDeployableServer(getServer());
- IJMXRunnable r = new IJMXRunnable() {
- public void run(MBeanServerConnection connection) throws Exception {
- ObjectName name = new ObjectName("jboss.deployment:flavor=URL,type=DeploymentScanner");
- connection.invoke(name, "addURL", new Object[] { "file:" + ds.getDeployFolder() }, new String[] {String.class.getName()});
- }
- };
- try {
- if( getServer().getServerState() == IServer.STATE_STARTED)
- JBossServerConnectionProvider.run(getServer(), r);
- } catch( CoreException ce) {}
- }
-
protected void publishFinish(IProgressMonitor monitor) throws CoreException {
- resumeDeployment();
+ if( shouldSuspendScanner()) {
+ IJMXRunnable r = new IJMXRunnable() {
+ public void run(MBeanServerConnection connection) throws Exception {
+ resumeDeployment(connection);
+ }
+ };
+ JBossServerConnectionProvider.run(getServer(), r);
+ }
+ JMXClassLoaderRepository.getDefault().removeConcerned(getServer(), this);
super.publishFinish(monitor);
}
+
+ protected boolean shouldAddDeployLocation() {
+ IDeployableServer ds = ServerConverter.getDeployableServer(getServer());
+ boolean shouldAdd = getServer().getServerState() == IServer.STATE_STARTED;
+ String type = ds.getDeployLocationType();
+ String deployFolder = ds.getDeployFolder();
+ if( type.equals(IDeployableServer.DEPLOY_SERVER))
+ shouldAdd = false;
+ else if( type.equals(IDeployableServer.DEPLOY_METADATA))
+ shouldAdd = true;
+ else if( type.equals( IDeployableServer.DEPLOY_CUSTOM )) {
+ if( !new File(deployFolder).exists())
+ shouldAdd = false;
+ else {
+ IRuntime rt = getServer().getRuntime();
+ IJBossServerRuntime jbsrt = (IJBossServerRuntime)rt.loadAdapter(IJBossServerRuntime.class, new NullProgressMonitor());
+ String config = jbsrt.getJBossConfiguration();
+ IPath deploy = new Path(IJBossServerConstants.SERVER)
+ .append(config)
+ .append(IJBossServerConstants.DEPLOY).makeRelative();
+ IPath deployGlobal = DeployableServer.makeGlobal(jbsrt, deploy);
+ if( new Path(deployFolder).equals(deployGlobal))
+ shouldAdd = false;
+ }
+ }
+ return shouldAdd;
+ }
+
+ protected void ensureDeployLocationAdded(MBeanServerConnection connection) throws Exception {
+ IDeployableServer ds = ServerConverter.getDeployableServer(getServer());
+ String deployFolder = ds.getDeployFolder();
+ ObjectName name = new ObjectName("jboss.deployment:flavor=URL,type=DeploymentScanner");
+ connection.invoke(name, "addURL", new Object[] { "file:" + deployFolder }, new String[] {String.class.getName()});
+ }
+
protected boolean shouldSuspendScanner() {
if( getServer().getServerType().getId().equals("org.jboss.ide.eclipse.as.50"))
return false;
@@ -223,30 +273,14 @@
return true;
}
- protected void suspendDeployment() {
- IJMXRunnable r = new IJMXRunnable() {
- public void run(MBeanServerConnection connection) throws Exception {
- ObjectName name = new ObjectName("jboss.deployment:flavor=URL,type=DeploymentScanner");
- connection.invoke(name, "stop", new Object[] { }, new String[] {});
- }
- };
- try {
- if( shouldSuspendScanner() )
- JBossServerConnectionProvider.run(getServer(), r);
- } catch( CoreException ce) {} // ignore
+ protected void suspendDeployment(MBeanServerConnection connection) throws Exception {
+ ObjectName name = new ObjectName("jboss.deployment:flavor=URL,type=DeploymentScanner");
+ connection.invoke(name, "stop", new Object[] { }, new String[] {});
}
- protected void resumeDeployment() {
- IJMXRunnable r = new IJMXRunnable() {
- public void run(MBeanServerConnection connection) throws Exception {
- ObjectName name = new ObjectName("jboss.deployment:flavor=URL,type=DeploymentScanner");
- connection.invoke(name, "start", new Object[] { }, new String[] {});
- }
- };
- try {
- if( shouldSuspendScanner() )
- JBossServerConnectionProvider.run(getServer(), r);
- } catch( CoreException ce) {} // ignore
+ protected void resumeDeployment(MBeanServerConnection connection) throws Exception {
+ ObjectName name = new ObjectName("jboss.deployment:flavor=URL,type=DeploymentScanner");
+ connection.invoke(name, "start", new Object[] { }, new String[] {});
}
17 years, 4 months
JBoss Tools SVN: r12265 - trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/dialog.
by jbosstools-commits@lists.jboss.org
Author: snjeza
Date: 2008-12-03 17:42:35 -0500 (Wed, 03 Dec 2008)
New Revision: 12265
Modified:
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/dialog/SeamFacetVersionChangeDialog.java
Log:
JBIDE-3338 Unhandled event loop exception during blocked modal context is occured when change Seam version from 2.0 to 2.1 using Project Facets.
Modified: trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/dialog/SeamFacetVersionChangeDialog.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/dialog/SeamFacetVersionChangeDialog.java 2008-12-03 19:22:11 UTC (rev 12264)
+++ trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/dialog/SeamFacetVersionChangeDialog.java 2008-12-03 22:42:35 UTC (rev 12265)
@@ -33,6 +33,7 @@
import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.preferences.IEclipsePreferences;
import org.eclipse.core.runtime.preferences.IScopeContext;
+import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.dialogs.TitleAreaDialog;
import org.eclipse.jface.resource.ImageDescriptor;
@@ -78,6 +79,8 @@
import org.jboss.tools.seam.core.project.facet.SeamRuntimeManager;
import org.jboss.tools.seam.core.project.facet.SeamVersion;
import org.jboss.tools.seam.internal.core.project.facet.ISeamFacetDataModelProperties;
+import org.jboss.tools.seam.ui.widget.editor.CompositeEditor;
+import org.jboss.tools.seam.ui.widget.editor.ITaggedFieldEditor;
import org.jboss.tools.seam.ui.widget.editor.SeamRuntimeListFieldEditor.SeamRuntimeNewWizard;
import org.jboss.tools.seam.ui.wizard.SeamFormWizard;
import org.jboss.tools.seam.ui.wizard.SeamWizardUtils;
@@ -165,13 +168,7 @@
seamRuntimeCombo = new Combo(contents, SWT.READ_ONLY);
gd = new GridData(GridData.FILL_HORIZONTAL);
seamRuntimeCombo.setLayoutData(gd);
- final SeamVersion version = SeamVersion.findByString(fv
- .getVersionString());
- String[] runtimeNames = getRuntimeNames(version);
- seamRuntimeCombo.setItems(runtimeNames);
- if (runtimeNames.length > 0) {
- seamRuntimeCombo.select(0);
- }
+ final SeamVersion version = refreshSeamRuntimeCombo();
Button addSeamRuntime = new Button(contents, SWT.PUSH);
addSeamRuntime.setText(Messages.SeamFacetVersionChangeDialog_Add);
@@ -188,7 +185,12 @@
.getRuntimes())), added, versions);
WizardDialog dialog = new WizardDialog(Display.getCurrent()
.getActiveShell(), wiz);
- dialog.open();
+ int ok = dialog.open();
+ if ((ok == Dialog.OK) && (added.size() > 0)) {
+ SeamRuntimeManager.getInstance().addRuntime(added.get(0));
+ refreshSeamRuntimeCombo();
+ }
+ refresh();
}
});
@@ -244,8 +246,13 @@
added.getList().setLayoutData(gd);
added.getList().setFont(mainFont);
added.setLabelProvider(labelProvider);
- SeamVersion newVersion = SeamRuntimeManager.getInstance()
- .findRuntimeByName(seamRuntimeCombo.getText()).getVersion();
+ SeamVersion newVersion = null;
+ if (seamRuntimeCombo.getText().trim().length() > 0) {
+ newVersion = SeamRuntimeManager.getInstance().findRuntimeByName(
+ seamRuntimeCombo.getText()).getVersion();
+ } else {
+ newVersion = SeamVersion.findByString(fv.getVersionString());
+ }
IStructuredContentProvider aContentProvider = new WarFileSetProvider(
isWarConfiguration(), newVersion);
added.setContentProvider(aContentProvider);
@@ -335,6 +342,18 @@
return area;
}
+ private SeamVersion refreshSeamRuntimeCombo() {
+ final SeamVersion version = SeamVersion.findByString(fv
+ .getVersionString());
+ String[] runtimeNames = getRuntimeNames(version);
+ seamRuntimeCombo.setItems(runtimeNames);
+ if (runtimeNames.length > 0 && seamRuntimeCombo.getText().trim().length() <=0 ) {
+ seamRuntimeCombo.select(0);
+ }
+
+ return version;
+ }
+
private void refresh() {
updateButton();
File seamHomePath = getSeamHomePath();
17 years, 4 months
JBoss Tools SVN: r12263 - in trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui: views/properties and 1 other directory.
by jbosstools-commits@lists.jboss.org
Author: vrubezhny
Date: 2008-12-03 14:18:44 -0500 (Wed, 03 Dec 2008)
New Revision: 12263
Modified:
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/text/java/SeamELProposalProcessor.java
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/views/properties/SeamELAttributeContentProposalProvider.java
Log:
JBIDE-3133 New icons for proposals in JSF/Seam Code Assist.
The icons support and a set of common icons are added to the Seam CA.
Modified: trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/text/java/SeamELProposalProcessor.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/text/java/SeamELProposalProcessor.java 2008-12-03 19:16:20 UTC (rev 12262)
+++ trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/text/java/SeamELProposalProcessor.java 2008-12-03 19:18:44 UTC (rev 12263)
@@ -94,20 +94,31 @@
private final int fOffset;
private int fNewPosition;
+ private Image fImage;
+
public Proposal(String string, String prefix, int offset) {
this(string, prefix, offset, offset + string.length());
}
public Proposal(String string, String prefix, int offset, int newPosition) {
- this(string, prefix, prefix, offset, offset + string.length());
+ this(string, prefix, prefix, offset, offset + string.length(), null);
}
+ public Proposal(String string, String prefix, int offset, int newPosition, Image image) {
+ this(string, prefix, prefix, offset, offset + string.length(), image);
+ }
+
public Proposal(String string, String prefix, String newPrefix, int offset, int newPosition) {
+ this(string, prefix, newPrefix, offset, newPosition, null);
+ }
+
+ public Proposal(String string, String prefix, String newPrefix, int offset, int newPosition, Image image) {
fString = string;
fPrefix = prefix;
fNewPrefix = newPrefix;
fOffset = offset;
fNewPosition = newPosition;
+ fImage = image;
}
/*
@@ -153,7 +164,9 @@
* @see org.eclipse.jface.text.contentassist.ICompletionProposal#getImage()
*/
public Image getImage() {
- return SharedXMLEditorPluginImageHelper.getImage(SharedXMLEditorPluginImageHelper.IMG_OBJ_ATTRIBUTE);
+ return fImage == null ?
+ SharedXMLEditorPluginImageHelper.getImage(SharedXMLEditorPluginImageHelper.IMG_OBJ_ATTRIBUTE) :
+ fImage;
}
/*
@@ -424,14 +437,17 @@
ElVarSearcher varSearcher = new ElVarSearcher(engine);
List<Var> vars = varSearcher.findAllVars(viewer, offset);
- //TODO
-
SeamELCompletionEngine fEngine= new SeamELCompletionEngine(seamProject);
- List<String> suggestions = fEngine.getCompletions(file, document, prefix, offset + proposalPrefix.length() - prefix.length(), false, vars, start, end);
- List<String> uniqueSuggestions = fEngine.makeUnique(suggestions);
+ List<KbProposal> suggestions = fEngine.getCompletions(file, document, prefix, offset + proposalPrefix.length() - prefix.length(), false, vars, start, end);
+ List<KbProposal> uniqueSuggestions = fEngine.makeKbUnique(suggestions);
List<ICompletionProposal> result= new ArrayList<ICompletionProposal>();
- for (String string : uniqueSuggestions) {
+ for (KbProposal kbProposal : uniqueSuggestions) {
+ String string = kbProposal.getReplacementString();
+ Image image = kbProposal.hasImage() ?
+ kbProposal.getImage() :
+ SeamCorePlugin.getDefault().getImage(SeamCorePlugin.CA_SEAM_EL_IMAGE_PATH);
+
if (string.length() >= 0) {
string = proposalPrefix + string + proposalSufix;
if (string.length() > 0 && ('#' == string.charAt(0) || '$' == string.charAt(0)))
@@ -439,9 +455,9 @@
if (string.startsWith("['") && string.endsWith("']") && prefix != null && prefix.endsWith(".")) {
String newPrefix = prefix.substring(0, prefix.length() - 1);
- result.add(new Proposal(string, prefix, newPrefix, offset, offset - 1 + string.length() - proposalSufix.length()));
+ result.add(new Proposal(string, prefix, newPrefix, offset, offset - 1 + string.length() - proposalSufix.length(), image));
} else {
- result.add(new Proposal(string, prefix, offset, offset + string.length() - proposalSufix.length()));
+ result.add(new Proposal(string, prefix, offset, offset + string.length() - proposalSufix.length(), image));
}
}
}
Modified: trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/views/properties/SeamELAttributeContentProposalProvider.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/views/properties/SeamELAttributeContentProposalProvider.java 2008-12-03 19:16:20 UTC (rev 12262)
+++ trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/views/properties/SeamELAttributeContentProposalProvider.java 2008-12-03 19:18:44 UTC (rev 12263)
@@ -25,6 +25,7 @@
import org.jboss.tools.common.el.core.model.ELInvocationExpression;
import org.jboss.tools.common.el.core.model.ELModel;
import org.jboss.tools.common.el.core.model.ELUtil;
+import org.jboss.tools.common.kb.KbProposal;
import org.jboss.tools.common.meta.XAttribute;
import org.jboss.tools.common.model.XModelObject;
import org.jboss.tools.common.model.ui.attribute.IAttributeContentProposalProvider;
@@ -107,7 +108,7 @@
if(prefix == null) prefix = "";
- List<String> suggestions = null;
+ List<KbProposal> suggestions = null;
try {
suggestions = engine.getCompletions(file, null, prefix, position, false, null, 0, contents.length());
} catch (BadLocationException e) {
@@ -116,12 +117,12 @@
if(suggestions == null) {
return EMPTY;
}
- List<String> uniqueSuggestions = engine.makeUnique(suggestions);
+ List<KbProposal> uniqueSuggestions = engine.makeKbUnique(suggestions);
List<IContentProposal> list = new ArrayList<IContentProposal>();
- for (String p: uniqueSuggestions) {
- String label = prefix + p;
- IContentProposal cp = makeContentProposal(p, label);
+ for (KbProposal p: uniqueSuggestions) {
+ String label = prefix + p.getReplacementString();
+ IContentProposal cp = makeContentProposal(p.getReplacementString(), label);
list.add(cp);
}
return list.toArray(new IContentProposal[0]);
17 years, 4 months
JBoss Tools SVN: r12262 - in trunk/seam/plugins/org.jboss.tools.seam.core: META-INF and 2 other directories.
by jbosstools-commits@lists.jboss.org
Author: vrubezhny
Date: 2008-12-03 14:16:20 -0500 (Wed, 03 Dec 2008)
New Revision: 12262
Modified:
trunk/seam/plugins/org.jboss.tools.seam.core/META-INF/MANIFEST.MF
trunk/seam/plugins/org.jboss.tools.seam.core/build.properties
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/core/SeamCorePlugin.java
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/SeamELCompletionEngine.java
Log:
JBIDE-3133 New icons for proposals in JSF/Seam Code Assist.
The icons support and a set of common icons are added to the Seam CA.
Modified: trunk/seam/plugins/org.jboss.tools.seam.core/META-INF/MANIFEST.MF
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.core/META-INF/MANIFEST.MF 2008-12-03 19:15:48 UTC (rev 12261)
+++ trunk/seam/plugins/org.jboss.tools.seam.core/META-INF/MANIFEST.MF 2008-12-03 19:16:20 UTC (rev 12262)
@@ -50,7 +50,8 @@
org.eclipse.emf.ecore,
org.eclipse.jst.j2ee.core,
org.eclipse.jst.jsf.facesconfig,
- org.eclipse.jst.common.frameworks
+ org.eclipse.jst.common.frameworks,
+ org.jboss.tools.common.kb;bundle-version="2.0.0"
Bundle-Version: 2.0.0
Export-Package:
org.jboss.tools.seam.core,
Modified: trunk/seam/plugins/org.jboss.tools.seam.core/build.properties
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.core/build.properties 2008-12-03 19:15:48 UTC (rev 12261)
+++ trunk/seam/plugins/org.jboss.tools.seam.core/build.properties 2008-12-03 19:16:20 UTC (rev 12262)
@@ -8,7 +8,8 @@
about.ini,\
about.mappings,\
about.properties,\
- seam_icon.png
+ seam_icon.png,\
+ images/
jars.compile.order = seam-core.jar
src.includes = templates/,\
src/,\
Modified: trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/core/SeamCorePlugin.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/core/SeamCorePlugin.java 2008-12-03 19:15:48 UTC (rev 12261)
+++ trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/core/SeamCorePlugin.java 2008-12-03 19:16:20 UTC (rev 12262)
@@ -12,6 +12,7 @@
import java.io.File;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
import org.eclipse.core.resources.IProject;
@@ -27,6 +28,8 @@
import org.eclipse.core.runtime.preferences.IEclipsePreferences;
import org.eclipse.core.runtime.preferences.IScopeContext;
import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.jboss.tools.common.log.BaseUIPlugin;
import org.jboss.tools.common.log.IPluginLog;
import org.jboss.tools.seam.core.event.ISeamProjectChangeListener;
@@ -45,6 +48,12 @@
// The shared instance
private static SeamCorePlugin plugin;
+ // A Map to save a descriptor for each image
+ private HashMap fImageDescRegistry = null;
+
+
+ public static final String CA_SEAM_EL_IMAGE_PATH = "images/ca/icons_Seam_EL.gif";
+ public static final String CA_SEAM_MESSAGES_IMAGE_PATH = "images/ca/icons_Message_Bundles.gif";
/**
* The constructor
*/
@@ -216,4 +225,104 @@
}
}
+ /**
+ * Creates an image from the given resource and adds the image to the
+ * image registry.
+ *
+ * @param resource
+ * @return Image
+ */
+ private Image createImage(String resource) {
+ ImageDescriptor desc = getImageDescriptorFromRegistry(resource);
+ Image image = null;
+
+ if (desc != null) {
+ image = desc.createImage();
+ // dont add the missing image descriptor image to the image
+ // registry
+ if (!desc.equals(ImageDescriptor.getMissingImageDescriptor())) {
+ getImageRegistry().put(resource, image);
+ }
+ }
+ return image;
+ }
+
+ /**
+ * Creates an image descriptor from the given imageFilePath and adds the
+ * image descriptor to the image descriptor registry. If an image
+ * descriptor could not be created, the default "missing" image descriptor
+ * is returned but not added to the image descriptor registry.
+ *
+ * @param imageFilePath
+ * @return ImageDescriptor image descriptor for imageFilePath or default
+ * "missing" image descriptor if resource could not be found
+ */
+ private ImageDescriptor createImageDescriptor(String imageFilePath) {
+ ImageDescriptor imageDescriptor = AbstractUIPlugin.imageDescriptorFromPlugin(PLUGIN_ID, imageFilePath);
+ if (imageDescriptor != null) {
+ getImageDescriptorRegistry().put(imageFilePath, imageDescriptor);
+ }
+ else {
+ imageDescriptor = ImageDescriptor.getMissingImageDescriptor();
+ }
+
+ return imageDescriptor;
+ }
+
+ /**
+ * Retrieves the image associated with resource from the image registry.
+ * If the image cannot be retrieved, attempt to find and load the image at
+ * the location specified in resource.
+ *
+ * @param resource
+ * the image to retrieve
+ * @return Image the image associated with resource or null if one could
+ * not be found
+ */
+ public Image getImage(String resource) {
+ Image image = getImageRegistry().get(resource);
+ if (image == null) {
+ // create an image
+ image = createImage(resource);
+ }
+ return image;
+ }
+
+ /**
+ * Retrieves the image descriptor associated with resource from the image
+ * descriptor registry. If the image descriptor cannot be retrieved,
+ * attempt to find and load the image descriptor at the location specified
+ * in resource.
+ *
+ * @param resource
+ * the image descriptor to retrieve
+ * @return ImageDescriptor the image descriptor assocated with resource or
+ * the default "missing" image descriptor if one could not be
+ * found
+ */
+ public ImageDescriptor getImageDescriptorFromRegistry(String resource) {
+ ImageDescriptor imageDescriptor = null;
+ Object o = getImageDescriptorRegistry().get(resource);
+ if (o == null) {
+ // create a descriptor
+ imageDescriptor = createImageDescriptor(resource);
+ }
+ else {
+ imageDescriptor = (ImageDescriptor) o;
+ }
+ return imageDescriptor;
+ }
+
+ /**
+ * Returns the image descriptor registry for this plugin.
+ *
+ * @return HashMap - image descriptor registry for this plugin
+ */
+ private HashMap getImageDescriptorRegistry() {
+ if (fImageDescRegistry == null) {
+ fImageDescRegistry = new HashMap();
+ }
+ return fImageDescRegistry;
+ }
+
}
\ No newline at end of file
Modified: trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/SeamELCompletionEngine.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/SeamELCompletionEngine.java 2008-12-03 19:15:48 UTC (rev 12261)
+++ trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/el/SeamELCompletionEngine.java 2008-12-03 19:16:20 UTC (rev 12262)
@@ -27,6 +27,7 @@
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.IRegion;
import org.eclipse.jface.text.ITextViewer;
+import org.eclipse.swt.graphics.Image;
import org.jboss.tools.common.el.core.model.ELExpression;
import org.jboss.tools.common.el.core.model.ELInstance;
import org.jboss.tools.common.el.core.model.ELInvocationExpression;
@@ -45,11 +46,15 @@
import org.jboss.tools.common.el.core.resolver.TypeInfoCollector;
import org.jboss.tools.common.el.core.resolver.Var;
import org.jboss.tools.common.el.core.resolver.TypeInfoCollector.MemberInfo;
+import org.jboss.tools.common.kb.KbProposal;
import org.jboss.tools.seam.core.ISeamComponent;
import org.jboss.tools.seam.core.ISeamContextVariable;
+import org.jboss.tools.seam.core.ISeamElement;
import org.jboss.tools.seam.core.ISeamProject;
+import org.jboss.tools.seam.core.ISeamXmlFactory;
import org.jboss.tools.seam.core.ScopeType;
import org.jboss.tools.seam.core.SeamCorePlugin;
+import org.jboss.tools.seam.internal.core.SeamMessagesComponent;
import org.jboss.tools.seam.internal.core.el.SeamExpressionResolver.MessagesInfo;
/**
@@ -59,6 +64,11 @@
*/
public final class SeamELCompletionEngine implements ELCompletionEngine {
+ private static final Image SEAM_EL_PROPOSAL_IMAGE =
+ SeamCorePlugin.getDefault().getImage(SeamCorePlugin.CA_SEAM_EL_IMAGE_PATH);
+ private static final Image SEAM_MESSAGES_PROPOSAL_IMAGE =
+ SeamCorePlugin.getDefault().getImage(SeamCorePlugin.CA_SEAM_MESSAGES_IMAGE_PATH);
+
ISeamProject project;
ELParserFactory factory = ELParserUtil.getJbossFactory();
/**
@@ -72,8 +82,9 @@
return factory;
}
+
/**
- * Create the array of suggestions.
+ * Create the list of suggestions.
* @param seamProject Seam project
* @param file File
* @param documentContent
@@ -96,9 +107,9 @@
* @throws BadLocationException if accessing the current document fails
* @throws StringIndexOutOfBoundsException
*/
- public List<String> getCompletions(IFile file, IDocument document, CharSequence prefix,
+ public List<KbProposal> getCompletions(IFile file, IDocument document, CharSequence prefix,
int position, boolean returnEqualedVariablesOnly, List<Var> vars, int start, int end) throws BadLocationException, StringIndexOutOfBoundsException {
- List<String> completions = new ArrayList<String>();
+ List<KbProposal> completions = new ArrayList<KbProposal>();
ELOperandResolveStatus status = resolveELOperand(file, parseOperand("" + prefix), returnEqualedVariablesOnly, vars, new ElVarSearcher(file, this));
if (status.isOK()) {
@@ -107,7 +118,6 @@
return completions;
}
-
private static final String collectionAdditionForCollectionDataModel = ".iterator().next()";
private static final String collectionAdditionForMapDataModel = ".entrySet().iterator().next()";
@@ -194,7 +204,15 @@
}
if(!returnEqualedVariablesOnly && vars!=null) {
- status.getProposals().addAll(getVarNameProposals(vars, operand.toString()));
+ List<String> varNameProposals = getVarNameProposals(vars, operand.toString());
+ if (varNameProposals != null) {
+ for (String varNameProposal : varNameProposals) {
+ KbProposal proposal = new KbProposal();
+ proposal.setReplacementString(varNameProposal);
+ proposal.setImage(SEAM_EL_PROPOSAL_IMAGE);
+ status.getProposals().add(proposal);
+ }
+ }
}
return status;
}
@@ -326,11 +344,18 @@
// no vars are resolved
// the tokens are the part of var name ended with a separator (.)
resolvedVariables = resolveVariables(scope, expr, true, returnEqualedVariablesOnly);
- Set<String> proposals = new TreeSet<String>(String.CASE_INSENSITIVE_ORDER);
+ Set<KbProposal> proposals = new TreeSet<KbProposal>(KbProposal.KB_PROPOSAL_ORDER);
for (ISeamContextVariable var : resolvedVariables) {
String varName = var.getName();
if(varName.startsWith(operand.getText())) {
- proposals.add(varName.substring(operand.getLength()));
+ KbProposal proposal = new KbProposal();
+ proposal.setReplacementString(varName.substring(operand.getLength()));
+ if (isSeamMessagesComponentVariable(var)) {
+ proposal.setImage(SEAM_MESSAGES_PROPOSAL_IMAGE);
+ } else {
+ proposal.setImage(SEAM_EL_PROPOSAL_IMAGE);
+ }
+ proposals.add(proposal);
}
}
status.setProposals(proposals);
@@ -341,13 +366,27 @@
// OK. we'll proceed with members of these vars
if (status.getResolvedTokens() == status.getTokens()) {
// First segment is the last one
- Set<String> proposals = new TreeSet<String>(String.CASE_INSENSITIVE_ORDER);
+ Set<KbProposal> proposals = new TreeSet<KbProposal>(KbProposal.KB_PROPOSAL_ORDER);
for (ISeamContextVariable var : resolvedVariables) {
String varName = var.getName();
if(operand.getLength()<=varName.length()) {
- proposals.add(varName.substring(operand.getLength()));
+ KbProposal proposal = new KbProposal();
+ proposal.setReplacementString(varName.substring(operand.getLength()));
+ if (isSeamMessagesComponentVariable(var)) {
+ proposal.setImage(SEAM_MESSAGES_PROPOSAL_IMAGE);
+ } else {
+ proposal.setImage(SEAM_EL_PROPOSAL_IMAGE);
+ }
+ proposals.add(proposal);
} else if(returnEqualedVariablesOnly) {
- proposals.add(varName);
+ KbProposal proposal = new KbProposal();
+ proposal.setReplacementString(varName);
+ if (isSeamMessagesComponentVariable(var)) {
+ proposal.setImage(SEAM_MESSAGES_PROPOSAL_IMAGE);
+ } else {
+ proposal.setImage(SEAM_EL_PROPOSAL_IMAGE);
+ }
+ proposals.add(proposal);
}
status.setMemberOfResolvedOperand(SeamExpressionResolver.getMemberInfoByVariable(var, true));
}
@@ -444,7 +483,8 @@
List<TypeInfoCollector.MemberInfo> members,
ELOperandResolveStatus status,
boolean returnEqualedVariablesOnly, boolean varIsUsed) {
- Set<String> proposals = new TreeSet<String>(String.CASE_INSENSITIVE_ORDER);
+ Set<KbProposal> kbProposals = new TreeSet<KbProposal>(KbProposal.KB_PROPOSAL_ORDER);
+
if (expr.getType() == ELObjectType.EL_PROPERTY_INVOCATION && ((ELPropertyInvocation)expr).getName() == null) {
// return all the methods + properties
for (TypeInfoCollector.MemberInfo mbr : members) {
@@ -458,9 +498,17 @@
if (key == null || key.length() == 0)
continue;
if (key.indexOf('.') != -1) {
- proposals.add("['" + key + "']");
+ KbProposal proposal = new KbProposal();
+ proposal.setReplacementString("['" + key + "']");
+ proposal.setImage(SEAM_MESSAGES_PROPOSAL_IMAGE);
+
+ kbProposals.add(proposal);
} else {
- proposals.add(key);
+ KbProposal proposal = new KbProposal();
+ proposal.setReplacementString(key);
+ proposal.setImage(SEAM_MESSAGES_PROPOSAL_IMAGE);
+
+ kbProposals.add(proposal);
}
}
continue;
@@ -472,8 +520,29 @@
if (TypeInfoCollector.isNotParameterizedCollection(mbr) || TypeInfoCollector.isResourceBundle(mbr.getMemberType())) {
status.setMapOrCollectionOrBundleAmoungTheTokens();
}
- proposals.addAll(infos.getMethodPresentationStrings());
- proposals.addAll(infos.getPropertyPresentationStrings(status.getUnpairedGettersOrSetters()));
+
+ Set<String> methodPresentations =
+ infos.getMethodPresentationStrings();
+ if (methodPresentations != null) {
+ for (String presentation : methodPresentations) {
+ KbProposal proposal = new KbProposal();
+ proposal.setReplacementString(presentation);
+ proposal.setImage(SEAM_EL_PROPOSAL_IMAGE);
+
+ kbProposals.add(proposal);
+ }
+ }
+ Set<String> propertyPresentations =
+ infos.getPropertyPresentationStrings(status.getUnpairedGettersOrSetters());
+ if (propertyPresentations != null) {
+ for (String presentation : propertyPresentations) {
+ KbProposal proposal = new KbProposal();
+ proposal.setReplacementString(presentation);
+ proposal.setImage(SEAM_EL_PROPOSAL_IMAGE);
+
+ kbProposals.add(proposal);
+ }
+ }
}
} else
if(expr.getType() != ELObjectType.EL_ARGUMENT_INVOCATION)
@@ -508,7 +577,17 @@
if(returnEqualedVariablesOnly) {
// This is used for validation.
if (proposal.getPresentation().equals(filter)) {
- proposals.add(proposal.getPresentation());
+ KbProposal kbProposal = new KbProposal();
+ kbProposal.setReplacementString(proposal.getPresentation());
+
+ if (proposal.getMember() instanceof MessagesInfo) {
+ kbProposal.setImage(SEAM_MESSAGES_PROPOSAL_IMAGE);
+ } else {
+ kbProposal.setImage(SEAM_EL_PROPOSAL_IMAGE);
+ }
+
+ kbProposals.add(kbProposal);
+
status.setMemberOfResolvedOperand(proposal.getMember());
if(status.getUnpairedGettersOrSetters()!=null) {
TypeInfoCollector.MethodInfo unpirMethod = status.getUnpairedGettersOrSetters().get(filter);
@@ -521,11 +600,15 @@
}
} else if (proposal.getPresentation().startsWith(filter)) {
// This is used for CA.
- proposals.add(proposal.getPresentation().substring(filter.length()));
+ KbProposal kbProposal = new KbProposal();
+ kbProposal.setReplacementString(proposal.getPresentation().substring(filter.length()));
+ kbProposal.setImage(SEAM_EL_PROPOSAL_IMAGE);
+
+ kbProposals.add(kbProposal);
}
}
}
- status.setProposals(proposals);
+ status.setProposals(kbProposals);
if (status.isOK()){
status.setLastResolvedToken(expr);
}
@@ -616,16 +699,16 @@
* @param suggestions a list of suggestions ({@link String}).
* @return a list of unique completion suggestions.
*/
- public List<String> makeUnique(List<String> suggestions) {
+ public List<KbProposal> makeKbUnique(List<KbProposal> suggestions) {
HashSet<String> present = new HashSet<String>();
- ArrayList<String> unique= new ArrayList<String>();
+ ArrayList<KbProposal> unique= new ArrayList<KbProposal>();
if (suggestions == null)
return unique;
- for (String item : suggestions) {
- if (!present.contains(item)) {
- present.add(item);
+ for (KbProposal item : suggestions) {
+ if (!present.contains(item.getReplacementString())) {
+ present.add(item.getReplacementString());
unique.add(item);
}
}
@@ -843,4 +926,33 @@
return content.length();
}
+ public static boolean isSeamMessagesComponentVariable(ISeamContextVariable variable) {
+ if (variable instanceof SeamMessagesComponent) {
+ return true;
+ } else if (variable instanceof ISeamXmlFactory) {
+ ISeamXmlFactory factory = (ISeamXmlFactory)variable;
+ String value = factory.getValue();
+ if (value != null && value.length() > 0) {
+ if (value.startsWith("#{") || value.startsWith("${")) //$NON-NLS-1$ //$NON-NLS-2$
+ value = value.substring(2);
+ if (value.endsWith("}")) //$NON-NLS-1$
+ value = value.substring(0, value.length() - 1);
+ }
+ if (value != null && value.length() > 0) {
+ ISeamProject p = ((ISeamElement)factory).getSeamProject();
+ if (p != null) {
+ List<ISeamContextVariable> resolvedValues = SeamExpressionResolver.resolveVariables(p, null, value, true);
+ for (ISeamContextVariable var : resolvedValues) {
+ if (var.getName().equals(value)) {
+ if (var instanceof SeamMessagesComponent) {
+ return true;
+ }
+ }
+ }
+ }
+ }
+ }
+ return false;
+ }
+
}
17 years, 4 months
JBoss Tools SVN: r12261 - in trunk/seam/plugins/org.jboss.tools.seam.core: images and 1 other directories.
by jbosstools-commits@lists.jboss.org
Author: vrubezhny
Date: 2008-12-03 14:15:48 -0500 (Wed, 03 Dec 2008)
New Revision: 12261
Added:
trunk/seam/plugins/org.jboss.tools.seam.core/images/
trunk/seam/plugins/org.jboss.tools.seam.core/images/ca/
trunk/seam/plugins/org.jboss.tools.seam.core/images/ca/icons_Message_Bundles.gif
trunk/seam/plugins/org.jboss.tools.seam.core/images/ca/icons_Seam_EL.gif
Log:
JBIDE-3133 New icons for proposals in JSF/Seam Code Assist.
The icons support and a set of common icons are added to the Seam CA.
Added: trunk/seam/plugins/org.jboss.tools.seam.core/images/ca/icons_Message_Bundles.gif
===================================================================
(Binary files differ)
Property changes on: trunk/seam/plugins/org.jboss.tools.seam.core/images/ca/icons_Message_Bundles.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/seam/plugins/org.jboss.tools.seam.core/images/ca/icons_Seam_EL.gif
===================================================================
(Binary files differ)
Property changes on: trunk/seam/plugins/org.jboss.tools.seam.core/images/ca/icons_Seam_EL.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
17 years, 4 months