Enchanchement #2, #3 and #4 fixed

This commit is contained in:
BlubbFish 2017-04-16 20:55:53 +00:00
parent 76f6fca48b
commit 518422ecb5
12 changed files with 120 additions and 64 deletions

View File

@ -12,7 +12,7 @@ namespace svnsync.Controllers
private static ControllersWindow controllerWindow; private static ControllersWindow controllerWindow;
//private string args; //private string args;
public delegate void _enableLoopRun(); public delegate void _enableLoopRun();
public event _enableLoopRun StartLoop; public static event _enableLoopRun StartLoop;
/// <summary> /// <summary>
/// Controlls a Tray. /// Controlls a Tray.
@ -23,13 +23,17 @@ namespace svnsync.Controllers
{ {
viewTray = new ViewsTray(); viewTray = new ViewsTray();
InitControllerWindow(); InitControllerWindow();
if (viewTray.Model.Args.HasArgumentType("-cron")) { Runner();
if (this.CronJob(0, false)) { }
private static void Runner() {
if(viewTray.Model.Args.HasArgumentType("-cron")) {
if(CronJob(0, false)) {
viewTray.ShowSuccess(); viewTray.ShowSuccess();
System.Threading.Thread.Sleep(5000); System.Threading.Thread.Sleep(5000);
viewTray.Dispose(); viewTray.Dispose();
} else { } else {
this.StartLoop(); StartLoop();
} }
return; return;
} else { } else {
@ -39,8 +43,6 @@ namespace svnsync.Controllers
private static void InitControllerWindow() { private static void InitControllerWindow() {
controllerWindow = new ControllersWindow(); controllerWindow = new ControllersWindow();
controllerWindow.SetAction(Handles.FormType.Normal);
controllerWindow.SetDeletedFiles(new List<string>());
} }
public override void Dispose() public override void Dispose()
@ -53,7 +55,7 @@ namespace svnsync.Controllers
} }
} }
private Boolean CronJob(Int32 run, Boolean readyToCommit) private static Boolean CronJob(Int32 run, Boolean readyToCommit)
{ {
if (viewTray.Model.Svn == null) { if (viewTray.Model.Svn == null) {
return HandleError(Handles.SvnType.NotInit, ""); return HandleError(Handles.SvnType.NotInit, "");
@ -92,7 +94,7 @@ namespace svnsync.Controllers
return HandleError(Handles.SvnType.ExternDeletedFiles, ""); return HandleError(Handles.SvnType.ExternDeletedFiles, "");
} }
} }
return this.CronJob(run + 1, true); return CronJob(run + 1, true);
} else { } else {
if (readyToCommit) { if (readyToCommit) {
viewTray.Model.Svn.SetArgCheckIn("Automatic Cronjob Checkin: " + StringHelper.GetTimeStamp(DateTime.Now)); viewTray.Model.Svn.SetArgCheckIn("Automatic Cronjob Checkin: " + StringHelper.GetTimeStamp(DateTime.Now));
@ -104,7 +106,7 @@ namespace svnsync.Controllers
if (viewTray.Model.Svn.IsError) { if (viewTray.Model.Svn.IsError) {
return HandleError(Handles.SvnType.UnexpectedError, viewTray.Model.Svn.Error); return HandleError(Handles.SvnType.UnexpectedError, viewTray.Model.Svn.Error);
} }
return this.CronJob(run + 1, true); return CronJob(run + 1, true);
} }
} }
return true; return true;
@ -119,6 +121,7 @@ namespace svnsync.Controllers
break; break;
case Handles.SvnType.HasVersionitedFiles: case Handles.SvnType.HasVersionitedFiles:
controllerWindow.SetAction(Handles.FormType.UnversionFiles); controllerWindow.SetAction(Handles.FormType.UnversionFiles);
controllerWindow.SetNewFiles(viewTray.Model.Svn.NoVersionFiles);
break; break;
case Handles.SvnType.UnexpectedError: case Handles.SvnType.UnexpectedError:
controllerWindow.SetAction(Handles.FormType.Error); controllerWindow.SetAction(Handles.FormType.Error);
@ -173,13 +176,46 @@ namespace svnsync.Controllers
} }
System.Windows.Forms.TreeView t = (System.Windows.Forms.TreeView)((ViewsWindowFormFileList)((System.Windows.Forms.Button)sender).Parent).tree; System.Windows.Forms.TreeView t = (System.Windows.Forms.TreeView)((ViewsWindowFormFileList)((System.Windows.Forms.Button)sender).Parent).tree;
List<System.Windows.Forms.TreeNode> l = TreeBuilder.getSelectedNodes(t.Nodes); List<System.Windows.Forms.TreeNode> l = TreeBuilder.getSelectedNodes(t.Nodes);
controllerWindow.Hide(); controllerWindow.Dispose();
System.Windows.Forms.Application.DoEvents();
InitControllerWindow();
viewTray.Model.Svn.DeleteFiles(l); viewTray.Model.Svn.DeleteFiles(l);
if(viewTray.Model.Svn.IsError) { if(viewTray.Model.Svn.IsError) {
HandleError(Handles.SvnType.UnexpectedError, viewTray.Model.Svn.Error); HandleError(Handles.SvnType.UnexpectedError, viewTray.Model.Svn.Error);
return; return;
} }
//this.runagainButton_Click(sender, null); RunAgainButton_Click(sender, null);
}
internal static void RunAgainButton_Click(object sender, EventArgs e) {
controllerWindow.Dispose();
System.Windows.Forms.Application.DoEvents();
InitControllerWindow();
Runner();
}
internal static void SvnOpenButton_Click(object sender, EventArgs e) {
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = "cmd";
p.StartInfo.WorkingDirectory = viewTray.Model.Args.GetArgumentData("-d");
p.StartInfo.Arguments = "/K svn";
p.Start();
}
internal static void AddButton_Click(object sender, EventArgs e) {
if(!(sender is System.Windows.Forms.Button)) {
return;
}
System.Windows.Forms.TreeView t = (System.Windows.Forms.TreeView)((ViewsWindowFormFileList)((System.Windows.Forms.Button)sender).Parent).tree;
List<System.Windows.Forms.TreeNode> l = TreeBuilder.getSelectedNodes(t.Nodes);
controllerWindow.Dispose();
System.Windows.Forms.Application.DoEvents();
InitControllerWindow();
viewTray.Model.Svn.AddFiles(l);
if(viewTray.Model.Svn.IsError) {
HandleError(Handles.SvnType.UnexpectedError, viewTray.Model.Svn.Error);
return;
}
RunAgainButton_Click(sender, null);
} }
} }
} }

