//======================================================================== // Constructors //======================================================================== //Common Constructor Helper private void _initPre(string name, ProjectFile.FileType type) { InitializeComponent(); icsEditor = new TextEditorControl(); icsEditor.Dock = DockStyle.Fill; icsEditor.Document.DocumentChanged += icsEditor_DocumentChanged; icsEditor.ActiveTextAreaControl.TextArea.MouseDown += new MouseEventHandler(icsEditor_MouseDown); icsEditor.VRulerRow = 132; icsEditor.IndentStyle = IndentStyle.Smart; if (type == ProjectFile.FileType.REPGEN) { icsEditor.SetHighlighting("RepGen"); completer = new RepGenComplete(); folder = new RepGenFold(); icsEditor.Document.FoldingManager.FoldingStrategy = folder; } Controls.Add(icsEditor); DockAreas = DockAreas.Document; Text = fileName = name; Icon = IconFromType(type); fileType = type; }
//------------------------------------------------------------------------ public ProjectFile FileCreate(string name, ProjectFile.FileType fileType, Symitar.SymFile.Type symType) { if (Local) { Util.FileWriteLocal(ParentLocal.Path + '\\' + name, ""); ProjectFile file = new ProjectFile(this, name, fileType); string upperName = name.ToUpper(); for (int i = 0; i < Files.Count; i++) { if ((Files[i].Name.ToUpper() == upperName) && (Files[i].Type == fileType)) { return(file); } } Files.Add(file); return(file); } else { Util.FileWriteSym(ParentSym, name, symType, ""); ProjectFile file = new ProjectFile(this, name, fileType); string upperName = name.ToUpper(); for (int i = 0; i < Files.Count; i++) { if ((Files[i].Name.ToUpper() == upperName) && (Files[i].Type == fileType)) { return(file); } } Files.Add(file); return(file); } }
//------------------------------------------------------------------------ private System.Drawing.Icon IconFromType(ProjectFile.FileType type) { if (type == ProjectFile.FileType.REPGEN) { return(Icon.FromHandle(((Bitmap)icons.Images["REP"]).GetHicon())); } if (type == ProjectFile.FileType.LETTER) { return(Icon.FromHandle(((Bitmap)icons.Images["LTR"]).GetHicon())); } throw new Exception("IconFromType: Undefined ProjectFile.FileType Passed\nThis Shouldn't Happen"); }
//------------------------------------------------------------------------ private string ExtensionFromType(ProjectFile.FileType type) { if (type == ProjectFile.FileType.REPGEN) { return(".REP"); } if (type == ProjectFile.FileType.LETTER) { return(".LTR"); } return(""); }
//------------------------------------------------------------------------ private void SaveAsSymitar() { frmFileOpen saveAs = new frmFileOpen(fileName); DialogResult result = saveAs.ShowDialog(Util.MainForm); if (result == DialogResult.Cancel) { saveAs.Dispose(); return; } if (result == DialogResult.No) { saveAs.Dispose(); SaveAsLocal(); return; } if (saveAs.saveAsIsLocal) //not a Local Filesystem file, but a LOCAL mounted Filesystem file { fileLocal = saveAs.saveAsLocal.Path + '\\' + saveAs.saveAsName; if (SaveLocal()) { fileOrigin = Origin.LOCAL; fileType = FileTypeFromExtension(fileLocal); Icon = IconFromType(fileType); } } else { SymInst inst = saveAs.saveAsInst; fileSym = new SymFile(inst.Parent.IP, inst.SymDir, saveAs.saveAsName, DateTime.Now, icsEditor.Text.Length, saveAs.saveAsType); fileName = saveAs.saveAsName; if (SaveSymitar()) { fileOrigin = Origin.SYM; fileType = FileTypeFromSymFile(fileSym); Icon = IconFromType(fileType); if (fileType == ProjectFile.FileType.REPGEN) { icsEditor.SetHighlighting("RepGen"); completer = new RepGenComplete(); folder = new RepGenFold(); icsEditor.Document.FoldingManager.FoldingStrategy = folder; } else if (fileType == ProjectFile.FileType.LETTER) { icsEditor.SetHighlighting("Default"); icsEditor.Document.FoldingManager.FoldingStrategy = new ICSharpCode.TextEditor.Document.IndentFoldingStrategy(); } SetModified(false, true); } } }
//------------------------------------------------------------------------ public void FileAdd(string Name, ProjectFile.FileType Type) { string UpperName = Name.ToUpper(); for (int i = 0; i < Files.Count; i++) { if ((Files[i].Name.ToUpper() == UpperName) && (Files[i].Type == Type)) { MessageBox.Show("File '" + Name + "' Already Exists in Project '" + this.Name + "'", "PwrIDE", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } Files.Add(new ProjectFile(this, Name, Type)); }
//======================================================================== private void btnOkay_Click(object sender, EventArgs e) { FileName = txtFilename.Text; if ((string)comboType.SelectedItem == "RepGen") { FileType = ProjectFile.FileType.REPGEN; SymFileType = Symitar.SymFile.Type.REPGEN; } else if ((string)comboType.SelectedItem == "Letterfile") { FileType = ProjectFile.FileType.LETTER; SymFileType = Symitar.SymFile.Type.LETTER; } DialogResult = DialogResult.OK; }
//------------------------------------------------------------------------ private void SaveAsLocal() { SaveFileDialog sfd = new SaveFileDialog(); sfd.DefaultExt = ExtensionFromType(fileType); sfd.Filter = "All Files (*.*)|*.*"; sfd.FileName = fileName; sfd.Title = "Save As"; if (fileLocal != null) { sfd.InitialDirectory = Util.FileDirectoryPathLocal(fileLocal); } if (sfd.ShowDialog() == DialogResult.OK) { try { Util.FileWriteLocal(sfd.FileName, icsEditor.Text); fileLocal = sfd.FileName; fileName = Util.FileBaseNameLocal(fileLocal); fileOrigin = Origin.LOCAL; fileType = FileTypeFromExtension(fileLocal); Icon = IconFromType(fileType); if (fileType == ProjectFile.FileType.REPGEN) { icsEditor.SetHighlighting("RepGen"); completer = new RepGenComplete(); folder = new RepGenFold(); icsEditor.Document.FoldingManager.FoldingStrategy = folder; } else if (fileType == ProjectFile.FileType.LETTER) { icsEditor.SetHighlighting("Default"); icsEditor.Document.FoldingManager.FoldingStrategy = new ICSharpCode.TextEditor.Document.IndentFoldingStrategy(); } SetModified(false, true); } catch (Exception ex) { MessageBox.Show("Error Saving File\n" + ex.Message, "PwrIDE", MessageBoxButtons.OK, MessageBoxIcon.Error); } } sfd.Dispose(); }
//------------------------------------------------------------------------ //New Document public frmSource(ProjectFile.FileType type) { _initPre("New File", type); fileOrigin = Origin.NEW; _initPost(""); }