Spoiler
DataManager
SalesManager
AddProductForm
AddOrderForm
DataManager
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace SalesManager
{
public class DataManager
{
private ArrayList customerList = new ArrayList();
public void addCustomer(Customer c)
{
customerList.Add(c);
}
public void removeCustomer(Customer c)
{
customerList.Remove(c);
}
public Customer[] getAllCustomers()
{
return (Customer[])customerList.ToArray(typeof(Customer));
}
public Customer getCustomerAtIndex(int index)
{
return (Customer)customerList[index];
}
private ArrayList productList = new ArrayList();
public void addProduct(Product d)
{
productList.Add(d);
}
public void removeProduct(Product d)
{
productList.Remove(d);
}
public Product[] getAllProducts()
{
return (Product[])productList.ToArray(typeof(Product));
}
public Product getProductAtIndex(int index)
{
return (Product)productList[index];
}
private ArrayList orderList = new ArrayList();
public void addOrder(Order e)
{
orderList.Add(e);
}
public void removeOrder(Order e)
{
orderList.Remove(e);
}
public Order[] getAllOrders()
{
return (Order[])orderList.ToArray(typeof(Order));
}
public Order getOrderAtIndex(int index)
{
return (Order)orderList[index];
}
}
}
SalesManager
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;
namespace SalesManager
{
public partial class SalesManager : Form
{
public DataManager data = new DataManager();
public SalesManager()
{
InitializeComponent();
}
private void addCustomerButton_Click(object sender, EventArgs e)
{
AddCustomerForm myNewForm = new AddCustomerForm(this);
myNewForm.Show();
//"this" represents the current running instance of the class
}
public void loadCustomers()
{
//clear the panel
customerPanel.Controls.Clear();
//get the customers
Customer[] custList = data.getAllCustomers();
//for each customer
for (int i = 0; i < custList.Length; i++)
{
//make a checkbox and set some properties
CheckBox tmp = new CheckBox();
string tmpName = custList[i].getName();
string tmpPhone = custList[i].getPhone();
tmp.Text = "Name: " + tmpName + " Phone: " + tmpPhone;
tmp.AutoSize = true;
tmp.Location = new Point(0, 20 * i);
tmp.CheckedChanged += new EventHandler(handleCustomerClick);
//add it to the panel
customerPanel.Controls.Add(tmp);
}
}
private void handleCustomerClick(object sender, EventArgs e)
{
CheckBox source = (CheckBox)sender;
if (source.Checked == true)
{
for (int i = 0; i < customerPanel.Controls.Count; i++)
{
CheckBox target = (CheckBox)customerPanel.Controls[i];
if (!source.Equals(target))
{
target.Checked = false;
}
}
}
}
private void removeCustomerButton_Click(object sender, EventArgs e)
{
//look at each checkbox
for (int i = 0; i < customerPanel.Controls.Count; i++)
{
//if there's a check in the box:
CheckBox candidate = (CheckBox)customerPanel.Controls[i];
if (candidate.Checked == true)
{
//then ask the data manager which customer lives there
Customer toBeDeleted = data.getCustomerAtIndex(i);
//and tell the data manager to delete that customer
data.removeCustomer(toBeDeleted);
}
}
//reload the customers in the panel
loadCustomers();
}
private void tabPage2_Click(object sender, EventArgs e)
{
}
private void addProductButton_Click(object sender, EventArgs e)
{
AddProductForm myNewForm = new AddProductForm(this);
myNewForm.Show();
}
public void loadProducts()
{
productPanel.Controls.Clear();
Product[] prodList = data.getAllProducts();
for (int p = 0; p < prodList.Length; p++)
{
CheckBox pmp = new CheckBox();
string pmpName = prodList[p].getName();
pmp.Text = "Name: " + pmpName;
pmp.AutoSize = true;
pmp.Location = new Point(0, 20 * p);
pmp.CheckedChanged += new EventHandler(handleProductClick);
productPanel.Controls.Add(pmp);
}
}
private void handleProductClick(object sender, EventArgs e)
{
CheckBox source = (CheckBox)sender;
if (source.Checked == true)
{
for (int p = 0; p < customerPanel.Controls.Count; p++)
{
CheckBox target2 = (CheckBox)productPanel.Controls[p];
if (!source.Equals(target2))
{
target2.Checked = false;
}
}
}
}
private void removeProductButton_Click_1(object sender, EventArgs e)
{
//look at each checkbox
for (int p = 0; p < productPanel.Controls.Count; p++)
{
//if there's a check in the box:
CheckBox candidate = (CheckBox)productPanel.Controls[p];
if (candidate.Checked == true)
{
//then ask the data manager which customer lives there
Product toBeDeleted = data.getProductAtIndex(p);
//and tell the data manager to delete that customer
data.removeProduct(toBeDeleted);
}
}
//reload the customers in the panel
loadProducts();
}
private void addOrderButton_Click(object sender, EventArgs e)
{
AddOrderForm myNewForm = new AddOrderForm(this);
myNewForm.Show();
//"this" represents the current running instance of the class
}
}
}
AddProductForm
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;
namespace SalesManager
{
public partial class AddProductForm : Form
{
private SalesManager parent;
public AddProductForm(SalesManager p)
{
InitializeComponent();
parent = p;
}
private void cancelButton_Click(object sender, EventArgs e)
{
this.Dispose();
}
private void createCustomerButton_Click(object sender, EventArgs e)
{
string newProdName = nameBox.Text;
Product myNewProduct = new Product(newProdName);
parent.data.addProduct(myNewProduct);
parent.loadProducts();
this.Dispose();
}
}
}
AddOrderForm
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;
namespace SalesManager
{
public partial class AddOrderForm : Form
{
private SalesManager parent;
public AddOrderForm(SalesManager p)
{
InitializeComponent();
parent = p;
}
public class combobox : ListControl
{
}
private void cancelButton_Click(object sender, EventArgs e)
{
this.Dispose();
}
private void createOrderButton_Click(object sender, EventArgs e)
{
}
}
}
This post has been edited by tlhIn`toq: 17 February 2013 - 07:37 AM
Reason for edit:: fixed last code tag

New Topic/Question
Reply



MultiQuote




|