001: /*******************************************************************************
002: * Copyright (c) 2000, 2006 IBM Corporation and others.
003: * All rights reserved. This program and the accompanying materials
004: * are made available under the terms of the Eclipse Public License v1.0
005: * which accompanies this distribution, and is available at
006: * http://www.eclipse.org/legal/epl-v10.html
007: *
008: * Contributors:
009: * IBM Corporation - initial API and implementation
010: *******************************************************************************/package org.eclipse.jdt.ui.tests.dialogs;
011:
012: import junit.framework.Test;
013: import junit.framework.TestCase;
014: import junit.framework.TestSuite;
015:
016: import org.eclipse.swt.graphics.Image;
017: import org.eclipse.swt.widgets.Shell;
018:
019: import org.eclipse.jface.viewers.ILabelProvider;
020: import org.eclipse.jface.viewers.LabelProvider;
021:
022: import org.eclipse.ui.dialogs.ElementListSelectionDialog;
023: import org.eclipse.ui.dialogs.ElementTreeSelectionDialog;
024:
025: import org.eclipse.jdt.core.IJavaProject;
026: import org.eclipse.jdt.core.IPackageFragmentRoot;
027:
028: import org.eclipse.jdt.ui.JavaElementComparator;
029: import org.eclipse.jdt.ui.JavaElementLabelProvider;
030: import org.eclipse.jdt.ui.StandardJavaElementContentProvider;
031:
032: import org.eclipse.jdt.testplugin.JavaProjectHelper;
033: import org.eclipse.jdt.testplugin.util.DialogCheck;
034:
035: public class DialogsTest extends TestCase {
036:
037: private static final String PROJECT_NAME = "DummyProject";
038:
039: public static Test suite() {
040: TestSuite suite = new TestSuite(DialogsTest.class.getName());
041: // suite.addTest(new DialogsTest("testElementListSelectionDialog2"));
042: suite
043: .addTest(new DialogsTest(
044: "testElementListSelectionDialog"));
045: suite
046: .addTest(new DialogsTest(
047: "testMultiElementSelectionDialog"));
048: suite.addTest(new DialogsTest("testTwoPaneSelectionDialog"));
049: suite
050: .addTest(new DialogsTest(
051: "testElementTreeSelectionDialog"));
052: suite
053: .addTest(new DialogsTest(
054: "testElementListSelectionDialog"));
055: return suite;
056: }
057:
058: public DialogsTest(String name) {
059: super (name);
060: }
061:
062: private Shell getShell() {
063: return DialogCheck.getShell();
064: }
065:
066: /*
067: public void testTwoPaneSelectionDialog() throws Exception {
068: IJavaProject jproject= JavaProjectHelper.createJavaProject(PROJECT_NAME, "bin");
069: JavaProjectHelper.addSourceContainer(jproject, "src1");
070: JavaProjectHelper.addRTJar(jproject);
071:
072: OpenTypeSelectionDialog dialog= new OpenTypeSelectionDialog(getShell(), new ProgressMonitorDialog(getShell()),
073: IJavaSearchConstants.TYPE, SearchEngine.createWorkspaceScope());
074:
075: dialog.setTitle("Open Type");
076: dialog.setMessage("&Choose a type (? = any character, * = any string):");
077:
078: DialogCheck.assertDialog(dialog);
079:
080: JavaProjectHelper.delete(jproject);
081: }
082: */
083: /*
084: private TypeInfo[] getRefs(ArrayList list, int off, int len) {
085: TypeInfo[] res= new TypeInfo[len];
086: for (int i= 0; i < len; i++) {
087: res[i]= (TypeInfo) list.get(off + i);
088: }
089: return res;
090: }
091:
092:
093: public void testMultiElementSelectionDialog() throws Exception {
094: IJavaProject jproject= JavaProjectHelper.createJavaProject(PROJECT_NAME, "bin");
095: JavaProjectHelper.addSourceContainer(jproject, "src1");
096: JavaProjectHelper.addRTJar(jproject);
097:
098: ILabelProvider labelProvider= new TypeInfoLabelProvider(TypeInfoLabelProvider.SHOW_FULLYQUALIFIED);
099:
100: ArrayList list= new ArrayList(200);
101:
102: IJavaSearchScope searchScope= SearchEngine.createJavaSearchScope(new IJavaElement[] { jproject });
103: AllTypesCache.getTypes(searchScope, IJavaSearchConstants.TYPE, null, list);
104:
105: MultiElementListSelectionDialog dialog= new MultiElementListSelectionDialog(getShell(), labelProvider);
106: dialog.setTitle("Title"); //$NON-NLS-1$
107: dialog.setMessage("Description:"); //$NON-NLS-1$
108:
109: assertTrue(list.size() > 15);
110: TypeInfo[][] refs= new TypeInfo[][] { getRefs(list, 0, 3), getRefs(list, 4, 6), getRefs(list, 10, 5) };
111: dialog.setElements(refs);
112: dialog.setInitialSelections(new Object[refs.length]);
113:
114: DialogCheck.assertDialog(dialog);
115:
116: JavaProjectHelper.delete(jproject);
117:
118: }
119: */
120:
121: public void testElementTreeSelectionDialog() throws Exception {
122: IJavaProject jproject = JavaProjectHelper.createJavaProject(
123: PROJECT_NAME, "bin");
124: JavaProjectHelper.addSourceContainer(jproject, "src1");
125: Object initSelection = JavaProjectHelper.addSourceContainer(
126: jproject, "src2");
127:
128: IJavaProject jproject2 = JavaProjectHelper.createJavaProject(
129: "Project2", "bin");
130: JavaProjectHelper.addSourceContainer(jproject2, "src1");
131: JavaProjectHelper.addSourceContainer(jproject2, "src2");
132:
133: StandardJavaElementContentProvider provider = new StandardJavaElementContentProvider();
134: ILabelProvider labelProvider = new JavaElementLabelProvider(
135: JavaElementLabelProvider.SHOW_DEFAULT);
136: ElementTreeSelectionDialog dialog = new ElementTreeSelectionDialog(
137: getShell(), labelProvider, provider);
138: dialog.setComparator(new JavaElementComparator());
139: dialog.setTitle("Title");
140: dialog.setMessage("Message");
141:
142: dialog.setInput(jproject.getJavaModel());
143: dialog.setInitialSelection(initSelection);
144:
145: DialogCheck.assertDialog(dialog);
146:
147: JavaProjectHelper.delete(jproject);
148: JavaProjectHelper.delete(jproject2);
149: }
150:
151: public void testElementListSelectionDialog() throws Exception {
152: IJavaProject jproject = JavaProjectHelper.createJavaProject(
153: PROJECT_NAME, "bin");
154: IPackageFragmentRoot root = JavaProjectHelper
155: .addRTJar(jproject);
156: assertTrue(root != null);
157: Object[] elements = root.getChildren();
158:
159: ElementListSelectionDialog dialog = new ElementListSelectionDialog(
160: getShell(), new JavaElementLabelProvider(
161: JavaElementLabelProvider.SHOW_DEFAULT));
162: dialog.setIgnoreCase(false);
163: dialog.setTitle("Title");
164: dialog.setMessage("Message");
165: dialog.setEmptyListMessage("empty list");
166: dialog.setElements(elements);
167:
168: DialogCheck.assertDialog(dialog);
169:
170: JavaProjectHelper.delete(jproject);
171: }
172:
173: private static class TestLabelProvider extends LabelProvider {
174: public Image getImage(Object element) {
175: return null;
176: }
177:
178: public String getText(Object element) {
179: Integer i = (Integer) element;
180: return "e-" + i.toString();
181: }
182: }
183:
184: public void testElementListSelectionDialog2() throws Exception {
185: Object[] elements = new Integer[] { new Integer(0),
186: new Integer(1), new Integer(2), new Integer(7),
187: new Integer(12), new Integer(42) };
188:
189: ElementListSelectionDialog dialog = new ElementListSelectionDialog(
190: getShell(), new TestLabelProvider());
191: dialog.setIgnoreCase(false);
192: dialog.setTitle("Title");
193: dialog.setMessage("Message");
194: dialog.setEmptyListMessage("empty messgae");
195: dialog.setElements(elements);
196: dialog.setInitialSelections(new Object[] { new Integer(7) });
197:
198: DialogCheck.assertDialog(dialog);
199:
200: Object[] results = dialog.getResult();
201: assertTrue(results.length == 1);
202: assertEquals(new Integer(7), results[0]);
203: }
204:
205: }
|