Browse Source

fix the add job form, which wasn't adding jobs

master
jvilalta 15 years ago
parent
commit
db36e5af87
1 changed files with 176 additions and 176 deletions
  1. +176
    -176
      ClickForensics.Quartz.Manager/AddJobForm.cs

+ 176
- 176
ClickForensics.Quartz.Manager/AddJobForm.cs View File

@@ -1,178 +1,178 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Quartz;
using System.Reflection;
using Quartz.Impl;
using Quartz.Impl.Triggers;
using Quartz.Job;
using System.IO;
using Quartz.Util;
namespace ClickForensics.Quartz.Manager
{
public partial class AddJobForm : Form
{
public AddJobForm()
{
InitializeComponent();
loadJobAssemblies();
cboTriggerType.Items.Add("Cron");
cboTriggerType.SelectedItem = "Cron";
if (cboJobType.SelectedText == "NativeJob")
{
jobDataListView.Items.Add(new ListViewItem(new string[] { "consumeStreams", "true" }));
jobDataListView.Items.Add(new ListViewItem(new string[] { "waitForProcess", "true" }));
txtKey.Text = "command";
}
}
private void loadJobAssemblies()
{
var assemblies = AssemblyRepository.GetAssemblies();
SortedList<string, string> jobTypes = new SortedList<string, string>();
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Quartz;
using System.Reflection;
using Quartz.Impl;
using Quartz.Impl.Triggers;
using Quartz.Job;
using System.IO;
using Quartz.Util;
namespace ClickForensics.Quartz.Manager
{
public partial class AddJobForm : Form
{
public AddJobForm()
{
InitializeComponent();
loadJobAssemblies();
cboTriggerType.Items.Add("Cron");
cboTriggerType.SelectedItem = "Cron";
if (cboJobType.SelectedText == "NativeJob")
{
jobDataListView.Items.Add(new ListViewItem(new string[] { "consumeStreams", "true" }));
jobDataListView.Items.Add(new ListViewItem(new string[] { "waitForProcess", "true" }));
txtKey.Text = "command";
}
}
private void loadJobAssemblies()
{
var assemblies = AssemblyRepository.GetAssemblies();
SortedList<string, string> jobTypes = new SortedList<string, string>();
foreach (var assemblyName in assemblies)
{
{
Assembly assembly = Assembly.LoadFile(Environment.CurrentDirectory + "\\" + assemblyName);
foreach (Type type in assembly.GetTypes())
{
if (typeof(IJob).IsAssignableFrom(type) && type.IsClass)
{
jobTypes.Add(type.FullName, assembly.GetName().Name);
}
}
}
foreach (var item in jobTypes)
{
cboJobType.Items.Add(new JobType() { AssemblyName = item.Value, FullName = item.Key });
}
//cboJobType.Items.AddRange(jobTypes.Values.ToArray<string>());
}
public AddJobForm(TriggerNode node)
: this()
{
setTriggerData((CronTriggerImpl)node.Trigger);
setJobData(((JobNode)node.Parent.Parent).Detail);
}
private void setTriggerData(CronTriggerImpl trigger)
{
setTriggerType();
txtCronExpression.Text = trigger.CronExpressionString;
txtTriggerDescription.Text = trigger.Description;
txtTriggerGroup.Text = trigger.Key.Group;
txtTriggerName.Text = trigger.Key.Name;
}
private void setJobData(IJobDetail detail)
{
setJobType(detail);
txtJobDescription.Text = detail.Description;
txtJobGroup.Text = detail.Key.Group;
txtJobName.Text = detail.Key.Name;
setJobDataMap(detail);
}
private void setJobDataMap(IJobDetail detail)
{
jobDataListView.Items.Clear();
foreach (var item in detail.JobDataMap.GetKeys())
{
jobDataListView.Items.Add(new ListViewItem(new string[] { item, detail.JobDataMap.Get(item).ToString() }));
}
}
private void setJobType(IJobDetail detail)
{
cboJobType.SelectedItem = detail.JobType.FullName;
}
private void setTriggerType()
{
//nothing to do right now
}
public IJobDetail JobDetail { get; set; }
public AbstractTrigger Trigger { get; set; }
private void btnCancel_Click(object sender, EventArgs e)
{
this.Close();
}
private void btnAdd_Click(object sender, EventArgs e)
{
JobDetail = getJobDetail();
ITrigger trigger = getTrigger(JobDetail);
this.Close();
}
private IJobDetail getJobDetail()
{
IJobDetail detail = JobBuilder
.NewJob()
.OfType(getJobType())
.WithDescription(txtJobDescription.Text)
.WithIdentity(new JobKey(txtJobName.Text, txtJobGroup.Text))
.UsingJobData(getJobDataMap())
.Build();
return detail;
}
private ITrigger getTrigger(IJobDetail jobDetail)
{
var builder =
TriggerBuilder
.Create()
.ForJob(jobDetail)
.WithDescription(txtTriggerDescription.Text)
.WithIdentity(new TriggerKey(txtTriggerName.Text, txtTriggerGroup.Text));
if (cboTriggerType.SelectedText == "Simple")
{
return builder.WithSchedule(SimpleScheduleBuilder.Create()).Build();
}
else
{
return builder.WithSchedule(CronScheduleBuilder.CronSchedule(txtCronExpression.Text)).Build();
}
}
private Type getJobType()
{
JobType type = (JobType)cboJobType.SelectedItem;
return Type.GetType(type.FullName + "," + type.AssemblyName, true);
}
private JobDataMap getJobDataMap()
{
JobDataMap map = new JobDataMap();
foreach (ListViewItem item in jobDataListView.Items)
{
map.Add(item.SubItems[0].Text, item.SubItems[1].Text);
}
return map;
}
private void btnAddKeyValue_Click(object sender, EventArgs e)
{
ListViewItem item = new ListViewItem(new string[] { txtKey.Text, txtValue.Text });
jobDataListView.Items.Add(item);
}
private void btnDelete_Click(object sender, EventArgs e)
{
foreach (ListViewItem item in jobDataListView.SelectedItems)
{
jobDataListView.Items.Remove(item);
}
}
}
}
foreach (Type type in assembly.GetTypes())
{
if (typeof(IJob).IsAssignableFrom(type) && type.IsClass)
{
jobTypes.Add(type.FullName, assembly.GetName().Name);
}
}
}
foreach (var item in jobTypes)
{
cboJobType.Items.Add(new JobType() { AssemblyName = item.Value, FullName = item.Key });
}
//cboJobType.Items.AddRange(jobTypes.Values.ToArray<string>());
}
public AddJobForm(TriggerNode node)
: this()
{
setTriggerData((CronTriggerImpl)node.Trigger);
setJobData(((JobNode)node.Parent.Parent).Detail);
}
private void setTriggerData(CronTriggerImpl trigger)
{
setTriggerType();
txtCronExpression.Text = trigger.CronExpressionString;
txtTriggerDescription.Text = trigger.Description;
txtTriggerGroup.Text = trigger.Key.Group;
txtTriggerName.Text = trigger.Key.Name;
}
private void setJobData(IJobDetail detail)
{
setJobType(detail);
txtJobDescription.Text = detail.Description;
txtJobGroup.Text = detail.Key.Group;
txtJobName.Text = detail.Key.Name;
setJobDataMap(detail);
}
private void setJobDataMap(IJobDetail detail)
{
jobDataListView.Items.Clear();
foreach (var item in detail.JobDataMap.GetKeys())
{
jobDataListView.Items.Add(new ListViewItem(new string[] { item, detail.JobDataMap.Get(item).ToString() }));
}
}
private void setJobType(IJobDetail detail)
{
cboJobType.SelectedItem = detail.JobType.FullName;
}
private void setTriggerType()
{
//nothing to do right now
}
public IJobDetail JobDetail { get; set; }
public ITrigger Trigger { get; set; }
private void btnCancel_Click(object sender, EventArgs e)
{
this.Close();
}
private void btnAdd_Click(object sender, EventArgs e)
{
JobDetail = getJobDetail();
Trigger = getTrigger(JobDetail);
this.Close();
}
private IJobDetail getJobDetail()
{
IJobDetail detail = JobBuilder
.NewJob()
.OfType(getJobType())
.WithDescription(txtJobDescription.Text)
.WithIdentity(new JobKey(txtJobName.Text, txtJobGroup.Text))
.UsingJobData(getJobDataMap())
.Build();
return detail;
}
private ITrigger getTrigger(IJobDetail jobDetail)
{
var builder =
TriggerBuilder
.Create()
.ForJob(jobDetail)
.WithDescription(txtTriggerDescription.Text)
.WithIdentity(new TriggerKey(txtTriggerName.Text, txtTriggerGroup.Text));
if (cboTriggerType.SelectedText == "Simple")
{
return builder.WithSchedule(SimpleScheduleBuilder.Create()).Build();
}
else
{
return builder.WithSchedule(CronScheduleBuilder.CronSchedule(txtCronExpression.Text)).Build();
}
}
private Type getJobType()
{
JobType type = (JobType)cboJobType.SelectedItem;
return Type.GetType(type.FullName + "," + type.AssemblyName, true);
}
private JobDataMap getJobDataMap()
{
JobDataMap map = new JobDataMap();
foreach (ListViewItem item in jobDataListView.Items)
{
map.Add(item.SubItems[0].Text, item.SubItems[1].Text);
}
return map;
}
private void btnAddKeyValue_Click(object sender, EventArgs e)
{
ListViewItem item = new ListViewItem(new string[] { txtKey.Text, txtValue.Text });
jobDataListView.Items.Add(item);
}
private void btnDelete_Click(object sender, EventArgs e)
{
foreach (ListViewItem item in jobDataListView.SelectedItems)
{
jobDataListView.Items.Remove(item);
}
}
}
}

Loading…
Cancel
Save