211 lines
8.1 KiB
VB.net
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 |