KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > eclipse > ui > internal > part > CompatibilityPartSite


1 /*******************************************************************************
2  * Copyright (c) 2004, 2005 IBM Corporation and others.
3  * All rights reserved. This program and the accompanying materials
4  * are made available under the terms of the Eclipse Public License v1.0
5  * which accompanies this distribution, and is available at
6  * http://www.eclipse.org/legal/epl-v10.html
7  *
8  * Contributors:
9  * IBM Corporation - initial API and implementation
10  *******************************************************************************/

11 package org.eclipse.ui.internal.part;
12
13 import java.util.ArrayList JavaDoc;
14
15 import org.eclipse.jface.action.MenuManager;
16 import org.eclipse.jface.viewers.ISelectionChangedListener;
17 import org.eclipse.jface.viewers.ISelectionProvider;
18 import org.eclipse.jface.viewers.SelectionChangedEvent;
19 import org.eclipse.swt.widgets.Shell;
20 import org.eclipse.ui.IActionBars;
21 import org.eclipse.ui.IEditorActionBarContributor;
22 import org.eclipse.ui.IEditorSite;
23 import org.eclipse.ui.IKeyBindingService;
24 import org.eclipse.ui.IViewSite;
25 import org.eclipse.ui.IWorkbenchPage;
26 import org.eclipse.ui.IWorkbenchPart;
27 import org.eclipse.ui.IWorkbenchPartSite;
28 import org.eclipse.ui.IWorkbenchWindow;
29 import org.eclipse.ui.internal.PartSite;
30
31 /**
32  * @since 3.1
33  */

