Ejemplo n.º 1
0
        internal static void OpenNoteOnEditor(Form1 form)
        {
            XtraTabControl pagesTabControl = form.pagesTabControl;
            TreeView       notesTreeView   = form.notePanel.notesTreeView;

            TreeNode selectedNode = notesTreeView.SelectedNode;
            String   content;

            try
            {
                content = GetNoteText(form, selectedNode.Text);
            }
            catch (XmlException exception)
            {
                ManageError(form, exception);
                return;
            }

            if (TabManager.IsCurrentTabInUse(form))
            {
                form.TabIdentity = TabManager.AddNewPage(form, form.TabIdentity);
            }

            //Row number check
            WindowManager.CheckLineNumbersForTextLenght(form, content);

            ProgramUtil.GetPageTextBox(pagesTabControl.SelectedTabPage).Text = content;
        }
Ejemplo n.º 2
0
        internal static void DeleteFile(Form1 form)
        {
            XtraTabControl       pagesTabControl      = form.pagesTabControl;
            ToolStripStatusLabel toolStripStatusLabel = form.toolStripStatusLabel;

            String fileName = ProgramUtil.GetFilenameTabPage(pagesTabControl.SelectedTabPage);

            if (String.IsNullOrEmpty(fileName))
            {
                return;
            }

            if (WindowManager.ShowQuestionCancelBox(form, String.Format(LanguageUtil.GetCurrentLanguageString("SureDeleteFile", className), fileName)) != DialogResult.Yes)
            {
                return;
            }

            FileInfo fileInfo = new FileInfo(fileName);

            if (fileInfo.IsReadOnly)
            {
                ToggleReadonly(form);
            }

            FileSystem.DeleteFile(fileName, UIOption.OnlyErrorDialogs, RecycleOption.SendToRecycleBin); //File.Delete(fileName);
            toolStripStatusLabel.Text = String.Format(LanguageUtil.GetCurrentLanguageString("FileDeleted", className), fileName);

            TabManager.ClosePage(form, false);
        }
Ejemplo n.º 3
0
        internal static void ExportNotes(Form1 form, ExportTypeEnum exportType)
        {
            XtraTabControl    pagesTabControl = form.pagesTabControl;
            CustomRichTextBox pageTextBox     = ProgramUtil.GetPageTextBox(pagesTabControl.SelectedTabPage);

            String content;

            switch (exportType)
            {
            case ExportTypeEnum.Xml:
                if (TabManager.IsCurrentTabInUse(form))
                {
                    form.TabIdentity = TabManager.AddNewPage(form, form.TabIdentity);
                    pageTextBox      = ProgramUtil.GetPageTextBox(pagesTabControl.SelectedTabPage);
                }

                content = FileUtil.ReadToEndWithStandardEncoding(Path.Combine(ConstantUtil.ApplicationExecutionPath(), ConstantUtil.noFile));

                //Row number check
                WindowManager.CheckLineNumbersForTextLenght(form, content);

                pageTextBox.SelectedText = content;

                TextManager.RefreshUndoRedoExternal(form);
                break;

            case ExportTypeEnum.Txt:
                try
                {
                    XmlDocument xmldoc = new XmlDocument();
                    xmldoc.Load(Path.Combine(ConstantUtil.ApplicationExecutionPath(), ConstantUtil.noFile));

                    XmlNodeList noteNodeList = xmldoc.GetElementsByTagName("note");

                    foreach (XmlNode noteNode in noteNodeList)
                    {
                        if (TabManager.IsCurrentTabInUse(form))
                        {
                            form.TabIdentity = TabManager.AddNewPage(form, form.TabIdentity);
                            pageTextBox      = ProgramUtil.GetPageTextBox(pagesTabControl.SelectedTabPage);
                        }

                        content = noteNode.ChildNodes[0].InnerText + ConstantUtil.newLine + ConstantUtil.newLine + noteNode.ChildNodes[1].InnerText;

                        //Row number check
                        WindowManager.CheckLineNumbersForTextLenght(form, content);

                        pageTextBox.SelectedText = content;

                        TextManager.RefreshUndoRedoExternal(form);
                    }
                }
                catch (XmlException exception)
                {
                    ManageError(form, exception);
                }
                break;
            }
        }
Ejemplo n.º 4
0
        internal static bool OpenUrlSource(Form1 form, String url)
        {
            XtraTabControl    pagesTabControl = form.pagesTabControl;
            CustomRichTextBox pageTextBox     = ProgramUtil.GetPageTextBox(pagesTabControl.SelectedTabPage);

            if (!url.StartsWith("http://"))
            {
                url = "http://" + url;
            }

            WebClient webClient = null;
            String    urlSource;

            try
            {
                webClient          = ProxyUtil.InitWebClientProxy();
                webClient.Encoding = EncodingUtil.GetDefaultEncoding();
                urlSource          = webClient.DownloadString(url);
            }
            catch (WebException)
            {
                WindowManager.ShowAlertBox(form, LanguageUtil.GetCurrentLanguageString("ErrorDownloading", className));
                return(false);
            }
            finally
            {
                if (webClient != null)
                {
                    webClient.Dispose();
                }
            }

            if (String.IsNullOrEmpty(urlSource))
            {
                WindowManager.ShowInfoBox(form, LanguageUtil.GetCurrentLanguageString("EmptySource", className));
                return(false);
            }

            if (TabManager.IsCurrentTabInUse(form))
            {
                form.TabIdentity = TabManager.AddNewPage(form, form.TabIdentity);
                pageTextBox      = ProgramUtil.GetPageTextBox(pagesTabControl.SelectedTabPage);
            }

            //Row number check
            WindowManager.CheckLineNumbersForTextLenght_External(form, urlSource);

            pageTextBox.SelectedText = urlSource;
            TextManager.RefreshUndoRedoExternal(form);

            return(true);
        }
Ejemplo n.º 5
0
        internal static bool OpenFileFromDropbox(Form1 form1, Form form, String fileName, String directoryName)
        {
            XtraTabControl       pagesTabControl      = form1.pagesTabControl;
            ToolStripStatusLabel toolStripStatusLabel = form1.toolStripStatusLabel;
            ToolStripProgressBar toolStripProgressBar = form1.toolStripProgressBar;

            try
            {
                Application.DoEvents();
                toolStripProgressBar.Value   = 0;
                toolStripProgressBar.Visible = true;
                toolStripProgressBar.PerformStep();

                bool   fileExists;
                String content = DropboxManager.GetFileFromDropbox(DropboxManager.GetDirectory(form1, directoryName), fileName, out fileExists);
                toolStripProgressBar.PerformStep();

                if (!fileExists)
                {
                    WindowManager.ShowAlertBox(form, String.Format(LanguageUtil.GetCurrentLanguageString("openingFileNotExists", className), fileName, directoryName));
                    return(false);
                }
                if (String.IsNullOrEmpty(content))
                {
                    WindowManager.ShowInfoBox(form, String.Format(LanguageUtil.GetCurrentLanguageString("openingFileEmpty", className), fileName));
                    return(false);
                }
                toolStripProgressBar.PerformStep();

                form1.LastDropboxFolder = directoryName;
                if (!String.IsNullOrEmpty(ProgramUtil.GetPageTextBox(pagesTabControl.SelectedTabPage).Text))
                {
                    form1.TabIdentity = TabManager.AddNewPage(form1, form1.TabIdentity);
                }
                ProgramUtil.GetPageTextBox(pagesTabControl.SelectedTabPage).Text = content;
                toolStripStatusLabel.Text = String.Format("{0} \"{1}\" {2}", LanguageUtil.GetCurrentLanguageString("File", className), fileName, LanguageUtil.GetCurrentLanguageString("OpenedFromDropbox", className));
                toolStripProgressBar.PerformStep();
            }
            catch (Exception exception)
            {
                WindowManager.ShowErrorBox(form, exception.Message, exception);
                return(false);
            }
            finally
            {
                toolStripProgressBar.Visible = false;
            }

            return(true);
        }
