/** Returns a collection of dataSetUI elements in the given extension. */ private Hashtable getDataSetUIElements(IExtension extension) throws OdaException { Hashtable dataSetElements = new Hashtable(); IConfigurationElement[] configElements = UIManifestExplorer.getNamedElements(extension, DATA_SET_ELEMENT_NAME); for (int i = 0, size = configElements.length; i < size; i++) { IConfigurationElement configElement = configElements[i]; String dataSetId = configElement.getAttribute("id"); // $NON-NLS-1$ // if duplicated data set ids exist in the extension, // only the last one applies dataSetElements.put(dataSetId, new DataSetUIElement(configElement)); } if (dataSetElements.size() < 1) // expects one or more throw new OdaException( Messages.bind(Messages.manifest_dataSetUi_missingElement, DATA_SET_ELEMENT_NAME)); return dataSetElements; }
UIExtensionManifest(IExtension dataSourceExtn) throws OdaException { // first process the dataSourceUI element IConfigurationElement dataSourceElement = UIManifestExplorer.getNamedElement(dataSourceExtn, DATA_SOURCE_ELEMENT_NAME); assert (dataSourceElement != null); m_namespace = dataSourceExtn.getContributor().getName(); // first cache the data source element's attributes m_dataSourceElementId = dataSourceElement.getAttribute("id"); // $NON-NLS-1$ assert (m_dataSourceElementId != null && m_dataSourceElementId.length() > 0); // newDataSourceWizard element associated with dataSourceUI IConfigurationElement[] newWizardElements = dataSourceElement.getChildren(DATA_SOURCE_WIZARD_ELEMENT_NAME); if (newWizardElements.length < 1) // expects one element throw new OdaException( Messages.bind(Messages.manifest_missingAttributeValue, DATA_SOURCE_WIZARD_ELEMENT_NAME)); m_dataSourceWizardInfo = new DataSourceWizardInfo(newWizardElements[0]); // data set UI definition elements in the same extension m_dataSetUIElements = getDataSetUIElements(dataSourceExtn); }