core/com.nokia.carbide.discovery.ui/src/com/nokia/carbide/internal/discovery/ui/editor/PortalEditor.java
changeset 1721 18638adda547
parent 1705 71a151b1b515
child 1734 bf670d38123a
equal deleted inserted replaced
1718:c3599e02bf7f 1721:18638adda547
    74 	public PortalEditor() {
    74 	public PortalEditor() {
    75 		resources = new ArrayList<Resource>();
    75 		resources = new ArrayList<Resource>();
    76 		loadPortalPages();
    76 		loadPortalPages();
    77 	}
    77 	}
    78 	
    78 	
    79 	private Map<String, List<IPortalPageLayer>> loadPortalLayers() {
    79 	private Map<String, List<Pair<IPortalPageLayer, String>>> loadPortalLayers() {
    80 		Map<String, List<IPortalPageLayer>> pageIdToExtensionsMap = new HashMap<String, List<IPortalPageLayer>>();
    80 		Map<String, List<Pair<IPortalPageLayer, String>>> pageIdToExtensionsMap = 
       
    81 			new HashMap<String, List<Pair<IPortalPageLayer, String>>>();
    81 		IConfigurationElement[] elements = 
    82 		IConfigurationElement[] elements = 
    82 			Platform.getExtensionRegistry().getConfigurationElementsFor(Activator.PLUGIN_ID + ".portalPageLayer"); //$NON-NLS-1$
    83 			Platform.getExtensionRegistry().getConfigurationElementsFor(Activator.PLUGIN_ID + ".portalPageLayer"); //$NON-NLS-1$
    83 		for (IConfigurationElement element : elements) {
    84 		for (IConfigurationElement element : elements) {
    84 			String pageId = element.getAttribute("pageId"); //$NON-NLS-1$
    85 			String pageId = element.getAttribute("pageId"); //$NON-NLS-1$
       
    86 			String title = element.getAttribute("title"); //$NON-NLS-1$
    85 			try {
    87 			try {
    86 				IPortalPageLayer extension = (IPortalPageLayer) element.createExecutableExtension("class"); //$NON-NLS-1$
    88 				IPortalPageLayer extension = (IPortalPageLayer) element.createExecutableExtension("class"); //$NON-NLS-1$
    87 				if (!pageIdToExtensionsMap.containsKey(pageId))
    89 				if (!pageIdToExtensionsMap.containsKey(pageId))
    88 					pageIdToExtensionsMap.put(pageId, new ArrayList<IPortalPageLayer>());
    90 					pageIdToExtensionsMap.put(pageId, new ArrayList<Pair<IPortalPageLayer, String>>());
    89 				pageIdToExtensionsMap.get(pageId).add(extension);
    91 				pageIdToExtensionsMap.get(pageId).add(new Pair<IPortalPageLayer, String>(extension, title));
    90 			} catch (CoreException e) {
    92 			} catch (CoreException e) {
    91 				Activator.logError(MessageFormat.format(Messages.PortalEditor_PageLoadError, pageId), e);
    93 				Activator.logError(MessageFormat.format(Messages.PortalEditor_PageLoadError, pageId), e);
    92 			}
    94 			}
    93 		}
    95 		}
    94 		return pageIdToExtensionsMap;
    96 		return pageIdToExtensionsMap;
    95 	}
    97 	}
    96 
    98 
    97 	private void loadPortalPages() {
    99 	private void loadPortalPages() {
    98 		Map<String, List<IPortalPageLayer>> portalLayersMap = loadPortalLayers();
   100 		Map<String, List<Pair<IPortalPageLayer, String>>> portalLayersMap = loadPortalLayers();
    99 		List<Pair<PortalPage, Integer>> pageList = new ArrayList<Pair<PortalPage, Integer>>();
   101 		List<Pair<PortalPage, Integer>> pageList = new ArrayList<Pair<PortalPage, Integer>>();
   100 		IConfigurationElement[] elements = 
   102 		IConfigurationElement[] elements = 
   101 			Platform.getExtensionRegistry().getConfigurationElementsFor(Activator.PLUGIN_ID + ".portalPage"); //$NON-NLS-1$
   103 			Platform.getExtensionRegistry().getConfigurationElementsFor(Activator.PLUGIN_ID + ".portalPage"); //$NON-NLS-1$
   102 		for (IConfigurationElement element : elements) {
   104 		for (IConfigurationElement element : elements) {
   103 			String id = element.getAttribute("id"); //$NON-NLS-1$
   105 			String id = element.getAttribute("id"); //$NON-NLS-1$
   113 			}
   115 			}
   114 			String title = element.getAttribute("title"); //$NON-NLS-1$
   116 			String title = element.getAttribute("title"); //$NON-NLS-1$
   115 			String imageFilePath = element.getAttribute("image"); //$NON-NLS-1$
   117 			String imageFilePath = element.getAttribute("image"); //$NON-NLS-1$
   116 			String pluginId = element.getContributor().getName();
   118 			String pluginId = element.getContributor().getName();
   117 			ImageDescriptor imageDesc = AbstractUIPlugin.imageDescriptorFromPlugin(pluginId, imageFilePath);
   119 			ImageDescriptor imageDesc = AbstractUIPlugin.imageDescriptorFromPlugin(pluginId, imageFilePath);
   118 			List<IPortalPageLayer> portalLayers = portalLayersMap.get(id);
   120 			List<Pair<IPortalPageLayer, String>> portalLayers = portalLayersMap.get(id);
   119 			if (portalLayers == null || portalLayers.isEmpty()) {
   121 			if (portalLayers == null || portalLayers.isEmpty()) {
   120 				Activator.logError(MessageFormat.format("Could not load portal page because no layers were found for id: {0}", id), null);
   122 				Activator.logError(MessageFormat.format(Messages.PortalEditor_NoLayersError, id), null);
   121 			}
   123 			}
   122 			PortalPage portalPage = new PortalPage(title, imageDesc, id, portalLayers);
   124 			PortalPage portalPage = new PortalPage(title, imageDesc, id, portalLayers);
   123 			pageList.add(new Pair<PortalPage, Integer>(portalPage, order));
   125 			pageList.add(new Pair<PortalPage, Integer>(portalPage, order));
   124 		}
   126 		}
   125 		Collections.sort(pageList, new Comparator<Pair<PortalPage, Integer>>() {
   127 		Collections.sort(pageList, new Comparator<Pair<PortalPage, Integer>>() {