Ejemplo n.º 6
0
        internal static void ReloadFile(Form1 form, int tabIdentity)
        {
            XtraTabControl pagesTabControl = form.pagesTabControl;

            if (pagesTabControl.SelectedTabPage.Text.StartsWith("*"))
            {
                if (WindowManager.ShowQuestionBox(form, LanguageUtil.GetCurrentLanguageString("Reload", className)) != DialogResult.Yes)
                {
                    return;
                }
            }

            String[] filenames = new[] { ProgramUtil.GetFilenameTabPage(pagesTabControl.SelectedTabPage) };
            TabManager.ResetTab(form);
            OpenFile(form, tabIdentity, filenames);
        }
Ejemplo n.º 7
0
        internal static void MergeTabs(MergeTabs form, String[] itemValues)
        {
            Form1    form1                  = (Form1)form.Owner;
            ListBox  tabPagesListBox        = form.tabPagesListBox;
            CheckBox markSeparationCheckBox = form.markSeparationCheckBox;
            TextBox  markSeparationTextBox  = form.markSeparationTextBox;

            String[] selectedTabNames = new String[tabPagesListBox.SelectedIndices.Count];

            for (int i = 0; i < tabPagesListBox.SelectedIndices.Count; i++)
            {
                selectedTabNames[i] = itemValues[tabPagesListBox.SelectedIndices[i]];
            }

            TabManager.MergeTab(form1, selectedTabNames, markSeparationCheckBox.Checked, markSeparationTextBox.Text.Replace(ConstantUtil.newLineNotCompatible, ConstantUtil.newLine));
        }
Ejemplo n.º 8
0
        internal static void GetTemplate(Form1 form, String template)
        {
            XtraTabControl    pagesTabControl = form.pagesTabControl;
            CustomRichTextBox pageTextBox     = ProgramUtil.GetPageTextBox(pagesTabControl.SelectedTabPage);

            template = ElaborateTextToRichTextBox(template);

            if (!TabManager.IsCurrentTabInUse(form))
            {
                pageTextBox.SelectedText = template;
                TextManager.RefreshUndoRedoExternal(form);
                return;
            }

            form.TabIdentity         = TabManager.AddNewPage(form, form.TabIdentity);
            pageTextBox              = ProgramUtil.GetPageTextBox(pagesTabControl.SelectedTabPage);
            pageTextBox.SelectedText = template;
            TextManager.RefreshUndoRedoExternal(form);
        }
Ejemplo n.º 9
0
        internal static void ExportList(Form1 form, SearchInFilesPanel panel)
        {
            ListBox           searchInFilesListBox = panel.searchInFilesListBox;
            XtraTabControl    pagesTabControl      = form.pagesTabControl;
            CustomRichTextBox pageTextBox          = ProgramUtil.GetPageTextBox(pagesTabControl.SelectedTabPage);

            //String result = String.Empty;
            //foreach (object item in searchInFilesListBox.Items)
            //{
            //    result += GetFileCompletePathName(panel, item.ToString()) + ConstantUtil.newLine;
            //}
            String result = searchInFilesListBox.Items.Cast <object>().Aggregate(String.Empty, (current, item) => current + (GetFileCompletePathName(panel, item.ToString()) + ConstantUtil.newLine));

            if (TabManager.IsCurrentTabInUse(form))
            {
                form.TabIdentity = TabManager.AddNewPage(form, form.TabIdentity);
                pageTextBox      = ProgramUtil.GetPageTextBox(pagesTabControl.SelectedTabPage);
            }

            pageTextBox.SelectedText = result;
        }
Ejemplo n.º 10
0
        internal static void SelectTabPageFromTabExplorer(Form1 form, TreeNodeMouseClickEventArgs e)
        {
            XtraTabControl pagesTabControl     = form.pagesTabControl;
            TreeView       tabExplorerTreeView = form.tabPanel.tabExplorerTreeView;

            tabExplorerTreeView.SelectedNode = e.Node;
            pagesTabControl.SelectedTabPage  = TabManager.GetXtraTabPageFromName(pagesTabControl, tabExplorerTreeView.SelectedNode.Name.Substring(ConstantUtil.tabNodePrefix.Length));

            switch (e.Button)
            {
            case MouseButtons.Left:
                break;

            case MouseButtons.Right:
                break;

            case MouseButtons.Middle:
                TabManager.ClosePage(form);
                break;
            }

            TabManager.ToggleTabMoveButtons(form, e.Node, tabExplorerTreeView.Nodes.Count);
        }
