395 lines
16 KiB
VB.net
395 lines
16 KiB
VB.net
Imports System.IO
|
|
Imports DevExpress.XtraSplashScreen
|
|
Imports DigitalData.Modules.Logging
|
|
Imports DigitalData.Modules.Messaging
|
|
Imports DigitalData.GUIs.ClipboardWatcher
|
|
|
|
Public Class frmFlowForm
|
|
' Constants
|
|
Private Const OPACITY_INITIAL = 0
|
|
Private Const OPACITY_HIDDEN = 0.65
|
|
Private Const OPACITY_SHOWN = 0.85
|
|
|
|
Private Logger As Logger
|
|
Private DTIDB_SEARCHES As DataTable
|
|
|
|
' Helper Classes
|
|
Private Init As ClassInit
|
|
Private FileDrop As ClassFileDrop
|
|
Private FileHandle As ClassFilehandle
|
|
Private ProfileFilter As ProfileFilter
|
|
|
|
' Runtime Flags
|
|
Private ApplicationLoading As Boolean = True
|
|
Private IDBSearchActive As Boolean = False
|
|
|
|
' Runtime Variables
|
|
Private ESCHitCount As Integer = 0
|
|
|
|
Private IndexForm As frmGlobix_Index
|
|
|
|
' Events
|
|
Public Event ClipboardChanged As EventHandler(Of IDataObject)
|
|
Private WithEvents Watcher As ClassClipboardWatcher = ClassClipboardWatcher.Singleton
|
|
|
|
Public Sub New()
|
|
' Dieser Aufruf ist für den Designer erforderlich.
|
|
InitializeComponent()
|
|
|
|
' === Hide form initially ===
|
|
Opacity = OPACITY_INITIAL
|
|
End Sub
|
|
|
|
|
|
Private Sub frmFlowForm_Load(sender As Object, e As EventArgs) Handles Me.Load
|
|
' === Initialize Logger ===
|
|
Logger = My.LogConfig.GetLogger()
|
|
' === Show Splash Screen ===
|
|
SplashScreenManager.ShowForm(Me, GetType(frmSplash), False, False)
|
|
|
|
' === Initialization ===
|
|
Init = New ClassInit(My.LogConfig, Me)
|
|
|
|
AddHandler Init.Completed, AddressOf Init_Completed
|
|
Init.InitializeApplication()
|
|
End Sub
|
|
|
|
Private Sub Init_Completed(sender As Object, e As EventArgs)
|
|
Me.Cursor = Cursors.WaitCursor
|
|
' === Initialization Complete ===
|
|
ApplicationLoading = False
|
|
SplashScreenManager.CloseForm(False)
|
|
|
|
' === Setup Timers ===
|
|
AddHandler TimerRefreshData.Tick, AddressOf TimerRefreshData_Tick
|
|
TimerRefreshData.Enabled = True
|
|
|
|
' === Register As Event Listener ===
|
|
EventBus.Instance.Register(Me)
|
|
|
|
' === Set Form Properties ===
|
|
TopMost = True
|
|
AllowDrop = True
|
|
ShowInTaskbar = False
|
|
Opacity = OPACITY_HIDDEN
|
|
Location = My.UIConfig.FlowForm.Location
|
|
|
|
' === Setup Event Handlers ===
|
|
AddHandler KeyDown, AddressOf frmFlowForm_KeyDown
|
|
AddHandler KeyUp, AddressOf frmFlowForm_KeyDown
|
|
|
|
For Each oControl As Control In Controls
|
|
AddHandler oControl.MouseEnter, AddressOf frmFlowForm_MouseEnter
|
|
AddHandler oControl.MouseLeave, AddressOf frmFlowForm_MouseLeave
|
|
Next
|
|
|
|
' TODO: Clean up
|
|
Dim oSQL = My.Queries.Common.FNIDB_GET_SEARCH_PROFILES(My.Application.User.UserId, My.Application.User.Language)
|
|
Dim oDatatable As DataTable = My.DatabaseIDB.GetDatatable(oSQL)
|
|
PictureBoxSearch.Visible = False
|
|
|
|
If Not IsNothing(oDatatable) OrElse oDatatable.Rows.Count > 0 Then
|
|
IDBSearchActive = True
|
|
DTIDB_SEARCHES = oDatatable
|
|
PictureBoxSearch.Visible = True
|
|
End If
|
|
If My.Application.ModulesActive.Contains(ClassConstants.MODULE_GLOBAL_INDEXER) Then
|
|
FileDrop = New ClassFileDrop(My.LogConfig)
|
|
FileHandle = New ClassFilehandle(My.LogConfig)
|
|
Refresh_RegexTable()
|
|
End If
|
|
My.DTAttributes = My.DatabaseIDB.GetDatatable("SELECT * FROM TBIDB_ATTRIBUTE")
|
|
Me.Cursor = Cursors.Default
|
|
End Sub
|
|
|
|
|
|
Private Sub TimerRefreshData_Tick(sender As Object, e As EventArgs)
|
|
'TODO: Refresh Data
|
|
End Sub
|
|
|
|
Private Sub frmFlowForm_MouseLeave(sender As Object, e As EventArgs) Handles MyBase.MouseLeave
|
|
Opacity = OPACITY_HIDDEN
|
|
End Sub
|
|
|
|
Private Sub frmFlowForm_MouseEnter(sender As Object, e As EventArgs) Handles Me.MouseEnter
|
|
Opacity = OPACITY_SHOWN
|
|
End Sub
|
|
|
|
Private Sub frmFlowForm_MouseMove(ByVal sender As Object, ByVal e As MouseEventArgs) Handles Me.MouseMove, PictureBoxDragDrop.MouseMove
|
|
If e.Button = MouseButtons.Left Then
|
|
ClassWin32.ReleaseCapture()
|
|
ClassWin32.SendMessage(Handle, ClassWin32.WM_NCLBUTTONDOWN, ClassWin32.HTCAPTION, 0)
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub frmFlowForm_KeyDown(ByVal sender As Object, ByVal e As KeyEventArgs)
|
|
If e.KeyCode = Keys.Escape Then
|
|
If ESCHitCount > 0 Then
|
|
ExitZooflow()
|
|
Else
|
|
ESCHitCount += 1
|
|
End If
|
|
ElseIf e.KeyCode = Keys.D AndAlso (e.Control) Then
|
|
If My.Application.ModulesActive.Contains(ClassConstants.MODULE_ZOOFLOW) Then
|
|
MsgBox("Search")
|
|
End If
|
|
End If
|
|
End Sub
|
|
|
|
Sub ExitZooflow()
|
|
Dim oResult As DialogResult = MessageBox.Show("Exit Zooflow", "Are you sure you want to close ZooFlow", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
|
|
If oResult = DialogResult.Yes Then
|
|
Application.Exit()
|
|
Else
|
|
ESCHitCount = 0
|
|
End If
|
|
End Sub
|
|
|
|
Public Sub OnEvent(Params As Object)
|
|
Logger.Debug("OnEvent called!")
|
|
End Sub
|
|
|
|
Private Sub PictureBoxSearch_Click(sender As Object, e As EventArgs) Handles PictureBoxSearch.Click
|
|
Cursor = Cursors.WaitCursor
|
|
If TheFormIsAlreadyLoaded("frmSearchStart") Then
|
|
Cursor = Cursors.Default
|
|
Exit Sub
|
|
End If
|
|
Dim oForm As New frmSearchStart(DTIDB_SEARCHES)
|
|
oForm.Show()
|
|
Cursor = Cursors.Default
|
|
If TimerCheckActiveForms.Enabled = False Then
|
|
TimerCheckActiveForms.Enabled = True
|
|
End If
|
|
End Sub
|
|
Private Sub PictureBoxSearch_MouseEnter(sender As Object, e As EventArgs) Handles PictureBoxSearch.MouseEnter
|
|
PictureBoxSearch.Image = My.Resources._2_LUPE_AKTIV_ZOO
|
|
End Sub
|
|
Private Sub PictureBoxSearch_MouseLeave(sender As Object, e As EventArgs) Handles PictureBoxSearch.MouseLeave
|
|
PictureBoxSearch.Image = My.Resources._2_LUPE_INAKTIV_ZOO
|
|
End Sub
|
|
Private Sub PictureBoxPM_MouseEnter(sender As Object, e As EventArgs) Handles PictureBoxPM.MouseEnter
|
|
PictureBoxPM.Image = My.Resources._3_PERSON_AKTIV_ZOO
|
|
End Sub
|
|
Private Sub PictureBoxPM_MouseLeave(sender As Object, e As EventArgs) Handles PictureBoxPM.MouseLeave
|
|
PictureBoxPM.Image = My.Resources._3_PERSON_INAKTIV_ZOO
|
|
End Sub
|
|
|
|
Private Sub PictureBoxGlobix_MouseEnter(sender As Object, e As EventArgs) Handles PictureBoxGlobix.MouseEnter
|
|
PictureBoxGlobix.Image = My.Resources._4_GLOBIX_AKTIV_ZOO
|
|
End Sub
|
|
Private Sub PictureBoxGlobix_MouseLeave(sender As Object, e As EventArgs) Handles PictureBoxGlobix.MouseLeave
|
|
PictureBoxGlobix.Image = My.Resources._4_GLOBIX_INAKTIV_ZOO
|
|
End Sub
|
|
Private Sub ZooFlowBeendenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ZooFlowBeendenToolStripMenuItem.Click
|
|
ExitZooflow()
|
|
End Sub
|
|
Private Sub AlleAnzeigenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles AlleAnzeigenToolStripMenuItem.Click
|
|
For Each oControl As Control In Me.Controls
|
|
oControl.Visible = True
|
|
Next
|
|
End Sub
|
|
Private Sub VerwaltungToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles VerwaltungToolStripMenuItem.Click
|
|
frmAdministrationZooFlow.Show()
|
|
End Sub
|
|
|
|
Private Sub frmFlowForm_DragEnter(sender As Object, e As DragEventArgs) Handles MyBase.DragEnter
|
|
PictureBoxDragDrop.Image = My.Resources._1_LOGO_ZOO_FLOW_DROP3
|
|
|
|
e.Effect = DragDropEffects.Copy
|
|
Drag_Enter(sender, e)
|
|
End Sub
|
|
|
|
Private Sub frmFlowForm_DragDrop(sender As Object, e As DragEventArgs) Handles MyBase.DragDrop
|
|
DragDropForm(e)
|
|
End Sub
|
|
|
|
Private Sub frmFlowForm_DragLeave(sender As Object, e As EventArgs) Handles Me.DragLeave
|
|
PictureBoxDragDrop.Image = My.Resources._1_LOGO_ZOO_FLOW1
|
|
End Sub
|
|
|
|
Private Sub PictureBoxAbo_MouseEnter(sender As Object, e As EventArgs) Handles PictureBoxAbo.MouseEnter
|
|
PictureBoxAbo.Image = My.Resources._2_ZOO_FLOW_Abo_MouseOver
|
|
End Sub
|
|
|
|
Private Sub PictureBoxAbo_MouseLeave(sender As Object, e As EventArgs) Handles PictureBoxAbo.MouseLeave
|
|
PictureBoxAbo.Image = My.Resources._2_ZOO_FLOW_Abo
|
|
End Sub
|
|
|
|
Private Sub PictureBoxAbo_Click(sender As Object, e As EventArgs) Handles PictureBoxAbo.Click
|
|
Cursor = Cursors.WaitCursor
|
|
If TheFormIsAlreadyLoaded("frmPreSearch") Then
|
|
Cursor = Cursors.Default
|
|
Exit Sub
|
|
End If
|
|
Dim oForm2 As New frmSearchPredefined()
|
|
oForm2.Show()
|
|
Cursor = Cursors.Default
|
|
End Sub
|
|
Private Function TheFormIsAlreadyLoaded(ByVal pFormName As String) As Boolean
|
|
|
|
TheFormIsAlreadyLoaded = False
|
|
|
|
For Each frm As Form In Application.OpenForms
|
|
If frm.Name.Equals(pFormName) Then
|
|
TheFormIsAlreadyLoaded = True
|
|
Exit Function
|
|
End If
|
|
Next
|
|
|
|
End Function
|
|
Private Function FormLoaded_Visible() As Boolean
|
|
For Each frm As Form In Application.OpenForms
|
|
If frm.Name.Equals("frmSearchStart") Or frm.Name.Equals("frmGlobix_Index") Then
|
|
Me.Visible = False
|
|
Exit Function
|
|
End If
|
|
Next
|
|
Me.Visible = True
|
|
TimerCheckActiveForms.Enabled = False
|
|
End Function
|
|
|
|
Private Sub DatenbankverbindungToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles DatenbankverbindungToolStripMenuItem.Click
|
|
frmConfigDatabase.ShowDialog()
|
|
End Sub
|
|
|
|
Private Sub TimerCheckActiveForms_Tick(sender As Object, e As EventArgs) Handles TimerCheckActiveForms.Tick
|
|
FormLoaded_Visible()
|
|
If Me.Visible = False Then Exit Sub
|
|
End Sub
|
|
|
|
Private Sub NotifyIcon_DoubleClick(sender As Object, e As EventArgs) Handles NotifyIcon.DoubleClick
|
|
If Me.Visible = False Then
|
|
Me.Visible = True
|
|
TimerCheckActiveForms.Enabled = False
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub PictureBox1_DragEnter(sender As Object, e As DragEventArgs) Handles PictureBoxDragDrop.DragEnter
|
|
Drag_Enter(sender, e)
|
|
End Sub
|
|
Sub Drag_Enter(sender As Object, e As DragEventArgs)
|
|
If e.Data.GetDataPresent(DataFormats.FileDrop) Then
|
|
e.Effect = DragDropEffects.All
|
|
' Console.WriteLine("DragEnter ...DragDrop")
|
|
ElseIf e.Data.GetDataPresent("FileGroupDescriptor") Then
|
|
'handle a message dragged from Outlook
|
|
e.Effect = DragDropEffects.Copy
|
|
' Console.WriteLine("DragEnter ...OutlookMessage")
|
|
ElseIf e.Data.GetDataPresent("aryFileGroupDescriptor") AndAlso (e.Data.GetDataPresent("FileContents")) Then
|
|
e.Effect = DragDropEffects.Copy
|
|
' Console.WriteLine("DragEnter ...Attachment from Outlook")
|
|
Else
|
|
'otherwise, do not handle
|
|
e.Effect = DragDropEffects.None
|
|
End If
|
|
End Sub
|
|
Sub DragDropForm(e As DragEventArgs)
|
|
If Not My.Application.ModulesActive.Contains(ClassConstants.MODULE_GLOBAL_INDEXER) Then
|
|
Exit Sub
|
|
End If
|
|
If TheFormIsAlreadyLoaded("frmIndexFileList") Then
|
|
Cursor = Cursors.Default
|
|
MsgBox("Please index the active file first!", MsgBoxStyle.Exclamation, "Drag 'n Drop not allowed!")
|
|
Exit Sub
|
|
End If
|
|
|
|
'Erstmal alles löschen
|
|
My.Database.ExecuteNonQuery("DELETE FROM TBGI_FILES_USER WHERE UPPER(USER@WORK) = UPPER('" & Environment.UserName & "')")
|
|
|
|
If FileDrop.Drop_File(e) = True Then
|
|
TimerCheckDroppedFiles.Start()
|
|
Me.Cursor = Cursors.WaitCursor
|
|
End If
|
|
|
|
PictureBoxDragDrop.Image = My.Resources._1_LOGO_ZOO_FLOW1
|
|
End Sub
|
|
|
|
Private Sub PictureBox1_DragDrop(sender As Object, e As DragEventArgs) Handles PictureBoxDragDrop.DragDrop
|
|
DragDropForm(e)
|
|
End Sub
|
|
|
|
Private Sub TimerCheckDroppedFiles_Tick(sender As Object, e As EventArgs) Handles TimerCheckDroppedFiles.Tick
|
|
If Not My.Application.ModulesActive.Contains(ClassConstants.MODULE_GLOBAL_INDEXER) Then
|
|
Exit Sub
|
|
End If
|
|
|
|
TimerCheckDroppedFiles.Stop()
|
|
Check_Dropped_Files()
|
|
Me.Cursor = Cursors.Default
|
|
End Sub
|
|
Sub Check_Dropped_Files()
|
|
Try
|
|
My.Database.ExecuteNonQuery("DELETE FROM TBGI_FILES_USER WHERE WORKED = 1 AND UPPER(USER@WORK) = UPPER('" & Environment.UserName & "')")
|
|
Dim i As Integer
|
|
|
|
For Each Str As Object In FileDrop.files_dropped
|
|
If Not Str Is Nothing Then
|
|
Logger.Info(">> Check Drop-File: " & Str.ToString)
|
|
Dim handleType As String = Str.Substring(0, Str.LastIndexOf("|") + 1)
|
|
Dim filename As String = Str.Substring(Str.LastIndexOf("|") + 1)
|
|
If My.Application.Globix.FileExistsinDropTable(filename) = False Then
|
|
FileHandle.Decide_FileHandle(filename, handleType)
|
|
i += 1
|
|
Else
|
|
' Console.WriteLine("File gibt es bereits")
|
|
End If
|
|
|
|
End If
|
|
Next
|
|
|
|
Dim sql As String = "SELECT * FROM TBGI_FILES_USER WHERE WORKED = 0 AND UPPER(USER@WORK) = UPPER('" & Environment.UserName & "')"
|
|
My.Application.Globix.DTACTUAL_FILES = Nothing
|
|
My.Application.Globix.DTACTUAL_FILES = My.Database.GetDatatable(sql)
|
|
My.Application.Globix.ABORT_INDEXING = False
|
|
|
|
Dim oOnlyFilesFromFilesystem = True
|
|
For Each oRow As DataRow In My.Application.Globix.DTACTUAL_FILES.Rows
|
|
If oRow.Item("HANDLE_TYPE").ToString <> "|DROPFROMFSYSTEM|" Then
|
|
oOnlyFilesFromFilesystem = False
|
|
Exit For
|
|
End If
|
|
Next
|
|
|
|
If My.Application.Globix.DTACTUAL_FILES.Rows.Count > 1 And oOnlyFilesFromFilesystem = False Then
|
|
frmGlobix_IndexFileList.ShowDialog()
|
|
My.Application.Globix.DTACTUAL_FILES = Nothing
|
|
My.Application.Globix.DTACTUAL_FILES = My.Database.GetDatatable(sql)
|
|
End If
|
|
|
|
For Each oFileRow As DataRow In My.Application.Globix.DTACTUAL_FILES.Rows
|
|
Dim filestring As String = oFileRow.Item("FILENAME2WORK").ToString
|
|
My.Application.Globix.CURRENT_FILENAME = oFileRow.Item("FILENAME2WORK").ToString
|
|
My.Application.Globix.CURRENT_WORKFILE_GUID = oFileRow.Item(0)
|
|
My.Application.Globix.CURRENT_WORKFILE = oFileRow.Item("FILENAME2WORK").ToString
|
|
Logger.Info(">> CURRENT_WORKFILE: " & My.Application.Globix.CURRENT_WORKFILE)
|
|
If File.Exists(My.Application.Globix.CURRENT_WORKFILE) = True And My.Application.Globix.DTACTUAL_FILES.Rows.Count > 0 Then
|
|
Globix_Open_IndexDialog()
|
|
End If
|
|
Next
|
|
Show()
|
|
Catch ex As Exception
|
|
MsgBox("Unexpected Error in Check_Dropped_Files:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
|
Show()
|
|
End Try
|
|
|
|
End Sub
|
|
Sub Globix_Open_IndexDialog()
|
|
Try
|
|
IndexForm = New frmGlobix_Index(My.LogConfig)
|
|
IndexForm.Show()
|
|
Cursor = Cursors.Default
|
|
If TimerCheckActiveForms.Enabled = False Then
|
|
TimerCheckActiveForms.Enabled = True
|
|
End If
|
|
Catch ex As Exception
|
|
Logger.Error(ex)
|
|
MsgBox(ex.Message, MsgBoxStyle.Critical)
|
|
End Try
|
|
End Sub
|
|
|
|
Private Sub frmFlowForm_ResizeEnd(sender As Object, e As EventArgs) Handles Me.ResizeEnd
|
|
My.UIConfig.FlowForm.Location = Location
|
|
My.UIConfigManager.Save()
|
|
End Sub
|
|
End Class |