MS: Conversations

This commit is contained in:
2020-06-23 10:39:24 +02:00
parent 238c8e0860
commit a45b81dc47
39 changed files with 1652 additions and 206 deletions

View File

@@ -1,9 +1,9 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()>
Partial Class ChatControl
Inherits System.Windows.Forms.UserControl
'UserControl1 überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
<System.Diagnostics.DebuggerNonUserCode()> _
<System.Diagnostics.DebuggerNonUserCode()>
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
@@ -20,7 +20,7 @@ Partial Class ChatControl
'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich.
'Das Bearbeiten ist mit dem Windows Form-Designer möglich.
'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
<System.Diagnostics.DebuggerStepThrough()> _
<System.Diagnostics.DebuggerStepThrough()>
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container()
Dim ItemTemplate1 As DevExpress.XtraGrid.Views.Tile.ItemTemplate = New DevExpress.XtraGrid.Views.Tile.ItemTemplate()
@@ -29,39 +29,59 @@ Partial Class ChatControl
Dim TileViewItemElement1 As DevExpress.XtraGrid.Views.Tile.TileViewItemElement = New DevExpress.XtraGrid.Views.Tile.TileViewItemElement()
Dim TileViewItemElement2 As DevExpress.XtraGrid.Views.Tile.TileViewItemElement = New DevExpress.XtraGrid.Views.Tile.TileViewItemElement()
Dim TileViewItemElement3 As DevExpress.XtraGrid.Views.Tile.TileViewItemElement = New DevExpress.XtraGrid.Views.Tile.TileViewItemElement()
Dim TileViewItemElement4 As DevExpress.XtraGrid.Views.Tile.TileViewItemElement = New DevExpress.XtraGrid.Views.Tile.TileViewItemElement()
Dim TableRowDefinition1 As DevExpress.XtraEditors.TableLayout.TableRowDefinition = New DevExpress.XtraEditors.TableLayout.TableRowDefinition()
Dim TableRowDefinition2 As DevExpress.XtraEditors.TableLayout.TableRowDefinition = New DevExpress.XtraEditors.TableLayout.TableRowDefinition()
Dim TableRowDefinition3 As DevExpress.XtraEditors.TableLayout.TableRowDefinition = New DevExpress.XtraEditors.TableLayout.TableRowDefinition()
Dim ItemTemplate2 As DevExpress.XtraGrid.Views.Tile.ItemTemplate = New DevExpress.XtraGrid.Views.Tile.ItemTemplate()
Dim TableColumnDefinition3 As DevExpress.XtraEditors.TableLayout.TableColumnDefinition = New DevExpress.XtraEditors.TableLayout.TableColumnDefinition()
Dim TableColumnDefinition4 As DevExpress.XtraEditors.TableLayout.TableColumnDefinition = New DevExpress.XtraEditors.TableLayout.TableColumnDefinition()
Dim TileViewItemElement4 As DevExpress.XtraGrid.Views.Tile.TileViewItemElement = New DevExpress.XtraGrid.Views.Tile.TileViewItemElement()
Dim TileViewItemElement5 As DevExpress.XtraGrid.Views.Tile.TileViewItemElement = New DevExpress.XtraGrid.Views.Tile.TileViewItemElement()
Dim TileViewItemElement6 As DevExpress.XtraGrid.Views.Tile.TileViewItemElement = New DevExpress.XtraGrid.Views.Tile.TileViewItemElement()
Dim TableRowDefinition3 As DevExpress.XtraEditors.TableLayout.TableRowDefinition = New DevExpress.XtraEditors.TableLayout.TableRowDefinition()
Dim TileViewItemElement7 As DevExpress.XtraGrid.Views.Tile.TileViewItemElement = New DevExpress.XtraGrid.Views.Tile.TileViewItemElement()
Dim TableRowDefinition4 As DevExpress.XtraEditors.TableLayout.TableRowDefinition = New DevExpress.XtraEditors.TableLayout.TableRowDefinition()
Dim TableRowDefinition5 As DevExpress.XtraEditors.TableLayout.TableRowDefinition = New DevExpress.XtraEditors.TableLayout.TableRowDefinition()
Dim ItemTemplate3 As DevExpress.XtraGrid.Views.Tile.ItemTemplate = New DevExpress.XtraGrid.Views.Tile.ItemTemplate()
Dim TableColumnDefinition5 As DevExpress.XtraEditors.TableLayout.TableColumnDefinition = New DevExpress.XtraEditors.TableLayout.TableColumnDefinition()
Dim TableColumnDefinition6 As DevExpress.XtraEditors.TableLayout.TableColumnDefinition = New DevExpress.XtraEditors.TableLayout.TableColumnDefinition()
Dim TableRowDefinition5 As DevExpress.XtraEditors.TableLayout.TableRowDefinition = New DevExpress.XtraEditors.TableLayout.TableRowDefinition()
Dim TileViewItemElement8 As DevExpress.XtraGrid.Views.Tile.TileViewItemElement = New DevExpress.XtraGrid.Views.Tile.TileViewItemElement()
Dim TileViewItemElement9 As DevExpress.XtraGrid.Views.Tile.TileViewItemElement = New DevExpress.XtraGrid.Views.Tile.TileViewItemElement()
Dim TileViewItemElement10 As DevExpress.XtraGrid.Views.Tile.TileViewItemElement = New DevExpress.XtraGrid.Views.Tile.TileViewItemElement()
Dim TileViewItemElement11 As DevExpress.XtraGrid.Views.Tile.TileViewItemElement = New DevExpress.XtraGrid.Views.Tile.TileViewItemElement()
Dim TableRowDefinition6 As DevExpress.XtraEditors.TableLayout.TableRowDefinition = New DevExpress.XtraEditors.TableLayout.TableRowDefinition()
Dim TableRowDefinition7 As DevExpress.XtraEditors.TableLayout.TableRowDefinition = New DevExpress.XtraEditors.TableLayout.TableRowDefinition()
Dim TableRowDefinition8 As DevExpress.XtraEditors.TableLayout.TableRowDefinition = New DevExpress.XtraEditors.TableLayout.TableRowDefinition()
Dim TableColumnDefinition7 As DevExpress.XtraEditors.TableLayout.TableColumnDefinition = New DevExpress.XtraEditors.TableLayout.TableColumnDefinition()
Dim TableColumnDefinition8 As DevExpress.XtraEditors.TableLayout.TableColumnDefinition = New DevExpress.XtraEditors.TableLayout.TableColumnDefinition()
Dim TableRowDefinition9 As DevExpress.XtraEditors.TableLayout.TableRowDefinition = New DevExpress.XtraEditors.TableLayout.TableRowDefinition()
Dim TableRowDefinition10 As DevExpress.XtraEditors.TableLayout.TableRowDefinition = New DevExpress.XtraEditors.TableLayout.TableRowDefinition()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(ChatControl))
Me.columnUsername = New DevExpress.XtraGrid.Columns.TileViewColumn()
Me.columnMessage = New DevExpress.XtraGrid.Columns.TileViewColumn()
Me.columnDate = New DevExpress.XtraGrid.Columns.TileViewColumn()
Me.columnTO_USER = New DevExpress.XtraGrid.Columns.TileViewColumn()
Me.RepositoryItemHypertextLabel1 = New DevExpress.XtraEditors.Repository.RepositoryItemHypertextLabel()
Me.RepositoryItemHyperLinkEdit1 = New DevExpress.XtraEditors.Repository.RepositoryItemHyperLinkEdit()
Me.GridChat = New DevExpress.XtraGrid.GridControl()
Me.ChatView = New DevExpress.XtraGrid.Views.Tile.TileView()
Me.btnSendMessage = New DevExpress.XtraEditors.SimpleButton()
Me.ChatSource = New System.Windows.Forms.BindingSource(Me.components)
Me.Panel1 = New System.Windows.Forms.Panel()
Me.txtMessage = New System.Windows.Forms.TextBox()
Me.lblTitle = New System.Windows.Forms.Label()
Me.pnlMessage = New System.Windows.Forms.Panel()
Me.ListBoxUserMention = New System.Windows.Forms.ListBox()
Me.RichTextBox1 = New System.Windows.Forms.RichTextBox()
Me.MenuStrip1 = New System.Windows.Forms.MenuStrip()
Me.tsmitmTitle = New System.Windows.Forms.ToolStripMenuItem()
Me.tsmenitmHamburger = New System.Windows.Forms.ToolStripMenuItem()
Me.ToolStripMenuItemConv_end = New System.Windows.Forms.ToolStripMenuItem()
Me.BenutzerHinzufügenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.TeilnehmerToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
CType(Me.RepositoryItemHypertextLabel1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.RepositoryItemHyperLinkEdit1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.GridChat, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.ChatView, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.ChatSource, System.ComponentModel.ISupportInitialize).BeginInit()
Me.Panel1.SuspendLayout()
Me.pnlMessage.SuspendLayout()
Me.MenuStrip1.SuspendLayout()
Me.SuspendLayout()
'
'columnUsername
@@ -84,6 +104,8 @@ Partial Class ChatControl
'
'columnDate
'
Me.columnDate.DisplayFormat.FormatString = "g"
Me.columnDate.DisplayFormat.FormatType = DevExpress.Utils.FormatType.DateTime
Me.columnDate.FieldName = "ADDED_WHEN"
Me.columnDate.MinWidth = 23
Me.columnDate.Name = "columnDate"
@@ -91,6 +113,15 @@ Partial Class ChatControl
Me.columnDate.VisibleIndex = 2
Me.columnDate.Width = 87
'
'columnTO_USER
'
Me.columnTO_USER.AppearanceCell.BackColor = System.Drawing.Color.GreenYellow
Me.columnTO_USER.AppearanceCell.Options.UseBackColor = True
Me.columnTO_USER.FieldName = "TO_USER"
Me.columnTO_USER.Name = "columnTO_USER"
Me.columnTO_USER.Visible = True
Me.columnTO_USER.VisibleIndex = 3
'
'RepositoryItemHypertextLabel1
'
Me.RepositoryItemHypertextLabel1.Name = "RepositoryItemHypertextLabel1"
@@ -120,7 +151,7 @@ Partial Class ChatControl
'
'ChatView
'
Me.ChatView.Columns.AddRange(New DevExpress.XtraGrid.Columns.GridColumn() {Me.columnMessage, Me.columnUsername, Me.columnDate})
Me.ChatView.Columns.AddRange(New DevExpress.XtraGrid.Columns.GridColumn() {Me.columnMessage, Me.columnUsername, Me.columnDate, Me.columnTO_USER})
Me.ChatView.ContextButtonOptions.HoverStateOpacity = 0.75!
Me.ChatView.ContextButtonOptions.TopPanelColor = System.Drawing.Color.White
Me.ChatView.DetailHeight = 431
@@ -131,7 +162,7 @@ Partial Class ChatControl
Me.ChatView.OptionsTiles.IndentBetweenGroups = 0
Me.ChatView.OptionsTiles.IndentBetweenItems = 10
Me.ChatView.OptionsTiles.ItemPadding = New System.Windows.Forms.Padding(0)
Me.ChatView.OptionsTiles.ItemSize = New System.Drawing.Size(374, 64)
Me.ChatView.OptionsTiles.ItemSize = New System.Drawing.Size(374, 90)
Me.ChatView.OptionsTiles.LayoutMode = DevExpress.XtraGrid.Views.Tile.TileViewLayoutMode.Kanban
Me.ChatView.OptionsTiles.Orientation = System.Windows.Forms.Orientation.Vertical
Me.ChatView.OptionsTiles.Padding = New System.Windows.Forms.Padding(5)
@@ -144,13 +175,14 @@ Partial Class ChatControl
TileViewItemElement1.Column = Me.columnUsername
TileViewItemElement1.ImageOptions.ImageAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleCenter
TileViewItemElement1.ImageOptions.ImageScaleMode = DevExpress.XtraEditors.TileItemImageScaleMode.ZoomInside
TileViewItemElement1.RowIndex = 1
TileViewItemElement1.Text = "columnUsername"
TileViewItemElement1.TextAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleLeft
TileViewItemElement1.TextLocation = New System.Drawing.Point(10, 0)
TileViewItemElement2.Column = Me.columnMessage
TileViewItemElement2.ImageOptions.ImageAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleCenter
TileViewItemElement2.ImageOptions.ImageScaleMode = DevExpress.XtraEditors.TileItemImageScaleMode.ZoomInside
TileViewItemElement2.RowIndex = 1
TileViewItemElement2.RowIndex = 2
TileViewItemElement2.Text = "columnMessage"
TileViewItemElement2.TextAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleLeft
TileViewItemElement2.TextLocation = New System.Drawing.Point(10, 0)
@@ -158,56 +190,109 @@ Partial Class ChatControl
TileViewItemElement3.ColumnIndex = 1
TileViewItemElement3.ImageOptions.ImageAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleCenter
TileViewItemElement3.ImageOptions.ImageScaleMode = DevExpress.XtraEditors.TileItemImageScaleMode.ZoomInside
TileViewItemElement3.RowIndex = 1
TileViewItemElement3.Text = "columnDate"
TileViewItemElement3.TextAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleRight
TileViewItemElement3.TextLocation = New System.Drawing.Point(-10, 0)
TileViewItemElement4.Column = Me.columnTO_USER
TileViewItemElement4.ImageOptions.ImageAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleCenter
TileViewItemElement4.ImageOptions.ImageScaleMode = DevExpress.XtraEditors.TileItemImageScaleMode.ZoomInside
TileViewItemElement4.Text = "columnTO_USER"
TileViewItemElement4.TextAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleCenter
ItemTemplate1.Elements.Add(TileViewItemElement1)
ItemTemplate1.Elements.Add(TileViewItemElement2)
ItemTemplate1.Elements.Add(TileViewItemElement3)
ItemTemplate1.Elements.Add(TileViewItemElement4)
ItemTemplate1.Name = "ChatLeft"
TableRowDefinition1.Length.Value = 24.0R
TableRowDefinition2.Length.Value = 24.0R
TableRowDefinition1.Length.Value = 40.0R
TableRowDefinition2.Length.Value = 19.0R
TableRowDefinition3.Length.Value = 45.0R
ItemTemplate1.Rows.Add(TableRowDefinition1)
ItemTemplate1.Rows.Add(TableRowDefinition2)
ItemTemplate1.Rows.Add(TableRowDefinition3)
TableColumnDefinition3.Length.Value = 100.0R
TableColumnDefinition4.Length.Value = 250.0R
ItemTemplate2.Columns.Add(TableColumnDefinition3)
ItemTemplate2.Columns.Add(TableColumnDefinition4)
TileViewItemElement4.Column = Me.columnUsername
TileViewItemElement4.ColumnIndex = 1
TileViewItemElement4.ImageOptions.ImageAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleCenter
TileViewItemElement4.ImageOptions.ImageScaleMode = DevExpress.XtraEditors.TileItemImageScaleMode.ZoomInside
TileViewItemElement4.Text = "columnUsername"
TileViewItemElement4.TextAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleRight
TileViewItemElement4.TextLocation = New System.Drawing.Point(-10, 0)
TileViewItemElement5.Column = Me.columnMessage
TileViewItemElement5.Column = Me.columnUsername
TileViewItemElement5.ColumnIndex = 1
TileViewItemElement5.ImageOptions.ImageAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleCenter
TileViewItemElement5.ImageOptions.ImageScaleMode = DevExpress.XtraEditors.TileItemImageScaleMode.ZoomInside
TileViewItemElement5.RowIndex = 1
TileViewItemElement5.Text = "columnMessage"
TileViewItemElement5.Text = "columnUsername"
TileViewItemElement5.TextAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleRight
TileViewItemElement5.TextLocation = New System.Drawing.Point(-10, 0)
TileViewItemElement6.Column = Me.columnDate
TileViewItemElement6.Column = Me.columnMessage
TileViewItemElement6.ColumnIndex = 1
TileViewItemElement6.ImageOptions.ImageAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleCenter
TileViewItemElement6.ImageOptions.ImageScaleMode = DevExpress.XtraEditors.TileItemImageScaleMode.ZoomInside
TileViewItemElement6.Text = "columnDate"
TileViewItemElement6.TextAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleLeft
TileViewItemElement6.TextLocation = New System.Drawing.Point(10, 0)
ItemTemplate2.Elements.Add(TileViewItemElement4)
TileViewItemElement6.RowIndex = 1
TileViewItemElement6.Text = "columnMessage"
TileViewItemElement6.TextAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleRight
TileViewItemElement6.TextLocation = New System.Drawing.Point(-10, 0)
TileViewItemElement7.Column = Me.columnDate
TileViewItemElement7.ImageOptions.ImageAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleCenter
TileViewItemElement7.ImageOptions.ImageScaleMode = DevExpress.XtraEditors.TileItemImageScaleMode.ZoomInside
TileViewItemElement7.Text = "columnDate"
TileViewItemElement7.TextAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleLeft
TileViewItemElement7.TextLocation = New System.Drawing.Point(10, 0)
ItemTemplate2.Elements.Add(TileViewItemElement5)
ItemTemplate2.Elements.Add(TileViewItemElement6)
ItemTemplate2.Elements.Add(TileViewItemElement7)
ItemTemplate2.Name = "ChatRight"
TableRowDefinition3.Length.Value = 24.0R
TableRowDefinition4.Length.Value = 24.0R
ItemTemplate2.Rows.Add(TableRowDefinition3)
TableRowDefinition4.Length.Value = 19.0R
TableRowDefinition5.Length.Value = 45.0R
ItemTemplate2.Rows.Add(TableRowDefinition4)
ItemTemplate2.Rows.Add(TableRowDefinition5)
TableColumnDefinition5.Length.Value = 250.0R
TableColumnDefinition6.Length.Value = 100.0R
ItemTemplate3.Columns.Add(TableColumnDefinition5)
ItemTemplate3.Columns.Add(TableColumnDefinition6)
TileViewItemElement8.Column = Me.columnUsername
TileViewItemElement8.ImageOptions.ImageAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleCenter
TileViewItemElement8.ImageOptions.ImageScaleMode = DevExpress.XtraEditors.TileItemImageScaleMode.ZoomInside
TileViewItemElement8.RowIndex = 1
TileViewItemElement8.Text = "columnUsername"
TileViewItemElement8.TextAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleLeft
TileViewItemElement8.TextLocation = New System.Drawing.Point(10, 0)
TileViewItemElement9.Column = Me.columnMessage
TileViewItemElement9.ImageOptions.ImageAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleCenter
TileViewItemElement9.ImageOptions.ImageScaleMode = DevExpress.XtraEditors.TileItemImageScaleMode.ZoomInside
TileViewItemElement9.RowIndex = 2
TileViewItemElement9.Text = "columnMessage"
TileViewItemElement9.TextAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleLeft
TileViewItemElement9.TextLocation = New System.Drawing.Point(10, 0)
TileViewItemElement10.Column = Me.columnDate
TileViewItemElement10.ColumnIndex = 1
TileViewItemElement10.ImageOptions.ImageAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleCenter
TileViewItemElement10.ImageOptions.ImageScaleMode = DevExpress.XtraEditors.TileItemImageScaleMode.ZoomInside
TileViewItemElement10.RowIndex = 1
TileViewItemElement10.Text = "columnDate"
TileViewItemElement10.TextAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleRight
TileViewItemElement10.TextLocation = New System.Drawing.Point(-10, 0)
TileViewItemElement11.Column = Me.columnTO_USER
TileViewItemElement11.ImageOptions.ImageAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleCenter
TileViewItemElement11.ImageOptions.ImageScaleMode = DevExpress.XtraEditors.TileItemImageScaleMode.ZoomInside
TileViewItemElement11.Text = "columnTO_USER"
TileViewItemElement11.TextAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleLeft
TileViewItemElement11.TextLocation = New System.Drawing.Point(10, 0)
ItemTemplate3.Elements.Add(TileViewItemElement8)
ItemTemplate3.Elements.Add(TileViewItemElement9)
ItemTemplate3.Elements.Add(TileViewItemElement10)
ItemTemplate3.Elements.Add(TileViewItemElement11)
ItemTemplate3.Name = "ChatTo"
TableRowDefinition6.Length.Value = 17.0R
TableRowDefinition7.Length.Value = 19.0R
TableRowDefinition8.Length.Value = 54.0R
ItemTemplate3.Rows.Add(TableRowDefinition6)
ItemTemplate3.Rows.Add(TableRowDefinition7)
ItemTemplate3.Rows.Add(TableRowDefinition8)
Me.ChatView.Templates.Add(ItemTemplate1)
Me.ChatView.Templates.Add(ItemTemplate2)
Me.ChatView.TileColumns.Add(TableColumnDefinition5)
Me.ChatView.TileColumns.Add(TableColumnDefinition6)
Me.ChatView.TileRows.Add(TableRowDefinition5)
Me.ChatView.TileRows.Add(TableRowDefinition6)
Me.ChatView.Templates.Add(ItemTemplate3)
Me.ChatView.TileColumns.Add(TableColumnDefinition7)
Me.ChatView.TileColumns.Add(TableColumnDefinition8)
Me.ChatView.TileRows.Add(TableRowDefinition9)
Me.ChatView.TileRows.Add(TableRowDefinition10)
'
'btnSendMessage
'
@@ -222,53 +307,95 @@ Partial Class ChatControl
Me.btnSendMessage.TabIndex = 2
Me.btnSendMessage.ToolTip = "Add message"
'
'Panel1
'pnlMessage
'
Me.Panel1.BackColor = System.Drawing.SystemColors.GradientActiveCaption
Me.Panel1.Controls.Add(Me.txtMessage)
Me.Panel1.Controls.Add(Me.btnSendMessage)
Me.Panel1.Dock = System.Windows.Forms.DockStyle.Bottom
Me.Panel1.Location = New System.Drawing.Point(0, 485)
Me.Panel1.Margin = New System.Windows.Forms.Padding(3, 4, 3, 4)
Me.Panel1.Name = "Panel1"
Me.Panel1.Size = New System.Drawing.Size(422, 102)
Me.Panel1.TabIndex = 3
Me.pnlMessage.BackColor = System.Drawing.Color.DimGray
Me.pnlMessage.Controls.Add(Me.ListBoxUserMention)
Me.pnlMessage.Controls.Add(Me.RichTextBox1)
Me.pnlMessage.Controls.Add(Me.btnSendMessage)
Me.pnlMessage.Dock = System.Windows.Forms.DockStyle.Bottom
Me.pnlMessage.Location = New System.Drawing.Point(0, 485)
Me.pnlMessage.Margin = New System.Windows.Forms.Padding(3, 4, 3, 4)
Me.pnlMessage.Name = "pnlMessage"
Me.pnlMessage.Size = New System.Drawing.Size(422, 102)
Me.pnlMessage.TabIndex = 3
'
'txtMessage
'ListBoxUserMention
'
Me.txtMessage.AcceptsReturn = True
Me.txtMessage.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
Or System.Windows.Forms.AnchorStyles.Left) _
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.txtMessage.BackColor = System.Drawing.Color.GhostWhite
Me.txtMessage.BorderStyle = System.Windows.Forms.BorderStyle.None
Me.txtMessage.Font = New System.Drawing.Font("Calibri", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.txtMessage.ForeColor = System.Drawing.SystemColors.InfoText
Me.txtMessage.Location = New System.Drawing.Point(17, 15)
Me.txtMessage.Margin = New System.Windows.Forms.Padding(3, 4, 3, 4)
Me.txtMessage.Multiline = True
Me.txtMessage.Name = "txtMessage"
Me.txtMessage.ScrollBars = System.Windows.Forms.ScrollBars.Vertical
Me.txtMessage.Size = New System.Drawing.Size(349, 70)
Me.txtMessage.TabIndex = 3
Me.ListBoxUserMention.BackColor = System.Drawing.SystemColors.Window
Me.ListBoxUserMention.BorderStyle = System.Windows.Forms.BorderStyle.None
Me.ListBoxUserMention.ForeColor = System.Drawing.Color.Blue
Me.ListBoxUserMention.FormattingEnabled = True
Me.ListBoxUserMention.ItemHeight = 16
Me.ListBoxUserMention.Location = New System.Drawing.Point(191, 22)
Me.ListBoxUserMention.Name = "ListBoxUserMention"
Me.ListBoxUserMention.Size = New System.Drawing.Size(129, 80)
Me.ListBoxUserMention.TabIndex = 4
Me.ListBoxUserMention.Visible = False
'
'lblTitle
'RichTextBox1
'
Me.lblTitle.AutoSize = True
Me.lblTitle.Font = New System.Drawing.Font("Tahoma", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.lblTitle.Location = New System.Drawing.Point(3, 10)
Me.lblTitle.Name = "lblTitle"
Me.lblTitle.Size = New System.Drawing.Size(50, 16)
Me.lblTitle.TabIndex = 4
Me.lblTitle.Text = "Label1"
Me.RichTextBox1.AutoWordSelection = True
Me.RichTextBox1.Location = New System.Drawing.Point(10, 6)
Me.RichTextBox1.Name = "RichTextBox1"
Me.RichTextBox1.ShowSelectionMargin = True
Me.RichTextBox1.Size = New System.Drawing.Size(353, 91)
Me.RichTextBox1.TabIndex = 3
Me.RichTextBox1.Text = ""
'
'MenuStrip1
'
Me.MenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.tsmitmTitle, Me.tsmenitmHamburger, Me.TeilnehmerToolStripMenuItem})
Me.MenuStrip1.Location = New System.Drawing.Point(0, 0)
Me.MenuStrip1.Name = "MenuStrip1"
Me.MenuStrip1.Size = New System.Drawing.Size(422, 25)
Me.MenuStrip1.TabIndex = 4
Me.MenuStrip1.Text = "MenuStrip1"
'
'tsmitmTitle
'
Me.tsmitmTitle.Font = New System.Drawing.Font("Segoe UI", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.tsmitmTitle.Name = "tsmitmTitle"
Me.tsmitmTitle.Size = New System.Drawing.Size(48, 21)
Me.tsmitmTitle.Text = "sdsd"
'
'tsmenitmHamburger
'
Me.tsmenitmHamburger.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right
Me.tsmenitmHamburger.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ToolStripMenuItemConv_end, Me.BenutzerHinzufügenToolStripMenuItem})
Me.tsmenitmHamburger.Image = Global.DigitalData.Controls.ChatControl.My.Resources.Resources.kisspng_computer_icons_hamburger_button_menu_new_menu_5b34724c3cb0f7_1188475115301637882486
Me.tsmenitmHamburger.Name = "tsmenitmHamburger"
Me.tsmenitmHamburger.Size = New System.Drawing.Size(28, 21)
'
'ToolStripMenuItemConv_end
'
Me.ToolStripMenuItemConv_end.Image = Global.DigitalData.Controls.ChatControl.My.Resources.Resources.StatusAnnotations_Stop_16xLG
Me.ToolStripMenuItemConv_end.Name = "ToolStripMenuItemConv_end"
Me.ToolStripMenuItemConv_end.Size = New System.Drawing.Size(192, 22)
Me.ToolStripMenuItemConv_end.Text = "Konversation beenden"
'
'BenutzerHinzufügenToolStripMenuItem
'
Me.BenutzerHinzufügenToolStripMenuItem.Image = Global.DigitalData.Controls.ChatControl.My.Resources.Resources.action_add_16xLG
Me.BenutzerHinzufügenToolStripMenuItem.Name = "BenutzerHinzufügenToolStripMenuItem"
Me.BenutzerHinzufügenToolStripMenuItem.Size = New System.Drawing.Size(192, 22)
Me.BenutzerHinzufügenToolStripMenuItem.Text = "Benutzer hinzufügen"
'
'TeilnehmerToolStripMenuItem
'
Me.TeilnehmerToolStripMenuItem.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right
Me.TeilnehmerToolStripMenuItem.ForeColor = System.Drawing.Color.DarkCyan
Me.TeilnehmerToolStripMenuItem.Name = "TeilnehmerToolStripMenuItem"
Me.TeilnehmerToolStripMenuItem.Size = New System.Drawing.Size(78, 21)
Me.TeilnehmerToolStripMenuItem.Text = "Teilnehmer"
'
'ChatControl
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(7.0!, 16.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.Controls.Add(Me.lblTitle)
Me.Controls.Add(Me.GridChat)
Me.Controls.Add(Me.Panel1)
Me.Controls.Add(Me.pnlMessage)
Me.Controls.Add(Me.MenuStrip1)
Me.Font = New System.Drawing.Font("Tahoma", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.Margin = New System.Windows.Forms.Padding(3, 4, 3, 4)
Me.Name = "ChatControl"
@@ -278,8 +405,9 @@ Partial Class ChatControl
CType(Me.GridChat, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.ChatView, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.ChatSource, System.ComponentModel.ISupportInitialize).EndInit()
Me.Panel1.ResumeLayout(False)
Me.Panel1.PerformLayout()
Me.pnlMessage.ResumeLayout(False)
Me.MenuStrip1.ResumeLayout(False)
Me.MenuStrip1.PerformLayout()
Me.ResumeLayout(False)
Me.PerformLayout()
@@ -293,7 +421,14 @@ Partial Class ChatControl
Friend WithEvents btnSendMessage As DevExpress.XtraEditors.SimpleButton
Friend WithEvents RepositoryItemHyperLinkEdit1 As DevExpress.XtraEditors.Repository.RepositoryItemHyperLinkEdit
Friend WithEvents RepositoryItemHypertextLabel1 As DevExpress.XtraEditors.Repository.RepositoryItemHypertextLabel
Friend WithEvents txtMessage As TextBox
Friend WithEvents Panel1 As Panel
Friend WithEvents lblTitle As Label
Friend WithEvents pnlMessage As Panel
Friend WithEvents MenuStrip1 As MenuStrip
Friend WithEvents tsmitmTitle As ToolStripMenuItem
Friend WithEvents tsmenitmHamburger As ToolStripMenuItem
Friend WithEvents ToolStripMenuItemConv_end As ToolStripMenuItem
Friend WithEvents BenutzerHinzufügenToolStripMenuItem As ToolStripMenuItem
Friend WithEvents TeilnehmerToolStripMenuItem As ToolStripMenuItem
Friend WithEvents RichTextBox1 As RichTextBox
Friend WithEvents columnTO_USER As DevExpress.XtraGrid.Columns.TileViewColumn
Friend WithEvents ListBoxUserMention As ListBox
End Class

View File

@@ -158,4 +158,7 @@
<metadata name="ChatSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="MenuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>131, 17</value>
</metadata>
</root>

View File

@@ -7,118 +7,248 @@ Public Class ChatControl
Private ReadOnly IdentificationColumn As String = "USER_FROM"
Private ReadOnly MessageColumn As String = "MESSAGE_TEXT"
Private ReadOnly DateColumn As String = "ADDED_WHEN"
Public Delegate Sub ConversationEnded()
Public Event Conversation_Ended As ConversationEnded
Public Delegate Sub ConversationUsersAdded_Success()
Public Event Conversation_UsersAdded_Success As ConversationUsersAdded_Success
Private Db As MSSQLServer
Private LogConfig As LogConfig
Private Logger As Logger
Private ReadOnly UsernameColorsDict As New Dictionary(Of String, Color)
Private ReadOnly UsernameColors As New List(Of Color) From {
Color.Purple,
Color.Red,
Color.LightBlue,
Color.DarkSeaGreen
}
Private AddMessage As Boolean
Private oAddUSerForm As Form
'Private ReadOnly UsernameColorsDict As New Dictionary(Of String, Color)
'Private ReadOnly UsernameColors As New List(Of Color) From {
' Color.Purple,
' Color.Red,
' Color.LightBlue,
' Color.DarkSeaGreen
'}
Private IsAssistKeyPressed As Boolean = False
Private AssistListBox As ListBox = New ListBox()
Public IDBObjectId As Long
Public ConnStringIDB As String
Public ConversationIdentification As String
Public UserID As Long
Public Username As String
Public CurrentConversation As Long
Public User_Language As String
Public CurrentConversationID As Long
Public CurrentConversation_State As String
Public CurrentConversation_UserActive As Boolean
Public oDTConv_User As DataTable
Public CurrentMentionedUser As String
Public CurrentMentionedUserID As Long
Public CurrentIdentifier
Public User_Datatable_Select As DataTable
Public DT_Rights As DataTable
Public QU_Conv_End As DataTable
Public Sub New()
InitializeComponent()
End Sub
Public Sub Init(LogConfig As LogConfig, ConnectionStringIDB As String, ConversationIdentification As String, Username As String)
Me.LogConfig = LogConfig
Me.Logger = LogConfig.GetLogger()
Me.ConnStringIDB = ConnectionStringIDB
Me.ConversationIdentification = ConversationIdentification
Me.Username = Username
Public Function Init(LogConfig As LogConfig, ConnectionStringIDB As String, ConversationIdentification As String, UserID As Long, Username As String, USER_LANG As String,
Qust_Conv_End As DataTable, DTRIGHTS As DataTable)
Try
CurrentConversationID = 0
Me.LogConfig = LogConfig
Me.Logger = LogConfig.GetLogger()
Me.ConnStringIDB = ConnectionStringIDB
Me.ConversationIdentification = ConversationIdentification
Me.UserID = UserID
Me.Username = Username
Me.User_Language = USER_LANG
QU_Conv_End = Qust_Conv_End
DT_Rights = DTRIGHTS
Me.Db = New MSSQLServer(LogConfig, ConnStringIDB)
Return True
Catch ex As Exception
Logger.Error(ex)
Return False
End Try
End Function
Sub Check_Rights()
Dim oSQL As String
ToolStripMenuItemConv_end.Visible = False
tsmenitmHamburger.Visible = False
AddMessage = False
Dim oView As DataView = New DataView(DT_Rights)
oView.RowFilter = "CONF_TITLE = 'CONVERSATION_USER_ACTIVE'"
If oView.Count = 1 Then
CurrentConversation_UserActive = True
Else
CurrentConversation_UserActive = False
End If
For Each oRow As DataRow In DT_Rights.Rows
If oRow.Item("CONF_TITLE").ToString.Contains("CONVERSATION_RIGHT") Then
Select Case oRow.Item("CONF_VALUE")
Case "Start|Stop"
ToolStripMenuItemConv_end.Visible = True
tsmenitmHamburger.Visible = True
AddMessage = True
Case "AddMessage"
AddMessage = True
Case "Admin"
ToolStripMenuItemConv_end.Visible = True
BenutzerHinzufügenToolStripMenuItem.Visible = True
tsmenitmHamburger.Visible = True
AddMessage = True
Case "Start"
BenutzerHinzufügenToolStripMenuItem.Visible = True
tsmenitmHamburger.Visible = True
Case "Stop"
ToolStripMenuItemConv_end.Visible = True
End Select
ElseIf oRow.Item("CONF_TITLE") = "CONVERSATION_ADD_USER_SELECT" Then
oSQL = oRow.Item("CONF_VALUE")
oSQL = oSQL.Replace("@CONVID", CurrentConversationID)
User_Datatable_Select = Db.GetDatatable(oSQL)
Logger.Debug($"User_Datatable_Select [{User_Datatable_Select}]")
End If
Next
If CurrentConversation_State = "Started" Then
pnlMessage.Visible = AddMessage
Else
pnlMessage.Visible = False
tsmenitmHamburger.Visible = False
End If
Me.Db = New MSSQLServer(LogConfig, ConnStringIDB)
End Sub
Public Function GetConversations(IDBObjectId As Long)
Dim oSQL As String = $"SELECT * FROM VWIDB_CONVERSATION WHERE IDB_OBJ_ID = {IDBObjectId} ORDER BY CONVERSATION_ID DESC"
CurrentConversationID = 0
Dim oSQL As String = $"SELECT DISTINCT T.CONVERSATION_ID,T.TITLE,T.CONVERSATION_STATE,T.ADDED_WHEN FROM VWIDB_CONVERSATION T INNER JOIN VWIDB_CONVERSATION_USER T1 ON T.CONVERSATION_ID = T1.CONV_ID WHERE IDB_OBJ_ID = {IDBObjectId}
AND T1.USER_ID = {UserID}
ORDER BY CONVERSATION_ID DESC"
Dim oDatatable As DataTable = Db.GetDatatable(oSQL)
Dim oConversations As New List(Of String)
If Not IsNothing(oDatatable) Then
If oDatatable.Rows.Count = 1 Then
Dim oItem = oDatatable.Rows(0).Item("CONVERSATION_ID").ToString + "|" + oDatatable.Rows(0).Item("TITLE").ToString
oConversations.Insert(0, oItem)
CurrentConversation = oDatatable.Rows(0).Item("CONVERSATION_ID")
LoadConversation(CurrentConversation)
Else
For Each oROW As DataRow In oDatatable.Rows
Dim oItem = oROW.Item("CONVERSATION_ID").ToString + "|" + oROW.Item("TITLE").ToString
oConversations.Insert(0, oItem)
If oROW.Item("CONVERSATION_STATE") = "Started" Then
CurrentConversation = oROW.Item("CONVERSATION_ID")
LoadConversation(CurrentConversation)
Dim i = 0
For Each oROW As DataRow In oDatatable.Rows
Dim oItem = oROW.Item("CONVERSATION_ID").ToString + "|" + oROW.Item("TITLE").ToString + "|" + oROW.Item("CONVERSATION_STATE").ToString + "|" + oDatatable.Rows(0).Item("ADDED_WHEN").ToString
oConversations.Insert(i, oItem)
i += 1
If oROW.Item("CONVERSATION_STATE") = "Started" Then
If CurrentConversationID = 0 Then
CurrentConversationID = oROW.Item("CONVERSATION_ID")
LoadConversation(CurrentConversationID)
End If
Next
End If
End If
Next
End If
Return oConversations
End Function
Private Sub tsCBConversations_SelectedIndexChanged(sender As Object, e As EventArgs)
'If tsCBConversations.SelectedIndex <> -1 Then
' Dim oValues As List(Of String) = tsCBConversations.Text.Split("|").ToList()
' CurrentConversation = oValues(0)
' LoadConversation(CurrentConversation)
'End If
End Sub
Public Sub LoadConversation(ConversationId As Long)
ListBoxUserMention.Visible = False
RichTextBox1.Text = ""
Dim oSQL As String = $"SELECT * FROM VWIDB_CONV_MESSAGES WHERE CONV_ID = {ConversationId} ORDER BY GUID"
Dim oDatatable As DataTable = Db.GetDatatable(oSQL)
BuildUsernameColorDict(oDatatable)
' BuildUsernameColorDict(oDatatable)
oSQL = $"SELECT * FROM VWIDB_CONVERSATION WHERE CONVERSATION_ID = {ConversationId}"
Dim oDatatable2 As DataTable = Db.GetDatatable(oSQL)
GridChat.DataSource = ChatSource
ChatSource.DataSource = oDatatable
lblTitle.Text = oDatatable2.Rows(0).Item("TITLE")
tsmitmTitle.Text = oDatatable2.Rows(0).Item("TITLE")
CurrentConversationID = ConversationId
CurrentConversation_State = oDatatable2.Rows(0).Item("CONVERSATION_STATE")
oSQL = $"SELECT * FROM VWIDB_CONVERSATION_USER WHERE CONV_ID = {ConversationId}"
oDTConv_User = Db.GetDatatable(oSQL)
If TeilnehmerToolStripMenuItem.HasDropDownItems Then
TeilnehmerToolStripMenuItem.DropDownItems.Clear()
End If
If ConversationIdentification.Contains("@") Then
CurrentIdentifier = "EMAIL"
Else
CurrentIdentifier = "USERNAME"
End If
AssistListBox.Items.Clear()
ListBoxUserMention.Items.Clear()
Try
For Each oROW As DataRow In oDTConv_User.Rows
Dim oConvUser
oConvUser = oROW.Item(CurrentIdentifier)
If IsDBNull(oConvUser) Then
oConvUser = String.Empty
End If
If oConvUser.ToString = String.Empty Then
If CurrentIdentifier = "EMAIL" Then
oConvUser = $"No Email for User '{oROW.Item("USERNAME")}'"
Else
oConvUser = $"No Identification for UserID '{oROW.Item("USER_ID")}'"
End If
Else
ListBoxUserMention.Items.Add("@" & oConvUser.ToString.Substring(0, oConvUser.ToString.IndexOf("@")))
AssistListBox.Items.Add("@" & oConvUser.ToString.Substring(0, oConvUser.ToString.IndexOf("@")))
End If
Dim oToolStripItem As ToolStripMenuItem = New ToolStripMenuItem(oConvUser.ToString)
TeilnehmerToolStripMenuItem.DropDownItems.Add(oToolStripItem)
Next
AddHandler AssistListBox.SelectedIndexChanged, AddressOf AssistListBox_Changed
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "Error adding ConversationUsers")
End Try
Check_Rights()
End Sub
Public Sub NewMessage(MessageText As String)
Try
Dim oSQL As String = $"EXEC [PRIDB_NEW_CONVERSATION_MESSAGE] {CurrentConversation},'{MessageText}', '{ConversationIdentification}'"
Dim oSQL As String = $"EXEC [PRIDB_NEW_CONVERSATION_MESSAGE] {CurrentConversationID},'{MessageText}', '{ConversationIdentification}', {CurrentMentionedUserID},'{User_Language}'"
Logger.Debug($"NewMessageSQL: {oSQL}")
Dim oResult = Db.GetScalarValue(oSQL)
LoadConversation(CurrentConversation)
txtMessage.Text = String.Empty
LoadConversation(CurrentConversationID)
RichTextBox1.Text = String.Empty
ChatView.MoveLast()
Catch ex As Exception
Logger.Error(ex)
End Try
End Sub
Private Sub BuildUsernameColorDict(Datatable As DataTable)
Dim oIndex = 0
'Private Sub BuildUsernameColorDict(Datatable As DataTable)
' Dim oIndex = 0
UsernameColorsDict.Clear()
' UsernameColorsDict.Clear()
Datatable.AsEnumerable().
Select(Function(Row) Row.Item(IdentificationColumn)).
Distinct().ToList().
ForEach(Sub(Name)
UsernameColorsDict.Add(Name, UsernameColors.Item(oIndex))
oIndex += 1
End Sub)
End Sub
' Datatable.AsEnumerable().
' Select(Function(Row) Row.Item(IdentificationColumn)).
' Distinct().ToList().
' ForEach(Sub(Name)
' UsernameColorsDict.Add(Name, UsernameColors.Item(oIndex))
' oIndex += 1
' End Sub)
'End Sub
Private Sub ChatView_CustomItemTemplate(sender As Object, e As TileViewCustomItemTemplateEventArgs) Handles ChatView.CustomItemTemplate
Dim oRow As DataRow = ChatView.GetDataRow(e.RowHandle)
Dim oUsername As String = oRow.Item(IdentificationColumn)
If oUsername = ConversationIdentification Or oUsername = Username Then
e.Template = e.Templates.Item("ChatRight")
Dim oIdentification As String = oRow.Item(IdentificationColumn)
Dim oToUser = oRow.Item("TO_USER")
If Not IsDBNull(oToUser) Then
e.Template = e.Templates.Item("ChatTo")
Else
e.Template = e.Templates.Item("ChatLeft")
If oIdentification = ConversationIdentification Or oIdentification = Username Then
e.Template = e.Templates.Item("ChatRight")
Else
e.Template = e.Templates.Item("ChatLeft")
End If
End If
End Sub
Private Sub ChatView_ItemCustomize(sender As Object, e As TileViewItemCustomizeEventArgs) Handles ChatView.ItemCustomize
@@ -126,13 +256,17 @@ Public Class ChatControl
Dim oUsername As String = oRow.Item(IdentificationColumn)
Dim oMessage As String = oRow.Item(MessageColumn)
Dim oColor As Color = UsernameColorsDict.Item(oUsername)
' Dim oColor As Color = UsernameColorsDict.Item(oUsername)
If oUsername = ConversationIdentification Or oUsername = Username Then
e.Item.AppearanceItem.Normal.BackColor = Color.PaleTurquoise
e.Item.Item(IdentificationColumn).Appearance.Normal.ForeColor = Color.Purple
Else
' e.Item.AppearanceItem.Normal.BackColor = Color.whi
e.Item.Item(IdentificationColumn).Appearance.Normal.ForeColor = Color.Red
End If
e.Item.AppearanceItem.Focused.BackColor = Color.Turquoise
e.Item.Item(IdentificationColumn).Appearance.Normal.ForeColor = oColor
'e.Item.AppearanceItem.Focused.BackColor = Color.Turquoise
End Sub
@@ -142,15 +276,13 @@ Public Class ChatControl
End Sub
Private Sub SimpleButton1_Click(sender As Object, e As EventArgs) Handles btnSendMessage.Click
If txtMessage.Text.Count > 0 Then
NewMessage(txtMessage.Text)
If RichTextBox1.Text.Count > 0 Then
NewMessage(RichTextBox1.Text)
End If
End Sub
Private Sub TextBox1_KeyUp(sender As Object, e As KeyEventArgs) Handles txtMessage.KeyUp
If e.Control And e.KeyCode = Keys.Enter And txtMessage.Text.Count > 0 Then
NewMessage(txtMessage.Text)
End If
Private Sub TextBox1_KeyUp(sender As Object, e As KeyEventArgs)
End Sub
Private Sub ChatControl_Click(sender As Object, e As EventArgs) Handles MyBase.Click
@@ -160,4 +292,156 @@ Public Class ChatControl
Private Sub ChatControl_Leave(sender As Object, e As EventArgs) Handles Me.Leave
End Sub
Private Sub ToolStripMenuItemConv_end_Click(sender As Object, e As EventArgs) Handles ToolStripMenuItemConv_end.Click
If CurrentConversationID <> 0 Then
Dim result As MsgBoxResult
result = MessageBox.Show(QU_Conv_End.Rows(0).Item("STRING1").ToString, QU_Conv_End.Rows(0).Item("STRING2").ToString, MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation)
If result = MsgBoxResult.Yes Then
Dim oSQL = $"EXEC PRIDB_END_CONVERSATION {CurrentConversationID}, '{Username}', '{User_Language}'"
If Db.ExecuteNonQuery(oSQL) = True Then
RaiseEvent Conversation_Ended()
Else
MsgBox("Unexpected error in PRIDB_END_CONVERSATION - Check Your log!", MsgBoxStyle.Exclamation)
End If
End If
End If
End Sub
Private Sub BenutzerHinzufügenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles BenutzerHinzufügenToolStripMenuItem.Click
Dim oForm = New Form()
Dim oaddUS As ChatAddUser.ChatAddUser = New ChatAddUser.ChatAddUser()
oaddUS.Init(LogConfig, ConnStringIDB, CurrentConversationID, Username, User_Language, User_Datatable_Select)
oForm.Controls.Add(oaddUS)
oaddUS.Dock = DockStyle.Fill
oForm.MaximizeBox = False
oForm.MinimizeBox = False
oForm.FormBorderStyle = FormBorderStyle.FixedDialog
oForm.StartPosition = FormStartPosition.CenterScreen
oForm.Text = ""
AddHandler oaddUS.User_Added, AddressOf onUsersAdded
oAddUSerForm = oForm
oForm.ShowDialog()
End Sub
Sub onUsersAdded()
RaiseEvent Conversation_UsersAdded_Success()
oAddUSerForm.Close()
End Sub
Private Function GetPoint(ByVal textBoxControl As RichTextBox) As Point
Dim graphics_1 As Graphics = Graphics.FromHwnd(textBoxControl.Handle)
Dim size As SizeF = graphics_1.MeasureString(textBoxControl.Text.Substring(0, textBoxControl.SelectionStart), textBoxControl.Font)
Dim coord As New Point(CInt(size.Width) + textBoxControl.Location.X, CInt(size.Height) + textBoxControl.Location.Y)
Return coord
End Function
Private Sub RichTextBox1_KeyUp(sender As Object, e As KeyEventArgs) Handles RichTextBox1.KeyUp
If e.Control And e.KeyCode = Keys.Enter And RichTextBox1.Text.Count > 0 Then
NewMessage(RichTextBox1.Text)
ElseIf (Keys.Alt AndAlso Keys.Control) And e.KeyCode = keys.Q Then
With RichTextBox1
ListBoxUserMention.Left = .GetPositionFromCharIndex(
.SelectionStart).X + .Left + 10
ListBoxUserMention.Top = .GetPositionFromCharIndex(
.SelectionStart).Y + .Top + 20
' Jetzt ListBox einblendenden, Focus auf diese setzen
' und den ersten Eintrag selektieren
ListBoxUserMention.Visible = True
ListBoxUserMention.Focus()
ListBoxUserMention.SelectedIndex = 0
End With
'Dim opoint As Point = GetPoint(sender)
'AssistListBox.PointToClient(opoint)
'pnlMessage.Controls.Add(AssistListBox)
'AssistListBox.Show()
'AssistListBox.BringToFront()
' '@ was pressed
End If
End Sub
Sub AssistListBox_Changed()
Try
RichTextBox1.Text = RichTextBox1.Text + AssistListBox.SelectedItem + ": "
RichTextBox1.SelectionFont = New Font("Tahoma", 10, FontStyle.Bold And FontStyle.Underline)
RichTextBox1.Text = RichTextBox1.Text.Replace("@@", "@")
pnlMessage.Controls.Remove(AssistListBox)
'RichTextBox1.SelectedText = AssistListBox.SelectedItem
Catch ex As Exception
Logger.Error(ex)
End Try
End Sub
Sub ADD_MentionedUser(pUser As String)
Dim oPos As Integer = RichTextBox1.TextLength
Dim oUsertext = pUser & ": "
With RichTextBox1
.AppendText(Replace(.Text, "@", vbNullString) & oPos)
.Select(oPos, oUsertext.Length)
.SelectionColor = Color.Blue
.Select()
End With
End Sub
Private Sub ListBoxUserMention_KeyUp(sender As Object, e As KeyEventArgs) Handles ListBoxUserMention.KeyUp
If e.KeyCode = Keys.Return Then
Dim oMentionedUser As String = ListBoxUserMention.SelectedItem
'ADD_MentionedUser(strTag)
With RichTextBox1
CUrrentMentionedUser = oMentionedUser
' Logger.Debug($"ListBoxUserMention_KeyUp.CurrentMentionedUser = {CurrentMentionedUser}")
For Each oROW As DataRow In oDTConv_User.Rows
Dim oConvUser2beChecked
oConvUser2beChecked = oROW.Item(CurrentIdentifier)
If IsDBNull(oConvUser2beChecked) Then
oConvUser2beChecked = String.Empty
End If
If oConvUser2beChecked.ToString = String.Empty Then
If CurrentIdentifier = "EMAIL" Then
oConvUser2beChecked = $"No Email for User '{oROW.Item("USERNAME")}'"
Else
oConvUser2beChecked = $"No Identification for UserID '{oROW.Item("USER_ID")}'"
End If
End If
CurrentMentionedUser = CurrentMentionedUser.Substring(1, CurrentMentionedUser.Length - 1)
'Logger.Debug($"oConvUser2beChecked = {CurrentMentionedUser}")
If oConvUser2beChecked.ToString.Contains(CurrentMentionedUser) Then
CurrentMentionedUserID = oROW.Item("USER_ID")
Logger.Debug($"CurrentMentionedUserID Changed: {CurrentMentionedUserID}")
End If
Next
' Das "Steuerzeichen" # ersetzen durch einen NullString
.Text = Replace(.Text, "@", vbNullString) & oMentionedUser & ": "
' wo soll der Cursor nach dem Einfügen in der RTB stehen?
.SelectionStart = .TextLength
' Listbox wieder auf den ersten Eintrag setzen
' und ausblenden
ListBoxUserMention.SelectedItem = 0
ListBoxUserMention.Visible = False
' Focus wieder auf RTB setzen
.Focus()
End With
End If
End Sub
End Class

View File

@@ -146,6 +146,10 @@
<Service Include="{94E38DFF-614B-4cbd-B67C-F211BB35CE8B}" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Controls.ChatAddUser\ChatAddUser.vbproj">
<Project>{f0a807cc-be14-4b5b-9200-27c16156bd8a}</Project>
<Name>ChatAddUser</Name>
</ProjectReference>
<ProjectReference Include="..\Modules.Database\Database.vbproj">
<Project>{eaf0ea75-5fa7-485d-89c7-b2d843b03a96}</Project>
<Name>Database</Name>
@@ -167,5 +171,14 @@
<ItemGroup>
<None Include="Resources\Action_Workflow_Deactivate.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\kisspng-computer-icons-hamburger-button-menu-new-menu-5b34724c3cb0f7.1188475115301637882486.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\StatusAnnotations_Stop_16xLG.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\action_add_16xLG.png" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
</Project>

View File

@@ -60,6 +60,16 @@ Namespace My.Resources
End Set
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
'''</summary>
Friend ReadOnly Property action_add_16xLG() As System.Drawing.Bitmap
Get
Dim obj As Object = ResourceManager.GetObject("action_add_16xLG", resourceCulture)
Return CType(obj,System.Drawing.Bitmap)
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
'''</summary>
@@ -90,6 +100,17 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
'''</summary>
Friend ReadOnly Property kisspng_computer_icons_hamburger_button_menu_new_menu_5b34724c3cb0f7_1188475115301637882486() As System.Drawing.Bitmap
Get
Dim obj As Object = ResourceManager.GetObject("kisspng-computer-icons-hamburger-button-menu-new-menu-5b34724c3cb0f7.118847511530"& _
"1637882486", resourceCulture)
Return CType(obj,System.Drawing.Bitmap)
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
'''</summary>
@@ -99,5 +120,15 @@ Namespace My.Resources
Return CType(obj,System.Drawing.Bitmap)
End Get
End Property
'''<summary>
''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
'''</summary>
Friend ReadOnly Property StatusAnnotations_Stop_16xLG() As System.Drawing.Bitmap
Get
Dim obj As Object = ResourceManager.GetObject("StatusAnnotations_Stop_16xLG", resourceCulture)
Return CType(obj,System.Drawing.Bitmap)
End Get
End Property
End Module
End Namespace

View File

@@ -118,6 +118,9 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="Action_Workflow_Deactivate" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Action_Workflow_Deactivate.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="crop.php" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\crop.php.jpeg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
@@ -127,7 +130,13 @@
<data name="Action_Workflow_Activate" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Action_Workflow_Activate.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Action_Workflow_Deactivate" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Action_Workflow_Deactivate.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="kisspng-computer-icons-hamburger-button-menu-new-menu-5b34724c3cb0f7.1188475115301637882486" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\kisspng-computer-icons-hamburger-button-menu-new-menu-5b34724c3cb0f7.1188475115301637882486.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="StatusAnnotations_Stop_16xLG" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\StatusAnnotations_Stop_16xLG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="action_add_16xLG" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\action_add_16xLG.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>

View File

@@ -1,5 +1,6 @@
DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.TextEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraBars.BarManager, DevExpress.XtraBars.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.LookUpEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.ButtonEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a

Binary file not shown.

After

Width:  |  Height:  |  Size: 336 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 B