View File

@ -10,10 +10,10 @@ namespace svnsync.Controllers
public class ControllersWindow : OwnController public class ControllersWindow : OwnController
{ {
private static ViewsWindow viewWindow; private static ViewsWindow viewWindow;
private Handles.FormType initAction; private Handles.FormType initAction = Handles.FormType.Normal;
private String initMessage; private String initMessage;
private List<string> initDeletedFiles; private List<string> initDeletedFiles = new List<string>();
private static ControllersTray controllerTray; private List<string> initNewFiles = new List<string>();
/// <summary> /// <summary>
/// Tray Controller /// Tray Controller
/// </summary> /// </summary>
@ -25,6 +25,7 @@ namespace svnsync.Controllers
viewWindow.Model.Message = this.initMessage; viewWindow.Model.Message = this.initMessage;
viewWindow.Model.FormType = this.initAction; viewWindow.Model.FormType = this.initAction;
viewWindow.Model.DeletedFiles = this.initDeletedFiles; viewWindow.Model.DeletedFiles = this.initDeletedFiles;
viewWindow.Model.NewFiles = this.initNewFiles;
viewWindow.Draw(); viewWindow.Draw();
} }
@ -33,6 +34,7 @@ namespace svnsync.Controllers
if (viewWindow != null) { if (viewWindow != null) {
viewWindow.Dispose(); viewWindow.Dispose();
} }
viewWindow = null;
} }
public static void FormClosed(Object sender, FormClosedEventArgs e) public static void FormClosed(Object sender, FormClosedEventArgs e)
@ -48,9 +50,7 @@ namespace svnsync.Controllers
} else { } else {
viewWindow.Model.FormType = formType; viewWindow.Model.FormType = formType;
} }
//throw new NotImplementedException();
//this.CreateSVNOpen("Fehler im Cronjob, mehr als 10 Aufrufe!", ""); //this.CreateSVNOpen("Fehler im Cronjob, mehr als 10 Aufrufe!", "");
//this.CreateFileList("Hinzufügen", "Diese Daten sind unversioniert:", s.getNoVersionFiles(), new EventHandler(addButton_Click));
//this.CreateSVNOpen("Es ist ein Unvorhersebarer Fehler aufgetreten", p); //this.CreateSVNOpen("Es ist ein Unvorhersebarer Fehler aufgetreten", p);
} }
@ -70,16 +70,12 @@ namespace svnsync.Controllers
} }
} }
internal static void RunAgainButton_Click(object sender, EventArgs e) { internal void SetNewFiles(List<string> list) {
throw new NotImplementedException(); if(viewWindow == null) {
this.initNewFiles = list;
} else {
viewWindow.Model.NewFiles = list;
} }
internal static void SvnOpenButton_Click(object sender, EventArgs e) {
throw new NotImplementedException();
}
internal void Hide() {
viewWindow.Hide();
} }
} }
} }

