public static void OpenSource(RemoteSource Source) { SourceEditor sourcePanel; string resultFile = ""; string text = Source.GetName() + (Source.GetExtension() != "" ? '.' + Source.GetExtension().ToLower() : ""); Editor.TheEditor.SetStatus("Fetching file " + text + "..."); new Thread((ThreadStart) delegate { switch (Source.GetFS()) { case FileSystem.QSYS: resultFile = IBMiUtils.DownloadSourceMember(Source.GetLibrary(), Source.GetObject(), Source.GetName(), Source.GetExtension()); break; case FileSystem.IFS: resultFile = IBMiUtils.DownloadFile(Source.GetRemoteFile()); break; } if (resultFile != "") { TheEditor.SetStatus("Opening file " + text + "..."); Source._Local = resultFile; Source.Lock(); sourcePanel = new SourceEditor(Source.GetLocalFile(), GetBoundLangType(Source.GetExtension()), Source.GetRecordLength(), !Source.IsEditable()); sourcePanel.Tag = Source; sourcePanel.Text = text; switch (Source.GetFS()) { case FileSystem.QSYS: sourcePanel.ToolTipText = Source.GetLibrary() + "/" + Source.GetObject() + ":" + Source.GetName() + "." + Source.GetExtension().ToLower(); break; case FileSystem.IFS: sourcePanel.ToolTipText = Source.GetRemoteFile(); break; } TheEditor.Invoke((MethodInvoker) delegate { TheEditor.AddTool(sourcePanel, DockState.Document, false); }); } else { switch (Source.GetFS()) { case FileSystem.QSYS: MessageBox.Show("Unable to download member " + Source.GetLibrary() + "/" + Source.GetObject() + "." + Source.GetName() + ". Please check it exists and that you have access to the remote system."); break; } } }).Start(); }
public SourceCompareSelect() { InitializeComponent(); if (Editor.LastEditing != null) { RemoteSource src = Editor.LastEditing.Tag as RemoteSource; if (src != null) { switch (src.GetFS()) { case FileSystem.QSYS: newSourceBox.SetSource(src.GetLibrary(), src.GetObject(), src.GetName()); oldSourceBox.SetSource("", src.GetObject(), src.GetName()); break; case FileSystem.IFS: newSourceBox.SetSource(src.GetRemoteFile()); newSourceBox.SetTab(src.GetFS()); break; } } } }
public SaveAs(RemoteSource MemberInfo = null) { InitializeComponent(); if (MemberInfo != null) { switch (MemberInfo.GetFS()) { case FileSystem.IFS: sourceSelectBox.SetSource(MemberInfo.GetRemoteFile()); sourceSelectBox.SetSource("", "", MemberInfo.GetName()); break; case FileSystem.QSYS: sourceSelectBox.SetSource("", MemberInfo.GetObject(), MemberInfo.GetName()); break; } } }
public static void OpenSource(RemoteSource source) { string resultFile = ""; Thread gothread = new Thread((ThreadStart) delegate { switch (source.GetFS()) { case FileSystem.QSYS: resultFile = IBMiUtils.DownloadMember(source.GetLibrary(), source.GetObject(), source.GetName(), source.GetExtension()); break; case FileSystem.IFS: resultFile = IBMiUtils.DownloadFile(source.GetRemoteFile()); break; } if (resultFile != "") { source._Local = resultFile; //LOCK HERE source.Lock(); TheEditor.Invoke((MethodInvoker) delegate { TheEditor.AddSourceEditor(source, GetBoundLangType(source.GetExtension())); }); } else { switch (source.GetFS()) { case FileSystem.QSYS: MessageBox.Show("Unable to download member " + source.GetLibrary() + "/" + source.GetObject() + "." + source.GetName() + ". Please check it exists and that you have access to the remote system."); break; } } }); gothread.Start(); }
public void Save() { RemoteSource SourceInfo = (RemoteSource)this.Tag; bool UploadResult = true; if (SourceInfo != null) { if (SourceInfo.IsEditable()) { if (!SourceInfo._IsBeingSaved) { SourceInfo._IsBeingSaved = true; Editor.TheEditor.SetStatus("Saving " + SourceInfo.GetName() + ".."); Thread gothread = new Thread((ThreadStart) delegate { MemberCache.EditsAdd(SourceInfo.GetLibrary(), SourceInfo.GetObject(), SourceInfo.GetName()); this.Invoke((MethodInvoker) delegate { File.WriteAllText(SourceInfo.GetLocalFile(), this.GetText(), textEditor.Encoding); }); switch (SourceInfo.GetFS()) { case FileSystem.QSYS: UploadResult = IBMiUtils.UploadMember(SourceInfo.GetLocalFile(), SourceInfo.GetLibrary(), SourceInfo.GetObject(), SourceInfo.GetName()); break; case FileSystem.IFS: UploadResult = IBMiUtils.UploadFile(SourceInfo.GetLocalFile(), SourceInfo.GetRemoteFile()); break; } if (UploadResult == false) { } else { this.Invoke((MethodInvoker) delegate { if (GetParent().Text.EndsWith("*")) { GetParent().Text = GetParent().Text.Substring(0, GetParent().Text.Length - 1); } }); } this.Invoke((MethodInvoker) delegate { Editor.TheEditor.SetStatus(SourceInfo.GetName() + " " + (UploadResult ? "" : "not ") + "saved."); }); SourceInfo._IsBeingSaved = false; }); gothread.Start(); } } else { MessageBox.Show("This file is readonly."); } } else { File.WriteAllText(this.LocalPath, this.GetText(), textEditor.Encoding); if (GetParent().Text.EndsWith("*")) { GetParent().Text = GetParent().Text.Substring(0, GetParent().Text.Length - 1); } Editor.TheEditor.SetStatus("File saved locally."); } }
private void Save() { RemoteSource SourceInfo = (RemoteSource)this.Tag; bool UploadResult = true; if (SourceInfo != null) { if (SourceInfo.IsEditable()) { if (!CurrentSaving) { CurrentSaving = true; Editor.TheEditor.SetStatus("Saving " + SourceInfo.GetName() + ".."); Thread gothread = new Thread((ThreadStart) delegate { MemberCache.EditsAdd(SourceInfo.GetLibrary(), SourceInfo.GetObject(), SourceInfo.GetName()); this.Invoke((MethodInvoker) delegate { File.WriteAllText(SourceInfo.GetLocalFile(), this.GetText(), textEditor.Encoding); }); switch (SourceInfo.GetFS()) { case FileSystem.QSYS: UploadResult = IBMiUtils.UploadMember(SourceInfo.GetLocalFile(), SourceInfo.GetLibrary(), SourceInfo.GetObject(), SourceInfo.GetName()); break; case FileSystem.IFS: UploadResult = IBMiUtils.UploadFile(SourceInfo.GetLocalFile(), SourceInfo.GetRemoteFile()); break; } if (UploadResult == false) { } else { this.Invoke((MethodInvoker) delegate { if (this.Text.EndsWith("*")) { this.Text = this.Text.Substring(0, this.Text.Length - 1); } }); DoAction(EditorAction.ParseCode); DoAction(EditorAction.OutlineUpdate); } this.Invoke((MethodInvoker) delegate { Editor.TheEditor.SetStatus(SourceInfo.GetName() + " " + (UploadResult ? "" : "not ") + "saved."); }); CurrentSaving = false; }); gothread.Start(); } else { Editor.TheEditor.SetStatus("Please wait until previous save has finished."); } } else { MessageBox.Show("This file is readonly."); } } else { File.WriteAllText(this.LocalPath, this.GetText(), textEditor.Encoding); if (this.Text.EndsWith("*")) { this.Text = this.Text.Substring(0, this.Text.Length - 1); } Editor.TheEditor.SetStatus("File saved locally."); } }