private void View_RowCellStyle(object sender, RowCellStyleEventArgs e) { GridView view = GetViewFromSelectedTabPage(); KOTableFile tbl = StaticReference.GetTableByFullName(view.Tag as string); if (e.RowHandle < 0 || e.Column.AbsoluteIndex < 0) { return; } if (!(tbl == null)) { /* New row highlight */ if (NewRowHighlightEnabled(view, tbl.Table.Rows[e.RowHandle])) { e.Appearance.BackColor = Color.FromArgb(128, Color.ForestGreen); } } if (_editedCells.ContainsKey(view)) { /* Edited cell highlight */ foreach (KeyValuePair <int, int> kvp in _editedCells[view]) { int cIndex = kvp.Value; int rIndex = kvp.Key; if (e.Column.AbsoluteIndex == cIndex && e.RowHandle == rIndex) { e.Appearance.BackColor = Color.FromArgb(128, Color.Gold); break; } } } //throw new NotImplementedException(); }
private bool SaveFile(string tableName) { var tbl = StaticReference.GetTableByFullName(tableName); if (tbl == null) { return(true); } tbl.Save(); // save tbl.Altered = false; if (tcMain.SelectedTabPage.Text.Contains("(*)")) { tcMain.SelectedTabPage.Text = tcMain.SelectedTabPage.Text.Replace("(*)", ""); } var page = GetTabPageByFilename(tableName); var view = GetViewFromTabPage(page); if (_editedCells.ContainsKey(view)) { _editedCells.Remove(view); view.Invalidate(); } ClearNewRowHighlight(view); StaticReference.ShowInformation(this, LanguageManager.Get("Message_SaveSuccess")); return(true); }
private void GridViewEvent_ValidateRow(object sender, ValidateRowEventArgs e) { var gridView = sender as GridView; if (gridView == null) { return; } var tbl = StaticReference.GetTableByFullName(gridView.Tag as string); if (tbl != null) { // var page = GetTabPageByFilename(); var page = GetTabPageByFilename(tbl.FullName); if (null != page) { if (!page.Text.Contains("(*)")) { page.Text += "(*)"; } } tbl.Altered = true; } }
private void btnSave_Click(object sender, EventArgs e) { using (var sfd = new SaveFileDialog()) { sfd.Title = @"Select path and enter filename"; sfd.Filter = @"Knight OnLine data tables |*.tbl"; sfd.OverwritePrompt = true; if (DialogResult.OK == sfd.ShowDialog()) { var tbl = StaticReference.GetTableByFullName(_tableName); if (tbl == null) { StaticReference.ShowError(this, LanguageManager.Get("Message_FileNotOpen")); Close(); return; } foreach (var v in StaticReference.EncryptionMethods.Where(v => string.Compare(v.Name(), cbEncryptionList.Text, StringComparison.Ordinal) == 0)) { tbl.SetEncryption(v); } tbl.SaveAs(sfd.FileName); StaticReference.ShowInformation(this, LanguageManager.Get("Message_Done")); Close(); // tePath.Text = sfd.FileName; } } }
private void frmExportAsSQL_Load(object sender, System.EventArgs e) { _tbl = StaticReference.GetTableByFullName(_tableName); if (_tbl == null) { StaticReference.ShowError(this, LanguageManager.Get("Message_NoFileOpen")); Close(); return; } PopulateColumns(); // meDescription.Text = StaticReference.GenerateKey(256); }
private void deleteRowToolStripMenuItem_Click(object sender, EventArgs e) { if (tcMain.SelectedTabPageIndex == -1 || tcMain.SelectedTabPage == null) { StaticReference.ShowWarning(this, LanguageManager.Get("Message_NoFileOpen")); return; } string fileName = tcMain.SelectedTabPage.Tag as string; var tbl = StaticReference.GetTableByFullName(fileName); GridView view = GetViewFromSelectedTabPage(); if (view == null || tbl == null) { StaticReference.ShowWarning(this, LanguageManager.Get("Message_SelectPageFirst")); return; } if (view.SelectedRowsCount == 0) { StaticReference.ShowWarning(this, LanguageManager.Get("Message_NoRowsSelected")); return; } if (StaticReference.ShowQuestion(this, string.Format(LanguageManager.Get("Message_DeleteConfirm"), view.SelectedRowsCount)) == DialogResult.Yes) { List <DataRow> selectedRows = new List <DataRow>(); for (int i = 0; i < view.SelectedRowsCount; i++) { selectedRows.Add(tbl.Table.Rows[view.GetSelectedRows()[i]]); } if (_editedCells.ContainsKey(view)) { foreach (var q in view.GetSelectedRows()) { _editedCells[view].RemoveAll(i => i.Key == q); } view.Invalidate(); } foreach (var t in selectedRows) { tbl.Table.Rows.Remove(t); RemoveNewRowHighlight(view, t); } view.ClearSelection(); StaticReference.ShowInformation(this, string.Format(LanguageManager.Get("Message_DeleteSuccess"), selectedRows.Count)); } }
private void frmColumnEditor_Load(object sender, EventArgs e) { _tbl = StaticReference.GetTableByFullName(_tableName); if (_tbl == null) { StaticReference.ShowError(this, LanguageManager.Get("Message_NoFileOpen")); Close(); return; } PopulateColumns(); foreach (var v in _dataTypeList) { cbColumnDataType_Add.Properties.Items.Add(v); cbColumnDataType_Update.Properties.Items.Add(v); } }
void tcMain_SelectedPageChanged(object sender, TabPageChangedEventArgs e) { var er = e as TabPageChangedEventArgs; if (er != null) { if (er.Page == null) { return; } //Text = LanguageManager.Get("mainFrm_Menu_About_Program") + $" - {er.Page.Tag as string}"; lblOpenFile.Caption = er.Page.Tag as string; KOTableFile tbl = StaticReference.GetTableByFullName(er.Page.Tag as string); RedrawFileInformation(tbl); //ngFile.Caption = $"File ({tbl.Name})"; } }
private bool CloseFile(string tableName) { var tbl = StaticReference.GetTableByFullName(tableName); if (tbl == null) { return(true); } if (tbl.Altered) { string q = string.Format(LanguageManager.Get("Message_SaveConfirmChanges"), tableName); switch (StaticReference.ShowQuestion(this, q)) { case DialogResult.Yes: tbl.Save(); // save break; case DialogResult.Cancel: return(false); } } try { /* Clear edited cell value if exist */ var page = GetTabPageByFilename(tableName); var view = GetViewFromTabPage(page); if (_editedCells.ContainsKey(view)) { _editedCells.Remove(view); view.Invalidate(); } ClearNewRowHighlight(view); StaticReference.RemoveTableByFullName(tableName); } catch { // ignored } return(true); }
private void ngEdit_NewRow_LinkPressed(object sender, NavBarLinkEventArgs e) { if (tcMain.SelectedTabPageIndex == -1 || tcMain.SelectedTabPage == null) { StaticReference.ShowWarning(this, LanguageManager.Get("Message_NoFileOpen")); return; } string fileName = tcMain.SelectedTabPage.Tag as string; KOTableFile tbl = StaticReference.GetTableByFullName(fileName); var view = GetViewFromSelectedTabPage(); var row = tbl.Table.NewRow(); tbl.Table.Rows.Add(row); AddNewRowHighlight(view, row); view.FocusedRowHandle = view.RowCount - 1; view.TopRowIndex = view.RowCount - 1; view.RefreshData(); view.Invalidate(); }
private void copyRowToolStripMenuItem_Click(object sender, EventArgs e) { if (tcMain.SelectedTabPageIndex == -1 || tcMain.SelectedTabPage == null) { StaticReference.ShowWarning(this, LanguageManager.Get("Message_NoFileOpen")); return; } string fileName = tcMain.SelectedTabPage.Tag as string; var tbl = StaticReference.GetTableByFullName(fileName); GridView view = GetViewFromSelectedTabPage(); if (view == null || tbl == null) { StaticReference.ShowWarning(this, LanguageManager.Get("Message_SelectPageFirst")); return; } // MessageBox.Show("ctrlc"); if (view.SelectedRowsCount == 0) { StaticReference.ShowWarning(this, LanguageManager.Get("Message_NoRowsSelected")); return; } List <DataRow> drList = new List <DataRow>(); for (int i = 0; i < view.SelectedRowsCount; i++) { drList.Add(tbl.Table.Rows[view.GetSelectedRows()[i]]); //view.GetSelectedRows().cl } /* Copy the content of selected rows to the internal clipboard. */ InternalClipboard.Copy(ref drList); view.ClearSelection(); StaticReference.ShowInformation(this, string.Format(LanguageManager.Get("Message_NRowsCopied"), InternalClipboard.GetSize())); }
private void ngEdit_NewColumn_LinkPressed(object sender, NavBarLinkEventArgs e) { if (tcMain.SelectedTabPageIndex == -1 || tcMain.SelectedTabPage == null) { StaticReference.ShowWarning(this, LanguageManager.Get("Message_NoFileOpen")); return; } string fileName = tcMain.SelectedTabPage.Tag as string; using (frmColumnEditor columnEditor = new frmColumnEditor(fileName)) { columnEditor.ShowDialog(); } var grid = GetTabPageGrid(fileName); var newTable = StaticReference.GetTableByFullName(fileName); // TODO : Refresh datagrid /* grid.DataSource = null; * grid.DataSource = newTable; * grid.ResetBindings(); * grid.RefreshDataSource();*/ // GetViewFromSelectedTabPage().SynchronizeData(); }
private void OpenFile(object ofileName) { string fileName = ofileName as string; var fi = new FileInfo(fileName); if (!fi.Exists) { ; StaticReference.ShowWarning(this, string.Format(LanguageManager.Get("Message_FileOpenError"), fileName)); return; } if (StaticReference.GetTableByFullName(fi.FullName) != null) { this.Invoke(new Action(() => { SwitchToTabpage(fi.FullName); })); return; } DataTable table = null; KOEncryptionBase encryption = null; /* Try to decrypt file. */ foreach (var encryptionMethod in StaticReference.EncryptionMethods) { table = encryptionMethod.GetDataTableFromFile(fileName, fi.Name); if (table == null) { continue; } encryption = encryptionMethod; break; } if (table == null) { this.Invoke(new Action(() => { StaticReference.ShowWarning(this, string.Format(LanguageManager.Get("Message_FileEncryptionError"), fi.Name)); return; })); return; } var newTable = new KOTableFile(fi, table, encryption); /* Otherwise, we've succeeded to open file */ StaticReference.AddNewTable(newTable); this.Invoke(new Action(() => { CreateNewTabPage(newTable.Name, newTable.FullName); var grid = GetTabPageGrid(newTable.FullName); grid.KeyPress += Grid_KeyPress; grid.MouseClick += Grid_MouseClick; Trace.Assert(grid != null, "OpenFile() - Grid is null!"); grid.BeginUpdate(); grid.DataSource = table; var view = grid.MainView as GridView; Trace.Assert(view != null, "OpenFile() - GridView is null!"); view.Tag = newTable.FullName; foreach (var v in _itemTableHeaders.Where(v => newTable.Name.ToLowerInvariant().Contains(v.Key))) { view.ColumnPanelRowHeight += 20; for (var i = 0; i < view.Columns.Count; i++) { if (i < v.Value.Length) { view.Columns[i].Caption = string.Format("{0}\n{1}\n{2}", v.Value[i], i, ColumnTypes.GetColumnTypeNameFromFullName(view.Columns[i].ColumnType.FullName)); } } } //view. foreach (GridColumn col in view.Columns) { col.AppearanceCell.Options.UseTextOptions = true; col.AppearanceHeader.Options.UseTextOptions = true; col.AppearanceCell.TextOptions.HAlignment = HorzAlignment.Center; col.AppearanceCell.TextOptions.VAlignment = VertAlignment.Center; col.AppearanceHeader.TextOptions.HAlignment = HorzAlignment.Center; col.AppearanceHeader.TextOptions.VAlignment = VertAlignment.Center; col.MinWidth = col.ColumnType != typeof(string) ? 150 : 200; col.OptionsColumn.FixedWidth = true; } grid.Refresh(); grid.EndUpdate(); })); }
private void pasteRowToolStripMenuItem_Click(object sender, EventArgs e) { if (tcMain.SelectedTabPageIndex == -1 || tcMain.SelectedTabPage == null) { StaticReference.ShowWarning(this, LanguageManager.Get("Message_NoFileOpen")); return; } string fileName = tcMain.SelectedTabPage.Tag as string; KOTableFile tbl = StaticReference.GetTableByFullName(fileName); GridView view = GetViewFromSelectedTabPage(); if (null == tbl || null == view) { StaticReference.ShowWarning(this, LanguageManager.Get("Message_PasteError")); return; } if (InternalClipboard.DataExists()) { /* * Let's check if copied datarow matches the column length of current table * */ int successfulRows = 0; foreach (var copiedRow in InternalClipboard.GetNext()) { /* * 1. Column count of both tables should be same * 2. Data types of columns for both tables should match */ bool column_ok = true; DataRow newRow = tbl.Table.NewRow(); if (tbl.Table.Columns.Count == copiedRow.Table.Columns.Count) { foreach (DataColumn cColumn in copiedRow.Table.Columns) { if (tbl.Table.Columns[cColumn.Ordinal].DataType != cColumn.DataType) { column_ok = false; break; } else { newRow[cColumn.Ordinal] = copiedRow[cColumn]; } } } else { column_ok = false; } if (column_ok) { successfulRows++; /* Create a new row in table */ /* Insert the row.*/ tbl.Table.Rows.Add(newRow); AddNewRowHighlight(view, newRow); } } /* Scroll to bottom */ view.FocusedRowHandle = view.RowCount - 1; view.TopRowIndex = view.RowCount - 1; if (successfulRows == InternalClipboard.GetSize()) { StaticReference.ShowInformation(this, string.Format(LanguageManager.Get("Message_NRowsAddSuccess"), successfulRows)); } else { StaticReference.ShowWarning(this, string.Format(LanguageManager.Get("Message_CopyError"), successfulRows, InternalClipboard.GetSize())); } } else { StaticReference.ShowWarning(this, LanguageManager.Get("Message_PasteNoRows")); } }