/* * JBoss, Home of Professional Open Source. * * See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing. * * See the AUTHORS.txt file distributed with this work for a full listing of individual contributors. */ package org.teiid.designer.xsd.ui.editor; import org.eclipse.jface.viewers.ILabelProvider; import org.eclipse.jface.viewers.ILabelProviderListener; import org.eclipse.jface.window.Window; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.dialogs.ElementListSelectionDialog; import org.teiid.designer.core.types.DatatypeConstants; /** * @since 8.0 */ public class EnterpriseTypeDialogProvider extends TextDialogProvider { private static final String DIALOG_MSG = GUIFacetHelper.getString("EnterpriseTypeDialogProvider.dialog.desc"); //$NON-NLS-1$ private static final String DIALOG_TITLE = GUIFacetHelper.getString("EnterpriseTypeDialogProvider.dialog.title"); //$NON-NLS-1$ public EnterpriseTypeDialogProvider( String launchButtonText ) { super(launchButtonText, null, null); } @Override public void showDialog( Shell shell, Object initialValue ) { // Do NOT call super, here, because we don't want the text dialog // show dialog: ElementListSelectionDialog dialog = new ElementListSelectionDialog(shell, new StringLabelProvider()); dialog.setElements(DatatypeConstants.getRuntimeTypeNames().toArray()); dialog.setTitle(DIALOG_TITLE); dialog.setMessage(DIALOG_MSG); dialog.setBlockOnOpen(true); dialog.setInitialSelections(new Object[] {initialValue}); int status = dialog.open(); // process dialog result: if (status == Window.OK) { value = dialog.getResult()[0]; } else { value = null; } // endif } static final class StringLabelProvider implements ILabelProvider { @Override public Image getImage( Object element ) { return null; } @Override public String getText( Object element ) { return (String)element; } @Override public void addListener( ILabelProviderListener listener ) { } @Override public void dispose() { } @Override public boolean isLabelProperty( Object element, String property ) { return false; } @Override public void removeListener( ILabelProviderListener listener ) { } } }