blob: 6d761a473a10b9660dda9cf5190b40ddba5bb635 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
/****************************************************************************
* Copyright (c) 2004 Composent, Inc. and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Composent, Inc. - initial API and implementation
*****************************************************************************/
package org.eclipse.ecf.internal.example.collab.ui;
import org.eclipse.ecf.discovery.IDiscoveryContainerAdapter;
import org.eclipse.ecf.discovery.IServiceEvent;
import org.eclipse.ecf.discovery.IServiceListener;
import org.eclipse.ecf.discovery.IServiceTypeListener;
import org.eclipse.ecf.discovery.identity.IServiceID;
import org.eclipse.ecf.discovery.ui.views.DiscoveryView;
import org.eclipse.ecf.discovery.ui.views.IDiscoveryController;
import org.eclipse.ecf.internal.example.collab.ClientPlugin;
public class CollabDiscoveryView extends DiscoveryView {
public static final String VIEW_ID = "org.eclipse.ecf.example.collab.discoveryview"; //$NON-NLS-1$
protected static final int SERVICE_REQUEST_TIMEOUT = 3000;
public CollabDiscoveryView() {
super();
setShowTypeDetails(false);
this.setDiscoveryController(ClientPlugin.getDefault()
.getDiscoveryController());
}
public void setDiscoveryController(final IDiscoveryController controller) {
super.setDiscoveryController(controller);
if (controller != null) {
final IDiscoveryContainerAdapter dc = controller
.getDiscoveryContainer();
if (dc != null) {
// setup listeners
dc.addServiceTypeListener(new IServiceTypeListener() {
public void serviceTypeAdded(IServiceEvent event) {
IServiceID svcID = event.getServiceInfo()
.getServiceID();
addServiceTypeInfo(svcID.getServiceType());
dc.addServiceListener(event.getServiceInfo()
.getServiceID().getServiceType(),
new IServiceListener() {
public void serviceAdded(IServiceEvent evt) {
addServiceInfo(evt.getServiceInfo()
.getServiceID());
dc.requestServiceInfo(evt
.getServiceInfo()
.getServiceID(),
SERVICE_REQUEST_TIMEOUT);
}
public void serviceRemoved(IServiceEvent evt) {
removeServiceInfo(evt.getServiceInfo());
}
public void serviceResolved(
IServiceEvent evt) {
addServiceInfo(evt.getServiceInfo());
}
});
dc.registerServiceType(svcID.getServiceType());
}
});
}
}
}
public void dispose() {
IDiscoveryController c = getController();
if (c != null && c.isDiscoveryStarted()) {
c.stopDiscovery();
}
super.dispose();
}
}
|