Ejemplo n.º 11
0
        internal static void CloseSession(Form1 form)
        {
            ToolStrip sessionToolStrip = form.sessionToolStrip;
            ToolStripDropDownButton sessionImageToolStripButton  = form.sessionImageToolStripButton;
            ToolStripButton         sessionToolStripButton       = form.sessionToolStripButton;
            ToolStripMenuItem       closeToolStripMenuItem3      = form.closeToolStripMenuItem3;
            ToolStripMenuItem       saveToolStripMenuItem2       = form.saveToolStripMenuItem2;
            ToolStripMenuItem       exportAsZipToolStripMenuItem = form.exportAsZipToolStripMenuItem;
            ToolStripStatusLabel    toolStripStatusLabel         = form.toolStripStatusLabel;
            //SplitContainer verticalSplitContainer = form.verticalSplitContainer;
            XtraTabControl    pagesTabControl = form.pagesTabControl;
            ToolStripMenuItem renameSessionToolStripMenuItem     = form.renameSessionToolStripMenuItem;
            ToolStripMenuItem favouriteSessionToolStripMenuItem  = form.favouriteSessionToolStripMenuItem;
            ToolStripMenuItem listFilesToolStripMenuItem         = form.listFilesToolStripMenuItem;
            ToolStripMenuItem aspectToolStripMenuItem            = form.aspectToolStripMenuItem;
            ToolStripMenuItem useDefaultToolStripMenuItem        = form.useDefaultToolStripMenuItem;
            ToolStripMenuItem closeButtonToolStripMenuItem       = form.closeButtonToolStripMenuItem;
            ToolStripMenuItem tabPositionToolStripMenuItem       = form.tabPositionToolStripMenuItem;
            ToolStripMenuItem tabOrientationToolStripMenuItem    = form.tabOrientationToolStripMenuItem;
            ToolStripMenuItem sessionPropertiesToolStripMenuItem = form.sessionPropertiesToolStripMenuItem;

            if (CheckSessionOnClosing(form, true) == DialogResult.Cancel)
            {
                return;
            }

            for (int i = startPositionToReadSessionFiles; i < sessionImageToolStripButton.DropDownItems.Count; i++)
            {
                foreach (XtraTabPage tabPage in pagesTabControl.TabPages)
                {
                    if (ProgramUtil.GetFilenameTabPage(tabPage) != sessionImageToolStripButton.DropDownItems[i].Text)
                    {
                        continue;
                    }

                    pagesTabControl.SelectedTabPage = tabPage;
                    TabManager.ClosePage(form);
                    break;
                }
            }

            sessionImageToolStripButton.DropDownItems.Clear();
            sessionToolStrip.Visible                   = false;
            closeToolStripMenuItem3.Enabled            = false;
            saveToolStripMenuItem2.Enabled             = false;
            exportAsZipToolStripMenuItem.Enabled       = false;
            renameSessionToolStripMenuItem.Enabled     = false;
            favouriteSessionToolStripMenuItem.Enabled  = false;
            listFilesToolStripMenuItem.Enabled         = false;
            aspectToolStripMenuItem.Enabled            = false;
            sessionPropertiesToolStripMenuItem.Enabled = false;

            if (!useDefaultToolStripMenuItem.Checked)
            {
                OptionManager.CheckTabCloseButton(form, ConfigUtil.GetIntParameter("TabCloseButtonMode"));
                OptionManager.CheckTabPosition(form, ConfigUtil.GetIntParameter("TabPosition"));
                OptionManager.CheckTabOrientation(form, ConfigUtil.GetIntParameter("TabOrientation"));
            }

            useDefaultToolStripMenuItem.Enabled     = false;
            closeButtonToolStripMenuItem.Enabled    = false;
            tabPositionToolStripMenuItem.Enabled    = false;
            tabOrientationToolStripMenuItem.Enabled = false;

            //verticalSplitContainer.Panel1.Padding = new Padding(3, 0, 0, 0);
            toolStripStatusLabel.Text = String.Format(LanguageUtil.GetCurrentLanguageString("Closed", className), sessionToolStripButton.Text);
        }
Ejemplo n.º 12
0
        internal static void ListFolderContentIntoFile(Form1 form, TreeNode parentNode, bool withSizes, String filePattern = "*", SearchOption searchOption = SearchOption.TopDirectoryOnly)
        {
            ToolStripButton   hiddenToolStripButton = form.filePanel.hiddenToolStripButton;
            XtraTabControl    pagesTabControl       = form.pagesTabControl;
            CustomRichTextBox pageTextBox           = ProgramUtil.GetPageTextBox(pagesTabControl.SelectedTabPage);

            long totalSize = 0;

            //bool warningShown = false;

            try
            {
                //Root directory
                DirectoryInfo rootDir;
                Char[]        arr      = { '\\' };
                String[]      nameList = parentNode.FullPath.Split(arr);

                if (nameList.GetValue(0).ToString() == "Desktop")
                {
                    String path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\\";

                    for (int i = 1; i < nameList.Length; i++)
                    {
                        path = path + nameList[i] + "\\";
                    }

                    rootDir = new DirectoryInfo(path);
                }
                else
                {
                    rootDir = new DirectoryInfo(parentNode.FullPath + "\\");
                }

                String fileList = LanguageUtil.GetCurrentLanguageString("ListDirectoryHeader", className) + " " + rootDir.FullName + ConstantUtil.newLine + ConstantUtil.newLine;

                //Child directories
                DirectoryInfo[] directories = rootDir.GetDirectories(filePattern, searchOption);
                Array.Sort(directories, new Comparison <DirectoryInfo>((d1, d2) => String.Compare(d1.Name, d2.Name))); //return string.Compare(d1.Name, d2.Name);
                foreach (DirectoryInfo directory in directories)
                {
                    if (!hiddenToolStripButton.Checked && directory.Attributes.ToString().Contains("Hidden"))
                    {
                        continue;
                    }

                    //String size = String.Empty;
                    //if (withSizes)
                    //{
                    //    if (!warningShown && WindowManager.ShowQuestionBox(form, LanguageUtil.GetCurrentLanguageString("SureToWait", className)) == DialogResult.No)
                    //    {
                    //        return;
                    //    }

                    //    warningShown = true;
                    //    int filesCount = 0;
                    //    int dirsCount = 0;
                    //    try
                    //    {
                    //        long sizeLong = DirectoryUtil.GetSize(directory, filesCount, dirsCount, out filesCount, out dirsCount);
                    //        totalSize += sizeLong;
                    //        double sizeDouble = (sizeLong / 1024f) / 1024f;

                    //        size = " - " + Math.Round(sizeDouble, 2).ToString(LanguageUtil.GetInfoCulture())
                    //            + " MB, " + filesCount + " " + LanguageUtil.GetCurrentLanguageString("Files", className) + ", " + dirsCount + " " + LanguageUtil.GetCurrentLanguageString("Directories", className);
                    //    }
                    //    catch (UnauthorizedAccessException)
                    //    {
                    //        size = " - " + String.Format(LanguageUtil.GetCurrentLanguageString("AccessDenied", className), directory.FullName);
                    //    }
                    //}

                    fileList += "[dir] " + directory.Name + "\\" + ConstantUtil.newLine; //"[dir] " + directory.Name + "\\" + size + ConstantUtil.newLine
                }

                fileList += ConstantUtil.newLine;

                //Child files
                FileInfo[] files = rootDir.GetFiles(filePattern, searchOption);
                Array.Sort(files, new Comparison <FileInfo>((f1, f2) => String.Compare(f1.Name, f2.Name)));
                foreach (FileInfo file in files)
                {
                    if (!hiddenToolStripButton.Checked && file.Attributes.ToString().Contains("Hidden") || IsFileBlackListed(file.Name))
                    {
                        continue;
                    }

                    String size = String.Empty;
                    if (withSizes)
                    {
                        totalSize += file.Length;
                        double sizeDouble = (file.Length / 1024f) / 1024f;
                        size = " - " + Math.Round(sizeDouble, 2).ToString(LanguageUtil.GetInfoCulture()) + " MB";
                    }

                    switch (searchOption)
                    {
                    case SearchOption.TopDirectoryOnly:
                        fileList = fileList + file.Name + size + ConstantUtil.newLine;
                        break;

                    default:
                        fileList = fileList + file.FullName.Substring(rootDir.FullName.Length) + size + ConstantUtil.newLine;
                        break;
                    }
                }

                if (withSizes)
                {
                    double totalSizeDouble = (totalSize / 1024f) / 1024f;
                    fileList = fileList + ConstantUtil.newLine + LanguageUtil.GetCurrentLanguageString("TotalSize", className) + " " + Math.Round(totalSizeDouble, 2).ToString(LanguageUtil.GetInfoCulture()) + " MB" + ConstantUtil.newLine;
                }

                //Row number check
                WindowManager.CheckLineNumbersForTextLenght(form, String.Format("{0}{1}", pageTextBox.Text, fileList));

                if (!TabManager.IsCurrentTabInUse(form))
                {
                    pageTextBox.SelectedText = fileList;
                    TextManager.RefreshUndoRedoExternal(form);
                }
                else
                {
                    form.TabIdentity         = TabManager.AddNewPage(form, form.TabIdentity);
                    pageTextBox              = ProgramUtil.GetPageTextBox(pagesTabControl.SelectedTabPage);
                    pageTextBox.SelectedText = fileList;
                    TextManager.RefreshUndoRedoExternal(form);
                }
            }
            catch (UnauthorizedAccessException exception)
            {
                WindowManager.ShowErrorBox(form, String.Format("{0}{1}{2}", LanguageUtil.GetCurrentLanguageString("ErrorLoadingDirFiles", className), Environment.NewLine, exception.Message), exception);
            }
            catch (Exception exception)
            {
                if (parentNode == null)
                {
                    WindowManager.ShowErrorBox(form, LanguageUtil.GetCurrentLanguageString("ErrorLoadingDirFiles", className), exception);
                    return;
                }

                if (parentNode.Tag != null && (parentNode.Tag.ToString() == "CDRom" || parentNode.Tag.ToString() == "Removable"))
                {
                    if (parentNode.Nodes.Count == 0)
                    {
                        parentNode.Nodes.Add(null, LanguageUtil.GetCurrentLanguageString("NoDisk", className), 7, 7);
                    }

                    WindowManager.ShowInfoBox(form, LanguageUtil.GetCurrentLanguageString("DeviceNotReady", className));
                }
                else
                {
                    WindowManager.ShowErrorBox(form, LanguageUtil.GetCurrentLanguageString("ErrorLoadingDirFiles", className), exception);
                }
            }
        }
