//======================================================================== public frmReport(string sym, string source, List <SymFile> files, List <string> contents, SymServer server, SymInst inst, bool isFM) { InitializeComponent(); this.server = server; this.inst = inst; this.isFM = isFM; Text = '[' + sym + "] Output of " + source; this.reports = contents; lstFiles.Items.Clear(); for (int i = 0; i < files.Count; i++) { string doFM = (isFM || (i == 0)) ? "" : "Run FM"; lstFiles.Items.Add(new ListViewItem(new string[] { files[i].sequence.ToString(), files[i].title, files[i].pages.ToString(), doFM })); if ((i != 0) && (isFM == false)) { lstFiles.Items[i].UseItemStyleForSubItems = false; lstFiles.Items[i].SubItems[3].Font = new System.Drawing.Font(lstFiles.Items[i].SubItems[3].Font, System.Drawing.FontStyle.Underline); lstFiles.Items[i].SubItems[3].ForeColor = System.Drawing.Color.Blue; } } if (lstFiles.Items.Count > 0) { lstFiles.Items[0].Selected = true; } }
//======================================================================== // file i/o - Sym //======================================================================== public static bool FileExistsSym(SymInst inst, string name, SymFile.Type type) { if (!TrySymConnect(inst)) { return(false); } return(inst.Connection.FileExists(name, type)); }
//------------------------------------------------------------------------ public static string FileReadSym(SymInst inst, string name, SymFile.Type type) { if (!TrySymConnect(inst)) { throw new Exception("Not Connected to Sym"); } return(inst.Connection.FileRead(name, type)); }
//------------------------------------------------------------------------ public static void FileRenameSym(SymInst inst, string namePrev, SymFile.Type type, string nameNew) { if (!TrySymConnect(inst)) { throw new Exception("Not Connected to Sym"); } inst.Connection.FileRename(namePrev, type, nameNew); }
//------------------------------------------------------------------------ public static void FileDeleteSym(SymInst inst, string name, SymFile.Type type) { if (!TrySymConnect(inst)) { throw new Exception("Not Connected to Sym"); } inst.Connection.FileDelete(name, type); }
//------------------------------------------------------------------------ public static List <SymFile> FileListSym(SymInst inst, string pattern, SymFile.Type type) { if (!TrySymConnect(inst)) { throw new Exception("Not Connected to Sym"); } return(inst.Connection.FileList(pattern, type)); }
public void DelSym(string dir) { SymInst curr = GetSym(dir); if (curr != null) { Syms.Remove(curr); } }
//------------------------------------------------------------------------ public frmAddSym(SymInst Sym) { InitializeComponent(); this.Server = Sym.Parent; this.SymInst = Sym; txtSym.Text = SymInst.SymDir; txtID.Text = SymInst.SymId; chkRemember.Checked = SymInst.Remember; }
//------------------------------------------------------------------------ public static Project CreateProject(string name, SymInst parent) { Project prj = new Project(); prj.Name = name; prj.Local = false; prj.ParentSym = parent; parent.ProjectAdd(prj); return(prj); }
//======================================================================== public Importer(Project owner) { impPrj = owner; if (impPrj.Local) { impLoc = impPrj.ParentLocal; } else { impSym = impPrj.ParentSym; } }
//------------------------------------------------------------------------ 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); } } }
//------------------------------------------------------------------------ //Open from Specified Sym Constructor public frmFileOpen(SymInst sym) { InitializeComponent(); comboType.SelectedItem = comboType.Items[0]; txtFilename.Enabled = true; int newLeft = treeSym.Left; int difLeft = txtFilename.Left - newLeft; treeSym.Visible = false; btnLocal.Visible = false; txtFilename.Left = newLeft; lstResults.Left = newLeft; comboType.Left -= difLeft; btnOpen.Left -= difLeft; Width -= difLeft; currInst = sym; }
//------------------------------------------------------------------------ public bool CopyTo(SymInst sym) { if (!Local) { if (ParentSym == sym) { return(false); } } string upperName = this.Name.ToUpper(); for (int i = 0; i < sym.Projects.Count; i++) { if (sym.Projects[i].Name.ToUpper() == upperName) { MessageBox.Show("A Project Named '" + this.Name + "' Already Exists Here", "PwrIDE - Copy Project", MessageBoxButtons.OK, MessageBoxIcon.Error); return(false); } } Project copyOf = CreateProject(this.Name, sym); for (int i = 0; i < this.Files.Count; i++) { try { ProjectFile curr = copyOf.FileCreate(this.Files[i].Name, this.Files[i].Type, this.Files[i].TypeConvert()); curr.Write(this.Files[i].Read()); } catch (Exception ex) { MessageBox.Show("Error Copying File '" + this.Files[i].Name + "' from Project '" + this.Name + "'\nError: " + ex.Message, "PwrIDE - Copy Project", MessageBoxButtons.OK, MessageBoxIcon.Error); } } try { sym.ProjectsSave(); } catch (Exception ex) { MessageBox.Show("Error Saving Projects Listing for Sym '" + sym.SymDir + "'\nError: " + ex.Message, "PwrIDE - Copy Project", MessageBoxButtons.OK, MessageBoxIcon.Error); return(false); } return(true); }
//======================================================================== public frmRunFM(string repTitle, SymServer server, SymInst inst) { InitializeComponent(); cmbFmFile.SelectedIndex = 0; int defQueue = Config.GetInt("Default_Queue"); if (defQueue > -1) { optFirstEmpty.Checked = false; optUserSelect.Checked = true; chkQueueAlways.Checked = true; txtQueue.Text = defQueue.ToString(); } else { optFirstEmpty.Checked = true; optUserSelect.Checked = false; chkQueueAlways.Checked = false; txtQueue.Text = ""; } this.repTitle = repTitle; this.server = server; this.inst = inst; session = Util.TrySymNewConnect(inst); if (session == null) { Close(); //user gets Retry prompt if this fails } running = false; txtFile.Text = repTitle; txtServer.Text = server.Alias; txtSym.Text = inst.SymDir; checker = new BackgroundWorker(); checker.DoWork += new DoWorkEventHandler(CheckerWork); checker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(CheckerDone); checker.ProgressChanged += new ProgressChangedEventHandler(CheckerProgress); checker.WorkerReportsProgress = true; checker.WorkerSupportsCancellation = true; }
//======================================================================== private void treeSym_AfterSelect(object sender, TreeViewEventArgs e) { if (e.Node.ImageIndex == 1) { string serverName = e.Node.Parent.Text; string symDir = e.Node.Text.Replace("Sym ", ""); currInst = Config.GetSym(serverName, symDir); isLocal = false; } else if (e.Node.ImageIndex == 5) { currLocal = Config.GetLocal(e.Node.Text); isLocal = true; } else { currInst = null; currLocal = null; } if (currInst != null) { txtFilename.Enabled = true; if ((txtFilename.Text != "") && (isSaveType)) { btnOpen.Enabled = true; } } else if (currLocal != null) { txtFilename.Enabled = true; if ((txtFilename.Text != "") && (isSaveType)) { btnOpen.Enabled = true; } } else { txtFilename.Enabled = false; btnOpen.Enabled = false; lstResults.Items.Clear(); } }
//======================================================================== public frmRunRep(SymFile specfile, SymServer server, SymInst clone) { InitializeComponent(); this.server = server; this.specfile = specfile; originalInst = clone; txtFile.Text = specfile.name; txtServer.Text = server.Alias; txtSym.Text = specfile.sym; session = Util.TrySymNewConnect(clone); if (session == null) { Close(); //user gets Retry prompt if this fails } running = false; checker = new BackgroundWorker(); checker.DoWork += new DoWorkEventHandler(CheckerWork); checker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(CheckerDone); checker.ProgressChanged += new ProgressChangedEventHandler(CheckerProgress); checker.WorkerReportsProgress = true; checker.WorkerSupportsCancellation = true; int defQueue = Config.GetInt("Default_Queue"); if (defQueue > -1) { optFirstEmpty.Checked = false; optUserSelect.Checked = true; chkQueueAlways.Checked = true; txtQueue.Text = defQueue.ToString(); } else { optFirstEmpty.Checked = true; optUserSelect.Checked = false; chkQueueAlways.Checked = false; txtQueue.Text = ""; } btnRun.Focus(); }
//------------------------------------------------------------------------ //Existing Symitar Document public frmSource(SymInst inst, SymFile file) { instSym = inst; fileSym = file; _initPre(file.name, FileTypeFromSymFile(file)); string content; try { content = Util.FileReadSym(inst, file); } catch (Exception ex) { MessageBox.Show("Error Opening File \"" + file.name + "\"\n" + ex.Message, "PwrIDE", MessageBoxButtons.OK, MessageBoxIcon.Error); _skipSavePrompt = true; Close(); return; } fileOrigin = Origin.SYM; _initPost(content); Text = '[' + inst.SymDir + "] " + file.name; //override this setting from _initPre to include Sym Number }
//------------------------------------------------------------------------ public void RunRep() { if (fileOrigin == Origin.NEW) { return; } if (fileOrigin == Origin.LOCAL) { return; } if (fileType != ProjectFile.FileType.REPGEN) { return; } if (fileOrigin == Origin.PROJECT) { if (fileProject.Parent.Local) { return; } } SymInst inst = (fileOrigin == Origin.PROJECT) ? fileProject.Parent.ParentSym : Config.GetSymIP(fileSym.server, fileSym.sym); SymFile file = (fileOrigin == Origin.PROJECT) ? fileProject.ToSymFile(inst) : fileSym; if (inst == null) { throw new Exception("Error Running File\nSymFile's Instance Not Found in Config\n(this shouldn't happen)"); } if (modified) { FileSave(); } frmRunRep runner = new frmRunRep(file, inst.Parent, inst); runner.Show(); }
//------------------------------------------------------------------------ private bool SaveSymitar() { SymInst inst = Config.GetSymIP(fileSym.server, fileSym.sym); if (inst == null) { throw new Exception("Error Saving File\nSymFile's Instance Not Found in Config\n(this shouldn't happen)"); } bool saved = false, tryAgain = true; while (tryAgain) { tryAgain = false; if (Util.TrySymConnect(inst)) { try { inst.Connection.FileWrite(fileSym, icsEditor.Text); saved = true; } catch (Exception ex) { if (MessageBox.Show("Error Saving File \"" + fileSym.name + "\"\n" + ex.Message + "\n\nRetry?", "PwrIDE", MessageBoxButtons.YesNo, MessageBoxIcon.Error) == DialogResult.Yes) { tryAgain = true; } inst.Disconnect(); } } } if (saved) { SetModified(false, true); return(true); } return(false); }
//======================================================================== private void btnlList_Click(object sender, EventArgs e) { if (treeSyms.SelectedNode.SelectedImageIndex != 1) //!Sym { MessageBox.Show("Please Select a Sym to List Projects"); return; } inst = SymFromNode(treeSyms.SelectedNode); if (Util.TrySymConnect(inst)) { try { prjs = inst.ProjectsImport(); if (prjs == null) { MessageBox.Show("No Projects or Unable to Open Projects File", "PwrIDE", MessageBoxButtons.OK, MessageBoxIcon.None); return; } if (prjs.Count == 0) { MessageBox.Show("No Projects Found on Sym", "PwrIDE", MessageBoxButtons.OK, MessageBoxIcon.None); return; } for (int i = 0; i < prjs.Count; i++) { lstProjects.Items.Add(new ListViewItem(new string[] { prjs[i].Name, prjs[i].Files.Count.ToString() }, 2)); } } catch (Exception ex) { MessageBox.Show("Error Loading Projects File\nError: " + ex.Message, "PwrIDE", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } }
public static bool FileExistsSym(SymInst inst, SymFile file) { return(FileExistsSym(inst, file.name, file.type)); }
//------------------------------------------------------------------------ public void InstallRep() { if (fileOrigin == Origin.NEW) { return; } if (fileOrigin == Origin.LOCAL) { return; } if (fileType != ProjectFile.FileType.REPGEN) { return; } if (fileOrigin == Origin.PROJECT) { if (fileProject.Parent.Local) { return; } } SymInst inst = (fileOrigin == Origin.PROJECT) ? fileProject.Parent.ParentSym : Config.GetSymIP(fileSym.server, fileSym.sym); string name = (fileOrigin == Origin.PROJECT) ? fileProject.Name : fileSym.name; SymFile file = (fileOrigin == Origin.PROJECT) ? fileProject.ToSymFile(inst) : fileSym; if (inst == null) { throw new Exception("Error Installing File\nSymFile's Instance Not Found in Config\n(this shouldn't happen)"); } if (modified) { FileSave(); } RepErr err = RepErr.None(); bool completed = false, tryAgain = true; while (tryAgain) { tryAgain = false; if (Util.TrySymConnect(inst)) { try { err = inst.Connection.FileInstall(file); completed = true; } catch (Exception ex) { if (MessageBox.Show("Error Installing File \"" + name + "\"\n" + ex.Message + "\n\nRetry?", "PwrIDE", MessageBoxButtons.YesNo, MessageBoxIcon.Error) == DialogResult.Yes) { tryAgain = true; } inst.Disconnect(); } } } if (completed) { SetRepError(err); if (err.any == false) { MessageBox.Show("Installed \"" + name + "\"\nSize: " + Util.FormatBytes(err.installedSize)); } } }
//------------------------------------------------------------------------ public Project(string inp, SymInst parent) { Local = false; ParentSym = parent; Read(inp); }
//======================================================================== public SymFile ToSymFile(SymInst inst) { return(new SymFile(inst.Parent.IP, inst.SymDir, Name, DateTime.Now, 0, TypeConvert())); }
public static void FileDeleteSym(SymInst inst, SymFile file) { FileDeleteSym(inst, file.name, file.type); }
public static void FileRenameSym(SymInst inst, SymFile file, string nameNew) { FileRenameSym(inst, file.name, file.type, nameNew); }
//------------------------------------------------------------------------ public void OpenSymitarFile(SymInst inst, SymFile file) { new frmSource(inst, file).Show(dockPanel); }
public static void FileWriteSym(SymInst inst, SymFile file, string content) { FileWriteSym(inst, file.name, file.type, content); }
public static string FileReadSym(SymInst inst, SymFile file) { return(FileReadSym(inst, file.name, file.type)); }
//======================================================================== // sym Connections //======================================================================== public static SymSession TrySymNewConnect(SymInst inst) { SymSession session = new SymSession(); bool prompt = false; string user = inst.Parent.AixUsr; string pass = inst.Parent.AixPwd; string id = inst.SymId; if (user == "") { prompt = true; } if (pass == "") { prompt = true; } if (id == "") { prompt = true; } bool success = false; if (!prompt) { success = session.Connect(inst.Parent.IP, inst.Parent.Port); if (success) { success = session.Login(user, pass, inst.SymDir, id); } while (!success) { if (MessageBox.Show("Error Connecting to Sym\nRetry?", "PwrIDE", MessageBoxButtons.YesNo, MessageBoxIcon.Error) == DialogResult.No) { break; } success = session.Connect(inst.Parent.IP, inst.Parent.Port); if (success) { success = session.Login(user, pass, inst.SymDir, id); } } if (!success) { return(null); } return(session); } while (!success) { frmLogin login = new frmLogin(inst.Parent.IP, inst.SymDir, user, pass, id); if (login.ShowDialog(MainForm) == DialogResult.Cancel) { break; } inst.Parent.AixUsr = user = login.User; inst.Parent.AixPwd = pass = login.Pass; inst.SymId = id = login.ID; login.Dispose(); success = inst.Connect(); if (success) { success = session.Login(user, pass, inst.SymDir, id); } if (!success) { if (MessageBox.Show("Error Connecting to Sym\nRetry?", "PwrIDE", MessageBoxButtons.YesNo, MessageBoxIcon.Error) == DialogResult.No) { break; } } } if (!success) { return(null); } return(session); }