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 string args;
public delegate void _enableLoopRun();
public event _enableLoopRun StartLoop;
public static event _enableLoopRun StartLoop;
/// <summary>
/// Controlls a Tray.
@ -23,13 +23,17 @@ namespace svnsync.Controllers
{
viewTray = new ViewsTray();
InitControllerWindow();
if (viewTray.Model.Args.HasArgumentType("-cron")) {
if (this.CronJob(0, false)) {
Runner();
}
private static void Runner() {
if(viewTray.Model.Args.HasArgumentType("-cron")) {
if(CronJob(0, false)) {
viewTray.ShowSuccess();
System.Threading.Thread.Sleep(5000);
viewTray.Dispose();
} else {
this.StartLoop();
StartLoop();
}
return;
} else {
@ -39,8 +43,6 @@ namespace svnsync.Controllers
private static void InitControllerWindow() {
controllerWindow = new ControllersWindow();
controllerWindow.SetAction(Handles.FormType.Normal);
controllerWindow.SetDeletedFiles(new List<string>());
}
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) {
return HandleError(Handles.SvnType.NotInit, "");
@ -92,7 +94,7 @@ namespace svnsync.Controllers
return HandleError(Handles.SvnType.ExternDeletedFiles, "");
}
}
return this.CronJob(run + 1, true);
return CronJob(run + 1, true);
} else {
if (readyToCommit) {
viewTray.Model.Svn.SetArgCheckIn("Automatic Cronjob Checkin: " + StringHelper.GetTimeStamp(DateTime.Now));
@ -104,7 +106,7 @@ namespace svnsync.Controllers
if (viewTray.Model.Svn.IsError) {
return HandleError(Handles.SvnType.UnexpectedError, viewTray.Model.Svn.Error);
}
return this.CronJob(run + 1, true);
return CronJob(run + 1, true);
}
}
return true;
@ -119,6 +121,7 @@ namespace svnsync.Controllers
break;
case Handles.SvnType.HasVersionitedFiles:
controllerWindow.SetAction(Handles.FormType.UnversionFiles);
controllerWindow.SetNewFiles(viewTray.Model.Svn.NoVersionFiles);
break;
case Handles.SvnType.UnexpectedError:
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;
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);
if(viewTray.Model.Svn.IsError) {
HandleError(Handles.SvnType.UnexpectedError, viewTray.Model.Svn.Error);
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
{
private static ViewsWindow viewWindow;
private Handles.FormType initAction;
private Handles.FormType initAction = Handles.FormType.Normal;
private String initMessage;
private List<string> initDeletedFiles;
private static ControllersTray controllerTray;
private List<string> initDeletedFiles = new List<string>();
private List<string> initNewFiles = new List<string>();
/// <summary>
/// Tray Controller
/// </summary>
@ -25,6 +25,7 @@ namespace svnsync.Controllers
viewWindow.Model.Message = this.initMessage;
viewWindow.Model.FormType = this.initAction;
viewWindow.Model.DeletedFiles = this.initDeletedFiles;
viewWindow.Model.NewFiles = this.initNewFiles;
viewWindow.Draw();
}
@ -33,6 +34,7 @@ namespace svnsync.Controllers
if (viewWindow != null) {
viewWindow.Dispose();
}
viewWindow = null;
}
public static void FormClosed(Object sender, FormClosedEventArgs e)
@ -48,9 +50,7 @@ namespace svnsync.Controllers
} else {
viewWindow.Model.FormType = formType;
}
//throw new NotImplementedException();
//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);
}
@ -70,16 +70,12 @@ namespace svnsync.Controllers
}
}
internal static void RunAgainButton_Click(object sender, EventArgs e) {
throw new NotImplementedException();
}
internal static void SvnOpenButton_Click(object sender, EventArgs e) {
throw new NotImplementedException();
}
internal void Hide() {
viewWindow.Hide();
internal void SetNewFiles(List<string> list) {
if(viewWindow == null) {
this.initNewFiles = list;
} else {
viewWindow.Model.NewFiles = list;
}
}
}
}

View File

@ -33,6 +33,13 @@ namespace svnsync.Models
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; }
}

View File

