package com.impart.kurs.swt;

import java.util.Iterator;
import java.util.List;
import java.util.Vector;

import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.graphics.Resource;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.RowLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.TableItem;

//import com.impart.hh.DBAdapter;
//import com.impart.hh.Person;

public class PersonTable extends Composite {
	Composite parent=null;
	Display display=null;
	Vector vResource = new Vector();
	
	Table table=null;
	Button cmdDelete=null;

	public PersonTable(Composite parent, int style) {
		super(parent, style);
		this.parent=parent;
		display=parent.getDisplay();
		this.setSize(400,400);
		this.setLayout(new FillLayout());
		createPartControl();
	}
	protected void createPartControl() {
		Group group=new Group(this, this.getStyle());
		group.setText("Person");
		RowLayout rowLayout = new RowLayout (SWT.VERTICAL);
		group.setLayout(rowLayout);

		table=new Table(group,SWT.BORDER | SWT.FULL_SELECTION);
		table.setLinesVisible(true);
		table.setHeaderVisible(true);
		TableColumn colName=new TableColumn(table,SWT.CENTER);
		colName.setText("Name");
		colName.setWidth(100);
		TableColumn colVorname=new TableColumn(table,SWT.CENTER);
		colVorname.setText("Vorname");
		colVorname.setWidth(100);
		
		loadData();
//		TableItem item1=new TableItem(table,SWT.NONE);
//		item1.setText(0,"Roth");
//		item1.setText(1,"Matthias");
//		TableItem item2=new TableItem(table,SWT.NONE);
//		item2.setText(0,"Meinen");
//		item2.setText(1,"Samuel");
		
		cmdDelete=new Button(group,SWT.PUSH);
		cmdDelete.setText("Delete");
		cmdDelete.addSelectionListener(new SelectionListener(){
			public void widgetSelected(SelectionEvent e) {
				if(table.getSelectionIndex()>=0){
					deleteData();
				}
			}
			public void widgetDefaultSelected(SelectionEvent e) {
			}
		});

	}
	private void deleteData() {
		int index=table.getSelectionIndex();
		TableItem item=table.getItem(index);
		DBAdapter.deletePerson((Person)item.getData());
		loadData();
		
	}
	private void loadData() {
		table.removeAll();
		List lis=DBAdapter.getAllPerson();
		Iterator iter=lis.iterator();
		while(iter.hasNext()){
			Person p=(Person)iter.next();
			TableItem item1=new TableItem(table,SWT.NONE);
			item1.setText(0,p.getName());
			item1.setText(1,p.getVorname());
			item1.setData(p);
			
		}
		
	}
	public void addPerson(String name, String vorname){
		Person p=new Person();
		p.setName(name);
		p.setVorname(vorname);
		DBAdapter.updatePerson(p);
		loadData();
//		TableItem item=new TableItem(table,SWT.NONE);
//		item.setText(0,name);
//		item.setText(1,vorname);
		
	}

	public void dispose() {
		super.dispose();
		for (int i = 0; i < vResource.size(); i++) {
			try {
				((Resource) vResource.get(i)).dispose();
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	}

}