34 public class CompatibilityPartSite implements IWorkbenchPartSite, IViewSite, IEditorSite {
35     private ArrayList JavaDoc menuExtenders;
36     private IWorkbenchPart part;
37     private ISelectionProvider selectionProvider;
38     private IActionBars actionBars;
39     private IEditorActionBarContributor actionBarContributor;
40     private StandardWorkbenchServices services;
41     
42     private ISelectionChangedListener selectionChangeListener = new ISelectionChangedListener() {
43         /* (non-Javadoc)
44          * @see org.eclipse.jface.viewers.ISelectionChangedListener#selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent)
45          */

46         public void selectionChanged(SelectionChangedEvent event) {
47             services.getSelectionHandler().setSelection(event.getSelection());
48         }
49     };
50
51     /**
52      * @param adapterProvider
53      * @param pluginId
54      * @param id
55      * @param registeredName
56      * @param part
57      * @param page
58      */

59     public CompatibilityPartSite(StandardWorkbenchServices services, IWorkbenchPart part,
60             IEditorActionBarContributor actionBarContributor, IActionBars actionBars) {
61         super();
62         this.services = services;
63         this.part = part;
64         this.actionBarContributor = actionBarContributor;
65         this.actionBars = actionBars;
66     }
67     /* (non-Javadoc)
68      * @see org.eclipse.ui.IWorkbenchPartSite#getId()
69      */

70     public String JavaDoc getId() {
71         return services.getDescriptor().getId();
72     }
73
74     /* (non-Javadoc)
75      * @see org.eclipse.ui.IWorkbenchPartSite#getPluginId()
76      */

77     public String JavaDoc getPluginId() {
78         return services.getPluginBundle().getSymbolicName();
79     }
80
81     /* (non-Javadoc)
82      * @see org.eclipse.ui.IWorkbenchPartSite#getRegisteredName()
83      */

84     public String JavaDoc getRegisteredName() {
85         return services.getDescriptor().getLabel();
86     }
87
88     /* (non-Javadoc)
89      * @see org.eclipse.ui.IWorkbenchPartSite#registerContextMenu(org.eclipse.jface.action.MenuManager, org.eclipse.jface.viewers.ISelectionProvider)
90      */

91     public void registerContextMenu(MenuManager menuManager,
92             ISelectionProvider selProvider) {
93         registerContextMenu(getId(), menuManager, selProvider);
94     }
95     
96     /* (non-Javadoc)
97      * @see org.eclipse.ui.IWorkbenchPartSite#registerContextMenu(java.lang.String, org.eclipse.jface.action.MenuManager, org.eclipse.jface.viewers.ISelectionProvider)
98      */

99     public void registerContextMenu(String JavaDoc menuID, MenuManager menuMgr,
100             ISelectionProvider selProvider) {
101         if (menuExtenders == null) {
102             menuExtenders = new ArrayList JavaDoc(1);
103         }
104         
105         PartSite.registerContextMenu(menuID, menuMgr, selProvider, true, part,
106                 menuExtenders);
107     }
108     
109     /* (non-Javadoc)
110      * @see org.eclipse.ui.IWorkbenchPartSite#getKeyBindingService()
111      */

112     public IKeyBindingService getKeyBindingService() {
113         return services.getKeyBindingService();
114     }
115
116     /* (non-Javadoc)
117      * @see org.eclipse.ui.IWorkbenchSite#getPage()
118      */

119     public IWorkbenchPage getPage() {
120         return services.getPage();
121     }
122
123     /* (non-Javadoc)
124      * @see org.eclipse.ui.IWorkbenchSite#getSelectionProvider()
125      */

126     public ISelectionProvider getSelectionProvider() {
127         return selectionProvider;
128     }
129
130     /* (non-Javadoc)
131      * @see org.eclipse.ui.IWorkbenchSite#getShell()
132      */

133     public Shell getShell() {
134         return getWorkbenchWindow().getShell();
135     }
136
137     /* (non-Javadoc)
138      * @see org.eclipse.ui.IWorkbenchSite#getWorkbenchWindow()
139      */

140     public IWorkbenchWindow getWorkbenchWindow() {
141         return getPage().getWorkbenchWindow();
142     }
143
144     /* (non-Javadoc)
145      * @see org.eclipse.ui.IWorkbenchSite#setSelectionProvider(org.eclipse.jface.viewers.ISelectionProvider)
146      */

147     public void setSelectionProvider(ISelectionProvider provider) {
148         if (selectionProvider != null) {
149             selectionProvider.removeSelectionChangedListener(selectionChangeListener);
150         }
151         
152         selectionProvider = provider;
153         
154         if (selectionProvider != null) {
155             selectionProvider.addSelectionChangedListener(selectionChangeListener);
156             services.getSelectionHandler().setSelection(provider.getSelection());
157         } else {
158             provider.setSelection(null);
159         }
160          
161     }
162
163     /* (non-Javadoc)
164      * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
165      */

166     public Object JavaDoc getAdapter(Class JavaDoc adapter) {
167         return services.getAdapter(adapter);
168     }
169     
170     /* (non-Javadoc)
171      * @see org.eclipse.ui.IWorkbenchPartSite#getPart()
172      */

173     public IWorkbenchPart getPart() {
174         return part;
175     }
176
177     /* (non-Javadoc)
178      * @see org.eclipse.ui.IEditorSite#getActionBarContributor()
179      */

180     public IEditorActionBarContributor getActionBarContributor() {
181         return actionBarContributor;
182     }
183     
184     /* (non-Javadoc)
185      * @see org.eclipse.ui.IViewSite#getActionBars()
186      */

187     public IActionBars getActionBars() {
188         return actionBars;
189     }
190     
191     /* (non-Javadoc)
192      * @see org.eclipse.ui.IViewSite#getSecondaryId()
193      */

194     public String JavaDoc getSecondaryId() {
195         return services.getSecondaryId().getSecondaryId();
196     }
197     
198     public final void registerContextMenu(final String JavaDoc menuId,
199             final MenuManager menuManager,
200             final ISelectionProvider selectionProvider,
201             final boolean includeEditorInput) {
202         if (menuExtenders == null) {
203             menuExtenders = new ArrayList JavaDoc(1);
204         }
205         
206         PartSite.registerContextMenu(menuId, menuManager, selectionProvider,
207                 includeEditorInput, part, menuExtenders);
208     }
209     
210     public final void registerContextMenu(final MenuManager menuManager,
211             final ISelectionProvider selectionProvider,
212             final boolean includeEditorInput) {
213         registerContextMenu(getId(), menuManager, selectionProvider,
214                 includeEditorInput);
215     }
216 }
217
Popular Tags