Ejemplo n.º 13
0
        private static String ReadSessionXML(Form1 form, String fileName, out bool loadTotallyFailed)
        {
            CustomXtraTabControl    pagesTabControl                 = form.pagesTabControl;
            ToolStripDropDownButton sessionImageToolStripButton     = form.sessionImageToolStripButton;
            ToolStripMenuItem       useDefaultToolStripMenuItem     = form.useDefaultToolStripMenuItem;
            ToolStripMenuItem       closeButtonToolStripMenuItem    = form.closeButtonToolStripMenuItem;
            ToolStripMenuItem       tabPositionToolStripMenuItem    = form.tabPositionToolStripMenuItem;
            ToolStripMenuItem       tabOrientationToolStripMenuItem = form.tabOrientationToolStripMenuItem;

            loadTotallyFailed = false;
            int selectedTab  = 0;
            int existingTabs = 0;

            if (pagesTabControl.TabPages.Count > 1 || !String.IsNullOrEmpty(ProgramUtil.GetPageTextBox(pagesTabControl.TabPages[0]).Text) || !String.IsNullOrEmpty(ProgramUtil.GetFilenameTabPage(pagesTabControl.TabPages[0])))
            {
                existingTabs = pagesTabControl.TabPages.Count;
            }

            sessionImageToolStripButton.DropDownItems.Clear();
            sessionImageToolStripButton.DropDownItems.Add(fileName);
            sessionImageToolStripButton.DropDownItems[0].Image  = ToolbarResource.diagram;
            sessionImageToolStripButton.DropDownItems[0].Click += form.sessionPropertiesToolStripMenuItem_Click;
            sessionImageToolStripButton.DropDownItems.Add(new ToolStripSeparator());

            XmlDocument xmldoc = new XmlDocument();

            xmldoc.Load(fileName);

            XmlNodeList nodeFileList = xmldoc.GetElementsByTagName("file");

            if (nodeFileList.Count == 0)
            {
                throw new SessionException(LanguageUtil.GetCurrentLanguageString("Empty", className));
            }

            String[]     fileNames = new String[nodeFileList.Count];
            KnownColor[] tabColors = new KnownColor[nodeFileList.Count];
            for (int i = 0; i < nodeFileList.Count; i++)
            {
                XmlNode nodeFile = nodeFileList[i];

                String path = nodeFile.Attributes["path"].Value;
                path = FileUtil.EvaluateAbsolutePath(Path.GetDirectoryName(fileName), path);

                fileNames[i] = Path.Combine(path, nodeFile.Attributes["name"].Value);
                sessionImageToolStripButton.DropDownItems.Add(fileNames[i]);
                sessionImageToolStripButton.DropDownItems[sessionImageToolStripButton.DropDownItems.Count - 1].Click += form.sessionImageToolStripButton_Click;

                if (!File.Exists(fileNames[i]))
                {
                    sessionImageToolStripButton.DropDownItems[sessionImageToolStripButton.DropDownItems.Count - 1].Enabled = false;
                }

                try
                {
                    if (Convert.ToBoolean(nodeFile.Attributes["open"].Value))
                    {
                        selectedTab = i;
                    }
                }
                catch (Exception)
                {
                }

                try
                {
                    tabColors[i] = (KnownColor)Enum.Parse(typeof(KnownColor), nodeFile.Attributes["tabcolor"].Value, true);
                }
                catch (Exception)
                {
                    tabColors[i] = KnownColor.Black;
                }
            }

            List <String> errors;

            form.TabIdentity = FileManager.OpenFile(form, form.TabIdentity, fileNames, false, false, out errors);

            if (errors.Count == 0)
            {
                pagesTabControl.SelectedTabPageIndex = selectedTab;

                for (int j = 0; j < pagesTabControl.TabPages.Count - existingTabs; j++)
                {
                    TabManager.SetTabColor(pagesTabControl.TabPages[j + existingTabs], Color.FromKnownColor(tabColors[j])); //pagesTabControl.TabPages[j].Appearance.Header.ForeColor = Color.FromKnownColor(tabColors[j]);
                }
            }
            else
            {
                String errorMessage = LanguageUtil.GetCurrentLanguageString("openingErrors", className) + Environment.NewLine;
                for (int i = 0; i < errors.Count; i++)
                {
                    if (i == errors.Count - 1)
                    {
                        errorMessage += errors[i];
                        continue;
                    }

                    errorMessage += errors[i] + Environment.NewLine;
                }

                WindowManager.ShowContent(form, errorMessage);

                if (errors.Count == fileNames.Length)
                {
                    loadTotallyFailed = true;
                }
            }

            if (xmldoc.GetElementsByTagName("session")[0].Attributes["aspect"].Value == "default")
            {
                useDefaultToolStripMenuItem.Checked = true;
            }
            else
            {
                useDefaultToolStripMenuItem.Checked = false;

                CheckDropDownIndex(closeButtonToolStripMenuItem, Convert.ToInt32(xmldoc.GetElementsByTagName("session")[0].Attributes["button"].Value));
                CheckDropDownIndex(tabPositionToolStripMenuItem, Convert.ToInt32(xmldoc.GetElementsByTagName("session")[0].Attributes["position"].Value));
                CheckDropDownIndex(tabOrientationToolStripMenuItem, Convert.ToInt32(xmldoc.GetElementsByTagName("session")[0].Attributes["orientation"].Value));
            }

            return(xmldoc.GetElementsByTagName("session")[0].Attributes["name"].Value);
        }