View File

@ -33,6 +33,13 @@ namespace svnsync.Models
set { this.DeletedFilesValue = value; this.Update(); } set { this.DeletedFilesValue = value; this.Update(); }
} }
private List<String> NewFilesValue;
public List<string> NewFiles {
get { return this.NewFilesValue; }
set { this.NewFilesValue = value; this.Update(); }
}
public CmdArgs Args { get; private set; } public CmdArgs Args { get; private set; }
} }

View File

@ -30,14 +30,16 @@ namespace svnsync
try { try {
Svn.Instance.SetDirectory(CmdArgs.Instance.GetArgumentData("-d")); Svn.Instance.SetDirectory(CmdArgs.Instance.GetArgumentData("-d"));
t = new ControllersTray(); t = new ControllersTray();
t.StartLoop += T_StartLoop; ControllersTray.StartLoop += T_StartLoop;
t.Execute(); t.Execute();
} catch (Exception e) { } catch (Exception e) {
t.HideToolTip(); t.HideToolTip();
String text = e.Message + "\n\n" + e.StackTrace; String text = e.Message + "\n\n" + e.StackTrace;
String title = "Exception in SVNSync: " + CmdArgs.Instance.GetArgumentData("-d"); String title = "Exception in SVNSync: " + CmdArgs.Instance.GetArgumentData("-d");
MessageBox.Show(text, title, MessageBoxButtons.OK, MessageBoxIcon.Error); MessageBox.Show(text, title, MessageBoxButtons.OK, MessageBoxIcon.Error);
#if !DEBUG
FileMutex.Instance.Delete(); FileMutex.Instance.Delete();
#endif
return; return;
} }
if (!CmdArgs.Instance.HasArgumentType("-cron")) { if (!CmdArgs.Instance.HasArgumentType("-cron")) {

View File

@ -33,6 +33,6 @@ using System.Resources;
// Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern // Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern
// übernehmen, indem Sie "*" eingeben: // übernehmen, indem Sie "*" eingeben:
// [assembly: AssemblyVersion("1.0.*")] // [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.4.0")] [assembly: AssemblyVersion("1.0.5.2")]
[assembly: AssemblyFileVersion("1.0.4.0")] [assembly: AssemblyFileVersion("1.0.5.2")]
[assembly: NeutralResourcesLanguageAttribute("de-DE")] [assembly: NeutralResourcesLanguageAttribute("de-DE")]

View File

@ -8,6 +8,7 @@ namespace svnsync.Views
public class ViewsWindow : OwnView public class ViewsWindow : OwnView
{ {
private ViewsWindowFormInterface form; private ViewsWindowFormInterface form;
public ModelsWindow Model { get; private set; }
public ViewsWindow() public ViewsWindow()
{ {
@ -24,6 +25,7 @@ namespace svnsync.Views
change = true; change = true;
} }
break; break;
case Helpers.Handles.FormType.UnversionFiles:
case Helpers.Handles.FormType.DeletedFiles: case Helpers.Handles.FormType.DeletedFiles:
if(!(this.form is ViewsWindowFormFileList)) { if(!(this.form is ViewsWindowFormFileList)) {
change = true; change = true;
@ -42,6 +44,7 @@ namespace svnsync.Views
case Helpers.Handles.FormType.Normal: case Helpers.Handles.FormType.Normal:
this.form = new ViewsWindowForm(); this.form = new ViewsWindowForm();
break; break;
case Helpers.Handles.FormType.UnversionFiles:
case Helpers.Handles.FormType.DeletedFiles: case Helpers.Handles.FormType.DeletedFiles:
this.form = new ViewsWindowFormFileList(); this.form = new ViewsWindowFormFileList();
break; break;
@ -57,19 +60,16 @@ namespace svnsync.Views
public override void Dispose() public override void Dispose()
{ {
this.Model.RemoveObserver(this);
this.form.BeginInvoke((Action)(() => { this.form.BeginInvoke((Action)(() => {
this.form.Dispose(); this.form.Dispose();
})); }));
} }
public ModelsWindow Model { get; private set; }
internal void Draw() { internal void Draw() {
this.Model.SetObserver(this); this.Model.SetObserver(this);
} }
internal void Hide() {
this.form.Hide();
}
} }
} }

View File

@ -30,44 +30,55 @@
{ {
this.messageBox = new System.Windows.Forms.RichTextBox(); this.messageBox = new System.Windows.Forms.RichTextBox();
this.label1 = new System.Windows.Forms.Label(); this.label1 = new System.Windows.Forms.Label();
this.opencmd = new System.Windows.Forms.Button(); this.svnOpenButton = new System.Windows.Forms.Button();
this.doAgainButton = new System.Windows.Forms.Button();
this.SuspendLayout(); this.SuspendLayout();
// //
// messageBox // messageBox
// //
this.messageBox.Location = new System.Drawing.Point(6, 19); this.messageBox.BackColor = System.Drawing.SystemColors.ControlLightLight;
this.messageBox.Location = new System.Drawing.Point(13, 30);
this.messageBox.Name = "messageBox"; this.messageBox.Name = "messageBox";
this.messageBox.ReadOnly = true; this.messageBox.ReadOnly = true;
this.messageBox.Size = new System.Drawing.Size(452, 208); this.messageBox.Size = new System.Drawing.Size(443, 195);
this.messageBox.TabIndex = 2; this.messageBox.TabIndex = 2;
this.messageBox.Text = ""; this.messageBox.Text = "";
// //
// label1 // label1
// //
this.label1.AutoSize = true; this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(6, 3); this.label1.Location = new System.Drawing.Point(10, 10);
this.label1.Name = "label1"; this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(51, 13); this.label1.Size = new System.Drawing.Size(51, 13);
this.label1.TabIndex = 1; this.label1.TabIndex = 1;
this.label1.Text = "Meldung:"; this.label1.Text = "Meldung:";
// //
// opencmd // svnOpenButton
// //
this.opencmd.Location = new System.Drawing.Point(6, 233); this.svnOpenButton.Location = new System.Drawing.Point(318, 233);
this.opencmd.Name = "opencmd"; this.svnOpenButton.Name = "svnOpenButton";
this.opencmd.Size = new System.Drawing.Size(75, 23); this.svnOpenButton.Size = new System.Drawing.Size(140, 23);
this.opencmd.TabIndex = 3; this.svnOpenButton.TabIndex = 6;
this.opencmd.Text = "Open CMD"; this.svnOpenButton.Text = "SVN Öffnen";
this.opencmd.UseVisualStyleBackColor = true; this.svnOpenButton.UseVisualStyleBackColor = true;
this.opencmd.Visible = false; //
// doAgainButton
//
this.doAgainButton.Location = new System.Drawing.Point(170, 233);
this.doAgainButton.Name = "doAgainButton";
this.doAgainButton.Size = new System.Drawing.Size(140, 23);
this.doAgainButton.TabIndex = 5;
this.doAgainButton.Text = "Wiederholen";
this.doAgainButton.UseVisualStyleBackColor = true;
// //
// ViewsWindowForm // ViewsWindowForm
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(464, 262); this.ClientSize = new System.Drawing.Size(464, 262);
this.Controls.Add(this.svnOpenButton);
this.Controls.Add(this.doAgainButton);
this.Controls.Add(this.label1); this.Controls.Add(this.label1);
this.Controls.Add(this.opencmd);
this.Controls.Add(this.messageBox); this.Controls.Add(this.messageBox);
this.Name = "ViewsWindowForm"; this.Name = "ViewsWindowForm";
this.Padding = new System.Windows.Forms.Padding(3); this.Padding = new System.Windows.Forms.Padding(3);
@ -81,7 +92,8 @@
private System.Windows.Forms.RichTextBox messageBox; private System.Windows.Forms.RichTextBox messageBox;
private System.Windows.Forms.Label label1; private System.Windows.Forms.Label label1;
private System.Windows.Forms.Button opencmd; private System.Windows.Forms.Button svnOpenButton;
private System.Windows.Forms.Button doAgainButton;
} }
} }

