[jboss-cvs] jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server ...
Robert Stryker
rawblem at gmail.com
Thu Nov 9 19:30:23 EST 2006
User: rawb
Date: 06/11/09 19:30:23
Added: as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server
TwiddlePollerListener.java JBossServerView.java
StrippedServerView.java ServerTableViewer.java
JBossServerTableViewer.java
Log:
Rewrote ui entirely
Revision Changes Path
1.1 date: 2006/11/10 00:30:23; author: rawb; state: Exp;jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/TwiddlePollerListener.java
Index: TwiddlePollerListener.java
===================================================================
package org.jboss.ide.eclipse.as.ui.views.server;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.MessageBox;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.wst.server.core.IServer;
import org.jboss.ide.eclipse.as.core.runtime.server.IServerPollerTimeoutListener;
import org.jboss.ide.eclipse.as.ui.JBossServerUIPlugin;
public class TwiddlePollerListener implements IServerPollerTimeoutListener {
public static final String key = "org.jboss.ide.eclipse.as.ui.preferencepages.TwiddlePollerListener";
public void serverTimedOut(IServer server, boolean expectedState) {
if( expectedState && firstEverTimeout()) {
IPreferenceStore store = JBossServerUIPlugin.getDefault().getPreferenceStore();
store.setValue(key, 2);
Display.getDefault().asyncExec(new Runnable() {
public void run() {
MessageBox box = new MessageBox(new Shell());
box.setMessage("The Poller has timed out");
box.setText("Twiddle Poller Timed Out");
box.open();
}
});
}
}
protected boolean firstEverTimeout() {
return true;
// IPreferenceStore store = JBossServerUIPlugin.getDefault().getPreferenceStore();
// int val = store.getInt(key);
// if( val == 2 ) return false;
// return true;
}
}
1.1 date: 2006/11/10 00:30:23; author: rawb; state: Exp;jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/JBossServerView.java
Index: JBossServerView.java
===================================================================
package org.jboss.ide.eclipse.as.ui.views.server;
import java.util.ArrayList;
import java.util.Arrays;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.debug.core.ILaunchConfiguration;
import org.eclipse.debug.ui.DebugUITools;
import org.eclipse.jface.action.Action;
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.ISelection;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.viewers.TreeSelection;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.SashForm;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.GridLayout;
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.ui.IMemento;
import org.eclipse.ui.IViewSite;
import org.eclipse.ui.IWorkbenchActionConstants;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.views.properties.IPropertySheetPage;
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.ServerUIPlugin;
import org.eclipse.wst.server.ui.internal.view.servers.ModuleServer;
import org.jboss.ide.eclipse.as.core.server.JBossServer;
import org.jboss.ide.eclipse.as.ui.JBossServerUISharedImages;
import org.jboss.ide.eclipse.as.ui.Messages;
import org.jboss.ide.eclipse.as.ui.dialogs.TwiddleDialog;
public class JBossServerView extends StrippedServerView {
private static final String TAG_SASHFORM_HEIGHT = "sashformHeight";
protected int[] sashRows; // For the sashform sashRows
protected SashForm form;
protected JBossServerTableViewer jbViewer;
protected Tree jbTreeTable;
protected Action refreshViewerAction, editLaunchConfigAction, twiddleAction, cloneServerAction;
public static JBossServerView instance;
public static JBossServerView getDefault() {
return instance;
}
public JBossServerView() {
super();
instance = this;
}
public JBossServerTableViewer getJBViewer() {
return jbViewer;
}
public void createPartControl(Composite parent) {
form = new SashForm(parent, SWT.VERTICAL);
form.setLayout(new FillLayout());
addServerViewer(form);
addSecondViewer(form);
form.setWeights(sashRows);
createActions();
addListeners();
doMenuStuff(parent);
}
private void addServerViewer(Composite form) {
Composite child1 = new Composite(form,SWT.NONE);
child1.setLayout(new GridLayout());
super.createPartControl(child1);
}
private void addSecondViewer(Composite form) {
Composite child2 = new Composite(form,SWT.NONE);
child2.setLayout(new FillLayout());
jbTreeTable = new Tree(child2, SWT.SINGLE | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
jbViewer = new JBossServerTableViewer(jbTreeTable);
getSite().setSelectionProvider(jbViewer);
}
public void createActions() {
refreshViewerAction = new Action() {
public void run() {
Display.getDefault().asyncExec(new Runnable() {
public void run() {
refresh();
}
});
}
};
refreshViewerAction.setText(Messages.RefreshViewerAction);
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) {
Trace.trace(Trace.SEVERE, "Could not create launch configuration", ce);
}
}
});
}
};
editLaunchConfigAction.setText(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);
dialog.open();
}
} );
}
};
twiddleAction.setText(Messages.TwiddleServerAction);
twiddleAction.setImageDescriptor(JBossServerUISharedImages.getImageDescriptor(JBossServerUISharedImages.TWIDDLE_IMAGE));
// cloneServerAction = new Action() {
// public void run() {
// Object selected = getSelectedElement();
// if( selected != null && selected instanceof JBossServer ) {
// final JBossServer server = (JBossServer)selected;
//
// // Show a wizard
// final ServerCloneWizard wizard = new ServerCloneWizard(server);
// WizardDialog dlg = new WizardDialog(Display.getDefault().getActiveShell(), wizard);
// int ret = dlg.open();
// if( ret == Window.OK ) {
//
//
// IRunnableWithProgress op = new IRunnableWithProgress() {
//
// public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
// try {
// int filesWork = wizard.getSelectedFiles().length;
// int totalWork = filesWork + 1 + 50;
// monitor.beginTask("Cloning Server", totalWork);
//
// // clone the directories
// File[] files = wizard.getSelectedFiles();
// String config = wizard.getConfig();
// ServerCloneUtil.directoriesClone(files, config, server, new SubProgressMonitor(monitor, filesWork+1));
//
// // clone the wst server
// ServerCloneUtil.wstServerClone(server, wizard.getName(), wizard.getConfig(),
// new SubProgressMonitor(monitor, 50));
//
// monitor.done();
// } catch( Exception e ) {
// e.printStackTrace();
// }
// }
//
// };
// try {
// new ProgressMonitorDialog(Display.getDefault().getActiveShell()).run(true, true, op);
// } catch( Exception e) {
// e.printStackTrace();
// }
// }
// }
// }
// };
// cloneServerAction.setText(Messages.CloneServerAction);
}
protected void refresh() {
tableViewer.refresh(); // should auto-refresh the other
}
// for superclass, for the top viewer
protected void fillContextMenu(Shell shell, IMenuManager menu) {
menu.add(newServerAction);
menu.add(new Separator());
menu.add(actions[1]);
menu.add(actions[0]);
menu.add(actions[4]);
menu.add(actions[5]);
menu.add(new Separator());
menu.add(twiddleAction);
menu.add(editLaunchConfigAction);
menu.add(actions[6]);
menu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
boolean twiddleEnabled = getSelectedServer().getServerState() == IServer.STATE_STARTED;
twiddleAction.setEnabled(twiddleEnabled);
}
public IServer getSelectedServer() {
return (IServer)jbViewer.getInput();
}
public void refreshJBTree(Object obj) {
final Object obj2 = obj;
Display.getDefault().asyncExec(new Runnable() {
public void run() {
try {
// If it's null, refresh the whole thing
if( obj2 == null ) {
Object[] expanded = JBossServerView.this.jbViewer.getExpandedElements();
JBossServerView.this.jbViewer.refresh();
JBossServerView.this.jbViewer.setExpandedElements(expanded);
} else {
Object[] expanded = JBossServerView.this.jbViewer.getExpandedElements();
JBossServerView.this.jbViewer.refresh(obj2);
JBossServerView.this.jbViewer.setExpandedElements(expanded);
}
} catch (Exception e) {
// ignore
}
}
});
}
public void addListeners() {
/*
* Handles the selection of the server viewer which is embedded in my sashform
*/
tableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
public void selectionChanged(SelectionChangedEvent event) {
Object current = jbViewer.getInput();
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()) {
jbViewer.setInput(server);
jbViewer.expandToLevel(2);
} else {
// This is entirely too cludgy but it works
ISelection sel = jbViewer.getSelection();
Object[] expanded = jbViewer.getExpandedElements();
jbViewer.setInput(server);
jbViewer.expandToLevel(2);
Object[] alsoExpanded = jbViewer.getExpandedElements();
ArrayList tmp = new ArrayList();
tmp.addAll(Arrays.asList(expanded));
tmp.addAll(Arrays.asList(alsoExpanded));
jbViewer.setExpandedElements(tmp.toArray());
jbViewer.setSelection(sel);
}
}
});
}
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);
}
/**
* Save / Load some state (width / height of boxes)
*/
public void init(IViewSite site, IMemento memento) throws PartInitException {
super.init(site, memento);
ServerUIPlugin.getPreferences().setShowOnActivity(false);
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 Object getAdapter(Class adaptor) {
if( adaptor == IPropertySheetPage.class) {
return jbViewer.getPropertySheet();
}
return super.getAdapter(adaptor);
}
public void dispose() {
super.dispose();
jbViewer.dispose();
}
}
1.1 date: 2006/11/10 00:30:23; author: rawb; state: Exp;jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/StrippedServerView.java
Index: StrippedServerView.java
===================================================================
package org.jboss.ide.eclipse.as.ui.views.server;
import org.eclipse.debug.core.ILaunchManager;
import org.eclipse.debug.ui.IDebugUIConstants;
import org.eclipse.debug.ui.IDebugView;
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.viewers.ISelectionProvider;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.GridData;
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.IMemento;
import org.eclipse.ui.IViewSite;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.part.ViewPart;
import org.eclipse.wst.server.core.IServer;
import org.eclipse.wst.server.core.internal.Trace;
import org.eclipse.wst.server.ui.internal.ContextIds;
import org.eclipse.wst.server.ui.internal.ImageResource;
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.ModuleSloshAction;
import org.eclipse.wst.server.ui.internal.view.servers.PublishAction;
import org.eclipse.wst.server.ui.internal.view.servers.RestartAction;
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.ui.JBossServerUISharedImages;
import org.jboss.ide.eclipse.as.ui.dialogs.TwiddleDialog;
public class StrippedServerView extends ViewPart {
private static final String TAG_COLUMN_WIDTH = "columnWidth";
protected int[] cols;
protected Tree treeTable;
protected ServerTableViewer tableViewer;
// actions on a server
protected Action[] actions;
protected MenuManager restartMenu;
protected Action newServerAction, twiddleAction;
/**
* ServersView constructor comment.
*/
public StrippedServerView() {
super();
}
/**
* createPartControl method comment.
*
* @param parent a parent composite
*/
public void createPartControl(Composite parent) {
treeTable = new Tree(parent, SWT.SINGLE | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL | SWT.NONE);
treeTable.setHeaderVisible(true);
treeTable.setLinesVisible(false);
treeTable.setLayoutData(new GridData(GridData.FILL_BOTH));
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.viewStatus);
column2.setWidth(cols[1]);
// TreeColumn column3 = new TreeColumn(treeTable, SWT.SINGLE);
// column3.setText(Messages.viewSync);
// column3.setWidth(cols[2]);
tableViewer = new ServerTableViewer(this, treeTable);
initializeActions(tableViewer);
treeTable.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent event) {
try {
} catch (Exception e) {
getViewSite().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);
getSite().registerContextMenu(menuManager, tableViewer);
getSite().setSelectionProvider(tableViewer);
}
public void init(IViewSite site, IMemento memento) throws PartInitException {
super.init(site, memento);
cols = new int[2];
for (int i = 0; i < 2; i++) {
cols[i] = 100;
if (memento != null) {
Integer in = memento.getInteger(TAG_COLUMN_WIDTH + i);
if (in != null && in.intValue() > 5)
cols[i] = in.intValue();
}
}
}
public void saveState(IMemento memento) {
TreeColumn[] tc = treeTable.getColumns();
for (int i = 0; i < 2; i++) {
int width = tc[i].getWidth();
if (width != 0)
memento.putInteger(TAG_COLUMN_WIDTH + i, width);
}
}
protected void selectServerProcess(Object process) {
IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow() ;
if (window != null) {
IWorkbenchPage page = window.getActivePage();
if (page != null) {
IWorkbenchPart part = page.findView(IDebugUIConstants.ID_DEBUG_VIEW);
if (part != null) {
IDebugView view = (IDebugView)part.getAdapter(IDebugView.class);
if (view != null) {
Viewer viewer = view.getViewer();
if (viewer != null) {
viewer.setSelection(new StructuredSelection(process));
}
}
}
}
}
}
/**
* Initialize actions
*
* @param provider a selection provider
*/
public void initializeActions(ISelectionProvider provider) {
Shell shell = getSite().getShell();
// create the debug action
Action debugAction = new StartAction(shell, provider, "debug", ILaunchManager.DEBUG_MODE);
debugAction.setToolTipText(Messages.actionDebugToolTip);
debugAction.setText(Messages.actionDebug);
debugAction.setImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_ELCL_START_DEBUG));
debugAction.setHoverImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_CLCL_START_DEBUG));
debugAction.setDisabledImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_DLCL_START_DEBUG));
// create the start action
Action runAction = new StartAction(shell, provider, "start", ILaunchManager.RUN_MODE);
runAction.setToolTipText(Messages.actionStartToolTip);
runAction.setText(Messages.actionStart);
runAction.setImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_ELCL_START));
runAction.setHoverImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_CLCL_START));
runAction.setDisabledImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_DLCL_START));
// create the profile action
Action profileAction = new StartAction(shell, provider, "profile", ILaunchManager.PROFILE_MODE);
profileAction.setToolTipText(Messages.actionProfileToolTip);
profileAction.setText(Messages.actionProfile);
profileAction.setImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_ELCL_START_PROFILE));
profileAction.setHoverImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_CLCL_START_PROFILE));
profileAction.setDisabledImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_DLCL_START_PROFILE));
// create the restart menu
restartMenu = new MenuManager(Messages.actionRestart);
Action restartAction = new RestartAction(shell, provider, "restartDebug", ILaunchManager.DEBUG_MODE);
restartAction.setToolTipText(Messages.actionDebugToolTip);
restartAction.setText(Messages.actionDebug);
restartAction.setImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_ELCL_START_DEBUG));
restartAction.setHoverImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_CLCL_START_DEBUG));
restartAction.setDisabledImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_DLCL_START_DEBUG));
restartMenu.add(restartAction);
restartAction = new RestartAction(shell, provider, "restartRun", ILaunchManager.RUN_MODE);
restartAction.setToolTipText(Messages.actionRestartToolTip);
restartAction.setText(Messages.actionStart);
restartAction.setImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_ELCL_START));
restartAction.setHoverImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_CLCL_START));
restartAction.setDisabledImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_DLCL_START));
restartMenu.add(restartAction);
restartAction = new RestartAction(shell, provider, "restartProfile", ILaunchManager.PROFILE_MODE);
restartAction.setToolTipText(Messages.actionRestartToolTip);
restartAction.setText(Messages.actionProfile);
restartAction.setImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_ELCL_START_PROFILE));
restartAction.setHoverImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_CLCL_START_PROFILE));
restartAction.setDisabledImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_DLCL_START_PROFILE));
restartMenu.add(restartAction);
// create the restart action
restartAction = new RestartAction(shell, provider, "restart");
restartAction.setToolTipText(Messages.actionRestartToolTip);
restartAction.setText(Messages.actionRestart);
restartAction.setImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_ELCL_RESTART));
restartAction.setHoverImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_CLCL_RESTART));
restartAction.setDisabledImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_DLCL_RESTART));
// create the stop action
Action stopAction = new StopAction(shell, provider, "stop");
stopAction.setToolTipText(Messages.actionStopToolTip);
stopAction.setText(Messages.actionStop);
stopAction.setImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_ELCL_STOP));
stopAction.setHoverImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_CLCL_STOP));
stopAction.setDisabledImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_DLCL_STOP));
// create the publish action
Action publishAction = new PublishAction(shell, provider, "publish");
publishAction.setToolTipText(Messages.actionPublishToolTip);
publishAction.setText(Messages.actionPublish);
publishAction.setImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_ELCL_PUBLISH));
publishAction.setHoverImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_CLCL_PUBLISH));
publishAction.setDisabledImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_DLCL_PUBLISH));
// create the module slosh dialog action
Action addModuleAction = new ModuleSloshAction(shell, provider, "modules");
addModuleAction.setToolTipText(Messages.actionModifyModulesToolTip);
addModuleAction.setText(Messages.actionModifyModules);
addModuleAction.setImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_ETOOL_MODIFY_MODULES));
addModuleAction.setHoverImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_CTOOL_MODIFY_MODULES));
addModuleAction.setDisabledImageDescriptor(ImageResource.getImageDescriptor(ImageResource.IMG_DTOOL_MODIFY_MODULES));
actions = new Action[7];
actions[0] = debugAction;
actions[1] = runAction;
actions[2] = profileAction;
actions[3] = restartAction;
actions[4] = stopAction;
actions[5] = publishAction;
actions[6] = addModuleAction;
// add toolbar buttons
IContributionManager cm = getViewSite().getActionBars().getToolBarManager();
for (int i = 0; i < actions.length - 1; i++) {
cm.add(actions[i]);
}
newServerAction = new Action() {
public void run() {
IAction newServerAction = new NewServerWizardAction();
newServerAction.run();
}
};
newServerAction.setText("New Server");
newServerAction.setImageDescriptor(JBossServerUISharedImages.getImageDescriptor(JBossServerUISharedImages.GENERIC_SERVER_IMAGE));
twiddleAction = new Action() {
public void run() {
Display.getDefault().asyncExec(new Runnable() {
public void run() {
TwiddleDialog dialog = new TwiddleDialog(tableViewer.getTree().getShell(),
(IStructuredSelection)tableViewer.getSelection());
dialog.open();
}
} );
}
};
twiddleAction.setText("Twiddle Server");
twiddleAction.setImageDescriptor(JBossServerUISharedImages.getImageDescriptor(JBossServerUISharedImages.TWIDDLE_IMAGE));
}
protected void fillContextMenu(Shell shell, IMenuManager menu) {
}
/**
*
*/
public void setFocus() {
if (treeTable != null)
treeTable.setFocus();
}
}
1.1 date: 2006/11/10 00:30:23; author: rawb; state: Exp;jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/ServerTableViewer.java
Index: ServerTableViewer.java
===================================================================
package org.jboss.ide.eclipse.as.ui.views.server;
/*******************************************************************************
* 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.action.IMenuManager;
import org.eclipse.jface.action.Separator;
import org.eclipse.jface.viewers.ILabelProviderListener;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.jface.viewers.IStructuredSelection;
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.events.DisposeEvent;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.ui.IActionBars;
import org.eclipse.ui.actions.ActionFactory;
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.ServerAction;
import org.eclipse.wst.server.ui.internal.view.servers.ServerActionHelper;
import org.eclipse.wst.server.ui.internal.view.servers.ServerTableLabelProvider;
import org.jboss.ide.eclipse.as.core.server.JBossServer;
/**
* Tree view showing servers and their associations.
* This is for the TOP window
*/
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 ISelectionListener dsListener;
protected StrippedServerView view;
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 JBossServerCore.getIServerJBossServers();
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 StrippedServerView view, final Tree tree) {
super(tree);
this.view = view;
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();
IActionBars actionBars = view.getViewSite().getActionBars();
actionBars.setGlobalActionHandler(ActionFactory.DELETE.getId(), new ServerAction(getControl().getShell(), this, "Delete it!", ServerActionHelper.ACTION_DELETE));
}
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);
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);
}
}
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);
view.getViewSite().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);
}
});
}
}
1.1 date: 2006/11/10 00:30:23; author: rawb; state: Exp;jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/JBossServerTableViewer.java
Index: JBossServerTableViewer.java
===================================================================
package org.jboss.ide.eclipse.as.ui.views.server;
import java.util.ArrayList;
import java.util.Properties;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.debug.core.ILaunchConfiguration;
import org.eclipse.debug.ui.DebugUITools;
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.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.core.internal.Server;
import org.eclipse.wst.server.core.internal.Trace;
import org.eclipse.wst.server.ui.ServerUICore;
import org.jboss.ide.eclipse.as.core.JBossServerCore;
import org.jboss.ide.eclipse.as.core.server.JBossServer;
import org.jboss.ide.eclipse.as.ui.JBossServerUIPlugin;
import org.jboss.ide.eclipse.as.ui.JBossServerUISharedImages;
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;
public class JBossServerTableViewer extends TreeViewer {
protected TableViewerPropertySheet propertySheet;
protected Action disableCategoryAction;
public JBossServerTableViewer(Tree tree) {
super(tree);
setContentProvider(new ContentProviderDelegator());
setLabelProvider(new LabelProviderDelegator());
propertySheet = new TableViewerPropertySheet();
createActions();
ServerCore.addServerLifecycleListener(new IServerLifecycleListener() {
public void serverAdded(IServer server) {
}
public void serverChanged(IServer server) {
}
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);
}
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 ) {
return ((ContentWrapper)other).getElement().equals(o);
}
return false;
}
public int 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 ) {
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];
return JBossServerUIPlugin.getDefault().getEnabledViewProviders();
}
public Object[] getChildren(Object parentElement) {
try {
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) {
}
if( o == null )
return new Object[0];
return wrap(o, parentWrapper.getProvider());
}
} catch( Exception e ) { e.printStackTrace(); }
return new Object[0];
}
public Object getParent(Object element) {
return null;
}
public boolean hasChildren(Object element) {
return getChildren(element).length > 0 ? true : false;
}
public void dispose() {
}
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
ServerViewProvider[] providers = JBossServerUIPlugin.getDefault().getEnabledViewProviders();
for( int i = 0; i < providers.length; i++ ) {
try {
providers[i].getDelegate().getContentProvider().inputChanged(viewer, oldInput, newInput);
} catch( Exception e) {
e.printStackTrace();
}
}
}
}
public Object getRawElement(Object o) {
if( o instanceof ContentWrapper )
return ((ContentWrapper)o).getElement();
return o;
}
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 ) {
Object selected = ((IStructuredSelection)sel).getFirstElement();
if( selected != null ) {
ServerViewProvider provider;
if( selected instanceof ServerViewProvider ) {
provider = (ServerViewProvider)selected;
} else {
provider = getParentViewProvider(selected);
}
if( provider != null )
provider.getDelegate().fillContextMenu(shell, mgr, getRawElement(selected));
}
}
}
protected void fillJBContextMenu(Shell shell, IMenuManager menu) {
Object selected = getSelectedElement();
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 addedControls = new ArrayList();
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);
}
if( page == null ) {
page = topLevelPropertiesPage;
}
page.selectionChanged(part, sel);
book.showPage(page.getControl());
}
}
private IPropertySheetPage getDelegatePage(ContentWrapper wrapper) {
ServerViewProvider provider = wrapper.getProvider();
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();
}
}
}
More information about the jboss-cvs-commits
mailing list