@ -30,14 +30,16 @@ namespace svnsync
try {
Svn.Instance.SetDirectory(CmdArgs.Instance.GetArgumentData("-d"));
t = new ControllersTray();
t.StartLoop += T_StartLoop;
ControllersTray.StartLoop += T_StartLoop;
t.Execute();
} catch (Exception e) {
t.HideToolTip();
String text = e.Message + "\n\n" + e.StackTrace;
String title = "Exception in SVNSync: " + CmdArgs.Instance.GetArgumentData("-d");
MessageBox.Show(text, title, MessageBoxButtons.OK, MessageBoxIcon.Error);
FileMutex.Instance.Delete();
#if !DEBUG
FileMutex.Instance.Delete();
#endif
return;
}
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
// übernehmen, indem Sie "*" eingeben:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.4.0")]
[assembly: AssemblyFileVersion("1.0.4.0")]
[assembly: AssemblyVersion("1.0.5.2")]
[assembly: AssemblyFileVersion("1.0.5.2")]
[assembly: NeutralResourcesLanguageAttribute("de-DE")]

View File

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

View File

@ -30,44 +30,55 @@
{
this.messageBox = new System.Windows.Forms.RichTextBox();
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();
//
// 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.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.Text = "";
//
// label1
//
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.Size = new System.Drawing.Size(51, 13);
this.label1.TabIndex = 1;
this.label1.Text = "Meldung:";
//
// opencmd
// svnOpenButton
//
this.opencmd.Location = new System.Drawing.Point(6, 233);
this.opencmd.Name = "opencmd";
this.opencmd.Size = new System.Drawing.Size(75, 23);
this.opencmd.TabIndex = 3;
this.opencmd.Text = "Open CMD";
this.opencmd.UseVisualStyleBackColor = true;
this.opencmd.Visible = false;
this.svnOpenButton.Location = new System.Drawing.Point(318, 233);
this.svnOpenButton.Name = "svnOpenButton";
this.svnOpenButton.Size = new System.Drawing.Size(140, 23);
this.svnOpenButton.TabIndex = 6;
this.svnOpenButton.Text = "SVN Öffnen";
this.svnOpenButton.UseVisualStyleBackColor = true;
//
// 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
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
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.opencmd);
this.Controls.Add(this.messageBox);
this.Name = "ViewsWindowForm";
this.Padding = new System.Windows.Forms.Padding(3);
@ -81,7 +92,8 @@
private System.Windows.Forms.RichTextBox messageBox;
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();
this.FormClosed += ControllersWindow.FormClosed;
this.doAgainButton.Click += ControllersTray.RunAgainButton_Click;
this.svnOpenButton.Click += ControllersTray.SvnOpenButton_Click;
}
public void UpdateForm()
@ -32,10 +34,5 @@ namespace svnsync.Views
{
this.model = window;
}
public void Hide() {
this.ShowInTaskbar = false;
this.WindowState = FormWindowState.Minimized;
}
}
}

View File

@ -17,8 +17,8 @@ namespace svnsync.Views {
public ViewsWindowFormFileList() {
InitializeComponent();
this.FormClosed += ControllersWindow.FormClosed;
this.doAgainButton.Click += new EventHandler(ControllersWindow.RunAgainButton_Click);
this.svnOpenButton.Click += new EventHandler(ControllersWindow.SvnOpenButton_Click);
this.doAgainButton.Click += new EventHandler(ControllersTray.RunAgainButton_Click);
this.svnOpenButton.Click += new EventHandler(ControllersTray.SvnOpenButton_Click);
}
public void UpdateForm() {
@ -31,19 +31,26 @@ namespace svnsync.Views {
this.tree.ImageList = TreeBuilder.getImages(this.tree.Nodes);
this.runButton.Click += new EventHandler(ControllersTray.DeleteButton_Click);
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) {
this.model = window;
}
public void Hide() {
this.ShowInTaskbar = false;
this.WindowState = FormWindowState.Minimized;
new public void Dispose() {
this.BeginInvoke((Action)(() => {
this.Visible = false;
this.ShowInTaskbar = false;
}));
base.Dispose(true);
}
}
}

View File

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

Binary file not shown.

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<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>
<StartAction>Project</StartAction>
</PropertyGroup>