using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using Telerik.WinControls; using System.Collections; using Safedispatch_4_0; using Telerik.WinControls.UI; using SafeMobileLib; namespace Dispatcher { public partial class TestForm : Telerik.WinControls.UI.RadForm { //private BindingList vehicleListNames = new BindingList(); private ArrayList vehicleListNames = new ArrayList(); private BindingList dropDownItems = new BindingList(); public TestForm() { InitializeComponent(); radDDReportType.SelectedIndex = 0; // add units into drop list foreach (String obj in MainForm2.vehicleHT.Keys) { vehicleListNames.Add(new VehandID(((Safedispatch_4_0.Vehicle)MainForm2.vehicleHT[obj]).busName, ((Safedispatch_4_0.Vehicle)MainForm2.vehicleHT[obj]).sc_id, ((Safedispatch_4_0.Vehicle)MainForm2.vehicleHT[obj]).IMEI)); } vehicleListNames.Sort(new VehandIDComparer()); // create the list with RadListDataItem items foreach (VehandID veh in vehicleListNames) { // create an item which will be added to the drop down list DropListItem item = new DropListItem(); item.Image = Properties.Resources.user_1_24x; item.Text = veh.Name; item.ValueScID = veh.sc_id + ""; item.ValueImei = veh.Imei + ""; // add the item o the list dropDownItems.Add(item); } // add groups into drop list foreach (DictionaryEntry pair in MainForm2.GroupHash) { GroupClass group = (GroupClass)pair.Value; DropListItem item = new DropListItem(); item.Image = Properties.Resources.group24x; item.Text = group.name; string scIDs = ""; foreach(int unitScID in group.arrSc_id) { scIDs = scIDs + unitScID + ","; } // remove last , if(scIDs.Length > 0 && scIDs.Substring(scIDs.Length-1, 1).Equals(",")) scIDs = scIDs.Remove(scIDs.Length-1); // add group imeis to the data item value item.ValueScID = scIDs; // add only groups with units if(scIDs.Length > 0) dropDownItems.Add(item); } rcbUnitGroup.DataSource = dropDownItems; //cbVehName.DisplayMember = "Name"; if (rcbUnitGroup.Items.Count > 1) rcbUnitGroup.SelectedIndex = 0; } private void cbVehName_ItemDataBound(object sender, Telerik.WinControls.UI.ListItemDataBoundEventArgs args) { RadListDataItem item = (RadListDataItem)args.NewItem.DataBoundItem; args.NewItem.Text = "" + item.Text + ""; args.NewItem.Image = item.Image; } private void cbVehName_SelectedIndexChanged(object sender, Telerik.WinControls.UI.Data.PositionChangedEventArgs e) { if (rcbUnitGroup.SelectedIndex >= 0) { RadListDataItem item = ((RadListDataItem)rcbUnitGroup.Items[rcbUnitGroup.SelectedIndex]); //txEmail.Text = item.Value + ""; //txEmail.Text = dropDownItems[e.Position].ValueScID + ""; } } private void pbEnableDisable_Click(object sender, EventArgs e) { if ((PictureBox)sender == pbDateTime) { if (pbDateTime.Tag.Equals("disabled")) { pbDateTime.Tag = "enabled"; pbDateTime.Image = Dispatcher.Properties.Resources.datepicker_enabled; radPanelDateTime.Enabled = true; ckDataFilter.Checked = true; } else { pbDateTime.Tag = "disabled"; pbDateTime.Image = Dispatcher.Properties.Resources.datepicker_disabled; radPanelDateTime.Enabled = false; ckDataFilter.Checked = false; } } else if ((PictureBox)sender == pbUnitGroup) { if (pbUnitGroup.Tag.Equals("disabled")) { pbUnitGroup.Tag = "enabled"; pbUnitGroup.Image = Dispatcher.Properties.Resources.datepicker_enabled; radPanelUnitGroup.Enabled = true; ckUnitGroupFilter.Checked = true; } else { pbUnitGroup.Tag = "disabled"; pbUnitGroup.Image = Dispatcher.Properties.Resources.datepicker_disabled; radPanelUnitGroup.Enabled = false; ckUnitGroupFilter.Checked = false; } } else if ((PictureBox)sender == pbReportDaily) { if (pbReportDaily.Tag.Equals("disabled")) { pbReportDaily.Tag = "enabled"; pbReportDaily.Image = Dispatcher.Properties.Resources.datepicker_enabled; radPanelReportDaily.Enabled = true; ckReportDaily.Checked = true; } else { pbReportDaily.Tag = "disabled"; pbReportDaily.Image = Dispatcher.Properties.Resources.datepicker_disabled; radPanelReportDaily.Enabled = false; ckReportDaily.Checked = false; } } else if ((PictureBox)sender == pbComputeAddress) { if (pbComputeAddress.Tag.Equals("disabled")) { pbComputeAddress.Tag = "enabled"; pbComputeAddress.Image = Dispatcher.Properties.Resources.datepicker_enabled; radPanelComputeAddress.Enabled = true; ckComputeAddress.Checked = true; } else { pbComputeAddress.Tag = "disabled"; pbComputeAddress.Image = Dispatcher.Properties.Resources.datepicker_disabled; radPanelComputeAddress.Enabled = false; ckComputeAddress.Checked = false; } } else if ((PictureBox)sender == pbCoordinates) { if (pbCoordinates.Tag.Equals("disabled")) { pbCoordinates.Tag = "enabled"; pbCoordinates.Image = Dispatcher.Properties.Resources.datepicker_enabled; radPanelLatLng.Enabled = true; ckCoordinates.Checked = true; } else { pbCoordinates.Tag = "disabled"; pbCoordinates.Image = Dispatcher.Properties.Resources.datepicker_disabled; radPanelLatLng.Enabled = false; ckCoordinates.Checked = false; } } // enable or disable Geofence/Landmark Name else if ((PictureBox)sender == pbGeofenceName) { if (pbGeofenceName.Tag.Equals("disabled")) { pbGeofenceName.Tag = "enabled"; pbGeofenceName.Image = Dispatcher.Properties.Resources.datepicker_enabled; radPanelGeofenceName.Enabled = true; ckGeofenceName.Checked = true; } else { pbGeofenceName.Tag = "disabled"; pbGeofenceName.Image = Dispatcher.Properties.Resources.datepicker_disabled; radPanelGeofenceName.Enabled = false; ckGeofenceName.Checked = false; } } // enable or disable Geofence/Landmark Type else if ((PictureBox)sender == pbGeofenceType) { if (pbGeofenceType.Tag.Equals("disabled")) { pbGeofenceType.Tag = "enabled"; pbGeofenceType.Image = Dispatcher.Properties.Resources.datepicker_enabled; radPanelGeofenceType.Enabled = true; ckGeofenceType.Checked = true; } else { pbGeofenceType.Tag = "disabled"; pbGeofenceType.Image = Dispatcher.Properties.Resources.datepicker_disabled; radPanelGeofenceType.Enabled = false; ckGeofenceType.Checked = false; } } // enable or disable Status Panel else if ((PictureBox)sender == pbStatus) { if (pbStatus.Tag.Equals("disabled")) { pbStatus.Tag = "enabled"; pbStatus.Image = Dispatcher.Properties.Resources.datepicker_enabled; radPanelStatus.Enabled = true; ckStatus.Checked = true; } else { pbStatus.Tag = "disabled"; pbStatus.Image = Dispatcher.Properties.Resources.datepicker_disabled; radPanelStatus.Enabled = false; ckStatus.Checked = false; } } // enable or disable Status Panel else if ((PictureBox)sender == pbSelectAll) { if (pbSelectAll.Tag.Equals("disabled")) { pbSelectAll.Tag = "enabled"; pbSelectAll.Image = Dispatcher.Properties.Resources.datepicker_enabled; radPanelSelectAll.Enabled = true; ckSelectALL.Checked = true; } else { pbSelectAll.Tag = "disabled"; pbSelectAll.Image = Dispatcher.Properties.Resources.datepicker_disabled; radPanelSelectAll.Enabled = false; ckSelectALL.Checked = false; } } } private void radDDReportType_SelectedIndexChanged(object sender, Telerik.WinControls.UI.Data.PositionChangedEventArgs e) { rep_type[] types = { rep_type.SPEED, rep_type.GEOFENC, rep_type.LAND, rep_type.LOG, rep_type.EMERG, rep_type.ALLALARM, rep_type.HIST, rep_type.ENDOFDAY, rep_type.IDLE, rep_type.STOP, rep_type.FLEET, rep_type.TELEMETRY_ALARM, rep_type.TELEMETRY_EVENT }; UpdateUIForReportType(types[radDDReportType.SelectedIndex]); } private void UpdateUIForReportType(rep_type reportType) { List addressPanelVisible = new List() { rep_type.SPEED, rep_type.HIST, rep_type.TELEMETRY_ALARM, rep_type.TELEMETRY_EVENT}; List landmarkPanelVisible = new List() { rep_type.LAND, rep_type.GEOFENC }; List latLngPanelVisible = new List() { rep_type.SPEED, rep_type.EMERG, rep_type.HIST, rep_type.ENDOFDAY, rep_type.IDLE, rep_type.STOP, rep_type.TELEMETRY_ALARM, rep_type.TELEMETRY_EVENT }; List statusPanelVisible = new List() { rep_type.LOG }; List idlePanelVisible = new List() { rep_type.IDLE }; List selectAllPanelVisible = new List() { rep_type.FLEET }; List unitMandatory = new List() { rep_type.HIST, rep_type.ENDOFDAY, rep_type.IDLE, rep_type.STOP, rep_type.FLEET }; List dateMandatory = new List() { rep_type.ENDOFDAY, rep_type.IDLE, rep_type.STOP, rep_type.FLEET }; List progressBarSpace = new List() { rep_type.SPEED, rep_type.HIST, rep_type.TELEMETRY_ALARM, rep_type.TELEMETRY_EVENT }; if (progressBarSpace.Contains(reportType)) { btPrintReport.Size = new Size(105, 95); } else { btPrintReport.Size = new Size(105, 127); } // show hide pannels if (addressPanelVisible.Contains(reportType)) { pbComputeAddress.Visible = true; radPanelComputeAddress.Visible = true; } else if (!addressPanelVisible.Contains(reportType)) { pbComputeAddress.Visible = false; radPanelComputeAddress.Visible = false; } // hide or show lat-lng panel if (latLngPanelVisible.Contains(reportType)) { pbCoordinates.Visible = true; radPanelLatLng.Visible = true; } else if (!latLngPanelVisible.Contains(reportType)) { pbCoordinates.Visible = false; radPanelLatLng.Visible = false; } // hide or show Landmark/Geofence Panel if (landmarkPanelVisible.Contains(reportType)) { pbGeofenceName.Visible = true; radPanelGeofenceName.Visible = true; pbGeofenceType.Visible = true; radPanelGeofenceType.Visible = true; if (reportType == rep_type.LAND) { radLabelGeofenceName.Text = "Landmark Name"; radLabelGeofenceType.Text = "Landmark Type"; } else if (reportType == rep_type.GEOFENC) { radLabelGeofenceName.Text = "Geofence Name"; radLabelGeofenceType.Text = "Geofence Type"; } } else if (!landmarkPanelVisible.Contains(reportType)) { pbGeofenceName.Visible = false; radPanelGeofenceName.Visible = false; pbGeofenceType.Visible = false; radPanelGeofenceType.Visible = false; } // make unit mandatory if (unitMandatory.Contains(reportType)) { pbUnitGroup.Visible = false; pbUnitGroup.Tag = "disabled"; pbEnableDisable_Click(pbUnitGroup, null); } else if (!unitMandatory.Contains(reportType)) { pbUnitGroup.Visible = true; pbUnitGroup.Tag = "enabled"; pbEnableDisable_Click(pbUnitGroup, null); } // make date mandatory if (dateMandatory.Contains(reportType)) { pbDateTime.Visible = false; pbDateTime.Tag = "disabled"; pbEnableDisable_Click(pbDateTime, null); } else if (!dateMandatory.Contains(reportType)) { pbDateTime.Visible = true; pbDateTime.Tag = "enabled"; pbEnableDisable_Click(pbDateTime, null); } // hide or show LOG [ON/OFF] panel if (statusPanelVisible.Contains(reportType)) { pbStatus.Visible = true; radPanelStatus.Visible = true; } else if (!statusPanelVisible.Contains(reportType)) { pbStatus.Visible = false; radPanelStatus.Visible = false; } // hide or show Idle panel if (idlePanelVisible.Contains(reportType)) { radPanelIdle.Visible = true; } else if (!idlePanelVisible.Contains(reportType)) { radPanelIdle.Visible = false; } // hide or show SELECT ALL panel if (selectAllPanelVisible.Contains(reportType)) { pbSelectAll.Visible = true; radPanelSelectAll.Visible = true; } else if (!selectAllPanelVisible.Contains(reportType)) { pbSelectAll.Visible = false; radPanelSelectAll.Visible = false; } // show the multi selection combobox if Fleet if (reportType == rep_type.FLEET) { rcbUnitFleet.Visible = true; rcbUnitGroup.Visible = false; } else { rcbUnitFleet.Visible = false; rcbUnitGroup.Visible = true; } } private void pbEnabled_Changed(object sender, EventArgs e) { // set the icon of the Date Icon picture box according to its state if ((PictureBox)sender == pbIconDateTime && pbIconDateTime.Enabled) pbIconDateTime.Image = Dispatcher.Properties.Resources.icon_date_enabled; else if ((PictureBox)sender == pbIconDateTime && !pbIconDateTime.Enabled) pbIconDateTime.Image = Dispatcher.Properties.Resources.icon_date_disabled; // set if icon of the Unit Icon picture box according to its state if ((PictureBox)sender == pbIconUnitGroup && pbIconUnitGroup.Enabled) pbIconUnitGroup.Image = Dispatcher.Properties.Resources.icon_unit_enabled; else if ((PictureBox)sender == pbIconUnitGroup && !pbIconUnitGroup.Enabled) pbIconUnitGroup.Image = Dispatcher.Properties.Resources.icon_unit_disabled; // set if icon of the Report Daily Icon picture box according to its state if ((PictureBox)sender == pbIconReportDaily && pbIconReportDaily.Enabled) pbIconReportDaily.Image = Dispatcher.Properties.Resources.icon_email_enabled; else if ((PictureBox)sender == pbIconReportDaily && !pbIconUnitGroup.Enabled) pbIconReportDaily.Image = Dispatcher.Properties.Resources.icon_email_disabled; } } }