Ejemplo n.º 14
0
        internal static int OpenFile(Form1 form, int tabIdentity, String[] specificFileNames, bool showMessages, bool saveNewRecentFile, out List <String> errors)
        {
            CustomXtraTabControl pagesTabControl      = form.pagesTabControl;
            ToolStripStatusLabel toolStripStatusLabel = form.toolStripStatusLabel;
            ToolStripProgressBar toolStripProgressBar = form.toolStripProgressBar;
            OpenFileDialog       openFileDialog       = form.openFileDialog;

            bool isWindowsHostsFile = false;
            int  localTabIdentity   = tabIdentity;

            errors = new List <String>();

            openFileDialog.InitialDirectory = FileUtil.GetInitialFolder(form);
            openFileDialog.Multiselect      = true;
            SetFileDialogFilter(openFileDialog);

            TrayManager.RestoreFormIfIsInTray(form);

            try
            {
                String[] fileNames;

                if (specificFileNames == null || specificFileNames.Length <= 0)
                {
                    if (openFileDialog.ShowDialog() != DialogResult.OK)
                    {
                        return(tabIdentity);
                    }

                    fileNames = openFileDialog.FileNames;
                }
                else
                {
                    fileNames = specificFileNames;
                }

                //Verify if file is a DtPad session
                if (fileNames.Length == 1 && fileNames[0].EndsWith(".dps"))
                {
                    SessionManager.OpenSession(form, fileNames[0]);
                    return(form.TabIdentity);
                }

                Application.DoEvents();
                toolStripProgressBar.Value = 0;

                foreach (String fileName in fileNames)
                {
                    //Verify if file is Windows hosts file
                    if (fileName.Contains(@"drivers\etc\hosts"))
                    {
                        if (!SystemUtil.IsUserAdministrator())
                        {
                            WindowManager.ShowAlertBox(form, LanguageUtil.GetCurrentLanguageString("UserNotAdmin", className));
                        }

                        isWindowsHostsFile = true;
                    }

                    if (!showMessages)
                    {
                        if (!File.Exists(fileName))
                        {
                            errors.Add(String.Format(LanguageUtil.GetCurrentLanguageString("NoMessageFileNotExists", className), fileName));
                            continue;
                        }
                        if (FileUtil.IsFileInUse(fileName))
                        {
                            errors.Add(String.Format(LanguageUtil.GetCurrentLanguageString("NoMessageFileInUse", className), fileName));
                            continue;
                        }
                        if (FileUtil.IsFileTooLargeForDtPad(fileName))
                        {
                            errors.Add(String.Format(LanguageUtil.GetCurrentLanguageString("NoMessageFileTooHeavy", className), fileName));
                            continue;
                        }
                    }
                    else if (!File.Exists(fileName))
                    {
                        WindowManager.ShowAlertBox(form, String.Format(LanguageUtil.GetCurrentLanguageString("FileNotExisting", className), fileName));
                        continue;
                    }
                    else if (FileUtil.IsFileInUse(fileName))
                    {
                        WindowManager.ShowAlertBox(form, String.Format(LanguageUtil.GetCurrentLanguageString("FileInUse", className), fileName));
                        continue;
                    }
                    if (FileUtil.IsFileTooLargeForDtPad(fileName))
                    {
                        WindowManager.ShowAlertBox(form, String.Format(LanguageUtil.GetCurrentLanguageString("FileTooHeavy", className), fileName));
                        continue;
                    }

                    //Cycle and check if the file is already open, in which case I select its tab and continue with the next one
                    XtraTabPage tabPage;
                    if (FileUtil.IsFileAlreadyOpen(form, fileName, out tabPage))
                    {
                        pagesTabControl.SelectedTabPage = tabPage;
                        toolStripProgressBar.PerformStep();
                        toolStripProgressBar.PerformStep();
                        toolStripProgressBar.PerformStep();
                        toolStripProgressBar.PerformStep();
                        toolStripProgressBar.Visible = false;
                        continue;
                    }

                    //Verify if file is an archive
                    try
                    {
                        ZipFile file = null;
                        bool    isZipFile;

                        try
                        {
                            file      = new ZipFile(fileName);
                            isZipFile = file.TestArchive(false, TestStrategy.FindFirstError, form.Zip_Errors);
                        }
                        finally
                        {
                            if (file != null)
                            {
                                file.Close();
                            }
                        }

                        if (isZipFile)
                        {
                            WindowManager.ShowZipExtract(form, fileName);
                            continue;
                        }
                    }
                    catch (ZipException)
                    {
                    }

                    toolStripProgressBar.Visible = true;
                    toolStripProgressBar.PerformStep();

                    String   fileContents;
                    Encoding fileEncoding;
                    bool     anonymousFile = false;

                    //Verify if file is a PDF
                    if (fileName.EndsWith(".pdf"))
                    {
                        bool success;
                        fileContents = PdfUtil.ExtractText(fileName, out success);

                        if (!success)
                        {
                            WindowManager.ShowAlertBox(form, LanguageUtil.GetCurrentLanguageString("InvalidPdf", className));
                            return(tabIdentity);
                        }

                        fileEncoding  = EncodingUtil.GetDefaultEncoding();
                        anonymousFile = true;
                    }
                    else
                    {
                        fileContents = FileUtil.ReadToEndWithEncoding(fileName, out fileEncoding);
                    }

                    bool favouriteFile = FavouriteManager.IsFileFavourite(fileName);
                    if (!favouriteFile && saveNewRecentFile)
                    {
                        ConfigUtil.UpdateParameter("LastUserFolder", Path.GetDirectoryName(fileName));
                        FileListManager.SetNewRecentFile(form, fileName);
                    }
                    toolStripProgressBar.PerformStep();

                    CustomRichTextBox pageTextBox = ProgramUtil.GetPageTextBox(pagesTabControl.SelectedTabPage);
                    if (!String.IsNullOrEmpty(pageTextBox.Text) || !String.IsNullOrEmpty(ProgramUtil.GetFilenameTabPage(pagesTabControl.SelectedTabPage)))
                    {
                        localTabIdentity = TabManager.AddNewPage(form, localTabIdentity);
                    }
                    toolStripProgressBar.PerformStep();

                    //Row number check
                    WindowManager.CheckLineNumbersForTextLenght(form, fileContents);

                    FileInfo fileInfo = new FileInfo(fileName);

                    pageTextBox = ProgramUtil.GetPageTextBox(pagesTabControl.SelectedTabPage);

                    //Verify if file is a tweet file
                    if (fileName.EndsWith(".tweet") && !ColumnRulerManager.IsPanelOpen(form))
                    {
                        ColumnRulerManager.TogglePanel(form);
                    }

                    pageTextBox.Text           = fileContents.Replace(Environment.NewLine, ConstantUtil.newLine);
                    pageTextBox.CustomOriginal = ProgramUtil.GetPageTextBox(pagesTabControl.SelectedTabPage).Text.GetHashCode().ToString();
                    pageTextBox.CustomEncoding = fileEncoding.CodePage.ToString();

                    if (!anonymousFile)
                    {
                        String fileNameWithoutPath = Path.GetFileName(fileName);

                        pageTextBox.CustomModified = false;
                        ProgramUtil.SetFilenameTabPage(pagesTabControl.SelectedTabPage, fileName);
                        pagesTabControl.SelectedTabPage.ImageIndex   = fileInfo.IsReadOnly ? 2 : 0;
                        pagesTabControl.SelectedTabPage.Text         = fileNameWithoutPath;
                        pagesTabControl.SelectedTabPage.Tooltip      = fileName;
                        pagesTabControl.SelectedTabPage.TooltipTitle = fileNameWithoutPath;
                        form.Text = String.Format("DtPad - {0}", fileNameWithoutPath);
                        TabManager.ToggleTabFileTools(form, true);
                    }
                    else
                    {
                        pageTextBox.CustomModified = true;
                    }

                    toolStripStatusLabel.Text = String.Format("{0} \"{1}\" {2}", LanguageUtil.GetCurrentLanguageString("File", className), Path.GetFileName(fileName), LanguageUtil.GetCurrentLanguageString("Opened", className));
                    toolStripProgressBar.PerformStep();

                    tabIdentity = localTabIdentity;

                    if (!String.IsNullOrEmpty(fileInfo.Extension) && ConfigUtil.GetStringParameter("AutoFormatFiles").Contains(fileInfo.Extension))
                    {
                        FormatManager.FormatXml(form);
                    }

                    if (ConfigUtil.GetBoolParameter("AutoOpenHostsConfigurator") && isWindowsHostsFile)
                    {
                        pagesTabControl.SelectedTabPage.Appearance.Header.ForeColor = ConfigUtil.GetColorParameter("ColorHostsConfigurator");
                        CustomFilesManager.OpenHostsSectionPanel(form);
                        isWindowsHostsFile = false;
                    }
                }
            }
            catch (Exception exception)
            {
                TabManager.ToggleTabFileTools(form, false);

                toolStripProgressBar.Visible = false;
                toolStripProgressBar.Value   = 0;

                if (showMessages)
                {
                    WindowManager.ShowErrorBox(form, exception.Message, exception);
                }
            }
            finally
            {
                toolStripProgressBar.Visible = false;
                toolStripProgressBar.Value   = 0;
            }

            return(tabIdentity);
        }
