예제 #1
0
 //========================================================================
 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;
     }
 }
예제 #2
0
파일: Util.cs 프로젝트: schifflee/PwrIDE
 //========================================================================
 //  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));
 }
예제 #3
0
파일: Util.cs 프로젝트: schifflee/PwrIDE
 //------------------------------------------------------------------------
 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));
 }
예제 #4
0
파일: Util.cs 프로젝트: schifflee/PwrIDE
 //------------------------------------------------------------------------
 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);
 }
예제 #5
0
파일: Util.cs 프로젝트: schifflee/PwrIDE
 //------------------------------------------------------------------------
 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);
 }
예제 #6
0
파일: Util.cs 프로젝트: schifflee/PwrIDE
 //------------------------------------------------------------------------
 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));
 }
예제 #7
0
        public void DelSym(string dir)
        {
            SymInst curr = GetSym(dir);

            if (curr != null)
            {
                Syms.Remove(curr);
            }
        }
예제 #8
0
 //------------------------------------------------------------------------
 public frmAddSym(SymInst Sym)
 {
     InitializeComponent();
     this.Server         = Sym.Parent;
     this.SymInst        = Sym;
     txtSym.Text         = SymInst.SymDir;
     txtID.Text          = SymInst.SymId;
     chkRemember.Checked = SymInst.Remember;
 }
예제 #9
0
        //------------------------------------------------------------------------
        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);
        }
예제 #10
0
 //========================================================================
 public Importer(Project owner)
 {
     impPrj = owner;
     if (impPrj.Local)
     {
         impLoc = impPrj.ParentLocal;
     }
     else
     {
         impSym = impPrj.ParentSym;
     }
 }
예제 #11
0
        //------------------------------------------------------------------------
        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);
                }
            }
        }
예제 #12
0
        //------------------------------------------------------------------------
        //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;
        }
예제 #13
0
        //------------------------------------------------------------------------
        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);
        }
예제 #14
0
        //========================================================================
        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;
        }
예제 #15
0
        //========================================================================
        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();
            }
        }
예제 #16
0
        //========================================================================
        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();
        }
예제 #17
0
        //------------------------------------------------------------------------
        //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
        }
예제 #18
0
        //------------------------------------------------------------------------
        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();
        }
예제 #19
0
        //------------------------------------------------------------------------
        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);
        }
예제 #20
0
        //========================================================================
        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;
                }
            }
        }
예제 #21
0
파일: Util.cs 프로젝트: schifflee/PwrIDE
 public static bool FileExistsSym(SymInst inst, SymFile file)
 {
     return(FileExistsSym(inst, file.name, file.type));
 }
예제 #22
0
        //------------------------------------------------------------------------
        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));
                }
            }
        }
예제 #23
0
 //------------------------------------------------------------------------
 public Project(string inp, SymInst parent)
 {
     Local     = false;
     ParentSym = parent;
     Read(inp);
 }
예제 #24
0
 //========================================================================
 public SymFile ToSymFile(SymInst inst)
 {
     return(new SymFile(inst.Parent.IP, inst.SymDir, Name, DateTime.Now, 0, TypeConvert()));
 }
예제 #25
0
파일: Util.cs 프로젝트: schifflee/PwrIDE
 public static void FileDeleteSym(SymInst inst, SymFile file)
 {
     FileDeleteSym(inst, file.name, file.type);
 }
예제 #26
0
파일: Util.cs 프로젝트: schifflee/PwrIDE
 public static void FileRenameSym(SymInst inst, SymFile file, string nameNew)
 {
     FileRenameSym(inst, file.name, file.type, nameNew);
 }
예제 #27
0
파일: frmMain.cs 프로젝트: schifflee/PwrIDE
 //------------------------------------------------------------------------
 public void OpenSymitarFile(SymInst inst, SymFile file)
 {
     new frmSource(inst, file).Show(dockPanel);
 }
예제 #28
0
파일: Util.cs 프로젝트: schifflee/PwrIDE
 public static void FileWriteSym(SymInst inst, SymFile file, string content)
 {
     FileWriteSym(inst, file.name, file.type, content);
 }
예제 #29
0
파일: Util.cs 프로젝트: schifflee/PwrIDE
 public static string FileReadSym(SymInst inst, SymFile file)
 {
     return(FileReadSym(inst, file.name, file.type));
 }
예제 #30
0
파일: Util.cs 프로젝트: schifflee/PwrIDE
        //========================================================================
        //  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);
        }