franta-hg@149: package cz.frantovo.nekurak.chat; franta-hg@149: franta-hg@149: import java.util.ArrayList; franta-hg@149: import java.util.Collection; franta-hg@149: import java.util.logging.Level; franta-hg@149: import java.util.logging.Logger; franta-hg@149: import org.jivesoftware.smack.ConnectionConfiguration; franta-hg@149: import org.jivesoftware.smack.XMPPConnection; franta-hg@149: import org.jivesoftware.smack.XMPPException; franta-hg@149: franta-hg@149: /** franta-hg@149: * franta-hg@149: * @author fiki franta-hg@149: */ franta-hg@149: public class Spojeni { franta-hg@149: franta-hg@149: private XMPPConnection spojeni; franta-hg@149: private Collection mistnosti = new ArrayList(); franta-hg@149: private static final Logger log = Logger.getLogger(Spojeni.class.getSimpleName()); franta-hg@149: franta-hg@149: public Spojeni(UcetRobota ucet) throws XMPPException { franta-hg@149: /** Navážeme spojení */ franta-hg@149: ConnectionConfiguration nastaveni = new ConnectionConfiguration(ucet.getAdresaServeru(), ucet.getPort(), ucet.getDomena()); franta-hg@149: spojeni = new XMPPConnection(nastaveni); franta-hg@149: spojeni.connect(); franta-hg@149: spojeni.login(ucet.getUzivatelskeJmeno(), ucet.getUzivatelskeHeslo(), ucet.getProstredek()); franta-hg@149: franta-hg@149: /** Vstoupíme do místností */ franta-hg@149: for (Mistnost m : ucet.getMistnosti()) { franta-hg@149: MistnostPripojena mp = new MistnostPripojena(m, this); franta-hg@149: mistnosti.add(mp); franta-hg@149: } franta-hg@149: } franta-hg@149: franta-hg@149: public void odpoj() { franta-hg@149: /** Rozloučíme se ve všech místnostech */ franta-hg@149: try { franta-hg@149: for (MistnostPripojena mp : mistnosti) { franta-hg@149: mp.odejdi(); franta-hg@149: } franta-hg@149: } catch (Exception e) { franta-hg@149: log.log(Level.WARNING, "Nepodařilo se odejít z místnosti před ukončením spojení.", e); franta-hg@149: } franta-hg@149: franta-hg@149: /** Ukončíme spojení */ franta-hg@149: spojeni.disconnect(); franta-hg@149: } franta-hg@149: franta-hg@149: public XMPPConnection getSpojeni() { franta-hg@149: return spojeni; franta-hg@149: } franta-hg@149: franta-hg@149: public Collection getMistnosti() { franta-hg@149: return mistnosti; franta-hg@149: } franta-hg@149: }