Ejemplo n.º 15
0
        private static bool SaveFile(bool saveNewRecentFile, Form1 form, bool forceSaveAs, bool forceBackup, bool savingAll = false)
        {
            XtraTabControl       pagesTabControl      = form.pagesTabControl;
            ToolStripStatusLabel toolStripStatusLabel = form.toolStripStatusLabel;
            ToolStripProgressBar toolStripProgressBar = form.toolStripProgressBar;
            SaveFileDialog       saveFileDialog       = form.saveFileDialog;

            try
            {
                String fileName;

                if (String.IsNullOrEmpty(ProgramUtil.GetFilenameTabPage(pagesTabControl.SelectedTabPage)) || forceSaveAs)
                {
                    saveFileDialog.InitialDirectory = FileUtil.GetInitialFolder(form);
                    SetFileDialogFilter(saveFileDialog);

                    TabsUpdate(pagesTabControl, savingAll, UpdatePhase.End);   //Useful to save all execution
                    DialogResult saveNewResult = saveFileDialog.ShowDialog();
                    TabsUpdate(pagesTabControl, savingAll, UpdatePhase.Begin); //Useful to save all execution

                    if (saveNewResult != DialogResult.OK)
                    {
                        toolStripProgressBar.Visible = false;
                        return(false);
                    }

                    fileName = saveFileDialog.FileName;
                }
                else
                {
                    fileName = ProgramUtil.GetFilenameTabPage(pagesTabControl.SelectedTabPage);
                }

                //Check that fileName is not already opened into another tab
                foreach (XtraTabPage tabPage in pagesTabControl.TabPages)
                {
                    if (tabPage == pagesTabControl.SelectedTabPage || ProgramUtil.GetFilenameTabPage(tabPage) != fileName)
                    {
                        continue;
                    }

                    pagesTabControl.SelectedTabPage = tabPage;

                    TabsUpdate(pagesTabControl, savingAll, UpdatePhase.End);   //Useful to save all execution
                    WindowManager.ShowAlertBox(form, LanguageUtil.GetCurrentLanguageString("FileAlreadyOpen", className));
                    TabsUpdate(pagesTabControl, savingAll, UpdatePhase.Begin); //Useful to save all execution

                    return(false);
                }

                bool favouriteFile = FavouriteManager.IsFileFavourite(fileName);

                Application.DoEvents();
                toolStripProgressBar.Value   = 0;
                toolStripProgressBar.Visible = true;

                toolStripProgressBar.PerformStep();

                if (!favouriteFile)
                {
                    ConfigUtil.UpdateParameter("LastUserFolder", Path.GetDirectoryName(fileName));
                }

                FileInfo fileInfo = new FileInfo(fileName);
                if (fileInfo.IsReadOnly && fileInfo.Exists)
                {
                    toolStripProgressBar.Visible = false;

                    TabsUpdate(pagesTabControl, savingAll, UpdatePhase.End);   //Useful to save all execution
                    WindowManager.ShowInfoBox(form, LanguageUtil.GetCurrentLanguageString("SavingReadonly", className));
                    TabsUpdate(pagesTabControl, savingAll, UpdatePhase.Begin); //Useful to save all execution

                    return(SaveFile(form, true));
                }

                bool backupConfigActive = ConfigUtil.GetBoolParameter("BackupEnabled");
                if ((!String.IsNullOrEmpty(ProgramUtil.GetFilenameTabPage(pagesTabControl.SelectedTabPage)) && !forceSaveAs) && (forceBackup || backupConfigActive))
                {
                    TabsUpdate(pagesTabControl, savingAll, UpdatePhase.End);   //Useful to save all execution
                    bool saved = BackupFileOnSaving(form, fileName);
                    TabsUpdate(pagesTabControl, savingAll, UpdatePhase.Begin); //Useful to save all execution

                    if (saved == false)
                    {
                        toolStripProgressBar.Visible = false;
                        return(false);
                    }
                }

                toolStripProgressBar.PerformStep();
                if (SaveFileCoreWithEncoding(form, fileName, savingAll) == false)
                {
                    toolStripProgressBar.Visible = false;
                    return(false);
                }

                if (!favouriteFile && saveNewRecentFile)
                {
                    FileListManager.SetNewRecentFile(form, fileName);
                }

                if (CustomFilesManager.IsHostsSectionPanelOpen(form))
                {
                    CustomFilesManager.GetSections(form, false);
                }
                toolStripProgressBar.PerformStep();

                CustomRichTextBox pageTextBox = ProgramUtil.GetPageTextBox(pagesTabControl.SelectedTabPage);

                ProgramUtil.SetFilenameTabPage(pagesTabControl.SelectedTabPage, fileName);
                pagesTabControl.SelectedTabPage.ImageIndex = 0;
                pagesTabControl.SelectedTabPage.Text       = Path.GetFileName(fileName);
                pageTextBox.CustomModified = false;
                pageTextBox.CustomOriginal = ProgramUtil.GetPageTextBox(pagesTabControl.SelectedTabPage).Text.GetHashCode().ToString();
                form.Text = String.Format("DtPad - {0}", Path.GetFileName(fileName));
                toolStripStatusLabel.Text = String.Format("{0} \"{1}\" {2}", LanguageUtil.GetCurrentLanguageString("File", className), Path.GetFileName(fileName), LanguageUtil.GetCurrentLanguageString("Saved", className));
                TabManager.ToggleTabFileTools(form, true);

                toolStripProgressBar.PerformStep();
                toolStripProgressBar.Visible = false;
            }
            catch (Exception exception)
            {
                TabManager.ToggleTabFileTools(form, false);
                toolStripProgressBar.Visible = false;

                TabsUpdate(pagesTabControl, savingAll, UpdatePhase.End);   //Useful to save all execution
                WindowManager.ShowErrorBox(form, exception.Message, exception);
                TabsUpdate(pagesTabControl, savingAll, UpdatePhase.Begin); //Useful to save all execution

                return(false);
            }

            return(true);
        }
