/// <summary> /// Wczytaj liste kontaktow z pliku XML /// </summary> /// <param name="sciezkaPliku">sciezka do pliku</param> /// <returns></returns> public static Ustawienia Wczytaj(string sciezkaPliku) { Ustawienia ustawienia = new Ustawienia(); if (sciezkaPliku == null || !File.Exists(sciezkaPliku)) { return ustawienia; } XmlDocument plikXML = new XmlDocument(); try { plikXML.Load(sciezkaPliku); foreach (XmlNode wezel in plikXML.DocumentElement.ChildNodes) { switch (wezel.Name.ToLower()) { case "ogolne": ustawienia.Opis = dajAtrybut(wezel, "opis"); break; case "ssl": ustawienia.SSLWlaczone = (dajAtrybut(wezel, "wlaczone").ToLower() == "true"); ustawienia.SSLCertyfikatSciezka = dajAtrybut(wezel, "certyfikat"); break; } } } catch { } return ustawienia; }
/// <summary> /// Konstruktor okna glownego /// </summary> /// <param name="listaKontaktow">elementy tej listy prezentowane sa w spisie kontaktow</param> /// <param name="komunikator">referencja do komunikatora potrzebna jest do zapisania sie jako sluchacz wydarzen (nowa wiadomosc etc.)</param> public OknoGlowne(List<Kontakt> listaKontaktow, Ustawienia ustawienia) { // inicjalizacja elementow formy InitializeComponent(); // zapisujemy referencje this.kontakty = listaKontaktow; this.ustawienia = ustawienia; comboStatus.SelectedIndex = 1; // centralne ustawienie okna na ekranie CenterToScreen(); // ustalamy naglowek okna ustawNaglowek(); // zaladuj elementy obiektu "kontakty" do interfejsu uzytkownika listaZrodlo.DataSource = this.kontakty; lbKontakty.DataSource = listaZrodlo; // inicjalizacja delegaty do otwierania okna czatu obsluzNowaWiadomoscUI = new ObluzNowaWiadomoscUI(obsluzWiadomosc); // inicjalizacja delegaty do odswiezania okna odswiezOknoDelegata = new OdswiezOkno(odswiezListeKontaktow); }
/// <summary> /// Konstruktor komunikatora /// </summary> /// <param name="ipepNaId">Mapowanie punktu kontatku (adres IP,Port) do /// Identyfikatora rozmowcy wszystkich kontaktow uzytkownika</param> public Komunikator(Dictionary<string, IPAddress> mapa_ID_PunktKontaktu, Ustawienia ustawienia) { //inicjalizacja i wypelnianie mapowan pochodnych mapownik = new Mapownik(mapa_ID_PunktKontaktu); foreach (var i in mapa_ID_PunktKontaktu) { dostepnosc.Add(i.Key, false); } int port; if(ustawienia.SSLWlaczone) { port = portSSL; centrala = new CentralaSSL(mapownik , port ,ustawienia.Certyfikat) ; } else { port = portBezSSL; centrala = new Centrala(mapownik, port); } pingacz = new Pingacz(centrala, dostepnosc); nasluchiwacz = new Nasluchiwacz(port); centrala.NowePolaczenieOdNas += centrala_NowePolaczenieOdNas; centrala.NowePolaczenieDoNas += centrala_NowePolaczenieDoNas; centrala.ZamknietoPolaczenie += centrala_ZamknietoPolaczenie; protokol = new Protokol(centrala, mapownik, ustawienia); }
public OknoUstawienia(Ustawienia obecne) { Ustawienia = obecne.Kopiuj(); InitializeComponent(); ustawObszarSSL(); }
const int DlugoscNaglowka = 5; // 1 bajt na rodzaj komunikatu, 4 na dlugosc public Protokol(Centrala centrala, Mapownik mapownik, Ustawienia ustawienia) { this.wiadomosciownia = new Wiadomosciownia(centrala, new CzytanieSkonczone(czekajNaZapytanie)); ; foreach (var i in mapownik.WszystkieId) { wiadomosciownia.DodajUzytkownika(i); } this.ustawienia = ustawienia; this.centrala = centrala; this.mapownik = mapownik; }
private void btnUstawienia_Click(object sender, EventArgs e) { var okno = new OknoUstawienia(ustawienia); var wynik = okno.ShowDialog(this); if (wynik != System.Windows.Forms.DialogResult.OK || okno.Ustawienia == ustawienia) { return; } ustawienia = okno.Ustawienia; ustawienia.Zapisz("ustawienia.xml"); if (polaczony) { rozlaczSie(); polaczSie(); } }