Author: rob.stryker(a)jboss.com
Date: 2008-05-16 18:09:23 -0400 (Fri, 16 May 2008)
New Revision: 8163
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/ExtensionManager.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/ToolsServerUICore.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/ExtensionTableViewer.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/JBossServerView.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/ServerExtensionFrame.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/ServerFrame.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/ServerTableViewer.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/preferencepages/
Removed:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/ExtensionManager.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/preferencepages/
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/ExtensionTableViewer.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/JBossServerView.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/ServerExtensionFrame.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/ServerFrame.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/ServerTableViewer.java
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/views/server/extensions/JBossServerViewExtension.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/PropertySheetFactory.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/DescriptorXPathViewProvider.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/EventLogViewProvider.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/FilesetViewProvider.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/InactiveExtensionViewProvider.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/descriptors/DescriptorXPathPropertySheetPage.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/jmx/JMXPropertySheetPage.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/jmx/JMXViewProvider.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/util/ViewUtilityMethods.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/preferencepages/JBossServersPreferencePage.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/preferencepages/ViewPreferencePage.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/preferencepages/ViewProviderPreferenceComposite.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/plugin.xml
Log:
JBIDE-2217
Deleted:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/ExtensionManager.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/ExtensionManager.java 2008-05-16
20:38:12 UTC (rev 8162)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/ExtensionManager.java 2008-05-16
22:09:23 UTC (rev 8163)
@@ -1,78 +0,0 @@
-/**
- * JBoss, a Division of Red Hat
- * Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
-* This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
- */
-package org.jboss.ide.eclipse.as.ui;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Comparator;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.jboss.ide.eclipse.as.ui.views.server.extensions.ServerViewProvider;
-
-/**
- *
- * @author rob.stryker(a)jboss.com
- */
-public class ExtensionManager {
- private static ExtensionManager instance;
- public static ExtensionManager getDefault() {
- if( instance == null )
- instance = new ExtensionManager();
- return instance;
- }
-
- private ServerViewProvider[] serverViewExtensions;
- public ServerViewProvider[] getAllServerViewProviders() {
- if( serverViewExtensions == null )
- loadAllServerViewProviders();
- Arrays.sort(serverViewExtensions, new Comparator() {
- public int compare(Object arg0, Object arg1) {
- if( arg0 instanceof ServerViewProvider && arg1 instanceof ServerViewProvider)
{
- return ((ServerViewProvider)arg0).getWeight() -
((ServerViewProvider)arg1).getWeight();
- }
- return 0;
- }
- });
- return serverViewExtensions;
- }
- private void loadAllServerViewProviders() {
- // Create the extensions from the registry
- IExtensionRegistry registry = Platform.getExtensionRegistry();
- IConfigurationElement[] elements =
registry.getConfigurationElementsFor(JBossServerUIPlugin.PLUGIN_ID,
"ServerViewExtension");
- ArrayList list = new ArrayList();
- for( int i = 0; i < elements.length; i++ ) {
- try {
- list.add(new ServerViewProvider(elements[i]));
- } catch(Exception e) {
- String msg = "Server View Provider (" +
elements[i].getAttribute(ServerViewProvider.ID_LABEL) + ") failed to load";
- IStatus status = new Status(IStatus.ERROR, JBossServerUIPlugin.PLUGIN_ID, msg, e);
- JBossServerUIPlugin.getDefault().getLog().log(status);
- }
- }
- serverViewExtensions = (ServerViewProvider[]) list.toArray(new
ServerViewProvider[list.size()]);
- }
-
-}
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-05-16
20:38:12 UTC (rev 8162)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/JBossServerUIPlugin.java 2008-05-16
22:09:23 UTC (rev 8163)
@@ -32,6 +32,7 @@
import org.eclipse.wst.server.core.IServer;
import org.jboss.ide.eclipse.as.core.JBossServerCorePlugin;
import org.jboss.ide.eclipse.as.ui.views.server.extensions.ServerViewProvider;
+import org.jboss.tools.wst.server.ui.ExtensionManager;
import org.osgi.framework.BundleContext;
/**
@@ -89,23 +90,6 @@
JBossServerCorePlugin.getDefault();
}
-
-
- public ServerViewProvider[] getEnabledViewProviders(IServer server) {
- ServerViewProvider[] serverViewExtensions = getAllServerViewProviders();
- ArrayList list = new ArrayList();
- for( int i = 0; i < serverViewExtensions.length; i++ ) {
- if( serverViewExtensions[i].isEnabled() &&
serverViewExtensions[i].supports(server)) {
- list.add(serverViewExtensions[i]);
- }
- }
- return (ServerViewProvider[]) list.toArray(new ServerViewProvider[list.size()]);
- }
-
- public ServerViewProvider[] getAllServerViewProviders() {
- return ExtensionManager.getDefault().getAllServerViewProviders();
- }
-
public static void log(String message, Exception e) {
IStatus status = new Status(IStatus.ERROR, JBossServerUIPlugin.PLUGIN_ID, message, e);
JBossServerUIPlugin.getDefault().getLog().log(status);
Deleted:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/ExtensionTableViewer.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/ExtensionTableViewer.java 2008-05-16
20:38:12 UTC (rev 8162)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/ExtensionTableViewer.java 2008-05-16
22:09:23 UTC (rev 8163)
@@ -1,490 +0,0 @@
-/**
- * JBoss, a Division of Red Hat
- * Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
-* This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
- */
-package org.jboss.ide.eclipse.as.ui.views.server;
-
-import java.util.ArrayList;
-import java.util.Properties;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.part.PageBook;
-import org.eclipse.ui.views.properties.IPropertySheetPage;
-import org.eclipse.wst.server.core.IServer;
-import org.eclipse.wst.server.core.IServerLifecycleListener;
-import org.eclipse.wst.server.core.ServerCore;
-import org.eclipse.wst.server.ui.ServerUICore;
-import org.jboss.ide.eclipse.as.core.server.UnitedServerListener;
-import org.jboss.ide.eclipse.as.core.server.UnitedServerListenerManager;
-import org.jboss.ide.eclipse.as.core.server.internal.JBossServer;
-import org.jboss.ide.eclipse.as.ui.JBossServerUIPlugin;
-import org.jboss.ide.eclipse.as.ui.Messages;
-import org.jboss.ide.eclipse.as.ui.views.server.extensions.PropertySheetFactory;
-import org.jboss.ide.eclipse.as.ui.views.server.extensions.ServerViewProvider;
-import
org.jboss.ide.eclipse.as.ui.views.server.extensions.PropertySheetFactory.ISimplePropertiesHolder;
-import
org.jboss.ide.eclipse.as.ui.views.server.extensions.PropertySheetFactory.SimplePropertiesPropertySheetPage;
-
-/**
- *
- * @author Rob Stryker <rob.stryker(a)redhat.com>
- *
- */
-public class ExtensionTableViewer extends TreeViewer {
-
- protected TableViewerPropertySheet propertySheet;
- protected Action disableCategoryAction, refreshAction;
- protected boolean suppressingRefresh = false;
- public ExtensionTableViewer(Tree tree) {
- super(tree);
- setContentProvider(new ContentProviderDelegator());
- setLabelProvider(new LabelProviderDelegator());
- propertySheet = new TableViewerPropertySheet();
- createActions();
-
- UnitedServerListenerManager.getDefault().addListener(new UnitedServerListener() {
- public void serverRemoved(IServer server) {
- final IServer server2 = server;
- Display.getDefault().asyncExec(new Runnable() {
- public void run() {
- Object o = getInput();
- if( server2.equals(o)) {
- setInput(null);
- }
- }
- });
- }
- });
- }
-
- protected void createActions() {
- disableCategoryAction = new Action() {
- public void run() {
- Display.getDefault().asyncExec(new Runnable() {
- public void run() {
- Object selected = getSelectedElement();
- if( selected instanceof ServerViewProvider) {
- ((ServerViewProvider)selected).setEnabled(false);
- refresh();
- }
- }
- } );
- }
- };
- disableCategoryAction.setText(Messages.DisableCategoryAction);
- refreshAction = new Action() {
- public void run() {
- Object o1 = ((IStructuredSelection)getSelection()).getFirstElement();
- if( o1 != null ) {
- // tell the delegate to refresh its model for the selected item, before we refresh
the viewer
- ServerViewProvider provider = o1 instanceof ServerViewProvider ?
(ServerViewProvider)o1 : ((ContentWrapper)o1).getProvider();
- if( provider != null )
- provider.getDelegate().refreshModel(o1);
- }
- Object el = getSelectedElement();
- if( el instanceof ServerViewProvider )
- refresh(el);
- else
- refresh(((IStructuredSelection)getSelection()).getFirstElement());
- }
- };
- refreshAction.setText("Refresh Item");
- }
-
- public static class ContentWrapper {
- private Object o;
- private ServerViewProvider provider;
-
- public ContentWrapper(Object o, ServerViewProvider provider) {
- this.o = o;
- this.provider = provider;
- }
-
- public Object getElement() {
- return o;
- }
-
- public ServerViewProvider getProvider() {
- return provider;
- }
-
- public boolean equals(Object other) {
- if( other == null ) return false;
-
- if( other instanceof ContentWrapper ) {
- if( ((ContentWrapper)other).getElement() == null )
- return o == null;
- return ((ContentWrapper)other).getElement().equals(o);
- }
- return false;
- }
-
- public int hashCode() {
- if( o == null ) return super.hashCode();
- return o.hashCode();
- }
- }
-
- protected class LabelProviderDelegator extends LabelProvider {
- public String getText(Object obj) {
- if( obj instanceof JBossServer) {
- JBossServer server = (JBossServer)obj;
- String ret = server.getServer().getName();
- return ret;
- }
- if( obj instanceof ServerViewProvider) {
- return ((ServerViewProvider)obj).getName();
- }
-
- if( obj instanceof ContentWrapper ) {
- ContentWrapper wrapper = (ContentWrapper)obj;
- return
wrapper.getProvider().getDelegate().getLabelProvider().getText(wrapper.getElement());
- }
- return obj.toString();
- }
- public Image getImage(Object obj) {
- if( obj instanceof JBossServer ) {
- return ServerUICore.getLabelProvider().getImage(((JBossServer)obj).getServer());
- }
- if( obj instanceof ServerViewProvider ) {
- return ((ServerViewProvider)obj).getImage();
- }
-
- if( obj instanceof ContentWrapper ) {
- Object object2 = ((ContentWrapper)obj).getElement();
- return
((ContentWrapper)obj).getProvider().getDelegate().getLabelProvider().getImage(object2);
- }
-
- return null;
- }
- }
- protected class ContentProviderDelegator implements ITreeContentProvider {
-
- public ContentProviderDelegator() {
- }
-
- public ContentWrapper[] wrap( Object[] elements, ServerViewProvider provider ) {
- if( elements == null ) return new ContentWrapper[0];
-
- ContentWrapper[] wrappers = new ContentWrapper[elements.length];
- for( int i = 0; i < wrappers.length; i++ ) {
- wrappers[i] = new ContentWrapper(elements[i], provider);
- }
- return wrappers;
- }
-
- public Object[] getElements(Object inputElement) {
- if( inputElement == null ) return new Object[0];
- IServer tmp = (IServer)getInput();
- if( tmp == null )
- return new Object[0];
- return JBossServerUIPlugin.getDefault().getEnabledViewProviders(tmp);
- }
-
- public Object[] getChildren(Object parentElement) {
- if( parentElement == null ) return new Object[0];
-
- if( parentElement instanceof ServerViewProvider) {
- Object[] ret =
((ServerViewProvider)parentElement).getDelegate().getContentProvider().getChildren(parentElement);
- return wrap(ret, ((ServerViewProvider)parentElement));
- }
-
- if( parentElement instanceof ContentWrapper ) {
- ContentWrapper parentWrapper = (ContentWrapper)parentElement;
- Object[] o = null;
- try {
- o =
parentWrapper.getProvider().getDelegate().getContentProvider().getChildren(parentWrapper.getElement());
- } catch( Exception e) {
- JBossServerUIPlugin.log("Error finding children of " + parentElement, e);
- }
- if( o == null )
- return new Object[0];
- return wrap(o, parentWrapper.getProvider());
- }
- return new Object[0];
- }
-
- public Object getParent(Object element) {
- return null;
- }
-
- public boolean hasChildren(Object element) {
- if( element instanceof ServerViewProvider )
- return
((ServerViewProvider)element).getDelegate().getContentProvider().hasChildren(element);
- if( element instanceof ContentWrapper ) {
- ContentWrapper parentWrapper = (ContentWrapper)element;
- return
parentWrapper.getProvider().getDelegate().getContentProvider().hasChildren(parentWrapper.getElement());
- }
- return getChildren(element).length > 0 ? true : false;
- }
-
- public void dispose() {
- }
-
- public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
- ServerViewProvider[] providers = JBossServerUIPlugin.getDefault().
- getEnabledViewProviders(newInput instanceof IServer ? (IServer)newInput : null);
- for( int i = 0; i < providers.length; i++ ) {
- try {
- providers[i].getDelegate().getContentProvider().inputChanged(viewer, oldInput,
newInput);
- } catch( Exception e) {
- JBossServerUIPlugin.log("Error changing input to " + newInput, e);
- }
- }
- }
-
- }
-
- public Object getRawElement(Object o) {
- if( o instanceof ContentWrapper )
- return ((ContentWrapper)o).getElement();
- return o;
- }
-
- public Object[] getRawElements(IStructuredSelection selection) {
- ArrayList<Object> tmp = new ArrayList<Object>();
- Object[] obj = selection.toArray();
- Object tmp2;
- for( int i = 0; i < obj.length; i++ ) {
- tmp2 = getRawElement(obj[i]);
- if( tmp2 != null ) tmp.add(tmp2);
- }
- return (Object[]) tmp.toArray(new Object[tmp.size()]);
- }
-
- public ServerViewProvider getParentViewProvider(Object o) {
- if( o instanceof ContentWrapper )
- return ((ContentWrapper)o).getProvider();
- return null;
- }
-
- public Object getSelectedElement() {
- ISelection sel = getSelection();
- if( sel instanceof IStructuredSelection ) {
- Object o = ((IStructuredSelection)sel).getFirstElement();
- if( o != null && o instanceof ContentWrapper ) {
- o = ((ContentWrapper)o).getElement();
- }
- return o;
- }
- return null;
- }
-
- protected void fillSelectedContextMenu(Shell shell, IMenuManager mgr) {
- ISelection sel = getSelection();
- if (sel instanceof IStructuredSelection) {
- ServerViewProvider provider = findProvider((IStructuredSelection)sel);
- if (provider != null) {
- Object[] selected = getRawElements((IStructuredSelection)sel);
- provider.getDelegate().fillContextMenu(shell, mgr, selected);
- }
- }
- }
-
- protected ServerViewProvider findProvider(IStructuredSelection sel) {
- Object[] selected = sel.toArray();
- ServerViewProvider provider = null;
- ServerViewProvider tmpProvider;
- for( int i = 0; i < selected.length; i++ ) {
- if( selected[i] instanceof ServerViewProvider ) {
- tmpProvider = (ServerViewProvider)selected[i];
- } else {
- tmpProvider = getParentViewProvider(selected[i]);
- }
- if( provider == null )
- provider = tmpProvider;
- else if( tmpProvider != provider )
- return null;
- }
- return provider;
- }
-
- protected void fillJBContextMenu(Shell shell, IMenuManager menu) {
- Object selected = getSelectedElement();
- menu.add(refreshAction);
- if( selected instanceof ServerViewProvider ) {
- menu.add(disableCategoryAction);
- }
-
- menu.add(new Separator());
- }
-
- public IPropertySheetPage getPropertySheet() {
- return propertySheet;
- }
-
- public class TableViewerPropertySheet implements IPropertySheetPage {
-
- private PageBook book;
- private ArrayList<ServerViewProvider> addedControls = new
ArrayList<ServerViewProvider>();
- private SimplePropertiesPropertySheetPage topLevelPropertiesPage;
-
- public void createControl(Composite parent) {
- topLevelPropertiesPage = PropertySheetFactory.createSimplePropertiesSheet(new
TopLevelProperties());
- book = new PageBook(parent, SWT.NONE);
- addedControls.clear();
- topLevelPropertiesPage.createControl(book);
- book.showPage(topLevelPropertiesPage.getControl());
- }
-
- public void dispose() {
- }
-
- public Control getControl() {
- return book;
- }
-
- public void setActionBars(IActionBars actionBars) {
- }
-
- public void setFocus() {
- }
-
- public void selectionChanged(IWorkbenchPart part, ISelection sel) {
- Object selected = getSelectedObject(sel);
- if( selected != null ) {
-
- IPropertySheetPage page = null;
- if( selected instanceof ContentWrapper ) {
- page = getDelegatePage(((ContentWrapper)selected).getProvider());
- } else /*if( selected instanceof ServerViewProvider ) {
- page = getDelegatePage((ServerViewProvider)selected);
- } else if( page == null ) */ {
- page = topLevelPropertiesPage;
- }
- if( page != null ) {
- page.selectionChanged(part, sel);
- book.showPage(page.getControl());
- }
- }
- }
- private IPropertySheetPage getDelegatePage(ServerViewProvider provider) {
- IPropertySheetPage returnSheet = null;
- returnSheet = provider.getDelegate().getPropertySheetPage();
- if( !addedControls.contains(provider) && returnSheet != null) {
- returnSheet.createControl(book);
- addedControls.add(provider);
- }
- return returnSheet;
- }
-
- public Object getSelectedObject(ISelection sel) {
- if( sel instanceof IStructuredSelection ) {
- IStructuredSelection selection = (IStructuredSelection)sel;
- Object selected = selection.getFirstElement();
- return selected;
- }
- return null;
- }
-
- }
- /**
- * Properties for the top level elements
- * (a server or a category / extension point
- * @author rstryker
- *
- */
- class TopLevelProperties implements ISimplePropertiesHolder {
- public Properties getProperties(Object selected) {
- Properties ret = new Properties();
- if( selected instanceof ServerViewProvider ) {
- ServerViewProvider provider = (ServerViewProvider)selected;
- ret.setProperty(Messages.ExtensionID, provider.getId());
- ret.setProperty(Messages.ExtensionName, provider.getName());
- ret.setProperty(Messages.ExtensionDescription, provider.getDescription());
- ret.setProperty(Messages.ExtensionProviderClass, provider.getDelegateName());
- }
- return ret;
- }
-
-
- public String[] getPropertyKeys(Object selected) {
- if( selected instanceof ServerViewProvider) {
- return new String[] {
- Messages.ExtensionName, Messages.ExtensionDescription,
- Messages.ExtensionID, Messages.ExtensionProviderClass
- };
-
- }
- if( selected instanceof JBossServer ) {
- return new String[] {
- Messages.ServerRuntimeVersion, Messages.ServerHome,
- Messages.ServerConfigurationName, Messages.ServerDeployDir,
- };
- }
- return new String[] {};
- }
- }
-
- public void dispose() {
- // The Loner
- propertySheet.dispose();
-
- ServerViewProvider[] providers =
JBossServerUIPlugin.getDefault().getAllServerViewProviders();
- for( int i = 0; i < providers.length; i++ ) {
- providers[i].dispose();
- }
- }
-
-
- public void suppressingRefresh(Runnable runnable) {
- boolean currentVal = suppressingRefresh;
- suppressingRefresh = true;
- runnable.run();
- suppressingRefresh = currentVal;
- }
-
- public void refresh() {
- refresh(null);
- }
- public void refresh(final Object element) {
- if(!suppressingRefresh) {
- try {
- super.refresh(element);
- } catch( Exception e ) {
- JBossServerUIPlugin.log("Error refreshing view. ", e);
- }
- }
- }
-
- public boolean elementInTree(Object element) {
- Widget[] w = super.findItems(element);
- return w != null && w.length > 0;
- }
-
-
-}
Deleted:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/JBossServerView.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/JBossServerView.java 2008-05-16
20:38:12 UTC (rev 8162)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/JBossServerView.java 2008-05-16
22:09:23 UTC (rev 8163)
@@ -1,192 +0,0 @@
-/**
- * JBoss, a Division of Red Hat
- * Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
-* This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
- */
-package org.jboss.ide.eclipse.as.ui.views.server;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IContributionManager;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.custom.SashForm;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.IMemento;
-import org.eclipse.ui.IViewSite;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.part.ViewPart;
-import org.eclipse.ui.views.properties.IPropertySheetPage;
-import org.eclipse.wst.server.core.IServer;
-import org.eclipse.wst.server.ui.internal.ServerUIPlugin;
-
-/**
- *
- * @author Rob Stryker <rob.stryker(a)redhat.com>
- *
- */
-public class JBossServerView extends ViewPart {
-
- public static final String VIEW_ID =
"org.jboss.ide.eclipse.as.ui.views.JBossServerView";
-
- private static final String TAG_SASHFORM_HEIGHT = "sashformHeight";
-
- public static JBossServerView instance;
- private static ArrayList<ISelectionChangedListener> serverFrameListeners = new
ArrayList<ISelectionChangedListener>();
- private static ArrayList<ISelectionChangedListener> extensionFrameListeners = new
ArrayList<ISelectionChangedListener>();
-
- public static JBossServerView getDefault() {
- return instance;
- }
-
- public static void addServerFrameListener(ISelectionChangedListener listener) {
- if( !serverFrameListeners.contains(listener))
- serverFrameListeners.add(listener);
- if( getDefault() != null )
- getDefault().getServerFrame().getViewer().addSelectionChangedListener(listener);
- }
- public static void addExtensionFrameListener(ISelectionChangedListener listener) {
- if( !extensionFrameListeners.contains(listener))
- extensionFrameListeners.add(listener);
- if( getDefault() != null )
- getDefault().getExtensionFrame().getViewer().addSelectionChangedListener(listener);
- }
-
- public static void removeServerFrameListener(ISelectionChangedListener listener) {
- if( serverFrameListeners.contains(listener))
- serverFrameListeners.remove(listener);
- if( getDefault() != null )
- getDefault().getServerFrame().getViewer().removeSelectionChangedListener(listener);
- }
- public static void removeExtensionFrameListener(ISelectionChangedListener listener) {
- if( extensionFrameListeners.contains(listener))
- extensionFrameListeners.remove(listener);
- if( getDefault() != null )
- getDefault().getExtensionFrame().getViewer().removeSelectionChangedListener(listener);
- }
-
- public static interface IServerViewFrame {
- public IAction[] getActionBarActions();
- public int getDefaultSize();
- public void refresh();
- }
-
- public JBossServerView() {
- super();
- instance = this;
- }
-
- private SashForm form;
- private int[] sashRows;
- private IMemento memento;
-
- private IServerViewFrame[] frames;
- private ServerFrame serverFrame;
- private ServerExtensionFrame extensionFrame;
-
- public void init(IViewSite site, IMemento memento) throws PartInitException {
- super.init(site, memento);
- ServerUIPlugin.getPreferences().setShowOnActivity(false);
- this.memento = memento;
- int sum = 0;
- sashRows = new int[2];
- for (int i = 0; i < sashRows.length; i++) {
- sashRows[i] = 50;
- if (memento != null) {
- Integer in = memento.getInteger(TAG_SASHFORM_HEIGHT + i);
- if (in != null && in.intValue() > 5)
- sashRows[i] = in.intValue();
- }
- sum += sashRows[i];
- }
- }
-
- public void saveState(IMemento memento) {
- super.saveState(memento);
- int[] weights = form.getWeights();
- for (int i = 0; i < weights.length; i++) {
- if (weights[i] != 0)
- memento.putInteger(TAG_SASHFORM_HEIGHT + i, weights[i]);
- }
- }
-
- public void createPartControl(Composite parent) {
- form = new SashForm(parent, SWT.VERTICAL);
- form.setBackground(new Color(parent.getDisplay(), 255, 255, 255));
- form.setLayout(new FillLayout());
-
-
- Composite topWrapper = new Composite(form, SWT.NONE);
- topWrapper.setLayout(new FillLayout());
- serverFrame = new ServerFrame(topWrapper, this);
-
- Composite bottomWrapper = new Composite(form, SWT.NONE);
- bottomWrapper.setLayout(new FillLayout());
- extensionFrame = new ServerExtensionFrame(bottomWrapper, this);
-
-
- frames = new IServerViewFrame[] { serverFrame, extensionFrame };
-
- // add toolbar buttons
- IContributionManager cm = getViewSite().getActionBars().getToolBarManager();
- for( int i = 0; i < frames.length; i++ ) {
- IAction[] actions = frames[i].getActionBarActions();
- for (int j = 0; j < actions.length - 1; j++)
- cm.add(actions[j]);
- }
-
- form.setWeights(sashRows);
-
-
- // if the extensions have already been created, add those listeners now.
- Iterator<ISelectionChangedListener> k;
- for(k = serverFrameListeners.iterator(); k.hasNext();)
- serverFrame.getViewer().addSelectionChangedListener(k.next());
- for(k = extensionFrameListeners.iterator(); k.hasNext();)
- extensionFrame.getViewer().addSelectionChangedListener(k.next());
- }
-
- public void refreshAll() {
- for( int i = 0; i < frames.length; i++ ) {
- frames[i].refresh();
- }
- }
-
- public ServerFrame getServerFrame() { return this.serverFrame; }
- public ServerExtensionFrame getExtensionFrame() { return this.extensionFrame; }
-
- public void setFocus() {
- getExtensionFrame().getViewer().getTree().setFocus();
- }
-
- public IServer getSelectedServer() {
- return serverFrame == null ? null : serverFrame.getSelectedServer();
- }
-
- public Object getAdapter(Class adaptor) {
- if( adaptor == IPropertySheetPage.class) {
- return extensionFrame.getViewer().getPropertySheet();
- }
- return super.getAdapter(adaptor);
- }
-}
Deleted:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/ServerExtensionFrame.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/ServerExtensionFrame.java 2008-05-16
20:38:12 UTC (rev 8162)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/ServerExtensionFrame.java 2008-05-16
22:09:23 UTC (rev 8163)
@@ -1,122 +0,0 @@
-/**
- * JBoss, a Division of Red Hat
- * Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
-* This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
- */
-package org.jboss.ide.eclipse.as.ui.views.server;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IMenuListener;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.viewers.ISelectionChangedListener;
-import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.jface.viewers.TreeSelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.wst.server.core.IModule;
-import org.eclipse.wst.server.core.IServer;
-import org.eclipse.wst.server.core.ServerCore;
-import org.eclipse.wst.server.ui.internal.view.servers.ModuleServer;
-import org.jboss.ide.eclipse.as.ui.views.server.JBossServerView.IServerViewFrame;
-
-/**
- *
- * @author Rob Stryker <rob.stryker(a)redhat.com>
- *
- */
-public class ServerExtensionFrame extends Composite implements IServerViewFrame {
-
- private Tree jbTreeTable;
- private ExtensionTableViewer jbViewer;
- private JBossServerView view;
- public ServerExtensionFrame(Composite parent, JBossServerView view) {
- super(parent, SWT.NONE);
- this.view = view;
- setLayout(new FillLayout());
- jbTreeTable = new Tree(this, SWT.MULTI | SWT.FULL_SELECTION | SWT.H_SCROLL |
SWT.V_SCROLL | SWT.BORDER);
- jbViewer = new ExtensionTableViewer(jbTreeTable);
- view.getSite().setSelectionProvider(jbViewer);
- addListeners();
- doMenuStuff(parent);
- }
-
- protected void doMenuStuff(Composite parent) {
- MenuManager menuManager = new MenuManager("#PopupMenu");
- menuManager.setRemoveAllWhenShown(true);
- final Shell shell = jbTreeTable.getShell();
- menuManager.addMenuListener(new IMenuListener() {
- public void menuAboutToShow(IMenuManager mgr) {
- jbViewer.fillSelectedContextMenu(shell, mgr);
- mgr.add(new Separator());
- jbViewer.fillJBContextMenu(shell, mgr);
- }
- });
- Menu menu = menuManager.createContextMenu(parent);
- jbTreeTable.setMenu(menu);
- }
-
- public ExtensionTableViewer getViewer() {
- return jbViewer;
- }
-
- public void refresh() {
- jbViewer.refresh();
- }
-
- public void addListeners() {
-
- /*
- * Handles the selection of the server viewer which is embedded in my sashform
- */
- view.getServerFrame().getViewer().addSelectionChangedListener(new
ISelectionChangedListener() {
- public void selectionChanged(SelectionChangedEvent event) {
- Object selection = ((TreeSelection)event.getSelection()).getFirstElement();
- Object server = selection;
- if( selection instanceof ModuleServer ) {
- server = ((ModuleServer)selection).server;
- }
-
- if( selection == null ) return;
- if( server != jbViewer.getInput()) {
- // find the newest copy of the server
- IServer tmp = ServerCore.findServer(((IServer)server).getId());
- jbViewer.setInput(tmp);
- } else {
- jbViewer.refresh();
- }
- }
-
- });
- }
-
-
- public IAction[] getActionBarActions() {
- return new IAction[] {}; // none
- }
-
- public int getDefaultSize() {
- return 0;
- }
- }
Deleted:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/ServerFrame.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/ServerFrame.java 2008-05-16
20:38:12 UTC (rev 8162)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/ServerFrame.java 2008-05-16
22:09:23 UTC (rev 8163)
@@ -1,343 +0,0 @@
-/**
- * JBoss, a Division of Red Hat
- * Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
-* This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
- */
-package org.jboss.ide.eclipse.as.ui.views.server;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.ILaunchManager;
-import org.eclipse.debug.ui.DebugUITools;
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.action.IContributionManager;
-import org.eclipse.jface.action.IMenuListener;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.action.MenuManager;
-import org.eclipse.jface.action.Separator;
-import org.eclipse.jface.bindings.TriggerSequence;
-import org.eclipse.jface.viewers.ISelectionProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.swt.widgets.TreeColumn;
-import org.eclipse.swt.widgets.TreeItem;
-import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IViewSite;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.IWorkbenchPartSite;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.keys.IBindingService;
-import org.eclipse.wst.server.core.IServer;
-import org.eclipse.wst.server.core.internal.Server;
-import org.eclipse.wst.server.core.internal.Trace;
-import org.eclipse.wst.server.ui.internal.ContextIds;
-import org.eclipse.wst.server.ui.internal.Messages;
-import org.eclipse.wst.server.ui.internal.ServerUIPlugin;
-import org.eclipse.wst.server.ui.internal.actions.NewServerWizardAction;
-import org.eclipse.wst.server.ui.internal.view.servers.CopyAction;
-import org.eclipse.wst.server.ui.internal.view.servers.DeleteAction;
-import org.eclipse.wst.server.ui.internal.view.servers.ModuleSloshAction;
-import org.eclipse.wst.server.ui.internal.view.servers.OpenAction;
-import org.eclipse.wst.server.ui.internal.view.servers.PasteAction;
-import org.eclipse.wst.server.ui.internal.view.servers.PropertiesAction;
-import org.eclipse.wst.server.ui.internal.view.servers.PublishAction;
-import org.eclipse.wst.server.ui.internal.view.servers.PublishCleanAction;
-import org.eclipse.wst.server.ui.internal.view.servers.RenameAction;
-import org.eclipse.wst.server.ui.internal.view.servers.ShowInConsoleAction;
-import org.eclipse.wst.server.ui.internal.view.servers.ShowInDebugAction;
-import org.eclipse.wst.server.ui.internal.view.servers.StartAction;
-import org.eclipse.wst.server.ui.internal.view.servers.StopAction;
-import org.jboss.ide.eclipse.as.core.server.internal.JBossServer;
-import org.jboss.ide.eclipse.as.ui.JBossServerUISharedImages;
-import org.jboss.ide.eclipse.as.ui.dialogs.TwiddleDialog;
-import org.jboss.ide.eclipse.as.ui.views.server.JBossServerView.IServerViewFrame;
-
-/**
- *
- * @author Rob Stryker <rob.stryker(a)redhat.com>
- *
- */
-public class ServerFrame extends Composite implements IServerViewFrame {
-
- protected Action[] actions;
- protected IWorkbenchPartSite site;
- protected IViewSite viewSite;
- protected Tree treeTable;
- protected ServerTableViewer tableViewer;
-
- // custom
- protected Action editLaunchConfigAction, twiddleAction, newServerAction;
-
- // wtp
- protected Action actionModifyModules;
- protected Action openAction, showInConsoleAction, showInDebugAction, propertiesAction;
- protected Action copyAction, pasteAction, deleteAction, renameAction;
-
- public ServerFrame(Composite parent, JBossServerView view) {
- super(parent, SWT.BORDER);
- setLayout(new FillLayout());
- this.site = view.getSite();
- this.viewSite = view.getViewSite();
-
-
- int cols[] = new int[] {150, 100, 50};
-
- treeTable = new Tree(this, SWT.SINGLE | SWT.FULL_SELECTION | SWT.H_SCROLL |
SWT.V_SCROLL | SWT.NONE);
- treeTable.setHeaderVisible(true);
- treeTable.setLinesVisible(false);
- treeTable.setFont(parent.getFont());
- PlatformUI.getWorkbench().getHelpSystem().setHelp(treeTable, ContextIds.VIEW_SERVERS);
-
- // add columns
- TreeColumn column = new TreeColumn(treeTable, SWT.SINGLE);
- column.setText(Messages.viewServer);
- column.setWidth(cols[0]);
-
- TreeColumn column2 = new TreeColumn(treeTable, SWT.SINGLE);
- column2.setText(Messages.viewState);
- column2.setWidth(cols[1]);
-
- TreeColumn column3 = new TreeColumn(treeTable, SWT.SINGLE);
- column3.setText(Messages.viewStatus);
- column3.setWidth(cols[2]);
-
- tableViewer = new ServerTableViewer(viewSite, treeTable);
- initializeActions(tableViewer);
-
- treeTable.addSelectionListener(new SelectionAdapter() {
- public void widgetSelected(SelectionEvent event) {
- try {
- } catch (Exception e) {
- viewSite.getActionBars().getStatusLineManager().setMessage(null, "");
- }
- }
- public void widgetDefaultSelected(SelectionEvent event) {
- try {
- TreeItem item = treeTable.getSelection()[0];
- Object data = item.getData();
- if (!(data instanceof IServer))
- return;
- IServer server = (IServer) data;
- ServerUIPlugin.editServer(server);
- } catch (Exception e) {
- Trace.trace(Trace.SEVERE, "Could not open server", e);
- }
- }
- });
-
- MenuManager menuManager = new MenuManager("#PopupMenu");
- menuManager.setRemoveAllWhenShown(true);
- final Shell shell = treeTable.getShell();
- menuManager.addMenuListener(new IMenuListener() {
- public void menuAboutToShow(IMenuManager mgr) {
- fillContextMenu(shell, mgr);
- }
- });
- Menu menu = menuManager.createContextMenu(parent);
- treeTable.setMenu(menu);
- site.registerContextMenu(menuManager, tableViewer);
- site.setSelectionProvider(tableViewer);
- }
-
- protected void fillContextMenu(Shell shell, IMenuManager menu) {
- if( getSelectedServer() != null ) {
- cloneFill(shell, menu);
- }
- }
-
- protected void cloneFill(Shell shell, IMenuManager menu) {
-
- /* Show in ... */
- String text = Messages.actionShowIn;
- final IWorkbench workbench = PlatformUI.getWorkbench();
- final IBindingService bindingService = (IBindingService) workbench
- .getAdapter(IBindingService.class);
- final TriggerSequence[] activeBindings = bindingService
- .getActiveBindingsFor("org.eclipse.ui.navigate.showInQuickMenu");
- if (activeBindings.length > 0) {
- text += "\t" + activeBindings[0].format();
- }
-
- menu.add(newServerAction);
- menu.add(openAction);
-
- MenuManager showInMenu = new MenuManager(text);
- showInMenu.add(showInConsoleAction);
- showInMenu.add(showInDebugAction);
- menu.add(showInMenu);
- menu.add(new Separator());
-
- menu.add(copyAction);
- menu.add(pasteAction);
- menu.add(deleteAction);
- menu.add(renameAction);
-
- menu.add(new Separator());
-
- // server actions
- for (int i = 0; i < actions.length; i++)
- menu.add(actions[i]);
-
- menu.add(new Separator());
-// menu.add(actionModifyModules);
-
- menu.add(twiddleAction);
- menu.add(editLaunchConfigAction);
- menu.add(actionModifyModules);
- twiddleAction.setEnabled(true);
- editLaunchConfigAction.setEnabled(true);
-
- }
-
- public IServer getSelectedServer() {
- Object o = ((IStructuredSelection)tableViewer.getSelection()).getFirstElement();
- return (IServer)o;
- }
-
- public void initializeActions(ISelectionProvider provider) {
- createWTPActions(provider);
- createCustomActions();
- }
-
- protected void createWTPActions(ISelectionProvider provider) {
- Shell shell = viewSite.getShell();
- IActionBars actionBars = viewSite.getActionBars();
-
- actions = new Action[6];
- // create the start actions
- actions[0] = new StartAction(shell, provider, ILaunchManager.DEBUG_MODE);
- actionBars.setGlobalActionHandler("org.eclipse.wst.server.debug",
actions[0]);
- actions[1] = new StartAction(shell, provider, ILaunchManager.RUN_MODE);
- actionBars.setGlobalActionHandler("org.eclipse.wst.server.run", actions[1]);
- actions[2] = new StartAction(shell, provider, ILaunchManager.PROFILE_MODE);
-
- // create the stop action
- actions[3] = new StopAction(shell, provider);
- actionBars.setGlobalActionHandler("org.eclipse.wst.server.stop",
actions[3]);
-
- // create the publish actions
- actions[4] = new PublishAction(shell, provider);
- actionBars.setGlobalActionHandler("org.eclipse.wst.server.publish",
actions[4]);
- actions[5] = new PublishCleanAction(shell, provider);
-
- // create the open action
- openAction = new OpenAction(provider);
- actionBars.setGlobalActionHandler("org.eclipse.ui.navigator.Open",
openAction);
-
- // create copy, paste, and delete actions
- pasteAction = new PasteAction(shell, provider, tableViewer.clipboard);
- copyAction = new CopyAction(provider, tableViewer.clipboard, pasteAction);
- deleteAction = new DeleteAction(shell, provider);
- renameAction = new RenameAction(shell, tableViewer, provider);
- actionBars.setGlobalActionHandler(ActionFactory.COPY.getId(), copyAction);
- actionBars.setGlobalActionHandler(ActionFactory.PASTE.getId(), pasteAction);
- actionBars.setGlobalActionHandler(ActionFactory.DELETE.getId(), deleteAction);
- actionBars.setGlobalActionHandler(ActionFactory.RENAME.getId(), renameAction);
-
- // create the other actions
- actionModifyModules = new ModuleSloshAction(shell, provider);
- showInConsoleAction = new ShowInConsoleAction(provider);
- showInDebugAction = new ShowInDebugAction(provider);
-
- // create the properties action
- propertiesAction = new PropertiesAction(shell, provider);
- actionBars.setGlobalActionHandler(ActionFactory.PROPERTIES.getId(), propertiesAction);
- }
-
- protected void createCustomActions() {
- newServerAction = new Action() {
- public void run() {
- IAction newServerAction = new NewServerWizardAction();
- newServerAction.run();
- }
- };
- newServerAction.setText("New Server");
- newServerAction.setImageDescriptor(JBossServerUISharedImages.getImageDescriptor(JBossServerUISharedImages.GENERIC_SERVER_IMAGE));
-
- editLaunchConfigAction = new Action() {
- public void run() {
- Display.getDefault().asyncExec(new Runnable() {
- public void run() {
- try {
- final Object selected = getSelectedServer();
- IServer s = null;
- if( selected instanceof JBossServer ) {
- s = ((JBossServer)selected).getServer();
- } else if( selected instanceof IServer ) {
- s = (IServer)selected;
- }
-
- if( s != null ) {
- ILaunchConfiguration launchConfig = ((Server) s).getLaunchConfiguration(true,
null);
- // TODO: use correct launch group
- DebugUITools.openLaunchConfigurationPropertiesDialog(new Shell(), launchConfig,
"org.eclipse.debug.ui.launchGroup.run");
- }
- } catch (CoreException ce) {
- }
- }
- });
- }
- };
- editLaunchConfigAction.setText(org.jboss.ide.eclipse.as.ui.Messages.EditLaunchConfigurationAction);
- editLaunchConfigAction.setImageDescriptor(JBossServerUISharedImages.getImageDescriptor(JBossServerUISharedImages.IMG_JBOSS_CONFIGURATION));
-
- twiddleAction = new Action() {
- public void run() {
- final IStructuredSelection selected =
((IStructuredSelection)tableViewer.getSelection());
- Display.getDefault().asyncExec(new Runnable() {
- public void run() {
- TwiddleDialog dialog = new TwiddleDialog(tableViewer.getTree().getShell(),
selected.getFirstElement());
- dialog.open();
- }
- } );
-
- }
- };
- twiddleAction.setText( org.jboss.ide.eclipse.as.ui.Messages.TwiddleServerAction);
- twiddleAction.setImageDescriptor(JBossServerUISharedImages.getImageDescriptor(JBossServerUISharedImages.TWIDDLE_IMAGE));
-
- }
-
- public ServerTableViewer getViewer() {
- return tableViewer;
- }
-
- public void refresh() {
- tableViewer.refresh();
- }
-
- public IAction[] getActionBarActions() {
- return actions;
- }
-
- public int getDefaultSize() {
- return 0;
- }
-}
Deleted:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/ServerTableViewer.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/ServerTableViewer.java 2008-05-16
20:38:12 UTC (rev 8162)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/ServerTableViewer.java 2008-05-16
22:09:23 UTC (rev 8163)
@@ -1,389 +0,0 @@
-package org.jboss.ide.eclipse.as.ui.views.server;
-/**
- * JBoss, a Division of Red Hat
- * Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
-* This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
- */
-
-/*******************************************************************************
- * Copyright (c) 2003, 2005 IBM Corporation and others.
- * 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:
- * IBM Corporation - Initial API and implementation
- *******************************************************************************/
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.viewers.ILabelProviderListener;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.LabelProviderChangedEvent;
-import org.eclipse.jface.viewers.TreeViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.swt.dnd.Clipboard;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Tree;
-import org.eclipse.ui.IViewSite;
-import org.eclipse.wst.server.core.IPublishListener;
-import org.eclipse.wst.server.core.IServer;
-import org.eclipse.wst.server.core.IServerLifecycleListener;
-import org.eclipse.wst.server.core.IServerListener;
-import org.eclipse.wst.server.core.IServerType;
-import org.eclipse.wst.server.core.ServerCore;
-import org.eclipse.wst.server.core.ServerEvent;
-import org.eclipse.wst.server.core.internal.Server;
-import org.eclipse.wst.server.core.util.PublishAdapter;
-import org.eclipse.wst.server.ui.internal.Trace;
-import org.eclipse.wst.server.ui.internal.provisional.UIDecoratorManager;
-import org.eclipse.wst.server.ui.internal.view.servers.ServerTableLabelProvider;
-/**
- * Tree view showing servers and their associations.
- * This is for the TOP window
- * @author Rob Stryker <rob.stryker(a)redhat.com>
- *
- */
-public class ServerTableViewer extends TreeViewer {
- protected static final String ROOT = "root";
-
- protected IServerLifecycleListener serverResourceListener;
- protected IPublishListener publishListener;
- protected IServerListener serverListener;
-
- protected static Object deletedElement = null;
-
- // servers that are currently publishing and starting
- protected static List publishing = new ArrayList();
- protected static List starting = new ArrayList();
-
- protected ServerTableLabelProvider2 labelProvider;
- protected Clipboard clipboard;
-
- protected IViewSite viewSite;
-
- protected class ServerTableLabelProvider2 extends ServerTableLabelProvider {
- private int myCount = 0;
- protected Image getStateImage(IServerType serverType, int state, String mode) {
- return UIDecoratorManager.getUIDecorator(serverType).getStateImage(state, mode,
myCount);
- }
- protected String getStateLabel(IServerType serverType, int state, String mode) {
- return UIDecoratorManager.getUIDecorator(serverType).getStateLabel(state, mode,
myCount);
- }
- protected void animate() {
- myCount ++;
- if (myCount > 2)
- myCount = 0;
- }
-
- }
-
- public class TrimmedServerContentProvider implements IStructuredContentProvider,
ITreeContentProvider {
- public Object[] getElements(Object element) {
- return ServerCore.getServers();
- }
-
- public void inputChanged(Viewer theViewer, Object oldInput, Object newInput) {
- // do nothing
- }
-
- public void dispose() {
- // do nothing
- }
-
- public Object[] getChildren(Object element) {
- return new Object[0];
- }
-
- public Object getParent(Object element) {
- return null;
- }
-
- public boolean hasChildren(Object element) {
- return false;
- }
- }
-
- protected Thread thread = null;
- protected boolean stopThread = false;
-
- protected void startThread() {
- stopThread = false;
- if (thread != null)
- return;
-
- thread = new Thread("Servers View Animator") {
- public void run() {
- while (!stopThread) {
- try {
- labelProvider.animate();
- final Object[] rootElements =
((ITreeContentProvider)getContentProvider()).getElements(null);
- Display.getDefault().asyncExec(new Runnable() {
- public void run() {
- if (getTree() != null && !getTree().isDisposed())
- update(rootElements, null);
- }
- });
- Thread.sleep(250);
- } catch (Exception e) {
- Trace.trace(Trace.FINEST, "Error in animated server view", e);
- }
- thread = null;
- }
- }
- };
- thread.setDaemon(true);
- thread.start();
- }
-
- protected void stopThread() {
- stopThread = true;
- }
-
- /**
- * ServerTableViewer constructor comment.
- *
- * @param view the view
- * @param tree the tree
- */
- public ServerTableViewer(final IViewSite site, final Tree tree) {
- super(tree);
- this.viewSite = site;
- clipboard = new Clipboard(tree.getDisplay());
-
- setContentProvider(new TrimmedServerContentProvider());
- labelProvider = new ServerTableLabelProvider2();
- labelProvider.addListener(new ILabelProviderListener() {
- public void labelProviderChanged(LabelProviderChangedEvent event) {
- Object[] obj = event.getElements();
- if (obj == null)
- refresh(true);
- else {
- int size = obj.length;
- for (int i = 0; i < size; i++)
- refresh(obj[i], true);
- }
- }
- });
- setLabelProvider(labelProvider);
- setSorter(new ViewerSorter() {
- // empty
- });
-
- setInput(ROOT);
- addListeners();
- }
-
- protected void addListeners() {
- serverResourceListener = new IServerLifecycleListener() {
- public void serverAdded(IServer server) {
- addServer(server);
- server.addServerListener(serverListener);
- ((Server) server).addPublishListener(publishListener);
- }
- public void serverChanged(IServer server) {
- refreshServer(server);
- }
- public void serverRemoved(IServer server) {
- removeServer(server);
- server.removeServerListener(serverListener);
- ((Server) server).removePublishListener(publishListener);
- }
- };
- ServerCore.addServerLifecycleListener(serverResourceListener);
-
- publishListener = new PublishAdapter() {
- public void publishStarted(IServer server) {
- handlePublishChange(server, true);
- }
-
- public void publishFinished(IServer server, IStatus status) {
- handlePublishChange(server, false);
- }
- };
-
- serverListener = new IServerListener() {
- public void serverChanged(ServerEvent event) {
- if (event == null) {
- return;
- }
- int eventKind = event.getKind();
- IServer server = event.getServer();
- if ((eventKind & ServerEvent.SERVER_CHANGE) != 0) {
- // server change event
- if ((eventKind & ServerEvent.STATE_CHANGE) != 0) {
- refreshServer(server);
- int state = event.getState();
- String id = server.getId();
- if (state == IServer.STATE_STARTING || state == IServer.STATE_STOPPING) {
- if (!starting.contains(id)) {
- if (starting.isEmpty())
- startThread();
- starting.add(id);
- }
- } else {
- if (starting.contains(id)) {
- starting.remove(id);
- if (starting.isEmpty())
- stopThread();
- }
- }
- } else
- refreshServer(server);
- } else if ((eventKind & ServerEvent.MODULE_CHANGE) != 0) {
- // module change event
- if ((eventKind & ServerEvent.STATE_CHANGE) != 0 || (eventKind &
ServerEvent.PUBLISH_STATE_CHANGE) != 0) {
- refreshServer(server);
- }
- }
- }
- };
-
- // add listeners to servers
- IServer[] servers = ServerCore.getServers();
- if (servers != null) {
- int size = servers.length;
- for (int i = 0; i < size; i++) {
- servers[i].addServerListener(serverListener);
- ((Server) servers[i]).addPublishListener(publishListener);
- }
- }
- }
-
- protected void refreshServer(final IServer server) {
- Display.getDefault().asyncExec(new Runnable() {
- public void run() {
- try {
- refresh(server);
-
- // This ensures the icons are updated in case of a publish or state change
- ISelection sel = ServerTableViewer.this.getSelection();
- ServerTableViewer.this.setSelection(sel);
- } catch (Exception e) {
- // ignore
- }
- }
- });
- }
-
- protected void handleDispose(DisposeEvent event) {
- stopThread();
- //if (dsListener != null)
- // view.getViewSite().getPage().removeSelectionListener(dsListener);
-
- ServerCore.removeServerLifecycleListener(serverResourceListener);
-
- // remove listeners from server
- IServer[] servers = ServerCore.getServers();
- if (servers != null) {
- int size = servers.length;
- for (int i = 0; i < size; i++) {
- servers[i].removeServerListener(serverListener);
- ((Server) servers[i]).removePublishListener(publishListener);
- }
- }
-
- clipboard.dispose();
- super.handleDispose(event);
- }
-
- /**
- * Called when the publish state changes.
- * @param server org.eclipse.wst.server.core.IServer
- */
- protected void handlePublishChange(IServer server, boolean isPublishing) {
- String serverId = server.getId();
- if (isPublishing)
- publishing.add(serverId);
- else
- publishing.remove(serverId);
-
- refreshServer(server);
- }
-
- /**
- *
- */
- protected void handleServerModulesChanged(IServer server2) {
- if (server2 == null)
- return;
-
- IServer[] servers = ServerCore.getServers();
- if (servers != null) {
- int size = servers.length;
- for (int i = 0; i < size; i++) {
- if (server2.equals(servers[i]))
- refresh(servers[i]);
- }
- }
- }
-
- /**
- * Called when an element is added.
- * @param server org.eclipse.wst.server.core.IServer
- */
- protected void handleServerResourceAdded(IServer server) {
- add(null, server);
- }
-
- /**
- * Called when an element is changed.
- * @param server org.eclipse.wst.server.core.IServer
- */
- protected void handleServerResourceChanged(IServer server) {
- refresh(server);
- }
-
- /**
- * Called when an element is removed.
- * @param server org.eclipse.wst.server.core.IServer
- */
- protected void handleServerResourceRemoved(IServer server) {
- remove(server);
-
- String serverId = server.getId();
- publishing.remove(serverId);
-
- viewSite.getActionBars().getStatusLineManager().setMessage(null, null);
- }
-
- protected void addServer(final IServer server) {
- Display.getDefault().asyncExec(new Runnable() {
- public void run() {
- add(ROOT, server);
- }
- });
- }
-
- protected void removeServer(final IServer server) {
- Display.getDefault().asyncExec(new Runnable() {
- public void run() {
- remove(server);
- }
- });
- }
-}
\ No newline at end of file
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/JBossServerViewExtension.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/JBossServerViewExtension.java 2008-05-16
20:38:12 UTC (rev 8162)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/JBossServerViewExtension.java 2008-05-16
22:09:23 UTC (rev 8163)
@@ -34,10 +34,10 @@
import org.jboss.ide.eclipse.as.core.server.IDeployableServer;
import org.jboss.ide.eclipse.as.core.server.internal.JBossServer;
import org.jboss.ide.eclipse.as.ui.JBossServerUIPlugin;
-import org.jboss.ide.eclipse.as.ui.preferencepages.ViewProviderPreferenceComposite;
-import org.jboss.ide.eclipse.as.ui.views.server.ExtensionTableViewer;
-import org.jboss.ide.eclipse.as.ui.views.server.JBossServerView;
-import org.jboss.ide.eclipse.as.ui.views.server.ExtensionTableViewer.ContentWrapper;
+import org.jboss.tools.wst.server.ui.views.server.ExtensionTableViewer;
+import org.jboss.tools.wst.server.ui.views.server.JBossServerView;
+import org.jboss.tools.wst.server.ui.views.server.ExtensionTableViewer.ContentWrapper;
+import
org.jboss.tools.wst.server.ui.views.server.preferencepages.ViewProviderPreferenceComposite;
/**
*
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/PropertySheetFactory.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/PropertySheetFactory.java 2008-05-16
20:38:12 UTC (rev 8162)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/PropertySheetFactory.java 2008-05-16
22:09:23 UTC (rev 8163)
@@ -45,7 +45,7 @@
import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.views.properties.IPropertySheetPage;
import org.jboss.ide.eclipse.as.ui.Messages;
-import org.jboss.ide.eclipse.as.ui.views.server.ExtensionTableViewer.ContentWrapper;
+import org.jboss.tools.wst.server.ui.views.server.ExtensionTableViewer.ContentWrapper;
/**
*
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/DescriptorXPathViewProvider.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/DescriptorXPathViewProvider.java 2008-05-16
20:38:12 UTC (rev 8162)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/DescriptorXPathViewProvider.java 2008-05-16
22:09:23 UTC (rev 8163)
@@ -59,11 +59,11 @@
import org.jboss.ide.eclipse.as.ui.dialogs.XPathDialogs;
import org.jboss.ide.eclipse.as.ui.dialogs.XPathDialogs.XPathCategoryDialog;
import org.jboss.ide.eclipse.as.ui.dialogs.XPathDialogs.XPathDialog;
-import org.jboss.ide.eclipse.as.ui.views.server.JBossServerView;
import org.jboss.ide.eclipse.as.ui.views.server.extensions.JBossServerViewExtension;
import org.jboss.ide.eclipse.as.ui.views.server.extensions.ServerViewProvider;
import
org.jboss.ide.eclipse.as.ui.views.server.providers.descriptors.DescriptorXPathPropertySheetPage;
import org.jboss.ide.eclipse.as.ui.views.server.util.ViewUtilityMethods;
+import org.jboss.tools.wst.server.ui.views.server.JBossServerView;
/**
*
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/EventLogViewProvider.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/EventLogViewProvider.java 2008-05-16
20:38:12 UTC (rev 8162)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/EventLogViewProvider.java 2008-05-16
22:09:23 UTC (rev 8163)
@@ -59,12 +59,12 @@
import org.jboss.ide.eclipse.as.core.util.SimpleTreeItem;
import org.jboss.ide.eclipse.as.ui.JBossServerUIPlugin;
import org.jboss.ide.eclipse.as.ui.dialogs.ShowStackTraceDialog;
-import org.jboss.ide.eclipse.as.ui.preferencepages.ViewProviderPreferenceComposite;
import org.jboss.ide.eclipse.as.ui.views.server.extensions.IEventLogLabelProvider;
import org.jboss.ide.eclipse.as.ui.views.server.extensions.JBossServerViewExtension;
import org.jboss.ide.eclipse.as.ui.views.server.extensions.PropertySheetFactory;
import org.jboss.ide.eclipse.as.ui.views.server.extensions.ServerViewProvider;
import
org.jboss.ide.eclipse.as.ui.views.server.extensions.PropertySheetFactory.ISimplePropertiesHolder;
+import
org.jboss.tools.wst.server.ui.views.server.preferencepages.ViewProviderPreferenceComposite;
/**
*
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/FilesetViewProvider.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/FilesetViewProvider.java 2008-05-16
20:38:12 UTC (rev 8162)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/FilesetViewProvider.java 2008-05-16
22:09:23 UTC (rev 8163)
@@ -88,9 +88,9 @@
import org.jboss.ide.eclipse.as.core.util.FileUtil;
import org.jboss.ide.eclipse.as.ui.JBossServerUIPlugin;
import org.jboss.ide.eclipse.as.ui.Messages;
-import org.jboss.ide.eclipse.as.ui.views.server.JBossServerView;
import org.jboss.ide.eclipse.as.ui.views.server.extensions.ServerViewProvider;
import
org.jboss.ide.eclipse.as.ui.views.server.extensions.SimplePropertiesViewExtension;
+import org.jboss.tools.wst.server.ui.views.server.JBossServerView;
/**
*
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/InactiveExtensionViewProvider.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/InactiveExtensionViewProvider.java 2008-05-16
20:38:12 UTC (rev 8162)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/InactiveExtensionViewProvider.java 2008-05-16
22:09:23 UTC (rev 8163)
@@ -34,9 +34,10 @@
import org.eclipse.ui.views.properties.IPropertySheetPage;
import org.jboss.ide.eclipse.as.ui.JBossServerUIPlugin;
import org.jboss.ide.eclipse.as.ui.Messages;
-import org.jboss.ide.eclipse.as.ui.views.server.JBossServerView;
import org.jboss.ide.eclipse.as.ui.views.server.extensions.JBossServerViewExtension;
import org.jboss.ide.eclipse.as.ui.views.server.extensions.ServerViewProvider;
+import org.jboss.tools.wst.server.ui.ToolsServerUICore;
+import org.jboss.tools.wst.server.ui.views.server.JBossServerView;
/**
*
@@ -57,7 +58,7 @@
public Object[] getChildren(Object parentElement) {
if( parentElement == provider ) {
- ServerViewProvider[] allExtensions =
JBossServerUIPlugin.getDefault().getAllServerViewProviders();
+ ServerViewProvider[] allExtensions = ToolsServerUICore.getAllServerViewProviders();
ArrayList<ServerViewProvider> list = new
ArrayList<ServerViewProvider>();
for( int i = 0; i < allExtensions.length; i++ ) {
if( !allExtensions[i].isEnabled()) {
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/descriptors/DescriptorXPathPropertySheetPage.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/descriptors/DescriptorXPathPropertySheetPage.java 2008-05-16
20:38:12 UTC (rev 8162)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/descriptors/DescriptorXPathPropertySheetPage.java 2008-05-16
22:09:23 UTC (rev 8163)
@@ -60,8 +60,8 @@
import org.jboss.ide.eclipse.as.core.extensions.descriptors.XPathQuery;
import
org.jboss.ide.eclipse.as.core.extensions.descriptors.XPathFileResult.XPathResultNode;
import org.jboss.ide.eclipse.as.ui.Messages;
-import org.jboss.ide.eclipse.as.ui.views.server.ExtensionTableViewer.ContentWrapper;
import org.jboss.ide.eclipse.as.ui.views.server.providers.DescriptorXPathViewProvider;
+import org.jboss.tools.wst.server.ui.views.server.ExtensionTableViewer.ContentWrapper;
/**
*
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/jmx/JMXPropertySheetPage.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/jmx/JMXPropertySheetPage.java 2008-05-16
20:38:12 UTC (rev 8162)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/jmx/JMXPropertySheetPage.java 2008-05-16
22:09:23 UTC (rev 8163)
@@ -46,8 +46,8 @@
import org.jboss.ide.eclipse.as.core.extensions.jmx.JMXModel.JMXBean;
import org.jboss.ide.eclipse.as.core.extensions.jmx.JMXModel.JMXDomain;
import org.jboss.ide.eclipse.as.core.extensions.jmx.JMXModel.WrappedMBeanOperationInfo;
-import org.jboss.ide.eclipse.as.ui.views.server.ExtensionTableViewer.ContentWrapper;
import
org.jboss.ide.eclipse.as.ui.views.server.providers.jmx.JMXViewProvider.ErrorGroup;
+import org.jboss.tools.wst.server.ui.views.server.ExtensionTableViewer.ContentWrapper;
/**
*
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/jmx/JMXViewProvider.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/jmx/JMXViewProvider.java 2008-05-16
20:38:12 UTC (rev 8162)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/jmx/JMXViewProvider.java 2008-05-16
22:09:23 UTC (rev 8163)
@@ -39,11 +39,11 @@
import org.jboss.ide.eclipse.as.core.extensions.jmx.JMXModel.JMXDomain;
import org.jboss.ide.eclipse.as.core.server.UnitedServerListener;
import org.jboss.ide.eclipse.as.core.server.UnitedServerListenerManager;
-import org.jboss.ide.eclipse.as.ui.views.server.JBossServerView;
-import org.jboss.ide.eclipse.as.ui.views.server.ExtensionTableViewer.ContentWrapper;
import org.jboss.ide.eclipse.as.ui.views.server.extensions.JBossServerViewExtension;
import org.jboss.ide.eclipse.as.ui.views.server.extensions.ServerViewProvider;
import org.jboss.ide.eclipse.as.ui.views.server.util.ViewUtilityMethods;
+import org.jboss.tools.wst.server.ui.views.server.JBossServerView;
+import org.jboss.tools.wst.server.ui.views.server.ExtensionTableViewer.ContentWrapper;
/**
*
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/util/ViewUtilityMethods.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/util/ViewUtilityMethods.java 2008-05-16
20:38:12 UTC (rev 8162)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/util/ViewUtilityMethods.java 2008-05-16
22:09:23 UTC (rev 8163)
@@ -30,7 +30,7 @@
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.views.properties.IPropertySheetPage;
-import org.jboss.ide.eclipse.as.ui.views.server.JBossServerView;
+import org.jboss.tools.wst.server.ui.views.server.JBossServerView;
/**
*
Copied:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/ExtensionManager.java
(from rev 8065,
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/ExtensionManager.java)
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/ExtensionManager.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/ExtensionManager.java 2008-05-16
22:09:23 UTC (rev 8163)
@@ -0,0 +1,79 @@
+/**
+ * JBoss, a Division of Red Hat
+ * Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+* This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+ */
+package org.jboss.tools.wst.server.ui;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Comparator;
+
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.Status;
+import org.jboss.ide.eclipse.as.ui.JBossServerUIPlugin;
+import org.jboss.ide.eclipse.as.ui.views.server.extensions.ServerViewProvider;
+
+/**
+ *
+ * @author rob.stryker(a)jboss.com
+ */
+public class ExtensionManager {
+ private static ExtensionManager instance;
+ public static ExtensionManager getDefault() {
+ if( instance == null )
+ instance = new ExtensionManager();
+ return instance;
+ }
+
+ private ServerViewProvider[] serverViewExtensions;
+ public ServerViewProvider[] getAllServerViewProviders() {
+ if( serverViewExtensions == null )
+ loadAllServerViewProviders();
+ Arrays.sort(serverViewExtensions, new Comparator() {
+ public int compare(Object arg0, Object arg1) {
+ if( arg0 instanceof ServerViewProvider && arg1 instanceof ServerViewProvider)
{
+ return ((ServerViewProvider)arg0).getWeight() -
((ServerViewProvider)arg1).getWeight();
+ }
+ return 0;
+ }
+ });
+ return serverViewExtensions;
+ }
+ private void loadAllServerViewProviders() {
+ // Create the extensions from the registry
+ IExtensionRegistry registry = Platform.getExtensionRegistry();
+ IConfigurationElement[] elements =
registry.getConfigurationElementsFor(JBossServerUIPlugin.PLUGIN_ID,
"ServerViewExtension");
+ ArrayList list = new ArrayList();
+ for( int i = 0; i < elements.length; i++ ) {
+ try {
+ list.add(new ServerViewProvider(elements[i]));
+ } catch(Exception e) {
+ String msg = "Server View Provider (" +
elements[i].getAttribute(ServerViewProvider.ID_LABEL) + ") failed to load";
+ IStatus status = new Status(IStatus.ERROR, JBossServerUIPlugin.PLUGIN_ID, msg, e);
+ JBossServerUIPlugin.getDefault().getLog().log(status);
+ }
+ }
+ serverViewExtensions = (ServerViewProvider[]) list.toArray(new
ServerViewProvider[list.size()]);
+ }
+
+}
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/ToolsServerUICore.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/ToolsServerUICore.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/ToolsServerUICore.java 2008-05-16
22:09:23 UTC (rev 8163)
@@ -0,0 +1,24 @@
+package org.jboss.tools.wst.server.ui;
+
+import java.util.ArrayList;
+
+import org.eclipse.wst.server.core.IServer;
+import org.jboss.ide.eclipse.as.ui.views.server.extensions.ServerViewProvider;
+
+public class ToolsServerUICore {
+
+ public static ServerViewProvider[] getEnabledViewProviders(IServer server) {
+ ServerViewProvider[] serverViewExtensions = getAllServerViewProviders();
+ ArrayList<ServerViewProvider> list = new ArrayList<ServerViewProvider>();
+ for( int i = 0; i < serverViewExtensions.length; i++ ) {
+ if( serverViewExtensions[i].isEnabled() &&
serverViewExtensions[i].supports(server)) {
+ list.add(serverViewExtensions[i]);
+ }
+ }
+ return list.toArray(new ServerViewProvider[list.size()]);
+ }
+
+ public static ServerViewProvider[] getAllServerViewProviders() {
+ return ExtensionManager.getDefault().getAllServerViewProviders();
+ }
+}
Copied:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/ExtensionTableViewer.java
(from rev 8065,
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/ExtensionTableViewer.java)
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/ExtensionTableViewer.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/ExtensionTableViewer.java 2008-05-16
22:09:23 UTC (rev 8163)
@@ -0,0 +1,491 @@
+/**
+ * JBoss, a Division of Red Hat
+ * Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+* This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+ */
+package org.jboss.tools.wst.server.ui.views.server;
+
+import java.util.ArrayList;
+import java.util.Properties;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.part.PageBook;
+import org.eclipse.ui.views.properties.IPropertySheetPage;
+import org.eclipse.wst.server.core.IServer;
+import org.eclipse.wst.server.core.IServerLifecycleListener;
+import org.eclipse.wst.server.core.ServerCore;
+import org.eclipse.wst.server.ui.ServerUICore;
+import org.jboss.ide.eclipse.as.core.server.UnitedServerListener;
+import org.jboss.ide.eclipse.as.core.server.UnitedServerListenerManager;
+import org.jboss.ide.eclipse.as.core.server.internal.JBossServer;
+import org.jboss.ide.eclipse.as.ui.JBossServerUIPlugin;
+import org.jboss.ide.eclipse.as.ui.Messages;
+import org.jboss.ide.eclipse.as.ui.views.server.extensions.PropertySheetFactory;
+import org.jboss.ide.eclipse.as.ui.views.server.extensions.ServerViewProvider;
+import
org.jboss.ide.eclipse.as.ui.views.server.extensions.PropertySheetFactory.ISimplePropertiesHolder;
+import
org.jboss.ide.eclipse.as.ui.views.server.extensions.PropertySheetFactory.SimplePropertiesPropertySheetPage;
+import org.jboss.tools.wst.server.ui.ToolsServerUICore;
+
+/**
+ *
+ * @author Rob Stryker <rob.stryker(a)redhat.com>
+ *
+ */
+public class ExtensionTableViewer extends TreeViewer {
+
+ protected TableViewerPropertySheet propertySheet;
+ protected Action disableCategoryAction, refreshAction;
+ protected boolean suppressingRefresh = false;
+ public ExtensionTableViewer(Tree tree) {
+ super(tree);
+ setContentProvider(new ContentProviderDelegator());
+ setLabelProvider(new LabelProviderDelegator());
+ propertySheet = new TableViewerPropertySheet();
+ createActions();
+
+ UnitedServerListenerManager.getDefault().addListener(new UnitedServerListener() {
+ public void serverRemoved(IServer server) {
+ final IServer server2 = server;
+ Display.getDefault().asyncExec(new Runnable() {
+ public void run() {
+ Object o = getInput();
+ if( server2.equals(o)) {
+ setInput(null);
+ }
+ }
+ });
+ }
+ });
+ }
+
+ protected void createActions() {
+ disableCategoryAction = new Action() {
+ public void run() {
+ Display.getDefault().asyncExec(new Runnable() {
+ public void run() {
+ Object selected = getSelectedElement();
+ if( selected instanceof ServerViewProvider) {
+ ((ServerViewProvider)selected).setEnabled(false);
+ refresh();
+ }
+ }
+ } );
+ }
+ };
+ disableCategoryAction.setText(Messages.DisableCategoryAction);
+ refreshAction = new Action() {
+ public void run() {
+ Object o1 = ((IStructuredSelection)getSelection()).getFirstElement();
+ if( o1 != null ) {
+ // tell the delegate to refresh its model for the selected item, before we refresh
the viewer
+ ServerViewProvider provider = o1 instanceof ServerViewProvider ?
(ServerViewProvider)o1 : ((ContentWrapper)o1).getProvider();
+ if( provider != null )
+ provider.getDelegate().refreshModel(o1);
+ }
+ Object el = getSelectedElement();
+ if( el instanceof ServerViewProvider )
+ refresh(el);
+ else
+ refresh(((IStructuredSelection)getSelection()).getFirstElement());
+ }
+ };
+ refreshAction.setText("Refresh Item");
+ }
+
+ public static class ContentWrapper {
+ private Object o;
+ private ServerViewProvider provider;
+
+ public ContentWrapper(Object o, ServerViewProvider provider) {
+ this.o = o;
+ this.provider = provider;
+ }
+
+ public Object getElement() {
+ return o;
+ }
+
+ public ServerViewProvider getProvider() {
+ return provider;
+ }
+
+ public boolean equals(Object other) {
+ if( other == null ) return false;
+
+ if( other instanceof ContentWrapper ) {
+ if( ((ContentWrapper)other).getElement() == null )
+ return o == null;
+ return ((ContentWrapper)other).getElement().equals(o);
+ }
+ return false;
+ }
+
+ public int hashCode() {
+ if( o == null ) return super.hashCode();
+ return o.hashCode();
+ }
+ }
+
+ protected class LabelProviderDelegator extends LabelProvider {
+ public String getText(Object obj) {
+ if( obj instanceof JBossServer) {
+ JBossServer server = (JBossServer)obj;
+ String ret = server.getServer().getName();
+ return ret;
+ }
+ if( obj instanceof ServerViewProvider) {
+ return ((ServerViewProvider)obj).getName();
+ }
+
+ if( obj instanceof ContentWrapper ) {
+ ContentWrapper wrapper = (ContentWrapper)obj;
+ return
wrapper.getProvider().getDelegate().getLabelProvider().getText(wrapper.getElement());
+ }
+ return obj.toString();
+ }
+ public Image getImage(Object obj) {
+ if( obj instanceof JBossServer ) {
+ return ServerUICore.getLabelProvider().getImage(((JBossServer)obj).getServer());
+ }
+ if( obj instanceof ServerViewProvider ) {
+ return ((ServerViewProvider)obj).getImage();
+ }
+
+ if( obj instanceof ContentWrapper ) {
+ Object object2 = ((ContentWrapper)obj).getElement();
+ return
((ContentWrapper)obj).getProvider().getDelegate().getLabelProvider().getImage(object2);
+ }
+
+ return null;
+ }
+ }
+ protected class ContentProviderDelegator implements ITreeContentProvider {
+
+ public ContentProviderDelegator() {
+ }
+
+ public ContentWrapper[] wrap( Object[] elements, ServerViewProvider provider ) {
+ if( elements == null ) return new ContentWrapper[0];
+
+ ContentWrapper[] wrappers = new ContentWrapper[elements.length];
+ for( int i = 0; i < wrappers.length; i++ ) {
+ wrappers[i] = new ContentWrapper(elements[i], provider);
+ }
+ return wrappers;
+ }
+
+ public Object[] getElements(Object inputElement) {
+ if( inputElement == null ) return new Object[0];
+ IServer tmp = (IServer)getInput();
+ if( tmp == null )
+ return new Object[0];
+ return ToolsServerUICore.getEnabledViewProviders(tmp);
+ }
+
+ public Object[] getChildren(Object parentElement) {
+ if( parentElement == null ) return new Object[0];
+
+ if( parentElement instanceof ServerViewProvider) {
+ Object[] ret =
((ServerViewProvider)parentElement).getDelegate().getContentProvider().getChildren(parentElement);
+ return wrap(ret, ((ServerViewProvider)parentElement));
+ }
+
+ if( parentElement instanceof ContentWrapper ) {
+ ContentWrapper parentWrapper = (ContentWrapper)parentElement;
+ Object[] o = null;
+ try {
+ o =
parentWrapper.getProvider().getDelegate().getContentProvider().getChildren(parentWrapper.getElement());
+ } catch( Exception e) {
+ JBossServerUIPlugin.log("Error finding children of " + parentElement, e);
+ }
+ if( o == null )
+ return new Object[0];
+ return wrap(o, parentWrapper.getProvider());
+ }
+ return new Object[0];
+ }
+
+ public Object getParent(Object element) {
+ return null;
+ }
+
+ public boolean hasChildren(Object element) {
+ if( element instanceof ServerViewProvider )
+ return
((ServerViewProvider)element).getDelegate().getContentProvider().hasChildren(element);
+ if( element instanceof ContentWrapper ) {
+ ContentWrapper parentWrapper = (ContentWrapper)element;
+ return
parentWrapper.getProvider().getDelegate().getContentProvider().hasChildren(parentWrapper.getElement());
+ }
+ return getChildren(element).length > 0 ? true : false;
+ }
+
+ public void dispose() {
+ }
+
+ public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+ ServerViewProvider[] providers = ToolsServerUICore.
+ getEnabledViewProviders(newInput instanceof IServer ? (IServer)newInput : null);
+ for( int i = 0; i < providers.length; i++ ) {
+ try {
+ providers[i].getDelegate().getContentProvider().inputChanged(viewer, oldInput,
newInput);
+ } catch( Exception e) {
+ JBossServerUIPlugin.log("Error changing input to " + newInput, e);
+ }
+ }
+ }
+
+ }
+
+ public Object getRawElement(Object o) {
+ if( o instanceof ContentWrapper )
+ return ((ContentWrapper)o).getElement();
+ return o;
+ }
+
+ public Object[] getRawElements(IStructuredSelection selection) {
+ ArrayList<Object> tmp = new ArrayList<Object>();
+ Object[] obj = selection.toArray();
+ Object tmp2;
+ for( int i = 0; i < obj.length; i++ ) {
+ tmp2 = getRawElement(obj[i]);
+ if( tmp2 != null ) tmp.add(tmp2);
+ }
+ return (Object[]) tmp.toArray(new Object[tmp.size()]);
+ }
+
+ public ServerViewProvider getParentViewProvider(Object o) {
+ if( o instanceof ContentWrapper )
+ return ((ContentWrapper)o).getProvider();
+ return null;
+ }
+
+ public Object getSelectedElement() {
+ ISelection sel = getSelection();
+ if( sel instanceof IStructuredSelection ) {
+ Object o = ((IStructuredSelection)sel).getFirstElement();
+ if( o != null && o instanceof ContentWrapper ) {
+ o = ((ContentWrapper)o).getElement();
+ }
+ return o;
+ }
+ return null;
+ }
+
+ protected void fillSelectedContextMenu(Shell shell, IMenuManager mgr) {
+ ISelection sel = getSelection();
+ if (sel instanceof IStructuredSelection) {
+ ServerViewProvider provider = findProvider((IStructuredSelection)sel);
+ if (provider != null) {
+ Object[] selected = getRawElements((IStructuredSelection)sel);
+ provider.getDelegate().fillContextMenu(shell, mgr, selected);
+ }
+ }
+ }
+
+ protected ServerViewProvider findProvider(IStructuredSelection sel) {
+ Object[] selected = sel.toArray();
+ ServerViewProvider provider = null;
+ ServerViewProvider tmpProvider;
+ for( int i = 0; i < selected.length; i++ ) {
+ if( selected[i] instanceof ServerViewProvider ) {
+ tmpProvider = (ServerViewProvider)selected[i];
+ } else {
+ tmpProvider = getParentViewProvider(selected[i]);
+ }
+ if( provider == null )
+ provider = tmpProvider;
+ else if( tmpProvider != provider )
+ return null;
+ }
+ return provider;
+ }
+
+ protected void fillJBContextMenu(Shell shell, IMenuManager menu) {
+ Object selected = getSelectedElement();
+ menu.add(refreshAction);
+ if( selected instanceof ServerViewProvider ) {
+ menu.add(disableCategoryAction);
+ }
+
+ menu.add(new Separator());
+ }
+
+ public IPropertySheetPage getPropertySheet() {
+ return propertySheet;
+ }
+
+ public class TableViewerPropertySheet implements IPropertySheetPage {
+
+ private PageBook book;
+ private ArrayList<ServerViewProvider> addedControls = new
ArrayList<ServerViewProvider>();
+ private SimplePropertiesPropertySheetPage topLevelPropertiesPage;
+
+ public void createControl(Composite parent) {
+ topLevelPropertiesPage = PropertySheetFactory.createSimplePropertiesSheet(new
TopLevelProperties());
+ book = new PageBook(parent, SWT.NONE);
+ addedControls.clear();
+ topLevelPropertiesPage.createControl(book);
+ book.showPage(topLevelPropertiesPage.getControl());
+ }
+
+ public void dispose() {
+ }
+
+ public Control getControl() {
+ return book;
+ }
+
+ public void setActionBars(IActionBars actionBars) {
+ }
+
+ public void setFocus() {
+ }
+
+ public void selectionChanged(IWorkbenchPart part, ISelection sel) {
+ Object selected = getSelectedObject(sel);
+ if( selected != null ) {
+
+ IPropertySheetPage page = null;
+ if( selected instanceof ContentWrapper ) {
+ page = getDelegatePage(((ContentWrapper)selected).getProvider());
+ } else /*if( selected instanceof ServerViewProvider ) {
+ page = getDelegatePage((ServerViewProvider)selected);
+ } else if( page == null ) */ {
+ page = topLevelPropertiesPage;
+ }
+ if( page != null ) {
+ page.selectionChanged(part, sel);
+ book.showPage(page.getControl());
+ }
+ }
+ }
+ private IPropertySheetPage getDelegatePage(ServerViewProvider provider) {
+ IPropertySheetPage returnSheet = null;
+ returnSheet = provider.getDelegate().getPropertySheetPage();
+ if( !addedControls.contains(provider) && returnSheet != null) {
+ returnSheet.createControl(book);
+ addedControls.add(provider);
+ }
+ return returnSheet;
+ }
+
+ public Object getSelectedObject(ISelection sel) {
+ if( sel instanceof IStructuredSelection ) {
+ IStructuredSelection selection = (IStructuredSelection)sel;
+ Object selected = selection.getFirstElement();
+ return selected;
+ }
+ return null;
+ }
+
+ }
+ /**
+ * Properties for the top level elements
+ * (a server or a category / extension point
+ * @author rstryker
+ *
+ */
+ class TopLevelProperties implements ISimplePropertiesHolder {
+ public Properties getProperties(Object selected) {
+ Properties ret = new Properties();
+ if( selected instanceof ServerViewProvider ) {
+ ServerViewProvider provider = (ServerViewProvider)selected;
+ ret.setProperty(Messages.ExtensionID, provider.getId());
+ ret.setProperty(Messages.ExtensionName, provider.getName());
+ ret.setProperty(Messages.ExtensionDescription, provider.getDescription());
+ ret.setProperty(Messages.ExtensionProviderClass, provider.getDelegateName());
+ }
+ return ret;
+ }
+
+
+ public String[] getPropertyKeys(Object selected) {
+ if( selected instanceof ServerViewProvider) {
+ return new String[] {
+ Messages.ExtensionName, Messages.ExtensionDescription,
+ Messages.ExtensionID, Messages.ExtensionProviderClass
+ };
+
+ }
+ if( selected instanceof JBossServer ) {
+ return new String[] {
+ Messages.ServerRuntimeVersion, Messages.ServerHome,
+ Messages.ServerConfigurationName, Messages.ServerDeployDir,
+ };
+ }
+ return new String[] {};
+ }
+ }
+
+ public void dispose() {
+ // The Loner
+ propertySheet.dispose();
+
+ ServerViewProvider[] providers = ToolsServerUICore.getAllServerViewProviders();
+ for( int i = 0; i < providers.length; i++ ) {
+ providers[i].dispose();
+ }
+ }
+
+
+ public void suppressingRefresh(Runnable runnable) {
+ boolean currentVal = suppressingRefresh;
+ suppressingRefresh = true;
+ runnable.run();
+ suppressingRefresh = currentVal;
+ }
+
+ public void refresh() {
+ refresh(null);
+ }
+ public void refresh(final Object element) {
+ if(!suppressingRefresh) {
+ try {
+ super.refresh(element);
+ } catch( Exception e ) {
+ JBossServerUIPlugin.log("Error refreshing view. ", e);
+ }
+ }
+ }
+
+ public boolean elementInTree(Object element) {
+ Widget[] w = super.findItems(element);
+ return w != null && w.length > 0;
+ }
+
+
+}
Copied:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/JBossServerView.java
(from rev 8065,
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/JBossServerView.java)
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/JBossServerView.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/JBossServerView.java 2008-05-16
22:09:23 UTC (rev 8163)
@@ -0,0 +1,192 @@
+/**
+ * JBoss, a Division of Red Hat
+ * Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+* This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+ */
+package org.jboss.tools.wst.server.ui.views.server;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.IContributionManager;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.SashForm;
+import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.IMemento;
+import org.eclipse.ui.IViewSite;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.part.ViewPart;
+import org.eclipse.ui.views.properties.IPropertySheetPage;
+import org.eclipse.wst.server.core.IServer;
+import org.eclipse.wst.server.ui.internal.ServerUIPlugin;
+
+/**
+ *
+ * @author Rob Stryker <rob.stryker(a)redhat.com>
+ *
+ */
+public class JBossServerView extends ViewPart {
+
+ public static final String VIEW_ID =
"org.jboss.ide.eclipse.as.ui.views.JBossServerView";
+
+ private static final String TAG_SASHFORM_HEIGHT = "sashformHeight";
+
+ public static JBossServerView instance;
+ private static ArrayList<ISelectionChangedListener> serverFrameListeners = new
ArrayList<ISelectionChangedListener>();
+ private static ArrayList<ISelectionChangedListener> extensionFrameListeners = new
ArrayList<ISelectionChangedListener>();
+
+ public static JBossServerView getDefault() {
+ return instance;
+ }
+
+ public static void addServerFrameListener(ISelectionChangedListener listener) {
+ if( !serverFrameListeners.contains(listener))
+ serverFrameListeners.add(listener);
+ if( getDefault() != null )
+ getDefault().getServerFrame().getViewer().addSelectionChangedListener(listener);
+ }
+ public static void addExtensionFrameListener(ISelectionChangedListener listener) {
+ if( !extensionFrameListeners.contains(listener))
+ extensionFrameListeners.add(listener);
+ if( getDefault() != null )
+ getDefault().getExtensionFrame().getViewer().addSelectionChangedListener(listener);
+ }
+
+ public static void removeServerFrameListener(ISelectionChangedListener listener) {
+ if( serverFrameListeners.contains(listener))
+ serverFrameListeners.remove(listener);
+ if( getDefault() != null )
+ getDefault().getServerFrame().getViewer().removeSelectionChangedListener(listener);
+ }
+ public static void removeExtensionFrameListener(ISelectionChangedListener listener) {
+ if( extensionFrameListeners.contains(listener))
+ extensionFrameListeners.remove(listener);
+ if( getDefault() != null )
+ getDefault().getExtensionFrame().getViewer().removeSelectionChangedListener(listener);
+ }
+
+ public static interface IServerViewFrame {
+ public IAction[] getActionBarActions();
+ public int getDefaultSize();
+ public void refresh();
+ }
+
+ public JBossServerView() {
+ super();
+ instance = this;
+ }
+
+ private SashForm form;
+ private int[] sashRows;
+ private IMemento memento;
+
+ private IServerViewFrame[] frames;
+ private ServerFrame serverFrame;
+ private ServerExtensionFrame extensionFrame;
+
+ public void init(IViewSite site, IMemento memento) throws PartInitException {
+ super.init(site, memento);
+ ServerUIPlugin.getPreferences().setShowOnActivity(false);
+ this.memento = memento;
+ int sum = 0;
+ sashRows = new int[2];
+ for (int i = 0; i < sashRows.length; i++) {
+ sashRows[i] = 50;
+ if (memento != null) {
+ Integer in = memento.getInteger(TAG_SASHFORM_HEIGHT + i);
+ if (in != null && in.intValue() > 5)
+ sashRows[i] = in.intValue();
+ }
+ sum += sashRows[i];
+ }
+ }
+
+ public void saveState(IMemento memento) {
+ super.saveState(memento);
+ int[] weights = form.getWeights();
+ for (int i = 0; i < weights.length; i++) {
+ if (weights[i] != 0)
+ memento.putInteger(TAG_SASHFORM_HEIGHT + i, weights[i]);
+ }
+ }
+
+ public void createPartControl(Composite parent) {
+ form = new SashForm(parent, SWT.VERTICAL);
+ form.setBackground(new Color(parent.getDisplay(), 255, 255, 255));
+ form.setLayout(new FillLayout());
+
+
+ Composite topWrapper = new Composite(form, SWT.NONE);
+ topWrapper.setLayout(new FillLayout());
+ serverFrame = new ServerFrame(topWrapper, this);
+
+ Composite bottomWrapper = new Composite(form, SWT.NONE);
+ bottomWrapper.setLayout(new FillLayout());
+ extensionFrame = new ServerExtensionFrame(bottomWrapper, this);
+
+
+ frames = new IServerViewFrame[] { serverFrame, extensionFrame };
+
+ // add toolbar buttons
+ IContributionManager cm = getViewSite().getActionBars().getToolBarManager();
+ for( int i = 0; i < frames.length; i++ ) {
+ IAction[] actions = frames[i].getActionBarActions();
+ for (int j = 0; j < actions.length - 1; j++)
+ cm.add(actions[j]);
+ }
+
+ form.setWeights(sashRows);
+
+
+ // if the extensions have already been created, add those listeners now.
+ Iterator<ISelectionChangedListener> k;
+ for(k = serverFrameListeners.iterator(); k.hasNext();)
+ serverFrame.getViewer().addSelectionChangedListener(k.next());
+ for(k = extensionFrameListeners.iterator(); k.hasNext();)
+ extensionFrame.getViewer().addSelectionChangedListener(k.next());
+ }
+
+ public void refreshAll() {
+ for( int i = 0; i < frames.length; i++ ) {
+ frames[i].refresh();
+ }
+ }
+
+ public ServerFrame getServerFrame() { return this.serverFrame; }
+ public ServerExtensionFrame getExtensionFrame() { return this.extensionFrame; }
+
+ public void setFocus() {
+ getExtensionFrame().getViewer().getTree().setFocus();
+ }
+
+ public IServer getSelectedServer() {
+ return serverFrame == null ? null : serverFrame.getSelectedServer();
+ }
+
+ public Object getAdapter(Class adaptor) {
+ if( adaptor == IPropertySheetPage.class) {
+ return extensionFrame.getViewer().getPropertySheet();
+ }
+ return super.getAdapter(adaptor);
+ }
+}
Copied:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/ServerExtensionFrame.java
(from rev 8065,
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/ServerExtensionFrame.java)
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/ServerExtensionFrame.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/ServerExtensionFrame.java 2008-05-16
22:09:23 UTC (rev 8163)
@@ -0,0 +1,122 @@
+/**
+ * JBoss, a Division of Red Hat
+ * Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+* This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+ */
+package org.jboss.tools.wst.server.ui.views.server;
+
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.TreeSelection;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.wst.server.core.IModule;
+import org.eclipse.wst.server.core.IServer;
+import org.eclipse.wst.server.core.ServerCore;
+import org.eclipse.wst.server.ui.internal.view.servers.ModuleServer;
+import org.jboss.tools.wst.server.ui.views.server.JBossServerView.IServerViewFrame;
+
+/**
+ *
+ * @author Rob Stryker <rob.stryker(a)redhat.com>
+ *
+ */
+public class ServerExtensionFrame extends Composite implements IServerViewFrame {
+
+ private Tree jbTreeTable;
+ private ExtensionTableViewer jbViewer;
+ private JBossServerView view;
+ public ServerExtensionFrame(Composite parent, JBossServerView view) {
+ super(parent, SWT.NONE);
+ this.view = view;
+ setLayout(new FillLayout());
+ jbTreeTable = new Tree(this, SWT.MULTI | SWT.FULL_SELECTION | SWT.H_SCROLL |
SWT.V_SCROLL | SWT.BORDER);
+ jbViewer = new ExtensionTableViewer(jbTreeTable);
+ view.getSite().setSelectionProvider(jbViewer);
+ addListeners();
+ doMenuStuff(parent);
+ }
+
+ protected void doMenuStuff(Composite parent) {
+ MenuManager menuManager = new MenuManager("#PopupMenu");
+ menuManager.setRemoveAllWhenShown(true);
+ final Shell shell = jbTreeTable.getShell();
+ menuManager.addMenuListener(new IMenuListener() {
+ public void menuAboutToShow(IMenuManager mgr) {
+ jbViewer.fillSelectedContextMenu(shell, mgr);
+ mgr.add(new Separator());
+ jbViewer.fillJBContextMenu(shell, mgr);
+ }
+ });
+ Menu menu = menuManager.createContextMenu(parent);
+ jbTreeTable.setMenu(menu);
+ }
+
+ public ExtensionTableViewer getViewer() {
+ return jbViewer;
+ }
+
+ public void refresh() {
+ jbViewer.refresh();
+ }
+
+ public void addListeners() {
+
+ /*
+ * Handles the selection of the server viewer which is embedded in my sashform
+ */
+ view.getServerFrame().getViewer().addSelectionChangedListener(new
ISelectionChangedListener() {
+ public void selectionChanged(SelectionChangedEvent event) {
+ Object selection = ((TreeSelection)event.getSelection()).getFirstElement();
+ Object server = selection;
+ if( selection instanceof ModuleServer ) {
+ server = ((ModuleServer)selection).server;
+ }
+
+ if( selection == null ) return;
+ if( server != jbViewer.getInput()) {
+ // find the newest copy of the server
+ IServer tmp = ServerCore.findServer(((IServer)server).getId());
+ jbViewer.setInput(tmp);
+ } else {
+ jbViewer.refresh();
+ }
+ }
+
+ });
+ }
+
+
+ public IAction[] getActionBarActions() {
+ return new IAction[] {}; // none
+ }
+
+ public int getDefaultSize() {
+ return 0;
+ }
+ }
Copied:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/ServerFrame.java
(from rev 8065,
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/ServerFrame.java)
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/ServerFrame.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/ServerFrame.java 2008-05-16
22:09:23 UTC (rev 8163)
@@ -0,0 +1,345 @@
+/**
+ * JBoss, a Division of Red Hat
+ * Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+* This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+ */
+package org.jboss.tools.wst.server.ui.views.server;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.debug.core.ILaunchConfiguration;
+import org.eclipse.debug.core.ILaunchManager;
+import org.eclipse.debug.ui.DebugUITools;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.IContributionManager;
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.bindings.TriggerSequence;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.swt.widgets.TreeColumn;
+import org.eclipse.swt.widgets.TreeItem;
+import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.IViewSite;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchActionConstants;
+import org.eclipse.ui.IWorkbenchPartSite;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.actions.ActionFactory;
+import org.eclipse.ui.keys.IBindingService;
+import org.eclipse.wst.server.core.IServer;
+import org.eclipse.wst.server.core.internal.Server;
+import org.eclipse.wst.server.core.internal.Trace;
+import org.eclipse.wst.server.ui.internal.ContextIds;
+import org.eclipse.wst.server.ui.internal.Messages;
+import org.eclipse.wst.server.ui.internal.ServerUIPlugin;
+import org.eclipse.wst.server.ui.internal.actions.NewServerWizardAction;
+import org.eclipse.wst.server.ui.internal.view.servers.CopyAction;
+import org.eclipse.wst.server.ui.internal.view.servers.DeleteAction;
+import org.eclipse.wst.server.ui.internal.view.servers.ModuleSloshAction;
+import org.eclipse.wst.server.ui.internal.view.servers.OpenAction;
+import org.eclipse.wst.server.ui.internal.view.servers.PasteAction;
+import org.eclipse.wst.server.ui.internal.view.servers.PropertiesAction;
+import org.eclipse.wst.server.ui.internal.view.servers.PublishAction;
+import org.eclipse.wst.server.ui.internal.view.servers.PublishCleanAction;
+import org.eclipse.wst.server.ui.internal.view.servers.RenameAction;
+import org.eclipse.wst.server.ui.internal.view.servers.ShowInConsoleAction;
+import org.eclipse.wst.server.ui.internal.view.servers.ShowInDebugAction;
+import org.eclipse.wst.server.ui.internal.view.servers.StartAction;
+import org.eclipse.wst.server.ui.internal.view.servers.StopAction;
+import org.jboss.ide.eclipse.as.core.server.internal.JBossServer;
+import org.jboss.ide.eclipse.as.ui.JBossServerUISharedImages;
+import org.jboss.ide.eclipse.as.ui.dialogs.TwiddleDialog;
+import org.jboss.tools.wst.server.ui.views.server.JBossServerView.IServerViewFrame;
+
+/**
+ *
+ * @author Rob Stryker <rob.stryker(a)redhat.com>
+ *
+ */
+public class ServerFrame extends Composite implements IServerViewFrame {
+
+ protected Action[] actions;
+ protected IWorkbenchPartSite site;
+ protected IViewSite viewSite;
+ protected Tree treeTable;
+ protected ServerTableViewer tableViewer;
+
+ // custom
+ protected Action editLaunchConfigAction, twiddleAction, newServerAction;
+
+ // wtp
+ protected Action actionModifyModules;
+ protected Action openAction, showInConsoleAction, showInDebugAction, propertiesAction;
+ protected Action copyAction, pasteAction, deleteAction, renameAction;
+
+ public ServerFrame(Composite parent, JBossServerView view) {
+ super(parent, SWT.BORDER);
+ setLayout(new FillLayout());
+ this.site = view.getSite();
+ this.viewSite = view.getViewSite();
+
+
+ int cols[] = new int[] {150, 100, 50};
+
+ treeTable = new Tree(this, SWT.SINGLE | SWT.FULL_SELECTION | SWT.H_SCROLL |
SWT.V_SCROLL | SWT.NONE);
+ treeTable.setHeaderVisible(true);
+ treeTable.setLinesVisible(false);
+ treeTable.setFont(parent.getFont());
+ PlatformUI.getWorkbench().getHelpSystem().setHelp(treeTable, ContextIds.VIEW_SERVERS);
+
+ // add columns
+ TreeColumn column = new TreeColumn(treeTable, SWT.SINGLE);
+ column.setText(Messages.viewServer);
+ column.setWidth(cols[0]);
+
+ TreeColumn column2 = new TreeColumn(treeTable, SWT.SINGLE);
+ column2.setText(Messages.viewState);
+ column2.setWidth(cols[1]);
+
+ TreeColumn column3 = new TreeColumn(treeTable, SWT.SINGLE);
+ column3.setText(Messages.viewStatus);
+ column3.setWidth(cols[2]);
+
+ tableViewer = new ServerTableViewer(viewSite, treeTable);
+ initializeActions(tableViewer);
+
+ treeTable.addSelectionListener(new SelectionAdapter() {
+ public void widgetSelected(SelectionEvent event) {
+ try {
+ } catch (Exception e) {
+ viewSite.getActionBars().getStatusLineManager().setMessage(null, "");
+ }
+ }
+ public void widgetDefaultSelected(SelectionEvent event) {
+ try {
+ TreeItem item = treeTable.getSelection()[0];
+ Object data = item.getData();
+ if (!(data instanceof IServer))
+ return;
+ IServer server = (IServer) data;
+ ServerUIPlugin.editServer(server);
+ } catch (Exception e) {
+ Trace.trace(Trace.SEVERE, "Could not open server", e);
+ }
+ }
+ });
+
+ MenuManager menuManager = new MenuManager("#PopupMenu");
+ menuManager.setRemoveAllWhenShown(true);
+ final Shell shell = treeTable.getShell();
+ menuManager.addMenuListener(new IMenuListener() {
+ public void menuAboutToShow(IMenuManager mgr) {
+ fillContextMenu(shell, mgr);
+ }
+ });
+ Menu menu = menuManager.createContextMenu(parent);
+ treeTable.setMenu(menu);
+ site.registerContextMenu(menuManager, tableViewer);
+ site.setSelectionProvider(tableViewer);
+ }
+
+ protected void fillContextMenu(Shell shell, IMenuManager menu) {
+ if( getSelectedServer() != null ) {
+ cloneFill(shell, menu);
+ } else {
+ menu.add(newServerAction);
+ }
+ }
+
+ protected void cloneFill(Shell shell, IMenuManager menu) {
+
+ /* Show in ... */
+ String text = Messages.actionShowIn;
+ final IWorkbench workbench = PlatformUI.getWorkbench();
+ final IBindingService bindingService = (IBindingService) workbench
+ .getAdapter(IBindingService.class);
+ final TriggerSequence[] activeBindings = bindingService
+ .getActiveBindingsFor("org.eclipse.ui.navigate.showInQuickMenu");
+ if (activeBindings.length > 0) {
+ text += "\t" + activeBindings[0].format();
+ }
+
+ menu.add(newServerAction);
+ menu.add(openAction);
+
+ MenuManager showInMenu = new MenuManager(text);
+ showInMenu.add(showInConsoleAction);
+ showInMenu.add(showInDebugAction);
+ menu.add(showInMenu);
+ menu.add(new Separator());
+
+ menu.add(copyAction);
+ menu.add(pasteAction);
+ menu.add(deleteAction);
+ menu.add(renameAction);
+
+ menu.add(new Separator());
+
+ // server actions
+ for (int i = 0; i < actions.length; i++)
+ menu.add(actions[i]);
+
+ menu.add(new Separator());
+// menu.add(actionModifyModules);
+
+ menu.add(twiddleAction);
+ menu.add(editLaunchConfigAction);
+ menu.add(actionModifyModules);
+ twiddleAction.setEnabled(true);
+ editLaunchConfigAction.setEnabled(true);
+
+ }
+
+ public IServer getSelectedServer() {
+ Object o = ((IStructuredSelection)tableViewer.getSelection()).getFirstElement();
+ return (IServer)o;
+ }
+
+ public void initializeActions(ISelectionProvider provider) {
+ createWTPActions(provider);
+ createCustomActions();
+ }
+
+ protected void createWTPActions(ISelectionProvider provider) {
+ Shell shell = viewSite.getShell();
+ IActionBars actionBars = viewSite.getActionBars();
+
+ actions = new Action[6];
+ // create the start actions
+ actions[0] = new StartAction(shell, provider, ILaunchManager.DEBUG_MODE);
+ actionBars.setGlobalActionHandler("org.eclipse.wst.server.debug",
actions[0]);
+ actions[1] = new StartAction(shell, provider, ILaunchManager.RUN_MODE);
+ actionBars.setGlobalActionHandler("org.eclipse.wst.server.run", actions[1]);
+ actions[2] = new StartAction(shell, provider, ILaunchManager.PROFILE_MODE);
+
+ // create the stop action
+ actions[3] = new StopAction(shell, provider);
+ actionBars.setGlobalActionHandler("org.eclipse.wst.server.stop",
actions[3]);
+
+ // create the publish actions
+ actions[4] = new PublishAction(shell, provider);
+ actionBars.setGlobalActionHandler("org.eclipse.wst.server.publish",
actions[4]);
+ actions[5] = new PublishCleanAction(shell, provider);
+
+ // create the open action
+ openAction = new OpenAction(provider);
+ actionBars.setGlobalActionHandler("org.eclipse.ui.navigator.Open",
openAction);
+
+ // create copy, paste, and delete actions
+ pasteAction = new PasteAction(shell, provider, tableViewer.clipboard);
+ copyAction = new CopyAction(provider, tableViewer.clipboard, pasteAction);
+ deleteAction = new DeleteAction(shell, provider);
+ renameAction = new RenameAction(shell, tableViewer, provider);
+ actionBars.setGlobalActionHandler(ActionFactory.COPY.getId(), copyAction);
+ actionBars.setGlobalActionHandler(ActionFactory.PASTE.getId(), pasteAction);
+ actionBars.setGlobalActionHandler(ActionFactory.DELETE.getId(), deleteAction);
+ actionBars.setGlobalActionHandler(ActionFactory.RENAME.getId(), renameAction);
+
+ // create the other actions
+ actionModifyModules = new ModuleSloshAction(shell, provider);
+ showInConsoleAction = new ShowInConsoleAction(provider);
+ showInDebugAction = new ShowInDebugAction(provider);
+
+ // create the properties action
+ propertiesAction = new PropertiesAction(shell, provider);
+ actionBars.setGlobalActionHandler(ActionFactory.PROPERTIES.getId(), propertiesAction);
+ }
+
+ protected void createCustomActions() {
+ newServerAction = new Action() {
+ public void run() {
+ IAction newServerAction = new NewServerWizardAction();
+ newServerAction.run();
+ }
+ };
+ newServerAction.setText("New Server");
+ newServerAction.setImageDescriptor(JBossServerUISharedImages.getImageDescriptor(JBossServerUISharedImages.GENERIC_SERVER_IMAGE));
+
+ editLaunchConfigAction = new Action() {
+ public void run() {
+ Display.getDefault().asyncExec(new Runnable() {
+ public void run() {
+ try {
+ final Object selected = getSelectedServer();
+ IServer s = null;
+ if( selected instanceof JBossServer ) {
+ s = ((JBossServer)selected).getServer();
+ } else if( selected instanceof IServer ) {
+ s = (IServer)selected;
+ }
+
+ if( s != null ) {
+ ILaunchConfiguration launchConfig = ((Server) s).getLaunchConfiguration(true,
null);
+ // TODO: use correct launch group
+ DebugUITools.openLaunchConfigurationPropertiesDialog(new Shell(), launchConfig,
"org.eclipse.debug.ui.launchGroup.run");
+ }
+ } catch (CoreException ce) {
+ }
+ }
+ });
+ }
+ };
+ editLaunchConfigAction.setText(org.jboss.ide.eclipse.as.ui.Messages.EditLaunchConfigurationAction);
+ editLaunchConfigAction.setImageDescriptor(JBossServerUISharedImages.getImageDescriptor(JBossServerUISharedImages.IMG_JBOSS_CONFIGURATION));
+
+ twiddleAction = new Action() {
+ public void run() {
+ final IStructuredSelection selected =
((IStructuredSelection)tableViewer.getSelection());
+ Display.getDefault().asyncExec(new Runnable() {
+ public void run() {
+ TwiddleDialog dialog = new TwiddleDialog(tableViewer.getTree().getShell(),
selected.getFirstElement());
+ dialog.open();
+ }
+ } );
+
+ }
+ };
+ twiddleAction.setText( org.jboss.ide.eclipse.as.ui.Messages.TwiddleServerAction);
+ twiddleAction.setImageDescriptor(JBossServerUISharedImages.getImageDescriptor(JBossServerUISharedImages.TWIDDLE_IMAGE));
+
+ }
+
+ public ServerTableViewer getViewer() {
+ return tableViewer;
+ }
+
+ public void refresh() {
+ tableViewer.refresh();
+ }
+
+ public IAction[] getActionBarActions() {
+ return actions;
+ }
+
+ public int getDefaultSize() {
+ return 0;
+ }
+}
Copied:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/ServerTableViewer.java
(from rev 8065,
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/ServerTableViewer.java)
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/ServerTableViewer.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/ServerTableViewer.java 2008-05-16
22:09:23 UTC (rev 8163)
@@ -0,0 +1,389 @@
+package org.jboss.tools.wst.server.ui.views.server;
+/**
+ * JBoss, a Division of Red Hat
+ * Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+* This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+ */
+
+/*******************************************************************************
+ * Copyright (c) 2003, 2005 IBM Corporation and others.
+ * 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:
+ * IBM Corporation - Initial API and implementation
+ *******************************************************************************/
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.jface.viewers.ILabelProviderListener;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.LabelProviderChangedEvent;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.viewers.ViewerSorter;
+import org.eclipse.swt.dnd.Clipboard;
+import org.eclipse.swt.events.DisposeEvent;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.ui.IViewSite;
+import org.eclipse.wst.server.core.IPublishListener;
+import org.eclipse.wst.server.core.IServer;
+import org.eclipse.wst.server.core.IServerLifecycleListener;
+import org.eclipse.wst.server.core.IServerListener;
+import org.eclipse.wst.server.core.IServerType;
+import org.eclipse.wst.server.core.ServerCore;
+import org.eclipse.wst.server.core.ServerEvent;
+import org.eclipse.wst.server.core.internal.Server;
+import org.eclipse.wst.server.core.util.PublishAdapter;
+import org.eclipse.wst.server.ui.internal.Trace;
+import org.eclipse.wst.server.ui.internal.provisional.UIDecoratorManager;
+import org.eclipse.wst.server.ui.internal.view.servers.ServerTableLabelProvider;
+/**
+ * Tree view showing servers and their associations.
+ * This is for the TOP window
+ * @author Rob Stryker <rob.stryker(a)redhat.com>
+ *
+ */
+public class ServerTableViewer extends TreeViewer {
+ protected static final String ROOT = "root";
+
+ protected IServerLifecycleListener serverResourceListener;
+ protected IPublishListener publishListener;
+ protected IServerListener serverListener;
+
+ protected static Object deletedElement = null;
+
+ // servers that are currently publishing and starting
+ protected static List publishing = new ArrayList();
+ protected static List starting = new ArrayList();
+
+ protected ServerTableLabelProvider2 labelProvider;
+ protected Clipboard clipboard;
+
+ protected IViewSite viewSite;
+
+ protected class ServerTableLabelProvider2 extends ServerTableLabelProvider {
+ private int myCount = 0;
+ protected Image getStateImage(IServerType serverType, int state, String mode) {
+ return UIDecoratorManager.getUIDecorator(serverType).getStateImage(state, mode,
myCount);
+ }
+ protected String getStateLabel(IServerType serverType, int state, String mode) {
+ return UIDecoratorManager.getUIDecorator(serverType).getStateLabel(state, mode,
myCount);
+ }
+ protected void animate() {
+ myCount ++;
+ if (myCount > 2)
+ myCount = 0;
+ }
+
+ }
+
+ public class TrimmedServerContentProvider implements IStructuredContentProvider,
ITreeContentProvider {
+ public Object[] getElements(Object element) {
+ return ServerCore.getServers();
+ }
+
+ public void inputChanged(Viewer theViewer, Object oldInput, Object newInput) {
+ // do nothing
+ }
+
+ public void dispose() {
+ // do nothing
+ }
+
+ public Object[] getChildren(Object element) {
+ return new Object[0];
+ }
+
+ public Object getParent(Object element) {
+ return null;
+ }
+
+ public boolean hasChildren(Object element) {
+ return false;
+ }
+ }
+
+ protected Thread thread = null;
+ protected boolean stopThread = false;
+
+ protected void startThread() {
+ stopThread = false;
+ if (thread != null)
+ return;
+
+ thread = new Thread("Servers View Animator") {
+ public void run() {
+ while (!stopThread) {
+ try {
+ labelProvider.animate();
+ final Object[] rootElements =
((ITreeContentProvider)getContentProvider()).getElements(null);
+ Display.getDefault().asyncExec(new Runnable() {
+ public void run() {
+ if (getTree() != null && !getTree().isDisposed())
+ update(rootElements, null);
+ }
+ });
+ Thread.sleep(250);
+ } catch (Exception e) {
+ Trace.trace(Trace.FINEST, "Error in animated server view", e);
+ }
+ thread = null;
+ }
+ }
+ };
+ thread.setDaemon(true);
+ thread.start();
+ }
+
+ protected void stopThread() {
+ stopThread = true;
+ }
+
+ /**
+ * ServerTableViewer constructor comment.
+ *
+ * @param view the view
+ * @param tree the tree
+ */
+ public ServerTableViewer(final IViewSite site, final Tree tree) {
+ super(tree);
+ this.viewSite = site;
+ clipboard = new Clipboard(tree.getDisplay());
+
+ setContentProvider(new TrimmedServerContentProvider());
+ labelProvider = new ServerTableLabelProvider2();
+ labelProvider.addListener(new ILabelProviderListener() {
+ public void labelProviderChanged(LabelProviderChangedEvent event) {
+ Object[] obj = event.getElements();
+ if (obj == null)
+ refresh(true);
+ else {
+ int size = obj.length;
+ for (int i = 0; i < size; i++)
+ refresh(obj[i], true);
+ }
+ }
+ });
+ setLabelProvider(labelProvider);
+ setSorter(new ViewerSorter() {
+ // empty
+ });
+
+ setInput(ROOT);
+ addListeners();
+ }
+
+ protected void addListeners() {
+ serverResourceListener = new IServerLifecycleListener() {
+ public void serverAdded(IServer server) {
+ addServer(server);
+ server.addServerListener(serverListener);
+ ((Server) server).addPublishListener(publishListener);
+ }
+ public void serverChanged(IServer server) {
+ refreshServer(server);
+ }
+ public void serverRemoved(IServer server) {
+ removeServer(server);
+ server.removeServerListener(serverListener);
+ ((Server) server).removePublishListener(publishListener);
+ }
+ };
+ ServerCore.addServerLifecycleListener(serverResourceListener);
+
+ publishListener = new PublishAdapter() {
+ public void publishStarted(IServer server) {
+ handlePublishChange(server, true);
+ }
+
+ public void publishFinished(IServer server, IStatus status) {
+ handlePublishChange(server, false);
+ }
+ };
+
+ serverListener = new IServerListener() {
+ public void serverChanged(ServerEvent event) {
+ if (event == null) {
+ return;
+ }
+ int eventKind = event.getKind();
+ IServer server = event.getServer();
+ if ((eventKind & ServerEvent.SERVER_CHANGE) != 0) {
+ // server change event
+ if ((eventKind & ServerEvent.STATE_CHANGE) != 0) {
+ refreshServer(server);
+ int state = event.getState();
+ String id = server.getId();
+ if (state == IServer.STATE_STARTING || state == IServer.STATE_STOPPING) {
+ if (!starting.contains(id)) {
+ if (starting.isEmpty())
+ startThread();
+ starting.add(id);
+ }
+ } else {
+ if (starting.contains(id)) {
+ starting.remove(id);
+ if (starting.isEmpty())
+ stopThread();
+ }
+ }
+ } else
+ refreshServer(server);
+ } else if ((eventKind & ServerEvent.MODULE_CHANGE) != 0) {
+ // module change event
+ if ((eventKind & ServerEvent.STATE_CHANGE) != 0 || (eventKind &
ServerEvent.PUBLISH_STATE_CHANGE) != 0) {
+ refreshServer(server);
+ }
+ }
+ }
+ };
+
+ // add listeners to servers
+ IServer[] servers = ServerCore.getServers();
+ if (servers != null) {
+ int size = servers.length;
+ for (int i = 0; i < size; i++) {
+ servers[i].addServerListener(serverListener);
+ ((Server) servers[i]).addPublishListener(publishListener);
+ }
+ }
+ }
+
+ protected void refreshServer(final IServer server) {
+ Display.getDefault().asyncExec(new Runnable() {
+ public void run() {
+ try {
+ refresh(server);
+
+ // This ensures the icons are updated in case of a publish or state change
+ ISelection sel = ServerTableViewer.this.getSelection();
+ ServerTableViewer.this.setSelection(sel);
+ } catch (Exception e) {
+ // ignore
+ }
+ }
+ });
+ }
+
+ protected void handleDispose(DisposeEvent event) {
+ stopThread();
+ //if (dsListener != null)
+ // view.getViewSite().getPage().removeSelectionListener(dsListener);
+
+ ServerCore.removeServerLifecycleListener(serverResourceListener);
+
+ // remove listeners from server
+ IServer[] servers = ServerCore.getServers();
+ if (servers != null) {
+ int size = servers.length;
+ for (int i = 0; i < size; i++) {
+ servers[i].removeServerListener(serverListener);
+ ((Server) servers[i]).removePublishListener(publishListener);
+ }
+ }
+
+ clipboard.dispose();
+ super.handleDispose(event);
+ }
+
+ /**
+ * Called when the publish state changes.
+ * @param server org.eclipse.wst.server.core.IServer
+ */
+ protected void handlePublishChange(IServer server, boolean isPublishing) {
+ String serverId = server.getId();
+ if (isPublishing)
+ publishing.add(serverId);
+ else
+ publishing.remove(serverId);
+
+ refreshServer(server);
+ }
+
+ /**
+ *
+ */
+ protected void handleServerModulesChanged(IServer server2) {
+ if (server2 == null)
+ return;
+
+ IServer[] servers = ServerCore.getServers();
+ if (servers != null) {
+ int size = servers.length;
+ for (int i = 0; i < size; i++) {
+ if (server2.equals(servers[i]))
+ refresh(servers[i]);
+ }
+ }
+ }
+
+ /**
+ * Called when an element is added.
+ * @param server org.eclipse.wst.server.core.IServer
+ */
+ protected void handleServerResourceAdded(IServer server) {
+ add(null, server);
+ }
+
+ /**
+ * Called when an element is changed.
+ * @param server org.eclipse.wst.server.core.IServer
+ */
+ protected void handleServerResourceChanged(IServer server) {
+ refresh(server);
+ }
+
+ /**
+ * Called when an element is removed.
+ * @param server org.eclipse.wst.server.core.IServer
+ */
+ protected void handleServerResourceRemoved(IServer server) {
+ remove(server);
+
+ String serverId = server.getId();
+ publishing.remove(serverId);
+
+ viewSite.getActionBars().getStatusLineManager().setMessage(null, null);
+ }
+
+ protected void addServer(final IServer server) {
+ Display.getDefault().asyncExec(new Runnable() {
+ public void run() {
+ add(ROOT, server);
+ }
+ });
+ }
+
+ protected void removeServer(final IServer server) {
+ Display.getDefault().asyncExec(new Runnable() {
+ public void run() {
+ remove(server);
+ }
+ });
+ }
+}
\ No newline at end of file
Copied:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/preferencepages
(from rev 8065,
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/preferencepages)
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/preferencepages/JBossServersPreferencePage.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/preferencepages/JBossServersPreferencePage.java 2008-05-13
13:48:31 UTC (rev 8065)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/preferencepages/JBossServersPreferencePage.java 2008-05-16
22:09:23 UTC (rev 8163)
@@ -19,7 +19,7 @@
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
*/
-package org.jboss.ide.eclipse.as.ui.preferencepages;
+package org.jboss.tools.wst.server.ui.views.server.preferencepages;
import java.util.Collection;
import java.util.HashMap;
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/preferencepages/ViewPreferencePage.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/preferencepages/ViewPreferencePage.java 2008-05-13
13:48:31 UTC (rev 8065)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/preferencepages/ViewPreferencePage.java 2008-05-16
22:09:23 UTC (rev 8163)
@@ -19,7 +19,7 @@
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
*/
-package org.jboss.ide.eclipse.as.ui.preferencepages;
+package org.jboss.tools.wst.server.ui.views.server.preferencepages;
import java.util.ArrayList;
import java.util.HashMap;
@@ -48,10 +48,10 @@
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;
import org.eclipse.ui.part.PageBook;
-import org.jboss.ide.eclipse.as.ui.JBossServerUIPlugin;
import org.jboss.ide.eclipse.as.ui.Messages;
-import org.jboss.ide.eclipse.as.ui.views.server.JBossServerView;
import org.jboss.ide.eclipse.as.ui.views.server.extensions.ServerViewProvider;
+import org.jboss.tools.wst.server.ui.ToolsServerUICore;
+import org.jboss.tools.wst.server.ui.views.server.JBossServerView;
/**
*
@@ -226,7 +226,7 @@
TableColumn column3 = new TableColumn(table, SWT.NONE);
column3.setText(Messages.ViewPreferencePageDescription);
- providers = JBossServerUIPlugin.getDefault().getAllServerViewProviders();
+ providers = ToolsServerUICore.getAllServerViewProviders();
int minWidth = 0;
enabledButtons = new ArrayList<Control>();
@@ -392,7 +392,7 @@
- ServerViewProvider[] providers =
JBossServerUIPlugin.getDefault().getAllServerViewProviders();
+ ServerViewProvider[] providers = ToolsServerUICore.getAllServerViewProviders();
for( int i = 0; i < providers.length; i++ ) {
Group g = new Group(book, SWT.NONE);
@@ -431,7 +431,7 @@
setLayout(new FormLayout());
Button enabled = new Button(this, SWT.CHECK);
enabled.setText(Messages.ViewPreferencePageEnabled);
- enabled.setSelection(provider.isEnabled());
+ enabled.setSelection(myProvider.isEnabled());
}
}
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/preferencepages/ViewProviderPreferenceComposite.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/preferencepages/ViewProviderPreferenceComposite.java 2008-05-13
13:48:31 UTC (rev 8065)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/preferencepages/ViewProviderPreferenceComposite.java 2008-05-16
22:09:23 UTC (rev 8163)
@@ -19,7 +19,7 @@
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
*/
-package org.jboss.ide.eclipse.as.ui.preferencepages;
+package org.jboss.tools.wst.server.ui.views.server.preferencepages;
import org.eclipse.swt.widgets.Composite;
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/plugin.xml
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/plugin.xml 2008-05-16 20:38:12 UTC (rev
8162)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/plugin.xml 2008-05-16 22:09:23 UTC (rev
8163)
@@ -96,16 +96,16 @@
<extension
point="org.eclipse.ui.preferencePages">
<page
- category="org.jboss.ide.eclipse.ui.MainPreferencePage"
-
class="org.jboss.ide.eclipse.as.ui.preferencepages.JBossServersPreferencePage"
+ category="org.eclipse.wst.server.ui.preferencePage"
+
class="org.jboss.tools.wst.server.ui.views.server.preferencepages.JBossServersPreferencePage"
id="org.jboss.ide.eclipse.as.ui.jbossServerPreferencePage"
name="JBoss Servers"/>
<page
- category="org.jboss.ide.eclipse.as.ui.jbossServerPreferencePage"
-
class="org.jboss.ide.eclipse.as.ui.preferencepages.ViewPreferencePage"
+ category="org.eclipse.wst.server.ui.preferencePage"
+
class="org.jboss.tools.wst.server.ui.views.server.preferencepages.ViewPreferencePage"
id="org.jboss.ide.eclipse.as.ui.jbossServerViewPrefPage"
- name="View"/>
+ name="JBoss Server View"/>
</extension>
@@ -129,7 +129,7 @@
<view
allowMultiple="false"
category="org.eclipse.wst.server.ui"
- class="org.jboss.ide.eclipse.as.ui.views.server.JBossServerView"
+ class="org.jboss.tools.wst.server.ui.views.server.JBossServerView"
icon="icons/jboss.gif"
id="org.jboss.ide.eclipse.as.ui.views.JBossServerView"
name="JBoss Server View"/>