Cómo desarrollar un cliente de PC basado en java swing basado en spark
paquete org.jivesoftware.spark.ui;
importar java.util.ArrayList
importar org.jivesoftware.spark.util.log.Log;
importar org.jivesoftware.spark.util.ModelUtil;
importar org.jivesoftware.resource.Res
importar org.jivesoftware.smack.Roster;
importar org.jivesoftware.smack.RosterEntry;
importar org.jivesoftware.smack.RosterGroup
importar org.jivesoftware.smack.XMPPException
p>
importar org.jivesoftware.smack.RosterGroup;
importar org.jivesoftware.smack.XMPPException
p>
importar org.jivesoftware.smack.packet; .Presencia;
importar org.jivesoftware.smack.packet.RosterPacket;
importar org.jivesoftware.smack.utils
importar org.jivesoftware. .spark.SparkManager;
importar org.jivesoftware.spark.UserManager;
/**
* Manejar todas las solicitudes de suscripción
* @author jian
*
*/
clase pública MiSuscripción {
cadena privada jid
//Constructor
public MySubscription(){
}
/**
* Llamar
* @param jid ID de clave principal
*/
public void invoke(final String jid){
this.jid=jid
final Roster roster=SparkManager.getConnection().getRoster(); //Volver a la lista de amigos
//Si el usuario ya está entre amigos, entonces no mostrar
RosterEntry Entry=roster.getEntry(jid); //Devuelve el usuario correspondiente
if(entry!=nullamp;amp;entry.getType()==RosterPacket. ItemType.to){
Presencia respuesta=nueva Presencia(Presencia.Type.subscribed);
respuesta.setTo(jid
SparkManager.getConnection().sendPacket(respuesta); p> return;
}
UserManager userManager=SparkManager.getUserManager();
String nombre de usuario=userManager.getNickname(userManager.getFullJID(jid));
nombre de usuario=nombre de usuario==null?StringUtils.parseName(UserManager.unescapeJID(jid)): nombre de usuario //Asignar valor al nombre de usuario
boolean addEntry=addEntry(nombre de usuario); /p>
p>
GetGroupName();
if(addEntry){
Presencia respuesta=nueva Presencia(Presencia.Tipo.subscrito); >
respuesta.setTo(jid);
SparkManager.getConnection().sendPacket(respuesta); p> /**
* Aceptar agregar amigos
*/
addEntry booleano privado(String nombre de usuario){
String errorMessage =Res.getString("title .error");
String groupName="Friends"
//Obtener si el grupo de usuarios existe
ContactGroup contactGroup; =SparkManager.getWorkspace(). getContactList().getContactGroup(groupName);
boolean isSharedGroup = contactGroup!=nullamp amp; println("¿Existe el grupo de usuarios? " isSharedGroup);
if(isSharedGroup){
error
rMessage=Res.getString("message.cannot.add.contact.to.shared.group");
}else if(!ModelUtil.hasLength(nombre de usuario)){
errorMessage=Res.getString("message.specify.contact.jid");
}else if(!ModelUtil.hasLength(groupName)){
errorMessage=Res.getString( "message.specify.group");
}else if(ModelUtil.hasLength(nombre de usuario)amp; amp; ModelUtil.hasLength(groupName)amp; !isSharedGroup){
Sistema .out.println("Agregar amigo");
System.out.println("Grupo de salida directo: " groupName
addEntity(jid, nombre de usuario, nombre de grupo);
devuelve verdadero;
}
devuelve falso
}
/** p>
* Agregar nuevo usuario a la lista de amigos
* @param número de cuenta jid
* @param nombre de usuario apodo
* @param groupName nombre del grupo p>
*/
private RosterEntry addEntity(String jid, String nombre de usuario, String groupName){
String[] groups={groupName}
System.out.println("Comenzando a agregar");
for(int i=0; ilt; groups.length; i){
System.out .println(groups) [i]);
}
Lista roster=SparkManager.getConnection().getRoster();
RosterEntry userEntry=roster.getEntry (jid);
booleano isSubscribed=true
if(userEntry!=null){
isSubscribed=userEntry.getGroups().size()==0;
}
if(isSubscribed){
prueba {
roster.createEntry(jid, nombre de usuario, new String[]{groupName});
} catch (XMPPException e) {
Log.error("No se pueden agregar nuevos amigos" jid , e);
}
return roster.getEntry(jid
}
prueba {
< p); > RosterGroup rosterGroup=roster.getGroup(groupName);if(rosterGroup==null){
rosterGroup=roster.createGroup(groupName);
if(userEntry==null){
lista.createEntry(jid, nombre de usuario, grupos
userEntry=roster.getEntry(jid); /p>
}else {
userEntry.setName(nombre de usuario);
rosterGroup.addEntry(userEntry
}
userEntry=roster.getEntry(jid);
} catch (XMPPException ex) {
Log.error(ex); > p>
return entrada de usuario;
}
private void GetGroupName(){
ArrayListlt; ;
for(Grupo de grupo de contacto:SparkManager.getWorkspace().getContactList().getContactGroups()){
if(!group.i
sOfflineGroup()&!"Unfiled".equalsIgnoreCase(group.getGroupName())&!group.isSharedGroup()){
list.add(group.getGroupName()); > System.out.println(group.getGroupName());
}
}
}
}