Ejemplo n.º 16
0
        internal static void OpenSession(Form1 form, String fileName = null)
        {
            CustomXtraTabControl pagesTabControl              = form.pagesTabControl;
            ToolStrip            sessionToolStrip             = form.sessionToolStrip;
            ToolStripButton      sessionToolStripButton       = form.sessionToolStripButton;
            ToolStripMenuItem    closeToolStripMenuItem3      = form.closeToolStripMenuItem3;
            ToolStripMenuItem    saveToolStripMenuItem2       = form.saveToolStripMenuItem2;
            ToolStripMenuItem    exportAsZipToolStripMenuItem = form.exportAsZipToolStripMenuItem;
            ToolStripStatusLabel toolStripStatusLabel         = form.toolStripStatusLabel;
            OpenFileDialog       openFileDialog       = form.openFileDialog;
            ToolStripProgressBar toolStripProgressBar = form.toolStripProgressBar;
            //SplitContainer verticalSplitContainer = form.verticalSplitContainer;
            ToolStripMenuItem renameSessionToolStripMenuItem     = form.renameSessionToolStripMenuItem;
            ToolStripMenuItem favouriteSessionToolStripMenuItem  = form.favouriteSessionToolStripMenuItem;
            ToolStripMenuItem listFilesToolStripMenuItem         = form.listFilesToolStripMenuItem;
            ToolStripMenuItem aspectToolStripMenuItem            = form.aspectToolStripMenuItem;
            ToolStripMenuItem useDefaultToolStripMenuItem        = form.useDefaultToolStripMenuItem;
            ToolStripMenuItem closeButtonToolStripMenuItem       = form.closeButtonToolStripMenuItem;
            ToolStripMenuItem tabPositionToolStripMenuItem       = form.tabPositionToolStripMenuItem;
            ToolStripMenuItem tabOrientationToolStripMenuItem    = form.tabOrientationToolStripMenuItem;
            ToolStripMenuItem sessionPropertiesToolStripMenuItem = form.sessionPropertiesToolStripMenuItem;

            try
            {
                bool isASessionOpened = IsASessionOpened(form);
                if (isASessionOpened && WindowManager.ShowQuestionBox(form, LanguageUtil.GetCurrentLanguageString("AlreadyOpen", className)) != DialogResult.Yes)
                {
                    return;
                }
                if (isASessionOpened)
                {
                    CloseSession(form);
                }

                if (String.IsNullOrEmpty(fileName))
                {
                    openFileDialog.InitialDirectory = FileUtil.GetInitialFolder(form);
                    openFileDialog.Multiselect      = false;
                    openFileDialog.Filter           = LanguageUtil.GetCurrentLanguageString("FileDialog", className);
                    openFileDialog.FilterIndex      = 0;
                    openFileDialog.FileName         = "*.dps";

                    if (openFileDialog.ShowDialog() != DialogResult.OK)
                    {
                        return;
                    }

                    fileName = openFileDialog.FileName;
                }

                if (!File.Exists(fileName))
                {
                    WindowManager.ShowAlertBox(form, String.Format(LanguageUtil.GetCurrentLanguageString("FileNotExisting", className), fileName));
                    return;
                }
                if (FileUtil.IsFileInUse(fileName))
                {
                    WindowManager.ShowAlertBox(form, String.Format(LanguageUtil.GetCurrentLanguageString("FileInUse", className), fileName));
                    return;
                }
                if (pagesTabControl.TabPages.Count > 1 && TabManager.AreAllTabsEmpty(form))
                {
                    if (!TabManager.CloseAllPages(form))
                    {
                        return;
                    }
                }

                bool   loadTotallyFailed;
                String sessionName = ReadSessionXML(form, fileName, out loadTotallyFailed);
                toolStripProgressBar.Visible = false;

                if (loadTotallyFailed)
                {
                    return;
                }

                sessionToolStrip.Visible                   = true;
                sessionToolStripButton.Text                = sessionName;
                closeToolStripMenuItem3.Enabled            = true;
                saveToolStripMenuItem2.Enabled             = true;
                exportAsZipToolStripMenuItem.Enabled       = true;
                renameSessionToolStripMenuItem.Enabled     = true;
                favouriteSessionToolStripMenuItem.Enabled  = true;
                listFilesToolStripMenuItem.Enabled         = true;
                aspectToolStripMenuItem.Enabled            = true;
                useDefaultToolStripMenuItem.Enabled        = true;
                sessionPropertiesToolStripMenuItem.Enabled = true;

                if (!useDefaultToolStripMenuItem.Checked)
                {
                    closeButtonToolStripMenuItem.Enabled    = true;
                    tabPositionToolStripMenuItem.Enabled    = true;
                    tabOrientationToolStripMenuItem.Enabled = true;

                    OptionManager.CheckTabCloseButton(form, GetDropDownIndexChecked(closeButtonToolStripMenuItem));
                    OptionManager.CheckTabPosition(form, GetDropDownIndexChecked(tabPositionToolStripMenuItem));
                    OptionManager.CheckTabOrientation(form, GetDropDownIndexChecked(tabOrientationToolStripMenuItem));
                }
                else
                {
                    closeButtonToolStripMenuItem.Enabled    = false;
                    tabPositionToolStripMenuItem.Enabled    = false;
                    tabOrientationToolStripMenuItem.Enabled = false;
                }

                ConfigUtil.UpdateParameter("LastUserFolder", Path.GetDirectoryName(fileName));
                FileListManager.SetNewRecentSession(form, fileName);

                //verticalSplitContainer.Panel1.Padding = new Padding(0);
                toolStripStatusLabel.Text = String.Format(LanguageUtil.GetCurrentLanguageString("Opened", className), sessionToolStripButton.Text);
            }
            catch (Exception exception)
            {
                OptionManager.CheckTabCloseButton(form, ConfigUtil.GetIntParameter("TabCloseButtonMode"));
                OptionManager.CheckTabPosition(form, ConfigUtil.GetIntParameter("TabPosition"));
                OptionManager.CheckTabOrientation(form, ConfigUtil.GetIntParameter("TabOrientation"));

                WindowManager.ShowErrorBox(form, exception.Message, exception);
            }
        }
