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>>() { |