View File

@ -19,6 +19,8 @@ namespace svnsync.Views
{ {
InitializeComponent(); InitializeComponent();
this.FormClosed += ControllersWindow.FormClosed; this.FormClosed += ControllersWindow.FormClosed;
this.doAgainButton.Click += ControllersTray.RunAgainButton_Click;
this.svnOpenButton.Click += ControllersTray.SvnOpenButton_Click;
} }
public void UpdateForm() public void UpdateForm()
@ -32,10 +34,5 @@ namespace svnsync.Views
{ {
this.model = window; this.model = window;
} }
public void Hide() {
this.ShowInTaskbar = false;
this.WindowState = FormWindowState.Minimized;
}
} }
} }

View File

@ -17,8 +17,8 @@ namespace svnsync.Views {
public ViewsWindowFormFileList() { public ViewsWindowFormFileList() {
InitializeComponent(); InitializeComponent();
this.FormClosed += ControllersWindow.FormClosed; this.FormClosed += ControllersWindow.FormClosed;
this.doAgainButton.Click += new EventHandler(ControllersWindow.RunAgainButton_Click); this.doAgainButton.Click += new EventHandler(ControllersTray.RunAgainButton_Click);
this.svnOpenButton.Click += new EventHandler(ControllersWindow.SvnOpenButton_Click); this.svnOpenButton.Click += new EventHandler(ControllersTray.SvnOpenButton_Click);
} }
public void UpdateForm() { public void UpdateForm() {
@ -31,19 +31,26 @@ namespace svnsync.Views {
this.tree.ImageList = TreeBuilder.getImages(this.tree.Nodes); this.tree.ImageList = TreeBuilder.getImages(this.tree.Nodes);
this.runButton.Click += new EventHandler(ControllersTray.DeleteButton_Click); this.runButton.Click += new EventHandler(ControllersTray.DeleteButton_Click);
break; break;
case Handles.FormType.UnversionFiles:
this.title.Text = "Diese Daten sind unversioniert:";
this.runButton.Text = "Hinzufügen";
this.tree.Nodes.AddRange(TreeBuilder.createDirList(this.model.NewFiles, this.model.Args.GetArgumentData("-d")));
this.tree.ImageList = TreeBuilder.getImages(this.tree.Nodes);
this.runButton.Click += new EventHandler(ControllersTray.AddButton_Click);
break;
} }
})); }));
} }
//this.CreateFileList("Löschen", "Diese Daten sind gelöscht worden:", s.getWasDeletedFiles(), new EventHandler(deleteButton_Click));
public void SetModel(ModelsWindow window) { public void SetModel(ModelsWindow window) {
this.model = window; this.model = window;
} }
new public void Dispose() {
public void Hide() { this.BeginInvoke((Action)(() => {
this.Visible = false;
this.ShowInTaskbar = false; this.ShowInTaskbar = false;
this.WindowState = FormWindowState.Minimized; }));
base.Dispose(true);
} }
} }
} }

View File

@ -12,6 +12,5 @@ namespace svnsync.Views {
void Show(); void Show();
IAsyncResult BeginInvoke(Delegate method); IAsyncResult BeginInvoke(Delegate method);
void Dispose(); void Dispose();
void Hide();
} }
} }

Binary file not shown.

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
<StartArguments>-d "D:\\Visual Studio 2012\\Projects" -cron -autoadd -externals-own</StartArguments> <StartArguments>-d "D:\\Visual Studio 2012\\Projects" -cron -externals-own</StartArguments>
<RemoteDebugEnabled>false</RemoteDebugEnabled> <RemoteDebugEnabled>false</RemoteDebugEnabled>
<StartAction>Project</StartAction> <StartAction>Project</StartAction>
</PropertyGroup> </PropertyGroup>