package com.gx.obe.evaluation.step.composite.boq;

import java.util.List;

import org.eclipse.nebula.widgets.grid.Grid;
import org.eclipse.nebula.widgets.grid.GridColumn;
import org.eclipse.nebula.widgets.grid.GridItem;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;

import com.gx.obe.evaluation.step.inter.IDwgcDetail;
import com.gx.obe.util.utils.LogUtils;
import com.gx.obe.util.utils.ObjectUtils;
import com.gx.obe.web.entity.boq.ConstructProject;
import com.gx.obe.web.entity.boq.DayWorks;
import com.gx.obe.web.service.boq.DayWorksService;

/** 
 * @Description: 其他项目计日工明细
 * @author guoyr 
 */
public class OtherItemJrgComposite extends Composite implements IDwgcDetail{

	{
		LogUtils.logClass(OtherItemJrgComposite.class);
	}
	private Grid itemGrid;
	private DayWorksService dayWorksService = new DayWorksService();

	/**
	 * Create the composite.
	 * @param parent
	 * @param style
	 */
	public OtherItemJrgComposite(Composite parent, int style) {
		super(parent, style);
		GridLayout gridLayout = new GridLayout(1, false);
		gridLayout.marginHeight = 0;
		gridLayout.marginWidth = 0;
		setLayout(gridLayout);
		
		itemGrid = new Grid(this, SWT.H_SCROLL | SWT.V_SCROLL);
		itemGrid.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
		itemGrid.setHeaderVisible(true);
		
		GridColumn gridColumn = new GridColumn(itemGrid, SWT.NONE);
//		gridColumn.setShowTreeTogglePic(false);
		gridColumn.setTree(true);
		gridColumn.setText("序号");
		gridColumn.setWidth(60);
		gridColumn.setMaxmumWidth(60);
		
		GridColumn nameColumn = new GridColumn(itemGrid, SWT.NONE);
		nameColumn.setText("名称");
		nameColumn.setWidth(100);
		nameColumn.setWordWrap(true);
		
		GridColumn gridColumn_1 = new GridColumn(itemGrid, SWT.CENTER);
		gridColumn_1.setText("单位");
		gridColumn_1.setWidth(50);
		
		GridColumn countColumn = new GridColumn(itemGrid, SWT.RIGHT);
		countColumn.setText("数量");
		countColumn.setWidth(60);
		
		GridColumn djColumn = new GridColumn(itemGrid, SWT.RIGHT);
		djColumn.setText("单价");
		djColumn.setWidth(50);
		
		GridColumn gridColumn_2 = new GridColumn(itemGrid, SWT.RIGHT);
		gridColumn_2.setText("合价");
		gridColumn_2.setWidth(100);
		
		GridColumn gridColumn_3 = new GridColumn(itemGrid, SWT.NONE);
		gridColumn_3.setText("备注");
		gridColumn_3.setWidth(150);
		gridColumn_3.setWordWrap(true);
		
		GridItem gridItem = new GridItem(itemGrid, SWT.NONE);
		gridItem.setText("New Row");
		
		init();
	}
	
	/**
	 * @Description:  初始化界面
	 * @author guoyr
	 */
	private void init(){
		itemGrid.setItemHeight(25);
		itemGrid.setAutoHeight(true);
	}
	
	/**
	 * @Description:  刷新计日工
	 * @author guoyr
	 * @param xmlResolver
	 * @param dxgcCode
	 * @param dwgcCode
	 */
	public void refreshDetail(ConstructProject unitConstructProject){
		itemGrid.removeAll();
		if(null != unitConstructProject){
			
			// 在单位工程下获得计日工
			List<DayWorks> dayWorksList = dayWorksService.getDayWorksListByProjectId(unitConstructProject.getId());
//			GridItem zljeItem = new GridItem(itemGrid, SWT.NONE);
//			zljeItem.setImage(0, ResourceManager.getPluginImage(IconsActivator.PLUGIN_ID, "icons/sum.png"));
//			zljeItem.setText(1, "计日工合计");
			
			if(null != dayWorksList){
				
//				setRowContent(zljeItem, topDayWorks);
				// 获得计日工列表
//				List<DayWorks> dayWorksList = topDayWorks.getChildDayWorksList();
//				if(null != dayWorksList){
//					int zljezcIndex = 1;
					for(DayWorks dayWorks : dayWorksList){
						GridItem gridItem = new GridItem(itemGrid, SWT.NONE);
						gridItem.setText(0, ObjectUtils.getObjString(dayWorks.getOrdCode()));
						setRowContent(gridItem, dayWorks);
						initChildDayWorks(gridItem, dayWorks);
					}
//				}
			
			}
		}
	}
	
	/**
	 * @Description:  递归循环出计日工
	 * @author guoyr
	 * @param parentItem
	 * @param dayWorks
	 */
	private void initChildDayWorks(GridItem parentItem, DayWorks dayWorks){
		List<DayWorks> dayWorksList = dayWorks.getChildDayWorksList();
		if(null != dayWorksList && dayWorksList.size() > 0){
			parentItem.setExpanded(true);
			int index = 1;
			for(DayWorks childDayWorks : dayWorksList){
				GridItem gridItem = new GridItem(parentItem, SWT.NONE);
//				gridItem.setText(0, parentItem.getText(0)+"."+(index ++));
				gridItem.setText(0, (index ++)+"");
				setRowContent(gridItem, childDayWorks);
//				initChildDayWorks(gridItem, childDayWorks);
			}
		}
	}
	
	/**
	 * @Description:  设置每行的内容
	 * @author guoyr
	 * @param gridItem
	 * @param dayWorks
	 */
	private void setRowContent(GridItem gridItem, DayWorks dayWorks){
		gridItem.setText(1,ObjectUtils.getObjString(dayWorks.getWorksName()));
		gridItem.setText(2,ObjectUtils.getObjString(dayWorks.getUnit()));
		gridItem.setText(3,ObjectUtils.getObjString(dayWorks.getQuantity()));
		gridItem.setText(4,ObjectUtils.getObjString(dayWorks.getPrice()));
		gridItem.setText(5,ObjectUtils.getObjString(dayWorks.getTotal()));
		gridItem.setText(6,ObjectUtils.getObjString(dayWorks.getRemark()));
	}
	
	public Composite getComposite(){
		return this;
	}
	protected void checkSubclass() {
	}
}
