core/com.nokia.carbide.discovery.ui/src/com/nokia/carbide/internal/discovery/ui/extension/AbstractDiscoveryPortalPageLayer.java
changeset 1793 b3fa776e81bd
parent 1734 bf670d38123a
child 1810 2ccd3660a736
equal deleted inserted replaced
1792:13c12193b6ad 1793:b3fa776e81bd
   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 			}