Author: rob.stryker(a)jboss.com
Date: 2008-05-16 18:51:48 -0400 (Fri, 16 May 2008)
New Revision: 8164
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/ExtensionManager.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/ToolsServerUICore.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/DebugServerActionDelegate.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/RunServerActionDelegate.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/SelectServerActionDelegate.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/views/
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/views/server/
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/views/server/ExtensionTableViewer.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/views/server/JBossServerView.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/views/server/ServerExtensionFrame.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/views/server/ServerFrame.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/views/server/ServerTableViewer.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/views/server/preferencepages/
Removed:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/DebugServerActionDelegate.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/RunServerActionDelegate.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/SelectServerActionDelegate.java
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/AbstractServerActionDelegate.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/ChangeTimeStampActionDelegate.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/ServerActionMessages.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/ServerManager.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/ServerManagerListener.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/StopServerActionDelegate.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/views/server/preferencepages/JBossServersPreferencePage.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/views/server/preferencepages/ViewPreferencePage.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/views/server/preferencepages/ViewProviderPreferenceComposite.java
Log:
JBIDE-2217 - separating wst standard stuff into its own package... renamed to
org.jboss.tools.as.wst.etc to please Maximus
Copied:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/ExtensionManager.java
(from rev 8163,
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/as/wst/server/ui/ExtensionManager.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/ExtensionManager.java 2008-05-16
22:51:48 UTC (rev 8164)
@@ -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.as.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()]);
+ }
+
+}
Copied:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/ToolsServerUICore.java
(from rev 8163,
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/as/wst/server/ui/ToolsServerUICore.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/ToolsServerUICore.java 2008-05-16
22:51:48 UTC (rev 8164)
@@ -0,0 +1,24 @@
+package org.jboss.tools.as.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/as/wst/server/ui/action
(from rev 8072,
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/action)
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/AbstractServerActionDelegate.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/action/AbstractServerActionDelegate.java 2008-05-14
02:47:59 UTC (rev 8072)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/AbstractServerActionDelegate.java 2008-05-16
22:51:48 UTC (rev 8164)
@@ -8,7 +8,7 @@
* Contributors:
* Exadel, Inc. and Red Hat, Inc. - initial API and implementation
******************************************************************************/
-package org.jboss.tools.wst.server.ui.action;
+package org.jboss.tools.as.wst.server.ui.action;
import java.util.HashMap;
import java.util.Map;
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/ChangeTimeStampActionDelegate.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/action/ChangeTimeStampActionDelegate.java 2008-05-14
02:47:59 UTC (rev 8072)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/ChangeTimeStampActionDelegate.java 2008-05-16
22:51:48 UTC (rev 8164)
@@ -8,7 +8,7 @@
* Contributors:
* Exadel, Inc. and Red Hat, Inc. - initial API and implementation
******************************************************************************/
-package org.jboss.tools.wst.server.ui.action;
+package org.jboss.tools.as.wst.server.ui.action;
import java.util.ArrayList;
import java.util.List;
Deleted:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/DebugServerActionDelegate.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/action/DebugServerActionDelegate.java 2008-05-14
02:47:59 UTC (rev 8072)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/DebugServerActionDelegate.java 2008-05-16
22:51:48 UTC (rev 8164)
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Exadel, Inc. and Red Hat, Inc.
- * Distributed under license by Red Hat, Inc. All rights reserved.
- * This program is made available under the terms of the
- * Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at
http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Exadel, Inc. and Red Hat, Inc. - initial API and implementation
- ******************************************************************************/
-package org.jboss.tools.wst.server.ui.action;
-
-import org.eclipse.debug.core.ILaunchManager;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.wst.server.core.IServer;
-
-public class DebugServerActionDelegate extends RunServerActionDelegate {
-
- protected String getLaunchMode() {
- return ILaunchManager.DEBUG_MODE;
- }
-
-
- protected String computeToolTip() {
- IServer selected = ServerManager.getInstance().getSelectedServer();
- String name = selected == null ? "" : selected.getName(); //$NON-NLS-1$
- if( selected.getServerState() == IServer.STATE_STARTED)
- return NLS.bind(ServerActionMessages.RESTART_IN_DEBUG_MODE, name);
- return NLS.bind(ServerActionMessages.START_IN_DEBUG_MODE, name); //$NON-NLS-2$
- }
-
-}
Copied:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/DebugServerActionDelegate.java
(from rev 8154,
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/action/DebugServerActionDelegate.java)
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/DebugServerActionDelegate.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/DebugServerActionDelegate.java 2008-05-16
22:51:48 UTC (rev 8164)
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Exadel, Inc. and Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at
http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Exadel, Inc. and Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.as.wst.server.ui.action;
+
+import org.eclipse.debug.core.ILaunchManager;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.wst.server.core.IServer;
+
+public class DebugServerActionDelegate extends RunServerActionDelegate {
+
+ protected String getLaunchMode() {
+ return ILaunchManager.DEBUG_MODE;
+ }
+
+
+ protected String computeToolTip() {
+ IServer selected = ServerManager.getInstance().getSelectedServer();
+ String name = selected == null ? "" : selected.getName(); //$NON-NLS-1$
+ if( selected != null && selected.getServerState() == IServer.STATE_STARTED)
+ return NLS.bind(ServerActionMessages.RESTART_IN_DEBUG_MODE, name);
+ return NLS.bind(ServerActionMessages.START_IN_DEBUG_MODE, name); //$NON-NLS-2$
+ }
+
+}
Deleted:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/RunServerActionDelegate.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/action/RunServerActionDelegate.java 2008-05-14
02:47:59 UTC (rev 8072)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/RunServerActionDelegate.java 2008-05-16
22:51:48 UTC (rev 8164)
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Exadel, Inc. and Red Hat, Inc.
- * Distributed under license by Red Hat, Inc. All rights reserved.
- * This program is made available under the terms of the
- * Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at
http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Exadel, Inc. and Red Hat, Inc. - initial API and implementation
- ******************************************************************************/
-package org.jboss.tools.wst.server.ui.action;
-
-import org.eclipse.debug.core.ILaunchManager;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.wst.server.core.IServer;
-import org.eclipse.wst.server.ui.internal.view.servers.StartAction;
-
-public class RunServerActionDelegate extends AbstractServerActionDelegate {
-
- private StartAction delegate;
- public void init(IWorkbenchWindow window) {
- super.init(window);
- update();
- }
-
- protected void doRun() {
- IServer server = ServerManager.getInstance().getSelectedServer();
- if(server == null)
- return;
- delegate = new StartAction(window.getShell(), getSelectionProvider(),
getLaunchMode());
- if( delegate.accept(server))
- delegate.perform(server);
- updateAll();
- }
-
- protected String getLaunchMode() {
- return ILaunchManager.RUN_MODE;
- }
-
- protected boolean isActionEnabled() {
- IServer selected = ServerManager.getInstance().getSelectedServer();
- return (selected != null
- && selected.getServerState() != IServer.STATE_STARTING);
- }
-
- protected String computeToolTip() {
- IServer selected = ServerManager.getInstance().getSelectedServer();
- String name = selected == null ? "" : selected.getName(); //$NON-NLS-1$
- if( selected.getServerState() == IServer.STATE_STARTED)
- return NLS.bind(ServerActionMessages.RESTART_IN_RUN_MODE, name);
- return NLS.bind(ServerActionMessages.START_IN_RUN_MODE, name);
- }
-}
Copied:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/RunServerActionDelegate.java
(from rev 8154,
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/action/RunServerActionDelegate.java)
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/RunServerActionDelegate.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/RunServerActionDelegate.java 2008-05-16
22:51:48 UTC (rev 8164)
@@ -0,0 +1,54 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Exadel, Inc. and Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at
http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Exadel, Inc. and Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.as.wst.server.ui.action;
+
+import org.eclipse.debug.core.ILaunchManager;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.wst.server.core.IServer;
+import org.eclipse.wst.server.ui.internal.view.servers.StartAction;
+
+public class RunServerActionDelegate extends AbstractServerActionDelegate {
+
+ private StartAction delegate;
+ public void init(IWorkbenchWindow window) {
+ super.init(window);
+ update();
+ }
+
+ protected void doRun() {
+ IServer server = ServerManager.getInstance().getSelectedServer();
+ if(server == null)
+ return;
+ delegate = new StartAction(window.getShell(), getSelectionProvider(),
getLaunchMode());
+ if( delegate.accept(server))
+ delegate.perform(server);
+ updateAll();
+ }
+
+ protected String getLaunchMode() {
+ return ILaunchManager.RUN_MODE;
+ }
+
+ protected boolean isActionEnabled() {
+ IServer selected = ServerManager.getInstance().getSelectedServer();
+ return (selected != null
+ && selected.getServerState() != IServer.STATE_STARTING);
+ }
+
+ protected String computeToolTip() {
+ IServer selected = ServerManager.getInstance().getSelectedServer();
+ String name = selected == null ? "" : selected.getName(); //$NON-NLS-1$
+ if( selected != null && selected.getServerState() == IServer.STATE_STARTED)
+ return NLS.bind(ServerActionMessages.RESTART_IN_RUN_MODE, name);
+ return NLS.bind(ServerActionMessages.START_IN_RUN_MODE, name);
+ }
+}
Deleted:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/SelectServerActionDelegate.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/action/SelectServerActionDelegate.java 2008-05-14
02:47:59 UTC (rev 8072)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/SelectServerActionDelegate.java 2008-05-16
22:51:48 UTC (rev 8164)
@@ -1,144 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 Exadel, Inc. and Red Hat, Inc.
- * Distributed under license by Red Hat, Inc. All rights reserved.
- * This program is made available under the terms of the
- * Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at
http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Exadel, Inc. and Red Hat, Inc. - initial API and implementation
- ******************************************************************************/
-package org.jboss.tools.wst.server.ui.action;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-
-import org.eclipse.jface.action.IAction;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.window.Window;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
-import org.eclipse.ui.IWorkbenchWindowPulldownDelegate;
-import org.eclipse.wst.server.core.IServer;
-import org.eclipse.wst.server.core.TaskModel;
-import org.eclipse.wst.server.ui.internal.ImageResource;
-import org.eclipse.wst.server.ui.internal.wizard.NewServerWizard;
-import org.jboss.ide.eclipse.as.ui.JBossServerUISharedImages;
-
-
-public class SelectServerActionDelegate extends AbstractServerActionDelegate
- implements IWorkbenchWindowPulldownDelegate {
-
- private ArrayList images = new ArrayList();
-
- protected void safeSelectionChanged(IAction action, ISelection selection) {
- this.action = action;
- update();
- }
-
- protected void update() {
- if (action == null) return;
- Display.getDefault().asyncExec(new Runnable() {
- public void run() {
- update0();
- }
- });
- }
-
- private void update0() {
- if(action == null) return;
- IServer server = ServerManager.getInstance().getSelectedServer();
- ImageDescriptor id = ImageResource.getImageDescriptor(server.getServerType().getId());
- action.setImageDescriptor(id);
- action.setText(null);
- action.setToolTipText(ServerActionMessages.SELECT_A_SERVER);
- }
-
- protected void doRun() {
- getMenu(window.getShell()).setVisible(true);
- }
-
- public void dispose() {
- action = null;
- }
-
- public Menu getMenu(Control parent) {
- cleanImages();
-
- Menu menu = new Menu(parent);
- IServer[] servers = ServerManager.getInstance().getServers();
- for (int i = 0; i < servers.length; i++) {
- createServerItem(menu, servers[i]);
- }
- new MenuItem(menu, SWT.SEPARATOR);
- createNewServerItem(menu);
- return menu;
- }
-
- // prevent memory leaks
- protected void cleanImages() {
- Iterator<Image> i = images.iterator();
- while(i.hasNext())
- ((Image)i.next()).dispose();
- images.clear();
- }
-
- private void createServerItem(Menu menu, final IServer server) {
- MenuItem item = new MenuItem(menu, SWT.RADIO);
- if(server == ServerManager.getInstance().getSelectedServer()) {
- item.setSelection(true);
- }
-
- item.addSelectionListener(new SelectionListener() {
- public void widgetSelected(SelectionEvent e) {
- ServerManager.getInstance().setSelectedServer(server.getId());
- update();
- }
-
- public void widgetDefaultSelected(SelectionEvent e) {
- widgetSelected(e);
- }
- });
- item.setText(server.getName());
- ImageDescriptor id = ImageResource.getImageDescriptor(server.getServerType().getId());
- Image i = id.createImage();
- images.add(i);
- item.setImage(i);
- }
-
- private void createNewServerItem(Menu menu) {
- MenuItem item = new MenuItem(menu, SWT.PUSH);
- item.setText("New server...");
- item.setImage(JBossServerUISharedImages.getImage(JBossServerUISharedImages.GENERIC_SERVER_IMAGE));
- item.addSelectionListener(new SelectionListener() {
- public void widgetSelected(SelectionEvent e) {
- newServer();
- }
-
- public void widgetDefaultSelected(SelectionEvent e) {
- newServer();
- widgetSelected(e);
- }
- });
- }
-
- private void newServer() {
- NewServerWizard wizard = new NewServerWizard();
- WizardDialog dialog = new WizardDialog(window.getShell(), wizard);
- if (dialog.open() != Window.CANCEL) {
- IServer server =
(IServer)wizard.getRootFragment().getTaskModel().getObject(TaskModel.TASK_SERVER);
- if(server != null) {
- ServerManager.getInstance().setSelectedServer(server.getId());
- update();
- }
- }
- }
-}
Copied:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/SelectServerActionDelegate.java
(from rev 8154,
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/action/SelectServerActionDelegate.java)
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/SelectServerActionDelegate.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/SelectServerActionDelegate.java 2008-05-16
22:51:48 UTC (rev 8164)
@@ -0,0 +1,146 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Exadel, Inc. and Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at
http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Exadel, Inc. and Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.as.wst.server.ui.action;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.window.Window;
+import org.eclipse.jface.wizard.WizardDialog;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.MenuItem;
+import org.eclipse.ui.IWorkbenchWindowPulldownDelegate;
+import org.eclipse.wst.server.core.IServer;
+import org.eclipse.wst.server.core.TaskModel;
+import org.eclipse.wst.server.ui.internal.ImageResource;
+import org.eclipse.wst.server.ui.internal.wizard.NewServerWizard;
+import org.jboss.ide.eclipse.as.ui.JBossServerUISharedImages;
+
+
+public class SelectServerActionDelegate extends AbstractServerActionDelegate
+ implements IWorkbenchWindowPulldownDelegate {
+
+ private ArrayList images = new ArrayList();
+
+ protected void safeSelectionChanged(IAction action, ISelection selection) {
+ this.action = action;
+ update();
+ }
+
+ protected void update() {
+ if (action == null) return;
+ Display.getDefault().asyncExec(new Runnable() {
+ public void run() {
+ update0();
+ }
+ });
+ }
+
+ private void update0() {
+ if(action == null) return;
+ IServer server = ServerManager.getInstance().getSelectedServer();
+ if( server != null ) {
+ ImageDescriptor id =
ImageResource.getImageDescriptor(server.getServerType().getId());
+ action.setImageDescriptor(id);
+ }
+ action.setText(null);
+ action.setToolTipText(ServerActionMessages.SELECT_A_SERVER);
+ }
+
+ protected void doRun() {
+ getMenu(window.getShell()).setVisible(true);
+ }
+
+ public void dispose() {
+ action = null;
+ }
+
+ public Menu getMenu(Control parent) {
+ cleanImages();
+
+ Menu menu = new Menu(parent);
+ IServer[] servers = ServerManager.getInstance().getServers();
+ for (int i = 0; i < servers.length; i++) {
+ createServerItem(menu, servers[i]);
+ }
+ new MenuItem(menu, SWT.SEPARATOR);
+ createNewServerItem(menu);
+ return menu;
+ }
+
+ // prevent memory leaks
+ protected void cleanImages() {
+ Iterator<Image> i = images.iterator();
+ while(i.hasNext())
+ ((Image)i.next()).dispose();
+ images.clear();
+ }
+
+ private void createServerItem(Menu menu, final IServer server) {
+ MenuItem item = new MenuItem(menu, SWT.RADIO);
+ if(server == ServerManager.getInstance().getSelectedServer()) {
+ item.setSelection(true);
+ }
+
+ item.addSelectionListener(new SelectionListener() {
+ public void widgetSelected(SelectionEvent e) {
+ ServerManager.getInstance().setSelectedServer(server.getId());
+ update();
+ }
+
+ public void widgetDefaultSelected(SelectionEvent e) {
+ widgetSelected(e);
+ }
+ });
+ item.setText(server.getName());
+ ImageDescriptor id = ImageResource.getImageDescriptor(server.getServerType().getId());
+ Image i = id.createImage();
+ images.add(i);
+ item.setImage(i);
+ }
+
+ private void createNewServerItem(Menu menu) {
+ MenuItem item = new MenuItem(menu, SWT.PUSH);
+ item.setText("New server...");
+ item.setImage(JBossServerUISharedImages.getImage(JBossServerUISharedImages.GENERIC_SERVER_IMAGE));
+ item.addSelectionListener(new SelectionListener() {
+ public void widgetSelected(SelectionEvent e) {
+ newServer();
+ }
+
+ public void widgetDefaultSelected(SelectionEvent e) {
+ newServer();
+ widgetSelected(e);
+ }
+ });
+ }
+
+ private void newServer() {
+ NewServerWizard wizard = new NewServerWizard();
+ WizardDialog dialog = new WizardDialog(window.getShell(), wizard);
+ if (dialog.open() != Window.CANCEL) {
+ IServer server =
(IServer)wizard.getRootFragment().getTaskModel().getObject(TaskModel.TASK_SERVER);
+ if(server != null) {
+ ServerManager.getInstance().setSelectedServer(server.getId());
+ update();
+ }
+ }
+ }
+}
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/ServerActionMessages.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/action/ServerActionMessages.java 2008-05-14
02:47:59 UTC (rev 8072)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/ServerActionMessages.java 2008-05-16
22:51:48 UTC (rev 8164)
@@ -1,9 +1,9 @@
-package org.jboss.tools.wst.server.ui.action;
+package org.jboss.tools.as.wst.server.ui.action;
import org.eclipse.osgi.util.NLS;
public class ServerActionMessages extends NLS {
- private static final String BUNDLE_NAME =
"org.jboss.tools.wst.server.ui.action.messages";
+ private static final String BUNDLE_NAME =
"org.jboss.tools.as.wst.server.ui.action.messages";
static {
// load message values from bundle file
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/ServerManager.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/action/ServerManager.java 2008-05-14
02:47:59 UTC (rev 8072)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/ServerManager.java 2008-05-16
22:51:48 UTC (rev 8164)
@@ -8,7 +8,7 @@
* Contributors:
* Exadel, Inc. and Red Hat, Inc. - initial API and implementation
******************************************************************************/
-package org.jboss.tools.wst.server.ui.action;
+package org.jboss.tools.as.wst.server.ui.action;
import java.util.ArrayList;
import java.util.List;
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/ServerManagerListener.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/action/ServerManagerListener.java 2008-05-14
02:47:59 UTC (rev 8072)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/ServerManagerListener.java 2008-05-16
22:51:48 UTC (rev 8164)
@@ -8,7 +8,7 @@
* Contributors:
* Exadel, Inc. and Red Hat, Inc. - initial API and implementation
******************************************************************************/
-package org.jboss.tools.wst.server.ui.action;
+package org.jboss.tools.as.wst.server.ui.action;
public interface ServerManagerListener {
public void serverManagerChanged();
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/StopServerActionDelegate.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/action/StopServerActionDelegate.java 2008-05-14
02:47:59 UTC (rev 8072)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/action/StopServerActionDelegate.java 2008-05-16
22:51:48 UTC (rev 8164)
@@ -8,7 +8,7 @@
* Contributors:
* Exadel, Inc. and Red Hat, Inc. - initial API and implementation
******************************************************************************/
-package org.jboss.tools.wst.server.ui.action;
+package org.jboss.tools.as.wst.server.ui.action;
import org.eclipse.osgi.util.NLS;
import org.eclipse.ui.IWorkbenchWindow;
Copied:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/views/server/ExtensionTableViewer.java
(from rev 8163,
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/as/wst/server/ui/views/server/ExtensionTableViewer.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/views/server/ExtensionTableViewer.java 2008-05-16
22:51:48 UTC (rev 8164)
@@ -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.as.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.as.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/as/wst/server/ui/views/server/JBossServerView.java
(from rev 8163,
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/as/wst/server/ui/views/server/JBossServerView.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/views/server/JBossServerView.java 2008-05-16
22:51:48 UTC (rev 8164)
@@ -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.as.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/as/wst/server/ui/views/server/ServerExtensionFrame.java
(from rev 8163,
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/as/wst/server/ui/views/server/ServerExtensionFrame.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/views/server/ServerExtensionFrame.java 2008-05-16
22:51:48 UTC (rev 8164)
@@ -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.as.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.as.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/as/wst/server/ui/views/server/ServerFrame.java
(from rev 8163,
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/as/wst/server/ui/views/server/ServerFrame.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/views/server/ServerFrame.java 2008-05-16
22:51:48 UTC (rev 8164)
@@ -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.as.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.as.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/as/wst/server/ui/views/server/ServerTableViewer.java
(from rev 8163,
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/as/wst/server/ui/views/server/ServerTableViewer.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/views/server/ServerTableViewer.java 2008-05-16
22:51:48 UTC (rev 8164)
@@ -0,0 +1,389 @@
+package org.jboss.tools.as.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/as/wst/server/ui/views/server/preferencepages
(from rev 8163,
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/wst/server/ui/views/server/preferencepages)
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/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/JBossServersPreferencePage.java 2008-05-16
22:09:23 UTC (rev 8163)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/views/server/preferencepages/JBossServersPreferencePage.java 2008-05-16
22:51:48 UTC (rev 8164)
@@ -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.tools.wst.server.ui.views.server.preferencepages;
+package org.jboss.tools.as.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/as/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/ViewPreferencePage.java 2008-05-16
22:09:23 UTC (rev 8163)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/views/server/preferencepages/ViewPreferencePage.java 2008-05-16
22:51:48 UTC (rev 8164)
@@ -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.tools.wst.server.ui.views.server.preferencepages;
+package org.jboss.tools.as.wst.server.ui.views.server.preferencepages;
import java.util.ArrayList;
import java.util.HashMap;
@@ -50,8 +50,8 @@
import org.eclipse.ui.part.PageBook;
import org.jboss.ide.eclipse.as.ui.Messages;
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;
+import org.jboss.tools.as.wst.server.ui.ToolsServerUICore;
+import org.jboss.tools.as.wst.server.ui.views.server.JBossServerView;
/**
*
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/views/server/preferencepages/ViewProviderPreferenceComposite.java
===================================================================
---
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)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/views/server/preferencepages/ViewProviderPreferenceComposite.java 2008-05-16
22:51:48 UTC (rev 8164)
@@ -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.tools.wst.server.ui.views.server.preferencepages;
+package org.jboss.tools.as.wst.server.ui.views.server.preferencepages;
import org.eclipse.swt.widgets.Composite;