| package org.eclipse.jst.jsf.ui.tests.util; |
| |
| import java.util.Iterator; |
| |
| import org.eclipse.core.runtime.IAdaptable; |
| import org.eclipse.jface.preference.IPreferenceNode; |
| import org.eclipse.jface.preference.PreferenceDialog; |
| import org.eclipse.jface.preference.PreferenceManager; |
| import org.eclipse.jface.viewers.ISelection; |
| import org.eclipse.jface.viewers.StructuredSelection; |
| import org.eclipse.swt.widgets.Shell; |
| import org.eclipse.ui.PlatformUI; |
| import org.eclipse.ui.internal.WorkbenchPlugin; |
| import org.eclipse.ui.internal.dialogs.PropertyDialog; |
| import org.eclipse.ui.internal.dialogs.PropertyPageContributorManager; |
| import org.eclipse.ui.internal.dialogs.PropertyPageManager; |
| import org.eclipse.ui.model.IWorkbenchAdapter; |
| |
| /** |
| * Borrowed from UITestHelper in org.eclipse.wst.internet.monitor.ui.tests |
| * |
| * @author YCHEN3 |
| */ |
| public class JSFUITestHelper { |
| private static class PreferenceDialogWrapper extends PreferenceDialog { |
| public PreferenceDialogWrapper(Shell parentShell, PreferenceManager manager) { |
| super(parentShell, manager); |
| } |
| protected boolean showPage(IPreferenceNode node) { |
| return super.showPage(node); |
| } |
| } |
| |
| private static class PropertyDialogWrapper extends PropertyDialog { |
| public PropertyDialogWrapper(Shell parentShell, PreferenceManager manager, ISelection selection) { |
| super(parentShell, manager, selection); |
| } |
| protected boolean showPage(IPreferenceNode node) { |
| return super.showPage(node); |
| } |
| } |
| |
| public static PreferenceDialog getPreferenceDialog(String id) { |
| PreferenceDialogWrapper dialog = null; |
| PreferenceManager manager = WorkbenchPlugin.getDefault().getPreferenceManager(); |
| if (manager != null) { |
| dialog = new PreferenceDialogWrapper(getShell(), manager); |
| dialog.create(); |
| |
| for (Iterator iterator = manager.getElements(PreferenceManager.PRE_ORDER).iterator(); |
| iterator.hasNext();) |
| { |
| IPreferenceNode node = (IPreferenceNode)iterator.next(); |
| if ( node.getId().equals(id) ) { |
| dialog.showPage(node); |
| break; |
| } |
| } |
| } |
| return dialog; |
| } |
| |
| public static PropertyDialog getPropertyDialog(String id, IAdaptable element) { |
| PropertyDialogWrapper dialog = null; |
| |
| PropertyPageManager manager = new PropertyPageManager(); |
| String title = ""; |
| String name = ""; |
| |
| // load pages for the selection |
| // fill the manager with contributions from the matching contributors |
| PropertyPageContributorManager.getManager().contribute(manager, element); |
| |
| IWorkbenchAdapter adapter = (IWorkbenchAdapter)element.getAdapter(IWorkbenchAdapter.class); |
| if (adapter != null) { |
| name = adapter.getLabel(element); |
| } |
| |
| // testing if there are pages in the manager |
| Iterator pages = manager.getElements(PreferenceManager.PRE_ORDER).iterator(); |
| if (!pages.hasNext()) |
| return null; |
| |
| title = "Title: " + name; |
| dialog = new PropertyDialogWrapper(getShell(), manager, new StructuredSelection(element)); |
| dialog.create(); |
| dialog.getShell().setText(title); |
| for (Iterator iterator = manager.getElements(PreferenceManager.PRE_ORDER).iterator(); |
| iterator.hasNext();) { |
| IPreferenceNode node = (IPreferenceNode)iterator.next(); |
| if ( node.getId().equals(id) ) { |
| dialog.showPage(node); |
| break; |
| } |
| } |
| return dialog; |
| } |
| |
| protected static Shell getShell() { |
| return PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(); |
| } |
| |
| } // end of UITestHelper |