Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 187127 | Differences between
and this patch

Collapse All | Expand All

(-)src/org/eclipse/mylyn/tasks/tests/PersonProposalProviderTest.java (+35 lines)
Lines 49-54 Link Here
49
		assertNotNull(result);
49
		assertNotNull(result);
50
		assertEquals(1, result.length);
50
		assertEquals(1, result.length);
51
		assertEquals("foo", result[0].getContent());
51
		assertEquals("foo", result[0].getContent());
52
53
		// tests for add more the one Person
54
		result = provider.getProposals("f", 1);
55
		assertNotNull(result);
56
		assertEquals(1, result.length);
57
		assertEquals("foo", result[0].getContent());
58
59
		result = provider.getProposals("f,xx", 1);
60
		assertNotNull(result);
61
		assertEquals(1, result.length);
62
		assertEquals("foo", result[0].getContent());
63
		result = provider.getProposals("a,xx", 1);
64
		assertNotNull(result);
65
		assertEquals(0, result.length);
66
67
		result = provider.getProposals("xx,f", 4);
68
		assertNotNull(result);
69
		assertEquals(1, result.length);
70
		assertEquals("foo", result[0].getContent());
71
		result = provider.getProposals("xx,a", 4);
72
		assertNotNull(result);
73
		assertEquals(0, result.length);
74
75
		result = provider.getProposals("xx,f,yy", 4);
76
		assertNotNull(result);
77
		assertEquals(1, result.length);
78
		assertEquals("foo", result[0].getContent());
79
		result = provider.getProposals("xx,a,yy", 4);
80
		assertNotNull(result);
81
		assertEquals(0, result.length);
82
83
		result = provider.getProposals("xx,,yy", 3);
84
		assertNotNull(result);
85
		assertEquals(1, result.length);
86
		assertEquals("foo", result[0].getContent());
52
	}
87
	}
53
88
54
}
89
}
(-)src/org/eclipse/mylyn/internal/tasks/ui/PersonProposalProvider.java (-5 / +28 lines)
Lines 51-62 Link Here
51
51
52
		SortedSet<String> addressSet = getAddressSet();
52
		SortedSet<String> addressSet = getAddressSet();
53
		if (position > 0) {
53
		if (position > 0) {
54
			String searchElement = contents;
55
			int pos_prev = contents.substring(0, position).lastIndexOf(',');
56
			int pos_next = contents.substring(position).indexOf(',');
57
58
			int new_position;
59
60
			if (pos_prev != -1) {
61
				new_position = position - pos_prev - 1;
62
				if (pos_next != -1) {
63
					searchElement = contents.substring(pos_prev + 1, position + pos_next);
64
				} else {
65
					searchElement = contents.substring(pos_prev + 1);
66
				}
67
			} else {
68
				new_position = position;
69
				if (pos_next != -1) {
70
					searchElement = contents.substring(0, position + pos_next);
71
				} else {
72
					searchElement = contents;
73
				}
74
			}
54
			// retrieve subset of the tree set using key range
75
			// retrieve subset of the tree set using key range
55
			char[] chars = contents.toLowerCase().toCharArray();
76
			if (!searchElement.equals("")) {
56
			String contents1 = new String(chars, 0, position);
77
				char[] chars = searchElement.toLowerCase().toCharArray();
57
			chars[position - 1]++;
78
				String contents1 = new String(chars, 0, searchElement.length());
58
			String contents2 = new String(chars, 0, position);
79
				chars[new_position - 1]++;
59
			addressSet = addressSet.subSet(contents1, contents2);
80
				String contents2 = new String(chars, 0, searchElement.length());
81
				addressSet = addressSet.subSet(contents1, contents2);
82
			}
60
		}
83
		}
61
84
62
		IContentProposal[] result = new IContentProposal[addressSet.size()];
85
		IContentProposal[] result = new IContentProposal[addressSet.size()];

Return to bug 187127