Ejemplo n.º 17
0
        private static String WriteSessionXML(Form1 form, String fileName)
        {
            XtraTabControl          pagesTabControl                 = form.pagesTabControl;
            ToolStripDropDownButton sessionImageToolStripButton     = form.sessionImageToolStripButton;
            ToolStripMenuItem       useDefaultToolStripMenuItem     = form.useDefaultToolStripMenuItem;
            ToolStripMenuItem       closeButtonToolStripMenuItem    = form.closeButtonToolStripMenuItem;
            ToolStripMenuItem       tabPositionToolStripMenuItem    = form.tabPositionToolStripMenuItem;
            ToolStripMenuItem       tabOrientationToolStripMenuItem = form.tabOrientationToolStripMenuItem;

            sessionImageToolStripButton.DropDownItems.Clear();
            String newSessionName = Path.GetFileNameWithoutExtension(fileName);

            FileListManager.SaveFileList(fileName, ConstantUtil.defaultSessionFileContent);
            XmlDocument xmldoc = new XmlDocument();

            xmldoc.Load(fileName);

            if (xmldoc.DocumentElement == null)
            {
                throw new XmlException(String.Format(LanguageUtil.GetCurrentLanguageString("XmlDocError", className), Path.GetFileName(fileName)));
            }

            xmldoc.DocumentElement.SetAttribute("name", newSessionName);
            xmldoc.DocumentElement.SetAttribute("aspect", useDefaultToolStripMenuItem.Checked ? "default" : "custom");
            xmldoc.DocumentElement.SetAttribute("button", GetDropDownIndexChecked(closeButtonToolStripMenuItem).ToString());
            xmldoc.DocumentElement.SetAttribute("position", GetDropDownIndexChecked(tabPositionToolStripMenuItem).ToString());
            xmldoc.DocumentElement.SetAttribute("orientation", GetDropDownIndexChecked(tabOrientationToolStripMenuItem).ToString());

            sessionImageToolStripButton.DropDownItems.Add(fileName);
            sessionImageToolStripButton.DropDownItems[0].Image  = ToolbarResource.diagram;
            sessionImageToolStripButton.DropDownItems[0].Click += form.sessionPropertiesToolStripMenuItem_Click;
            sessionImageToolStripButton.DropDownItems.Add(new ToolStripSeparator());

            foreach (XtraTabPage tabControl in pagesTabControl.TabPages)
            {
                String fileNameTab = ProgramUtil.GetFilenameTabPage(tabControl);

                if (String.IsNullOrEmpty(ProgramUtil.GetPageTextBox(tabControl).Text) && String.IsNullOrEmpty(fileNameTab))
                {
                    continue;
                }

                XmlElement newFile = xmldoc.CreateElement("file");

                String relativePath = FileUtil.EvaluateRelativePath(Path.GetDirectoryName(fileName), Path.GetDirectoryName(fileNameTab));
                newFile.SetAttribute("path", relativePath);
                newFile.SetAttribute("name", Path.GetFileName(fileNameTab));
                newFile.SetAttribute("tabcolor", TabManager.GetTabColor(tabControl).ToKnownColor().ToString()); //newFile.SetAttribute("tabcolor", tabControl.Appearance.Header.ForeColor.ToKnownColor().ToString());
                if (pagesTabControl.SelectedTabPage == tabControl)
                {
                    newFile.SetAttribute("open", true.ToString());
                }

                if (xmldoc.DocumentElement == null)
                {
                    throw new XmlException(String.Format(LanguageUtil.GetCurrentLanguageString("XmlDocError", className), Path.GetFileName(fileName)));
                }

                xmldoc.DocumentElement.AppendChild(newFile);
                sessionImageToolStripButton.DropDownItems.Add(fileNameTab);
                sessionImageToolStripButton.DropDownItems[sessionImageToolStripButton.DropDownItems.Count - 1].Click += form.sessionImageToolStripButton_Click;
            }

            xmldoc.Save(fileName);
            //WindowManager.ShowInfoBox(form, String.Format(LanguageUtil.GetCurrentLanguageString("SaveSuccesfull", className), newSessionName));

            return(newSessionName);
        }
Ejemplo n.º 18
0
        internal static bool SaveAllFilesAsZip(Form1 form)
        {
            SaveFileDialog       saveFileDialog       = form.saveFileDialog;
            CustomXtraTabControl pagesTabControl      = form.pagesTabControl;
            ToolStripStatusLabel toolStripStatusLabel = form.toolStripStatusLabel;
            ToolStripProgressBar toolStripProgressBar = form.toolStripProgressBar;

            if (TabManager.AreAllTabsEmptyAndWithoutFiles(form))
            {
                WindowManager.ShowInfoBox(form, LanguageUtil.GetCurrentLanguageString("NoContent", className));
                return(false);
            }

            //Save all files before to proceed
            foreach (XtraTabPage tabPage in pagesTabControl.TabPages)
            {
                if (!String.IsNullOrEmpty(ProgramUtil.GetFilenameTabPage(tabPage)) && !tabPage.Text.StartsWith("*"))
                {
                    continue;
                }

                if (WindowManager.ShowQuestionBox(form, LanguageUtil.GetCurrentLanguageString("SaveAllFiles", className)) != DialogResult.Yes)
                {
                    return(false);
                }

                if (!FileManager.SaveAllFiles(form))
                {
                    WindowManager.ShowInfoBox(form, LanguageUtil.GetCurrentLanguageString("FilesNotSaved", className));
                    return(false);
                }

                break;
            }

            toolStripProgressBar.Value   = 0;
            toolStripProgressBar.Visible = true;
            toolStripProgressBar.PerformStep();

            //Save file dialog
            saveFileDialog.InitialDirectory = FileUtil.GetInitialFolder(form);
            saveFileDialog.Filter           = LanguageUtil.GetCurrentLanguageString("FileDialog", className);
            saveFileDialog.FilterIndex      = 0;
            saveFileDialog.FileName         = "*.zip";

            try
            {
                if (saveFileDialog.ShowDialog() != DialogResult.OK)
                {
                    toolStripProgressBar.Visible = false;
                    return(false);
                }

                toolStripProgressBar.PerformStep();
                String fileName = saveFileDialog.FileName;
                if (!fileName.EndsWith(".zip"))
                {
                    fileName += ".zip";
                }

                toolStripProgressBar.PerformStep();
                WriteZipFile(fileName, pagesTabControl.TabPages);

                toolStripProgressBar.PerformStep();
                toolStripStatusLabel.Text = String.Format(LanguageUtil.GetCurrentLanguageString("Saved", className), fileName);
            }
            catch (Exception exception)
            {
                WindowManager.ShowErrorBox(form, exception.Message, exception);
                return(false);
            }
            finally
            {
                toolStripProgressBar.Visible = false;
            }

            return(true);
        }