📄 calendarservice.java
字号:
/*
* AddressBookService.java
*
* Created on November 29, 2001, 1:27 PM
*/
package com.sams.jxta.pda;
import com.sams.jxta.xcal.*;
import net.jxta.resolver.QueryHandler;
import java.util.Date;
import java.text.SimpleDateFormat;
import net.jxta.impl.resolver.*;
import net.jxta.protocol.*;
import net.jxta.impl.protocol.*;
import org.jdom.*;
import org.jdom.output.*;
import org.jdom.input.*;
import java.io.*;
import java.net.*;
import java.lang.reflect.*;
import java.util.*;
import net.jxta.document.AdvertisementFactory;
import net.jxta.peergroup.*;
import net.jxta.pipe.*;
import net.jxta.discovery.*;
//import net.jxta.document.*;
import net.jxta.document.MimeMediaType;
import net.jxta.endpoint.*;
import net.jxta.id.*;
import net.jxta.exception.*;
import net.jxta.peer.*;
import net.jxta.pipe.*;
import net.jxta.peergroup.*;
import net.jxta.platform.*;
import net.jxta.protocol.*;
import net.jxta.service.*;
import javax.swing.DefaultListModel;
/**
*
* @author Administrator
*/
public class CalendarService {
String syncHandlerName = "SyncCalendarList";//Pull
String pushHandlerName = "PushCalendarList";//Push
String credential ="SAMS";
//Hashtable addressGroups = new Hashtable();
Hashtable allAddresses = new Hashtable();
net.jxta.peer.PeerID peerID;
/** Creates new CalendarService */
PeerGroup rootPeerGroup;
//InfoResolver resolverX;
private DiscoveryService discovery;
net.jxta.impl.resolver.ResolverServiceImpl resolver;
//SynchronizerResolver synchronizerResolver;
/** Creates new AddressBookService */
public CalendarService(PeerGroup rootPeerGroup) {
this.rootPeerGroup = rootPeerGroup;
syncHandlerName += "-"+rootPeerGroup.getPeerGroupName();
pushHandlerName += "-"+rootPeerGroup.getPeerGroupName();
peerID = rootPeerGroup.getPeerID();
discovery = rootPeerGroup.getDiscoveryService();
//addGroupInterest(rootPeerGroup);
PushHandler pushHandler = new PushHandler(pushHandlerName,credential);
SyncHandler syncHandler = new SyncHandler(syncHandlerName,allAddresses,credential);
resolver = (ResolverServiceImpl)rootPeerGroup.getResolverService();
resolver.registerHandler(pushHandlerName, pushHandler);
resolver.registerHandler(syncHandlerName, syncHandler);
}
static Vector models = new Vector(1);
public void addModel(DefaultListModel model){
models.add(model);
}
public void addEntry( XCal xCal){
merge(xCal);
// Get the handler for this group
//??? System.out.println("handlers:"+handlers+ " peerGroup:"+peerGroup);
//??? CalendarGroupHandler handler = (GroupHandler)handlers.get(peerGroup.getPeerGroupName());
// Publish with the resolver
//resolver.
update(xCal.toXML());
}
public void update(String message){
System.out.println("Resolver sending messages");
ResolverQueryMsg resolverQueryMsg = null;
resolverQueryMsg = new ResolverQuery(pushHandlerName, credential,rootPeerGroup.getPeerID().toString(), message,1);
// Note that the following may throw a RuntimeException
// if the peer is not found.
ResolverSend resolverSend = new ResolverSend (resolver, null, resolverQueryMsg);
resolverSend.start();
/*
// Send query to a specific rendezvous
//Enumeration enum = peers.elements();
try{
Enumeration enum = discovery.getLocalAdvertisements( DiscoveryService.PEER, null, null);
for (;enum.hasMoreElements();){
PeerAdvertisement peer = (PeerAdvertisement)enum.nextElement();
if (!peer.getID().equals(peerID)){
System.out.println("Sending a message to peer:"+ peer.getName()+"--"+peer.getID().toString());
try{
resolver.sendQuery(peer.getID().toString(), resolverQueryMsg);
}catch(Exception e){
e.printStackTrace();
}
}
}
}catch(java.io.IOException ioe){
ioe.printStackTrace();
}
*/
}
public void synchronize(){
//synchronizerResolver.synchronize();
System.out.println("Resolver sending synchronize");
ResolverQueryMsg resolverQueryMsg = null;
resolverQueryMsg = new ResolverQuery(syncHandlerName, credential,rootPeerGroup.getPeerID().toString(), "",1);
// Note that the following may throw a RuntimeException
// if the peer is not found.
ResolverSend resolverSend = new ResolverSend (resolver, null, resolverQueryMsg);
resolverSend.start();
/*
// Send query to a specific rendezvous
try{
Enumeration enum = discovery.getLocalAdvertisements( DiscoveryService.PEER, null, null);
for (;enum.hasMoreElements();){
PeerAdvertisement peer = (PeerAdvertisement)enum.nextElement();
if (!peer.getID().equals(peerID)){
System.out.println("Sending a message to peer:"+ peer.getName()+"--"+peer.getID().toString());
try{
resolver.sendQuery(peer.getID().toString(), resolverQueryMsg);
}catch(Exception e){
e.printStackTrace();
}
}
}
}catch(java.io.IOException ioe){
ioe.printStackTrace();
}
**/
}
public void updateEntry(XCal xCal){
}
public void deleteEntry(XCal xCal){
}
/**
* Merge the new event into our database.
*/
public synchronized void merge(XCal xCal){
if (allAddresses.get(xCal.getDtstamp())!=null){
System.out.println("Address book already has this message");
// We already have this message
return;
}else{
System.out.println("New address message");
allAddresses.put(xCal.getDtstamp(),xCal);
}
// Create something we can use.
/*
Document newDoc =xCal.toJDOM();
Element root = newDoc.getRootElement();
Hashtable addresses = calGroups.get(peerGroup.getPeerGroupName());
addresses.put() .addContent(root);
*/
// Update displays
System.out.println("*****************updating list in display");
for (int i =0;i <models.size();i++){
System.out.println("************updating list item:"+xCal);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -