/*******************************************************************************
 * Copyright (c) 2008 SAP AG and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 * Stefan Dimov, stefan.dimov@sap.com - initial API and implementation
 *******************************************************************************/
package org.eclipse.jst.j2ee.internal;

import org.eclipse.jface.viewers.CheckStateChangedEvent;
import org.eclipse.jface.viewers.ICheckable;
import org.eclipse.jst.j2ee.internal.ui.DoubleCheckboxTableItem;

public class SecondCheckBoxStateChangedEvent extends CheckStateChangedEvent {
	
	private DoubleCheckboxTableItem item = null;
	
	public SecondCheckBoxStateChangedEvent(ICheckable source, 
											Object element, 
											boolean state) {
		super(source, element, state);
	}	
	
	public void setTableItem(DoubleCheckboxTableItem itm) { 
		item = itm;
	}
	
	public DoubleCheckboxTableItem getTableItem() {
		return item;
	}
}
