Kom mit und Master

This commit is contained in:
Waldi
2017-09-14 12:36:48 +02:00
parent 1e2951c894
commit 5a77d5da5b
9 changed files with 376 additions and 258 deletions

View File

@@ -1,6 +1,9 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
@@ -18,6 +21,7 @@ using System.Windows.Threading;
using ChatController.ChatKlassen;
using ChatController.HauptKlassen;
using ChatController.Klassen;
using Path = System.IO.Path;
namespace ChatController
{
@@ -53,6 +57,7 @@ namespace ChatController
private Dictionary<String, Action<string>> menuItemName2Callback = new Dictionary<string, Action<string>>();
public ChatMainControl()
{
InitializeComponent();
@@ -66,11 +71,9 @@ namespace ChatController
_kontaktlist = _chat.GroupklassenInChatKontakteUmwandler();
Clientlist.ItemsSource = _kontaktlist;
//Neu
CollectionView view = (CollectionView)CollectionViewSource.GetDefaultView(Clientlist.ItemsSource);
view.Filter = UserFilter;
//NEu
view.Filter = UserFilter;
HorcheAlleGruppenNachrichten();
}
@@ -163,6 +166,7 @@ namespace ChatController
}
}
//ab Hier Kontext Menü
private void SetContextHandler()
{
var contextItems = Chat.ContextMenu.Items;
@@ -188,25 +192,9 @@ namespace ChatController
item3.Click += Item3OnClick;
}
public delegate void ContextDelegate();
public event ContextDelegate CreateNewContextItems;
private void Chat_OnMouseRightButtonDown(object sender, MouseButtonEventArgs e)
{
var contextItems = Chat.ContextMenu.Items;
//abfragen für on right click vom Bewoplaner Chat hinzufügen
}
private void Item2OnClick(object sender, RoutedEventArgs routedEventArgs)
{
@@ -220,22 +208,118 @@ namespace ChatController
private void Item3OnClick(object sender, RoutedEventArgs routedEventArgs)
{
// _chat.Einfuegen();
var kontakt = (AktuellerKontakt)AktChatUser.Items[0];
_chat.Einfuegen(kontakt.GroupId);
}
//Bug Wegen Klient und so
private void Chat_OnContextMenuOpening(object sender, ContextMenuEventArgs e)
{
//prüfe ob ein Bild angeclickt wurde
var chatItems = Chat.SelectedItems;
if (chatItems.Count > 0)
{
foreach (var items in chatItems)
{
var item = items as KontaktMessageBuilder;
if (item != null && item.ImageSources != null)
{
var contextItems = Chat.ContextMenu.Items;
var ContextItemSpeichernUnter = (MenuItem)contextItems[0];
ContextItemSpeichernUnter.Visibility = Visibility.Visible;
}
else
{
var contextItems = Chat.ContextMenu.Items;
var ContextItemSpeichernUnter = (MenuItem)contextItems[0];
ContextItemSpeichernUnter.Visibility = Visibility.Collapsed;
}
}
}
else
{
//Schalte speichern unter Aus
var contextItems = Chat.ContextMenu.Items;
var ContextItemSpeichernUnter = (MenuItem)contextItems[0];
ContextItemSpeichernUnter.Visibility = Visibility.Collapsed;
}
//prüfe ob was in dem Speicher vorhanden ist //Einfügen
var d = System.Windows.Forms.Clipboard.GetDataObject();
if (d.GetDataPresent(DataFormats.FileDrop) )
{
var contextItems = Chat.ContextMenu.Items;
var ContextItemSpeichernUnter = (MenuItem)contextItems[1];
ContextItemSpeichernUnter.Visibility = Visibility.Visible;
}
else if (d.GetDataPresent(DataFormats.Text))
{
var contextItems = Chat.ContextMenu.Items;
var ContextItemSpeichernUnter = (MenuItem)contextItems[1];
ContextItemSpeichernUnter.Visibility = Visibility.Visible;
}
else if (d.GetDataPresent(DataFormats.Bitmap))
{
var contextItems = Chat.ContextMenu.Items;
var ContextItemSpeichernUnter = (MenuItem)contextItems[1];
ContextItemSpeichernUnter.Visibility = Visibility.Visible;
}
else
{
var contextItems = Chat.ContextMenu.Items;
var ContextItemSpeichernUnter = (MenuItem)contextItems[1];
ContextItemSpeichernUnter.Visibility = Visibility.Collapsed;
}
//Bug prüfe ob der aktulle Chat partner ein Klient ist
var kontakt = (AktuellerKontakt)AktChatUser.Items[0];
if (true && Chat.ContextMenu.Items.Count > 2)
{
var contextItems = Chat.ContextMenu.Items;
var ContextItemSpeichernUnter = (MenuItem)contextItems[2];
ContextItemSpeichernUnter.Visibility = Visibility.Collapsed;
}
if (Chat.ContextMenu.Items.Count == 0)
{
Chat.ContextMenu.Visibility =Visibility.Collapsed;
}
}
public void AddContextMenu(string menuItemText, Action<string> callBackAction)
{
if (!menuItemName2Callback.ContainsKey(menuItemText))
{
menuItemName2Callback.Add(menuItemText, callBackAction);
}
}
#endregion
#region Sende Media Nachrichten
private void MediaButton_OnClick(object sender, RoutedEventArgs e)
{
var kontakt = (AktuellerKontakt)AktChatUser.Items[0];
if (AktChatUser.Items.Count > 0)
{
var kontakt = (AktuellerKontakt) AktChatUser.Items[0];
_chat.HoleUndSendeMediumAnKontakt(kontakt);
_chat.HoleUndSendeMediumAnKontakt(kontakt);
Chat.ItemsSource = null;
Chat.ItemsSource = _chat.LadeChatNachrichtenVomKontakt(kontakt);
Chat.ItemsSource = null;
Chat.ItemsSource = _chat.LadeChatNachrichtenVomKontakt(kontakt);
Chat.Items.MoveCurrentToLast();
Chat.ScrollIntoView(Chat.Items.CurrentItem);
Chat.Items.MoveCurrentToLast();
Chat.ScrollIntoView(Chat.Items.CurrentItem);
}
else
{
MessageBox.Show("Bitte einen Kontakt auswählen!","Fehler",MessageBoxButton.OK);
}
}
#endregion
@@ -363,15 +447,6 @@ namespace ChatController
}
#endregion
public void AddContextMenu(string menuItemText, Action<string> callBackAction)
{
if (!menuItemName2Callback.ContainsKey(menuItemText))
{
menuItemName2Callback.Add(menuItemText, callBackAction);
}
}
#region Nachladen weiterer Chat Nachrichten
private void Chat_OnScrollChanged(object sender, ScrollChangedEventArgs e)
{
@@ -638,6 +713,66 @@ namespace ChatController
}
#endregion
#region Zeige Erhaltene Daten An In Dem Fall Bilder Zurzeit
private void Chat_OnMouseDoubleClick(object sender, MouseButtonEventArgs e)
{
var chatItems = Chat.SelectedItems;
if (chatItems.Count > 0) {
foreach (var items in chatItems)
{
var item = items as KontaktMessageBuilder;
if (item != null && item.ImageSources != null)
{
_chat.ShowPicture(item);
}
}
}
}
#endregion
#region Lade Dokument Herunter und Zeige es an
private void OpenDokument_OnClick(object sender, RoutedEventArgs e)
{
var btn = sender as System.Windows.Controls.Button;
if (btn.Tag != null)
{
var link = btn.Tag;
var filename = Path.GetFileName(link.ToString());
LoadDokument(link.ToString(),filename);
}
}
private void LoadDokument(string link, String filename)
{
string path = @"c:\temp\" + filename;
if (!File.Exists(path))
{
using (WebClient webClient = new WebClient())
{
webClient.DownloadFile(link, path);
}
if (File.Exists(path))
{
Process.Start(path);
}
}
else
{
Process.Start(path);
}
}
#endregion
}
}