Ejemplo n.º 1
0
        public static void ShowError(IWin32Window owner, string title, string message, string details = null)
        {
            var d = new MessageForm {
                Title   = title,
                Message = message,
                Details = details,
                Icon    = Resources.Exclamation32,
                Buttons = new[] { "OK" }
            };

            d.ShowDialog(owner);
        }
Ejemplo n.º 2
0
        private void DoDelete()
        {
            if (_list.SelectedItems.Count != 1)
            {
                return;
            }
            var lvi  = _list.SelectedItems[0];
            var name = lvi.Text;
            var type = (NotebookItemType)Enum.Parse(typeof(NotebookItemType), lvi.Group.Name);

            // can't delete tables or views if an operation is in progress
            bool isTableOrView = type == NotebookItemType.Table || type == NotebookItemType.View;

            if (isTableOrView && _operationInProgress)
            {
                MessageForm.ShowError(_mainForm,
                                      "Delete Item",
                                      "Cannot delete tables or views while an operation is in progress.",
                                      "Please wait until the current operation finishes, and then try again.");
                return;
            }

            var deleteBtn = "&Delete";
            var d         = new MessageForm {
                Title   = "Delete Item",
                Message = $"Are you sure you want to delete \"{name}\"?",
                Buttons = new[] { deleteBtn, "Cancel" },
                Icon    = Resources.Warning32
            };

            if (d.ShowDialog(this) != deleteBtn)
            {
                return;
            }

            var item = new NotebookItem(type, name);

            _manager.CloseItem(item);

            new WaitForm("Delete", "Deleting the selected item...", () => {
                _manager.DeleteItem(item);
            }).ShowDialogAndDispose(this);

            _manager.Rescan(notebookItemsOnly: !isTableOrView);
        }
Ejemplo n.º 3
0
        private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (_operationInProgress)
            {
                ErrorBox("SQL Notebook", "An operation is in progress.",
                         "Please cancel the operation or wait for it to complete before exiting from SQL Notebook.");
                e.Cancel = true;
                return;
            }

            if (_isDirty)
            {
                var shortFilename = _isNew ? "Untitled" : Path.GetFileNameWithoutExtension(_filePath);

                var saveBtn     = "&Save";
                var dontSaveBtn = "Do&n't Save";
                var cancelBtn   = "Cancel";
                var d           = new MessageForm {
                    Title   = "SQL Notebook",
                    Message = $"Do you want to save changes to {shortFilename}?",
                    Buttons = new[] { saveBtn, dontSaveBtn, cancelBtn }
                };
                var btn = d.ShowDialog(this);
                if (btn == saveBtn)
                {
                    if (!SaveOrSaveAs())
                    {
                        e.Cancel = true;
                    }
                }
                else if (btn == null || btn == cancelBtn)
                {
                    e.Cancel = true;
                }
            }
        }