111 protected static final String ADV_INSTALL_ACTION_ID = |
111 protected static final String ADV_INSTALL_ACTION_ID = |
112 AbstractDiscoveryPortalPageLayer.class.getName() + ".advancedInstall"; //$NON-NLS-1$ |
112 AbstractDiscoveryPortalPageLayer.class.getName() + ".advancedInstall"; //$NON-NLS-1$ |
113 protected static final String REFRESH_ACTION_ID = |
113 protected static final String REFRESH_ACTION_ID = |
114 AbstractDiscoveryPortalPageLayer.class.getName() + ".refresh"; //$NON-NLS-1$ |
114 AbstractDiscoveryPortalPageLayer.class.getName() + ".refresh"; //$NON-NLS-1$ |
115 |
115 |
|
116 private IEditorPart part; |
116 private CatalogViewer viewer; |
117 private CatalogViewer viewer; |
117 private List<ISelectionChangedListener> selectionListeners; |
118 private List<ISelectionChangedListener> selectionListeners; |
118 private IActionUIUpdater updater; |
119 private IActionUIUpdater updater; |
119 |
120 |
120 @Override |
121 @Override |
179 protected String getDirectoryURL() { |
180 protected String getDirectoryURL() { |
180 return Activator.getFromServerProperties(getClass().getName()); |
181 return Activator.getFromServerProperties(getClass().getName()); |
181 } |
182 } |
182 |
183 |
183 protected IAction[] makeActions(final IEditorPart part) { |
184 protected IAction[] makeActions(final IEditorPart part) { |
|
185 this.part = part; |
184 selectionListeners = new ArrayList<ISelectionChangedListener>(); |
186 selectionListeners = new ArrayList<ISelectionChangedListener>(); |
185 List<IAction> actions = new ArrayList<IAction>(); |
187 List<IAction> actions = new ArrayList<IAction>(); |
186 IAction action; |
188 IAction action; |
187 |
189 |
188 // install |
190 // install |
189 action = new BaseSelectionListenerAction(Messages.AbstractDiscoveryPortalPageLayer_InstallActionLabel) { |
191 action = new BaseSelectionListenerAction(Messages.AbstractDiscoveryPortalPageLayer_InstallActionLabel) { |
190 public void run() { |
192 public void run() { |
191 DiscoveryUi.install(viewer.getCheckedItems(), |
193 installCatalogItems(viewer.getCheckedItems()); |
192 new RunnableContextDialog(part.getEditorSite().getShell(), |
|
193 Messages.AbstractDiscoveryPortalPageLayer_GatheringInstallInfoDesc)); |
|
194 }; |
194 }; |
195 |
195 |
196 protected boolean updateSelection(IStructuredSelection selection) { |
196 protected boolean updateSelection(IStructuredSelection selection) { |
197 scheduleUpdateAllActionUIs(); |
197 scheduleUpdateAllActionUIs(); |
198 return !selection.isEmpty(); |
198 return !selection.isEmpty(); |
278 selectionListeners.add(selectionListener); |
278 selectionListeners.add(selectionListener); |
279 |
279 |
280 return (IAction[]) actions.toArray(new IAction[actions.size()]); |
280 return (IAction[]) actions.toArray(new IAction[actions.size()]); |
281 } |
281 } |
282 |
282 |
|
283 protected void installCatalogItems(List<CatalogItem> items) { |
|
284 DiscoveryUi.install(items, |
|
285 new RunnableContextDialog(part.getEditorSite().getShell(), |
|
286 Messages.AbstractDiscoveryPortalPageLayer_GatheringInstallInfoDesc)); |
|
287 } |
|
288 |
283 @Override |
289 @Override |
284 public void dispose() { |
290 public void dispose() { |
285 for (ISelectionChangedListener listener : selectionListeners) { |
291 for (ISelectionChangedListener listener : selectionListeners) { |
286 viewer.removeSelectionChangedListener(listener); |
292 viewer.removeSelectionChangedListener(listener); |
287 } |
293 } |
291 ProvisioningUI defaultUI = ProvisioningUI.getDefaultUI(); |
297 ProvisioningUI defaultUI = ProvisioningUI.getDefaultUI(); |
292 ProvisioningSession session = defaultUI.getSession(); |
298 ProvisioningSession session = defaultUI.getSession(); |
293 IProvisioningAgent agent = session.getProvisioningAgent(); |
299 IProvisioningAgent agent = session.getProvisioningAgent(); |
294 IMetadataRepositoryManager metadataManager = (IMetadataRepositoryManager) agent.getService(IMetadataRepositoryManager.SERVICE_NAME); |
300 IMetadataRepositoryManager metadataManager = (IMetadataRepositoryManager) agent.getService(IMetadataRepositoryManager.SERVICE_NAME); |
295 IArtifactRepositoryManager artifactManager = (IArtifactRepositoryManager) agent.getService(IArtifactRepositoryManager.SERVICE_NAME); |
301 IArtifactRepositoryManager artifactManager = (IArtifactRepositoryManager) agent.getService(IArtifactRepositoryManager.SERVICE_NAME); |
296 for (URI uri : getCatalogURIs()) { |
302 for (URI uri : getSiteURIs(viewer.getCatalog().getItems())) { |
297 metadataManager.addRepository(uri); |
303 metadataManager.addRepository(uri); |
298 artifactManager.addRepository(uri); |
304 artifactManager.addRepository(uri); |
299 } |
305 } |
300 defaultUI.openInstallWizard(null, null, null); |
306 defaultUI.openInstallWizard(null, null, null); |
301 } |
307 } |
302 |
308 |
303 protected Collection<URI> getCatalogURIs() { |
309 protected static Collection<URI> getSiteURIs(List<CatalogItem> catalogItems) { |
304 Set<URI> uris = new HashSet<URI>(); |
310 Set<URI> uris = new HashSet<URI>(); |
305 for (CatalogItem catalogItem : viewer.getCatalog().getItems()) { |
311 for (CatalogItem catalogItem : catalogItems) { |
306 try { |
312 try { |
307 uris.add(new URI(catalogItem.getSiteUrl())); |
313 uris.add(new URI(catalogItem.getSiteUrl())); |
308 } catch (URISyntaxException e) { |
314 } catch (URISyntaxException e) { |
309 // ignore bad URIs |
315 // ignore bad URIs |
310 } |
316 } |