diff options
author | Greg Watson | 2009-08-12 21:44:28 +0000 |
---|---|---|
committer | Greg Watson | 2009-08-12 21:44:28 +0000 |
commit | e72fc26695a919489bf1a67eb50d591678d160d8 (patch) | |
tree | d3a42f8f61b7d24839afd9d7438ce545873e11d9 /core/org.eclipse.ptp.services.ui/src/org | |
parent | 82dca4ad530e8f7d1e327242d503dade070c4d25 (diff) | |
download | org.eclipse.ptp-e72fc26695a919489bf1a67eb50d591678d160d8.tar.gz org.eclipse.ptp-e72fc26695a919489bf1a67eb50d591678d160d8.tar.xz org.eclipse.ptp-e72fc26695a919489bf1a67eb50d591678d160d8.zip |
Added context menu actions.
Diffstat (limited to 'core/org.eclipse.ptp.services.ui/src/org')
9 files changed, 310 insertions, 211 deletions
diff --git a/core/org.eclipse.ptp.services.ui/src/org/eclipse/ptp/services/internal/ui/actions/AddServiceConfigurationAction.java b/core/org.eclipse.ptp.services.ui/src/org/eclipse/ptp/services/internal/ui/actions/AddServiceConfigurationAction.java new file mode 100644 index 000000000..be74bf4c3 --- /dev/null +++ b/core/org.eclipse.ptp.services.ui/src/org/eclipse/ptp/services/internal/ui/actions/AddServiceConfigurationAction.java @@ -0,0 +1,59 @@ +/** + * Copyright (c) 2009 IBM Corporation. + * 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 Implementation + * + */ +package org.eclipse.ptp.services.internal.ui.actions; + +import org.eclipse.jface.action.IAction; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.ptp.services.core.IServiceConfiguration; +import org.eclipse.ptp.services.core.IServiceModelManager; +import org.eclipse.ptp.services.core.ServiceModelManager; +import org.eclipse.ui.IViewActionDelegate; +import org.eclipse.ui.IViewPart; +import org.eclipse.ui.IWorkbenchPart; + +public class AddServiceConfigurationAction implements IViewActionDelegate { + + private IServiceModelManager fManager = ServiceModelManager.getInstance(); + private IServiceConfiguration fConfiguration = null; + + /* (non-Javadoc) + * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction) + */ + public void run(IAction action) { + } + + /* (non-Javadoc) + * @see org.eclipse.ui.IActionDelegate#selectionChanged(org.eclipse.jface.action.IAction, org.eclipse.jface.viewers.ISelection) + */ + public void selectionChanged(IAction action, ISelection selection) { + IStructuredSelection structSel = (IStructuredSelection)selection; + if (structSel.size() == 1) { + Object selected = structSel.getFirstElement(); + if (selected instanceof IServiceConfiguration) { + fConfiguration = (IServiceConfiguration)selected; + } + } + } + + /* (non-Javadoc) + * @see org.eclipse.ui.IObjectActionDelegate#setActivePart(org.eclipse.jface.action.IAction, org.eclipse.ui.IWorkbenchPart) + */ + public void setActivePart(IAction action, IWorkbenchPart targetPart) { + // Nothing + } + + public void init(IViewPart view) { + // TODO Auto-generated method stub + + } +} diff --git a/core/org.eclipse.ptp.services.ui/src/org/eclipse/ptp/services/internal/ui/actions/EditServiceConfigurationAction.java b/core/org.eclipse.ptp.services.ui/src/org/eclipse/ptp/services/internal/ui/actions/EditServiceConfigurationAction.java new file mode 100644 index 000000000..9e6a98f2d --- /dev/null +++ b/core/org.eclipse.ptp.services.ui/src/org/eclipse/ptp/services/internal/ui/actions/EditServiceConfigurationAction.java @@ -0,0 +1,53 @@ +/** + * Copyright (c) 2009 IBM Corporation. + * 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 Implementation + * + */ +package org.eclipse.ptp.services.internal.ui.actions; + +import org.eclipse.jface.action.IAction; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.ptp.services.core.IServiceConfiguration; +import org.eclipse.ptp.services.core.IServiceModelManager; +import org.eclipse.ptp.services.core.ServiceModelManager; +import org.eclipse.ui.IObjectActionDelegate; +import org.eclipse.ui.IWorkbenchPart; + +public class EditServiceConfigurationAction implements IObjectActionDelegate { + + private IServiceModelManager fManager = ServiceModelManager.getInstance(); + private IServiceConfiguration fConfiguration = null; + + /* (non-Javadoc) + * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction) + */ + public void run(IAction action) { + } + + /* (non-Javadoc) + * @see org.eclipse.ui.IActionDelegate#selectionChanged(org.eclipse.jface.action.IAction, org.eclipse.jface.viewers.ISelection) + */ + public void selectionChanged(IAction action, ISelection selection) { + IStructuredSelection structSel = (IStructuredSelection)selection; + if (structSel.size() == 1) { + Object selected = structSel.getFirstElement(); + if (selected instanceof IServiceConfiguration) { + fConfiguration = (IServiceConfiguration)selected; + } + } + } + + /* (non-Javadoc) + * @see org.eclipse.ui.IObjectActionDelegate#setActivePart(org.eclipse.jface.action.IAction, org.eclipse.ui.IWorkbenchPart) + */ + public void setActivePart(IAction action, IWorkbenchPart targetPart) { + // Nothing + } +} diff --git a/core/org.eclipse.ptp.services.ui/src/org/eclipse/ptp/services/internal/ui/actions/RemoveServiceConfigurationAction.java b/core/org.eclipse.ptp.services.ui/src/org/eclipse/ptp/services/internal/ui/actions/RemoveServiceConfigurationAction.java new file mode 100644 index 000000000..aa41ff880 --- /dev/null +++ b/core/org.eclipse.ptp.services.ui/src/org/eclipse/ptp/services/internal/ui/actions/RemoveServiceConfigurationAction.java @@ -0,0 +1,77 @@ +/** + * Copyright (c) 2009 IBM Corporation. + * 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 Implementation + * + */ +package org.eclipse.ptp.services.internal.ui.actions; + +import java.util.ArrayList; +import java.util.List; + +import org.eclipse.jface.action.IAction; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.ptp.services.core.IServiceConfiguration; +import org.eclipse.ptp.services.core.IServiceModelManager; +import org.eclipse.ptp.services.core.ServiceModelManager; +import org.eclipse.ptp.services.ui.messages.Messages; +import org.eclipse.ui.IObjectActionDelegate; +import org.eclipse.ui.IWorkbenchPart; + +public class RemoveServiceConfigurationAction implements IObjectActionDelegate { + + private IServiceModelManager fManager = ServiceModelManager.getInstance(); + private List<IServiceConfiguration> fConfigurations = new ArrayList<IServiceConfiguration>(); + private IWorkbenchPart fWorkbenchPart; + + /* (non-Javadoc) + * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction) + */ + public void run(IAction action) { + String names = ""; //$NON-NLS-1$ + for (int i = 0; i < fConfigurations.size(); i++) { + if (i > 0) { + names += ", "; //$NON-NLS-1$ + } + names += "\n\t" + fConfigurations.get(i).getName(); //$NON-NLS-1$ + } + + boolean remove = MessageDialog.openConfirm(fWorkbenchPart.getSite().getShell(), + Messages.RemoveServiceConfigurationAction_0, + Messages.RemoveServiceConfigurationAction_1 + + names); + + if (remove) { + for (IServiceConfiguration conf : fConfigurations) { + fManager.remove(conf); + } + } + } + + /* (non-Javadoc) + * @see org.eclipse.ui.IActionDelegate#selectionChanged(org.eclipse.jface.action.IAction, org.eclipse.jface.viewers.ISelection) + */ + public void selectionChanged(IAction action, ISelection selection) { + fConfigurations.clear(); + IStructuredSelection structSel = (IStructuredSelection)selection; + for (Object selected : structSel.toArray()) { + if (selected instanceof IServiceConfiguration) { + fConfigurations.add((IServiceConfiguration)selected); + } + } + } + + /* (non-Javadoc) + * @see org.eclipse.ui.IObjectActionDelegate#setActivePart(org.eclipse.jface.action.IAction, org.eclipse.ui.IWorkbenchPart) + */ + public void setActivePart(IAction action, IWorkbenchPart targetPart) { + fWorkbenchPart = targetPart; + } +} diff --git a/core/org.eclipse.ptp.services.ui/src/org/eclipse/ptp/services/internal/ui/actions/SelectActiveServiceConfigurationAction.java b/core/org.eclipse.ptp.services.ui/src/org/eclipse/ptp/services/internal/ui/actions/SelectActiveServiceConfigurationAction.java new file mode 100644 index 000000000..bda7a4c2f --- /dev/null +++ b/core/org.eclipse.ptp.services.ui/src/org/eclipse/ptp/services/internal/ui/actions/SelectActiveServiceConfigurationAction.java @@ -0,0 +1,54 @@ +/** + * Copyright (c) 2009 IBM Corporation. + * 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 Implementation + * + */ +package org.eclipse.ptp.services.internal.ui.actions; + +import org.eclipse.jface.action.IAction; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.ptp.services.core.IServiceConfiguration; +import org.eclipse.ptp.services.core.IServiceModelManager; +import org.eclipse.ptp.services.core.ServiceModelManager; +import org.eclipse.ui.IObjectActionDelegate; +import org.eclipse.ui.IWorkbenchPart; + +public class SelectActiveServiceConfigurationAction implements IObjectActionDelegate { + + private IServiceModelManager fManager = ServiceModelManager.getInstance(); + private IServiceConfiguration fConfiguration = null; + + /* (non-Javadoc) + * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction) + */ + public void run(IAction action) { + fManager.setActiveConfiguration(fConfiguration); + } + + /* (non-Javadoc) + * @see org.eclipse.ui.IActionDelegate#selectionChanged(org.eclipse.jface.action.IAction, org.eclipse.jface.viewers.ISelection) + */ + public void selectionChanged(IAction action, ISelection selection) { + IStructuredSelection structSel = (IStructuredSelection)selection; + if (structSel.size() == 1) { + Object selected = structSel.getFirstElement(); + if (selected instanceof IServiceConfiguration) { + fConfiguration = (IServiceConfiguration)selected; + } + } + } + + /* (non-Javadoc) + * @see org.eclipse.ui.IObjectActionDelegate#setActivePart(org.eclipse.jface.action.IAction, org.eclipse.ui.IWorkbenchPart) + */ + public void setActivePart(IAction action, IWorkbenchPart targetPart) { + // Nothing + } +} diff --git a/core/org.eclipse.ptp.services.ui/src/org/eclipse/ptp/services/internal/ui/adapters/ServiceConfigurationWorkbenchAdapter.java b/core/org.eclipse.ptp.services.ui/src/org/eclipse/ptp/services/internal/ui/adapters/ServiceConfigurationWorkbenchAdapter.java index aaf328c81..d5aae050e 100644 --- a/core/org.eclipse.ptp.services.ui/src/org/eclipse/ptp/services/internal/ui/adapters/ServiceConfigurationWorkbenchAdapter.java +++ b/core/org.eclipse.ptp.services.ui/src/org/eclipse/ptp/services/internal/ui/adapters/ServiceConfigurationWorkbenchAdapter.java @@ -19,58 +19,10 @@ import org.eclipse.ptp.services.core.IService; import org.eclipse.ptp.services.core.IServiceConfiguration; import org.eclipse.ptp.services.core.IServiceProvider; import org.eclipse.ptp.services.core.ServiceModelManager; -import org.eclipse.ui.model.IWorkbenchAdapter; -import org.eclipse.ui.model.IWorkbenchAdapter2; import org.eclipse.ui.model.WorkbenchAdapter; public class ServiceConfigurationWorkbenchAdapter extends WorkbenchAdapter { - private class ChildContainer extends WorkbenchAdapter implements IAdaptable { - - private final Object parent; - - private final String name; - - private final Object[] children; - - public ChildContainer(Object parent, String name, Object[] children) { - this.parent = parent; - this.name = name; - this.children = children; - } - - public Object getAdapter(@SuppressWarnings("unchecked") Class adapter) { - if (adapter == IWorkbenchAdapter.class || adapter == IWorkbenchAdapter2.class) { - return this; - } - return null; - } - - /* (non-Javadoc) - * @see org.eclipse.ui.model.WorkbenchAdapter#getChildren(java.lang.Object) - */ - @Override - public Object[] getChildren(Object object) { - return children.clone(); - } - - /* (non-Javadoc) - * @see org.eclipse.ui.model.WorkbenchAdapter#getLabel(java.lang.Object) - */ - @Override - public String getLabel(Object object) { - return name; - } - - /* (non-Javadoc) - * @see org.eclipse.ui.model.WorkbenchAdapter#getParent(java.lang.Object) - */ - @Override - public Object getParent(Object object) { - return parent; - } - } - /* (non-Javadoc) * @see org.eclipse.ui.model.WorkbenchAdapter#getChildren(java.lang.Object) */ @@ -125,12 +77,4 @@ public class ServiceConfigurationWorkbenchAdapter extends WorkbenchAdapter { public Object getParent(Object object) { return ServiceModelManager.getInstance(); } - - private ChildContainer makeChildContainer(Object parent, String name, - final Object[] children) { - final ChildContainer container = new ChildContainer(parent, name, - children); - return container; - } - } diff --git a/core/org.eclipse.ptp.services.ui/src/org/eclipse/ptp/services/internal/ui/adapters/ServiceProviderWorkbenchAdapter.java b/core/org.eclipse.ptp.services.ui/src/org/eclipse/ptp/services/internal/ui/adapters/ServiceProviderWorkbenchAdapter.java index b2e3871f2..dac115b4e 100644 --- a/core/org.eclipse.ptp.services.ui/src/org/eclipse/ptp/services/internal/ui/adapters/ServiceProviderWorkbenchAdapter.java +++ b/core/org.eclipse.ptp.services.ui/src/org/eclipse/ptp/services/internal/ui/adapters/ServiceProviderWorkbenchAdapter.java @@ -10,27 +10,20 @@ *******************************************************************************/ package org.eclipse.ptp.services.internal.ui.adapters; -import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.ptp.services.core.IServiceModelManager; import org.eclipse.ptp.services.core.IServiceProvider; +import org.eclipse.ptp.services.core.ServiceModelManager; import org.eclipse.ui.model.WorkbenchAdapter; public class ServiceProviderWorkbenchAdapter extends WorkbenchAdapter { - - /* (non-Javadoc) - * @see org.eclipse.ui.model.WorkbenchAdapter#getImageDescriptor(java.lang.Object) - */ - @Override - public ImageDescriptor getImageDescriptor(Object object) { -// IPMachine machine = (IPMachine) object; -// return new ImageImageDescriptor(ParallelImages.machineImages[machine.getState().ordinal()]); - return null; - } + private IServiceModelManager fManager = ServiceModelManager.getInstance(); /* (non-Javadoc) * @see org.eclipse.ui.model.WorkbenchAdapter#getLabel(java.lang.Object) */ @Override public String getLabel(Object object) { - return ((IServiceProvider)object).getName(); + IServiceProvider provider = (IServiceProvider)object; + return provider.getName() + " (" + fManager.getService(provider.getServiceId()).getName() + " Service)"; //$NON-NLS-1$ //$NON-NLS-2$ } } diff --git a/core/org.eclipse.ptp.services.ui/src/org/eclipse/ptp/services/ui/messages/Messages.java b/core/org.eclipse.ptp.services.ui/src/org/eclipse/ptp/services/ui/messages/Messages.java index f61f73fc9..47b6bfb29 100644 --- a/core/org.eclipse.ptp.services.ui/src/org/eclipse/ptp/services/ui/messages/Messages.java +++ b/core/org.eclipse.ptp.services.ui/src/org/eclipse/ptp/services/ui/messages/Messages.java @@ -17,6 +17,11 @@ public class Messages extends NLS { private static final String BUNDLE_NAME= "org.eclipse.ptp.services.ui.messages.messages";//$NON-NLS-1$ + public static String RemoveServiceConfigurationAction_0; + public static String RemoveServiceConfigurationAction_1; + + public static String SelectActiveServiceConfigurationAction_0; + public static String ServiceConfigurationPreferencePage_0; public static String ServiceConfigurationPreferencePage_1; public static String ServiceConfigurationPreferencePage_2; @@ -30,6 +35,7 @@ public class Messages extends NLS { public static String ServiceConfigurationSelectionDialog_0; public static String ServiceConfigurationSelectionDialog_1; + public static String ServiceConfigurationWizard_0; public static String ServiceConfigurationWizard_1; public static String ServiceConfigurationWizard_2; diff --git a/core/org.eclipse.ptp.services.ui/src/org/eclipse/ptp/services/ui/messages/messages.properties b/core/org.eclipse.ptp.services.ui/src/org/eclipse/ptp/services/ui/messages/messages.properties index 5ba17bb98..890759bdc 100644 --- a/core/org.eclipse.ptp.services.ui/src/org/eclipse/ptp/services/ui/messages/messages.properties +++ b/core/org.eclipse.ptp.services.ui/src/org/eclipse/ptp/services/ui/messages/messages.properties @@ -1,3 +1,6 @@ +RemoveServiceConfigurationAction_0=Remove Service Configurations +RemoveServiceConfigurationAction_1=Are you sure you want to remove the following service configuration(s)?\n +SelectActiveServiceConfigurationAction_0=Set Active Service Configuration ServiceConfigurationPreferencePage_0=Service Configuration ServiceConfigurationPreferencePage_1=Name ServiceConfigurationPreferencePage_2=Project diff --git a/core/org.eclipse.ptp.services.ui/src/org/eclipse/ptp/services/ui/views/ServiceConfigurationView.java b/core/org.eclipse.ptp.services.ui/src/org/eclipse/ptp/services/ui/views/ServiceConfigurationView.java index bf8920362..c10983f7c 100644 --- a/core/org.eclipse.ptp.services.ui/src/org/eclipse/ptp/services/ui/views/ServiceConfigurationView.java +++ b/core/org.eclipse.ptp.services.ui/src/org/eclipse/ptp/services/ui/views/ServiceConfigurationView.java @@ -11,36 +11,36 @@ package org.eclipse.ptp.services.ui.views; import org.eclipse.core.runtime.IAdaptable; -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.resource.FontDescriptor; import org.eclipse.jface.resource.JFaceResources; import org.eclipse.jface.resource.LocalResourceManager; -import org.eclipse.jface.viewers.ISelection; -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.jface.viewers.ITreeSelection; import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.ptp.services.core.IServiceConfiguration; +import org.eclipse.ptp.services.core.IServiceModelEvent; +import org.eclipse.ptp.services.core.IServiceModelEventListener; +import org.eclipse.ptp.services.core.IServiceModelManager; import org.eclipse.ptp.services.core.ServiceModelManager; import org.eclipse.swt.SWT; -import org.eclipse.swt.events.MouseAdapter; -import org.eclipse.swt.events.MouseEvent; import org.eclipse.swt.graphics.Font; import org.eclipse.swt.graphics.FontData; -import org.eclipse.swt.graphics.Point; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Menu; -import org.eclipse.swt.widgets.Shell; -import org.eclipse.swt.widgets.TreeItem; -import org.eclipse.ui.IWorkbenchActionConstants; import org.eclipse.ui.model.WorkbenchContentProvider; import org.eclipse.ui.model.WorkbenchLabelProvider; import org.eclipse.ui.part.ViewPart; public class ServiceConfigurationView extends ViewPart { + /** + * Listener for service configuration selection events. + */ + private class ServiceModelEventListener implements IServiceModelEventListener { + public void handleEvent(IServiceModelEvent event) { + refreshViewer(); + } + } + private class ServiceConfigurationLabelProvider extends WorkbenchLabelProvider { private Font selectedFont; @@ -53,50 +53,47 @@ public class ServiceConfigurationView extends ViewPart { selectedFont = (Font)new LocalResourceManager(JFaceResources.getResources()).get(FontDescriptor.createFrom(selectedFontData)); } - private IServiceConfiguration getServiceConfiguration(Object parentElement) { - IServiceConfiguration conf = null; - if (parentElement instanceof IAdaptable) { - conf = (IServiceConfiguration) ((IAdaptable) parentElement).getAdapter(IServiceConfiguration.class); - } - return conf; - } - /* (non-Javadoc) * @see org.eclipse.ui.model.WorkbenchLabelProvider#getFont(java.lang.Object) */ @Override public Font getFont(Object element) { IServiceConfiguration conf = getServiceConfiguration(element); - if (conf != null) {// && conf == ServiceModelManager.getInstance().getSelected()) { + if (conf != null && conf == fManager.getActiveConfiguration()) { return selectedFont; } return unSelectedFont; } + + private IServiceConfiguration getServiceConfiguration(Object parentElement) { + IServiceConfiguration conf = null; + if (parentElement instanceof IAdaptable) { + conf = (IServiceConfiguration) ((IAdaptable) parentElement).getAdapter(IServiceConfiguration.class); + } + return conf; + } } - private TreeViewer viewer; - -// private RemoveResourceManagersAction removeResourceManagerAction; -// private AddResourceManagerAction addResourceManagerAction; -// private EditResourceManagerAction editResourceManagerAction; -// private SelectDefaultResourceManagerAction selectResourceManagerAction; + private TreeViewer fViewer; + private IServiceModelManager fManager = ServiceModelManager.getInstance(); public ServiceConfigurationView() { + fManager.addEventListener(new ServiceModelEventListener(), + IServiceModelEvent.SERVICE_CONFIGURATION_SELECTED | + IServiceModelEvent.SERVICE_CONFIGURATION_ADDED | + IServiceModelEvent.SERVICE_CONFIGURATION_REMOVED); } /* (non-Javadoc) * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite) */ public void createPartControl(Composite parent) { - viewer = new TreeViewer(parent, SWT.MULTI); - viewer.setContentProvider(new WorkbenchContentProvider()); - viewer.setLabelProvider(new ServiceConfigurationLabelProvider(viewer.getTree().getFont())); + fViewer = new TreeViewer(parent, SWT.MULTI); + fViewer.setContentProvider(new WorkbenchContentProvider()); + fViewer.setLabelProvider(new ServiceConfigurationLabelProvider(fViewer.getTree().getFont())); - viewer.setInput(ServiceModelManager.getInstance()); + fViewer.setInput(ServiceModelManager.getInstance()); - // ----------------------------- - // Enable right-click popup menu - // ----------------------------- createContextMenu(); // ---------------------------------------------------------------------- @@ -105,136 +102,49 @@ public class ServiceConfigurationView extends ViewPart { // IPropertySource, or support IPropertySource.class as an adapter type // in its AdapterFactory. // ---------------------------------------------------------------------- - getSite().setSelectionProvider(viewer); - - viewer.getTree().addMouseListener(new MouseAdapter() { - /* (non-Javadoc) - * @see org.eclipse.swt.events.MouseAdapter#mouseDoubleClick(org.eclipse.swt.events.MouseEvent) - */ - @Override - public void mouseDoubleClick(MouseEvent e) { - ITreeSelection selection = (ITreeSelection)viewer.getSelection(); - if (!selection.isEmpty()) { - IServiceConfiguration rm = (IServiceConfiguration)selection.getFirstElement(); - //editResourceManagerAction.setResourceManager(rm); - //editResourceManagerAction.run(); - } - } - - /* (non-Javadoc) - * @see org.eclipse.swt.events.MouseAdapter#mouseDown(org.eclipse.swt.events.MouseEvent) - */ - public void mouseDown(MouseEvent e) { - ISelection selection = viewer.getSelection(); - TreeItem item = viewer.getTree().getItem(new Point(e.x, e.y)); - if (item == null && !selection.isEmpty()) { - viewer.getTree().deselectAll(); - } - else if (item != null) { - } - } - }); + getSite().setSelectionProvider(fViewer); } + /* (non-Javadoc) + * @see org.eclipse.ui.part.WorkbenchPart#dispose() + */ public synchronized void dispose() { super.dispose(); } public Font getFont() { - if (viewer == null) { + if (fViewer == null) { return null; } - return viewer.getTree().getFont(); + return fViewer.getTree().getFont(); } + /** + * Refresh the tree viewer when the model changes + */ public void refreshViewer() { - viewer.getControl().getDisplay().asyncExec(new Runnable(){ + fViewer.getControl().getDisplay().asyncExec(new Runnable(){ public void run() { - viewer.refresh(); + fViewer.refresh(); } }); } + /* (non-Javadoc) + * @see org.eclipse.ui.part.WorkbenchPart#setFocus() + */ public void setFocus() { - viewer.getControl().setFocus(); + fViewer.getControl().setFocus(); } + /** + * Create the popup menu + */ private void createContextMenu() { - final Shell shell = getSite().getShell(); -// addResourceManagerAction = new AddResourceManagerAction(shell); -// removeResourceManagerAction = new RemoveResourceManagersAction(shell); -// editResourceManagerAction = new EditResourceManagerAction(shell); -// selectResourceManagerAction = new SelectDefaultResourceManagerAction(this); - - MenuManager menuManager = new MenuManager("#PopupMenu"); //$NON-NLS-1$ + MenuManager menuManager = new MenuManager("#PopupMenu", "org.eclipse.ptp.services.ui.views.serviceConfigurationView.contextMenu"); //$NON-NLS-1$ menuManager.setRemoveAllWhenShown(true); - menuManager.addMenuListener(new IMenuListener() { - public void menuAboutToShow(IMenuManager manager) { - fillContextMenu(manager); - } - }); - - Menu menu = menuManager.createContextMenu(viewer.getControl()); - viewer.getControl().setMenu(menu); - getSite().registerContextMenu(menuManager, viewer); - } - - private void fillContextMenu(IMenuManager manager) { - final IStructuredSelection selection = (IStructuredSelection) viewer.getSelection(); -// manager.add(addResourceManagerAction); - Object[] selectedObjects = selection.toArray(); - boolean inContextForRM = selection.size() > 0; - boolean inContextForEditRM = inContextForRM; - boolean inContextForRemoveRM = inContextForRM; - boolean inContextForSelectRM = inContextForRM; -// for (int i = 0; i < selectedObjects.length; ++i) { -// if (!(selectedObjects[i] instanceof IResourceManagerMenuContribution)) { -// // Not all of the selected are RMs -// inContextForRM = false; -// inContextForEditRM = false; -// inContextForRemoveRM = false; -// inContextForSelectRM = false; -// break; -// } -// else { -// final IResourceManagerMenuContribution menuContrib = (IResourceManagerMenuContribution) selectedObjects[i]; -// IResourceManagerControl rm = (IResourceManagerControl) menuContrib.getAdapter(IResourceManagerControl.class); -// if (rm.getState() != ResourceManagerAttributes.State.STOPPED) { -// inContextForEditRM = false; -// inContextForRemoveRM = false; -// } else { -// inContextForSelectRM = false; -// } -// } -// } -// manager.add(removeResourceManagerAction); -// removeResourceManagerAction.setEnabled(inContextForRemoveRM); -// if (inContextForRemoveRM) { -// IResourceManagerControl[] rmManagers = new IResourceManagerControl[selection.size()]; -// for (int i = 0; i < rmManagers.length; ++i) { -// final IResourceManagerMenuContribution menuContrib = (IResourceManagerMenuContribution) selectedObjects[i]; -// rmManagers[i] = (IResourceManagerControl) menuContrib.getAdapter(IResourceManagerControl.class); -// } -// removeResourceManagerAction.setResourceManager(rmManagers); -// } -// manager.add(editResourceManagerAction); -// editResourceManagerAction.setEnabled(inContextForEditRM); -// if (inContextForEditRM) { -// final IResourceManagerMenuContribution menuContrib = (IResourceManagerMenuContribution) selectedObjects[0]; -// IResourceManagerControl rmManager = (IResourceManagerControl) menuContrib.getAdapter(IResourceManagerControl.class); -// editResourceManagerAction.setResourceManager(rmManager); -// } -// manager.add(new Separator()); -// manager.add(selectResourceManagerAction); -// selectResourceManagerAction.setEnabled(inContextForSelectRM); -// if (inContextForSelectRM) { -// final IResourceManagerMenuContribution menuContrib = (IResourceManagerMenuContribution) selectedObjects[0]; -// IResourceManagerControl rmManager = (IResourceManagerControl) menuContrib.getAdapter(IResourceManagerControl.class); -// selectResourceManagerAction.setResourceManager(rmManager); -// } - manager.add(new Separator()); - manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS)); - manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS + "-end")); //$NON-NLS-1$ + Menu menu = menuManager.createContextMenu(fViewer.getControl()); + fViewer.getControl().setMenu(menu); + getSite().registerContextMenu(menuManager, fViewer); } - } |