package org.ebayopensource.turmeric.eclipse.ui.views.registry; import org.ebayopensource.turmeric.common.config.LibraryType; import org.ebayopensource.turmeric.eclipse.core.TurmericCoreActivator; import org.ebayopensource.turmeric.eclipse.ui.UIActivator; import org.ebayopensource.turmeric.eclipse.utils.ui.UIUtil; import org.ebayopensource.turmeric.eclipse.utils.xml.XMLUtil; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.jface.viewers.DoubleClickEvent; import org.eclipse.jface.viewers.IDoubleClickListener; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.xsd.XSDSchema; import org.eclipse.xsd.XSDTypeDefinition; /** * The listener interface for receiving typeViewerDC events. * The class that is interested in processing a typeViewerDC * event implements this interface, and the object created * with that class is registered with a component using the * component's <code>addTypeViewerDCListener</code> method. When * the typeViewerDC event occurs, that object's appropriate * method is invoked. * * @see TypeViewerDCEvent */ class TypeViewerDCListener implements IDoubleClickListener { /** * {@inheritDoc} */ @Override public void doubleClick(DoubleClickEvent event) { if (event.getSelection() instanceof IStructuredSelection) { IStructuredSelection structuredSelection = (IStructuredSelection) event .getSelection(); if (structuredSelection.getFirstElement() instanceof LibraryType) { LibraryType selectedLibraryType = (LibraryType) structuredSelection .getFirstElement(); XSDSchema xsdSchema = null; try { xsdSchema = TurmericCoreActivator.parseSchema(UIActivator .getXSD(selectedLibraryType)); XSDTypeDefinition typeDef = xsdSchema .getTypeDefinitions().get(0); MessageDialog.openInformation(UIUtil.getActiveShell(), "Content of the selected xsd", TurmericCoreActivator.formatContents(XMLUtil .convertXMLToString(typeDef .getElement()))); } catch (Exception e) { // Silently die // this is not an exposed feature. } } } } }