Files
SDL/VERAG_PROG_ALLGEMEIN/Messenger/frmMessenger.vb
2020-01-08 14:52:43 +01:00

211 lines
8.1 KiB
VB.net

Imports System.Drawing
Imports System.Threading
Imports System.Windows.Forms
Public Class frmMessenger
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Dim CHAT As VERAG_PROG_ALLGEMEIN.cMessenger.cMessenger_Chat = Nothing
Dim MSG_LISTENDER As New cMessangerListender
Public Sub New()
' Dieser Aufruf ist für den Designer erforderlich.
InitializeComponent()
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
End Sub
Private Sub MyDatagridview1_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvChats.CellContentClick
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Dim f As New frmMessenger_NeuerChat
f.ShowDialog(Me)
End Sub
Private Sub frmMessenger_Load(sender As Object, e As EventArgs) Handles Me.Load
MSG_LISTENDER.START()
intiDGVChats()
TimerNEW_MESSAGE.Enabled = True
End Sub
Sub intiDGVChats()
With dgvChats
.DataSource = SQL.loadDgvBySql("SELECT [chat_id],chat_name FROM [tblMessenger_Chat] WHERE [chat_aktiv]=1 AND (SELECT COUNT(*) FROM tblMessenger_ChatMembers WHERE chatMB_chatId=chat_id AND chatMB_maId=" & VERAG_PROG_ALLGEMEIN.cAllgemein.USRID & ")>0", "ADMIN")
If .Columns.Count = 0 Then Exit Sub
.Columns("chat_id").Visible = False
.Columns("chat_name").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
End With
End Sub
Private Sub dgvChats_SelectionChanged(sender As Object, e As EventArgs) Handles dgvChats.SelectionChanged
MyFlowLayoutPanel1.Controls.Clear()
If dgvChats.SelectedRows.Count > 0 Then
CHAT = New VERAG_PROG_ALLGEMEIN.cMessenger.cMessenger_Chat(dgvChats.SelectedRows(0).Cells("chat_id").Value)
RELOAD_CHAT()
End If
End Sub
Sub RELOAD_CHAT()
MyFlowLayoutPanel1.Controls.Clear()
If CHAT IsNot Nothing Then
' CHAT = New VERAG_PROG_ALLGEMEIN.cMessenger.cMessenger_Chat(dgvChats.SelectedRows(0).Cells("chat_id").Value)
For Each MSG In CHAT.CHAT_MESSAGES
Dim CHAT_ITEM As New usrCntlMessenger_ChatElement(MSG)
checkUsrId(MSG, CHAT_ITEM)
CHAT_ITEM.txtChatmessage.Text = MSG.chatMg_text
'CHAT_ITEM.lblName.Text = MSG.chatMg_maId
MyFlowLayoutPanel1.Controls.Add(CHAT_ITEM)
Next
' MyFlowLayoutPanel1.VerticalScroll.()
'MyFlowLayoutPanel1.AutoScrollPosition = New Point(MyFlowLayoutPanel1.Width, MyFlowLayoutPanel1.Height)
' If MyFlowLayoutPanel1.Controls.Count > 0 Then MyFlowLayoutPanel1.ScrollControlIntoView(MyFlowLayoutPanel1.Controls(MyFlowLayoutPanel1.Controls.Count - 1))
MyFlowLayoutPanel1.VerticalScroll.Value = MyFlowLayoutPanel1.VerticalScroll.Maximum
End If
End Sub
Sub REFRESH_CHAT()
If CHAT IsNot Nothing Then
CHAT.LOAD_MESSAGES()
' CHAT = New VERAG_PROG_ALLGEMEIN.cMessenger.cMessenger_Chat(dgvChats.SelectedRows(0).Cells("chat_id").Value)
For Each MSG In CHAT.CHAT_MESSAGES
Dim found As Boolean = False
For Each I As usrCntlMessenger_ChatElement In MyFlowLayoutPanel1.Controls
If I.CHAT_MSG.chatMg_id = MSG.chatMg_id Then
found = True
End If
Next
If Not found Then
Dim CHAT_ITEM As New usrCntlMessenger_ChatElement(MSG)
checkUsrId(MSG, CHAT_ITEM)
CHAT_ITEM.txtChatmessage.Text = MSG.chatMg_text
'CHAT_ITEM.lblName.Text = MSG.chatMg_maId
MyFlowLayoutPanel1.Controls.Add(CHAT_ITEM)
End If
Next
' MyFlowLayoutPanel1.VerticalScroll.()
'MyFlowLayoutPanel1.AutoScrollPosition = New Point(MyFlowLayoutPanel1.Width, MyFlowLayoutPanel1.Height)
' If MyFlowLayoutPanel1.Controls.Count > 0 Then MyFlowLayoutPanel1.ScrollControlIntoView(MyFlowLayoutPanel1.Controls(MyFlowLayoutPanel1.Controls.Count - 1))
MyFlowLayoutPanel1.VerticalScroll.Value = MyFlowLayoutPanel1.VerticalScroll.Maximum
End If
End Sub
'Sub ORDER_CHAT_MSG()
' If Not CHECK_CHATMSG_ORDER() Then
' For Each I As usrCntlMessenger_ChatElement In MyFlowLayoutPanel1.Controls
' Next
' End If
'End Sub
'Function CHECK_CHATMSG_ORDER() As Boolean
' Dim oldItem = Nothing
' For Each I As usrCntlMessenger_ChatElement In MyFlowLayoutPanel1.Controls
' If oldItem IsNot Nothing And I.CHAT_MSG.chatMg_datetime < oldItem.CHAT_MSG.chatMg_datetime Then
' Return False
' End If
' oldItem = I
' Next
' Return True
'End Function
Sub checkUsrId(MSG As VERAG_PROG_ALLGEMEIN.cMessenger.cMessenger_ChatMessages, CHAT_ITEM As usrCntlMessenger_ChatElement)
If MSG.chatMg_maId = VERAG_PROG_ALLGEMEIN.cAllgemein.USRID Then
CHAT_ITEM.Margin = New Padding(MyFlowLayoutPanel1.Width - CHAT_ITEM.Width - 30, 0, 0, 0)
'CHAT_ITEM.Left = (MyFlowLayoutPanel1.Width - CHAT_ITEM.Width - 30)
'CHAT_ITEM.Anchor = AnchorStyles.None
'CHAT_ITEM.Dock = DockStyle.Right
' CHAT_ITEM.Dock = DockStyle.Right
CHAT_ITEM.setBgCOLOR(Color.FromArgb(192, 255, 192))
End If
End Sub
Private Sub btn_Click(sender As Object, e As EventArgs) Handles btn.Click
If rtbChatMessage.Text.Trim <> "" Then
If CHAT IsNot Nothing Then
Dim MSG As New VERAG_PROG_ALLGEMEIN.cMessenger.cMessenger_ChatMessages(CHAT.chat_id, VERAG_PROG_ALLGEMEIN.cAllgemein.USRID)
MSG.chatMg_text = rtbChatMessage.Text.Trim
If MSG.SAVE Then
SEND_TOKEN_NEW_MESSAGE()
' CHAT.CHAT_MESSAGES.Add(MSG)
REFRESH_CHAT()
rtbChatMessage.Text = ""
rtbChatMessage.Focus()
End If
End If
End If
End Sub
Sub SEND_TOKEN_NEW_MESSAGE()
For Each MB In CHAT.CHAT_MEMBERS
If MB.chatMb_maId <> VERAG_PROG_ALLGEMEIN.cAllgemein.USRID Then
Dim IP = cSession.GET_IP_FROM_MAID(MB.chatMb_maId)
If IP <> "" Then
Dim SC As New cServerClient ' SC.begin("192.168.0.50", "NEW_MESSAGE") '192.168.0.95 = atlas suben
SC.begin(IP, "NEW_MESSAGE")
MsgBox(IP)
End If
End If
Next
'SC.waitTillFinished()
'Thread.Sleep(1000)
'If SC.status = "TaskSuccess" Then
'Else
'End If
End Sub
Private Sub rtbChatMessage_KeyDown(sender As Object, e As KeyEventArgs) Handles rtbChatMessage.KeyDown
If e.Modifiers = Keys.Control And e.KeyCode = Keys.Return Then
btn.PerformClick()
e.Handled = True
End If
End Sub
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
If rtbChatMessage.Text.Trim <> "" Then
If CHAT IsNot Nothing Then
Dim MSG As New VERAG_PROG_ALLGEMEIN.cMessenger.cMessenger_ChatMessages(CHAT.chat_id, VERAG_PROG_ALLGEMEIN.cAllgemein.USRID)
MSG.chatMg_text = rtbChatMessage.Text.Trim
MSG.chatMg_maId = 99
If MSG.SAVE Then
' CHAT.CHAT_MESSAGES.Add(MSG)
CHAT.LOAD_MESSAGES()
REFRESH_CHAT()
rtbChatMessage.Text = ""
rtbChatMessage.Focus()
End If
End If
End If
End Sub
Private Sub TimerNEW_MESSAGE_Tick(sender As Object, e As EventArgs) Handles TimerNEW_MESSAGE.Tick
If CHAT IsNot Nothing And VERAG_PROG_ALLGEMEIN.cMessenger.NEW_MESSGE = True Then
VERAG_PROG_ALLGEMEIN.cMessenger.NEW_MESSGE = False
MsgBox("asd")
REFRESH_CHAT()
End If
End Sub
End Class