package com.gx.obe.evaluation.step.dialog;

import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

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.core.CallBack;
import org.eclipse.swt.core.ImageResolver;
import org.eclipse.swt.core.MessageDialog;
import org.eclipse.swt.core.calendar.CalendarUtil;
import org.eclipse.swt.core.listener.LoadingAdatper;
import org.eclipse.swt.core.listener.PaintImageListener;
import org.eclipse.swt.core.utils.GridUtils;
import org.eclipse.swt.core.utils.WidgetUtils;
import org.eclipse.swt.core.widgets.EButton;
import org.eclipse.swt.core.widgets.EDialog;
import org.eclipse.swt.core.widgets.ELink;
import org.eclipse.swt.core.widgets.ESepator;
import org.eclipse.swt.custom.CLabel;
import org.eclipse.swt.events.DisposeEvent;
import org.eclipse.swt.events.DisposeListener;
import org.eclipse.swt.events.MouseAdapter;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;

import com.gx.obe.ColorConstants;
import com.gx.obe.business.entity.BidPriceRound;
import com.gx.obe.business.entity.MenuFunction;
import com.gx.obe.common.icons.IconsActivator;
import com.gx.obe.common.widget.dialog.BidPriceItemDialog;
import com.gx.obe.common.widget.shell.ProgressMessageDialog;
import com.gx.obe.common.widget.thread.SyncThread;
import com.gx.obe.common.widget.utils.MenuFunctionUtils;
import com.gx.obe.components.core.Constants;
import com.gx.obe.components.core.enumeration.BidPriceEnum;
import com.gx.obe.config.ConfigConstants;
import com.gx.obe.config.utils.PropertiesUtils;
import com.gx.obe.evaluation.step.thread.ApplyReBidPriceThread;
import com.gx.obe.message.Messages;
import com.gx.obe.util.utils.DateUtils;
import com.gx.obe.util.utils.LogUtils;
import com.gx.obe.util.utils.NumericChineseUtils;
import com.gx.obe.util.utils.ObjectUtils;
import com.gx.obe.web.entity.Supplier;
import com.gx.obe.web.entity.evaluation.EvaluationStep;
import com.gx.obe.web.entity.price.BidPrice;
import com.gx.obe.web.entity.tender.TenderProjectEntity;
import com.gx.obe.web.entity.tender.TenderProjectRuleEntity;
import com.gx.obe.web.service.BidPriceService;
import com.gx.obe.web.service.SupplierService;
import com.gx.utils.NowTimeUtils;
import com.report.util.FreemarkerUtil;
import com.swtdesigner.ResourceManager;
import com.swtdesigner.SWTResourceManager;

/**
 * @Description: 启动新一轮报价
 * @author wangxiang
 */
public class ViewRiskSupplierDialog extends EDialog {
	private EButton save_btn;
	private ImageResolver imageResolver = new ImageResolver();
	private SupplierService supplierService = new SupplierService();
	private BidPriceService bidPriceService ;
	private TenderProjectEntity tenderProjectEntity;
	private Text stepMemoText;
	private Composite composite;
	private CLabel roundLabel;
	private Text timeText;
	private CallBack addCallBack;
	private Text roundName;
	private TenderProjectRuleEntity tenderProjectRuleEntity;
	private ELink addBidPriceItemBtn;
	private ELink delBidPriceItemBtn;
	private int newRound;
	private Grid itemListGrid;
	private List<BidPrice> bidPriceList;
	private int selectionIndex = 0;
	private BidPrice curBidPrice;
	private int intervalsTime;
	private MenuFunctionUtils menuFunctionUtils;
	private Grid supplierGrid;
	private List<Supplier> supplierList;
	private EvaluationStep evaluationStep;
	{
		LogUtils.logClass(ViewRiskSupplierDialog.class);
	}

	/**
	 * Create the dialog.
	 * @param parentShell
	 */
	public ViewRiskSupplierDialog(Shell parentShell, TenderProjectEntity tenderProjectEntity,TenderProjectRuleEntity tenderProjectRuleEntity, int newRound, MenuFunctionUtils menuFunctionUtils,EvaluationStep evaluationStep, CallBack callBack) {
		super(parentShell);
		setTitle("查看供应商风险信息");
		this.tenderProjectEntity = tenderProjectEntity;
		this.tenderProjectRuleEntity = tenderProjectRuleEntity;
		this.menuFunctionUtils = menuFunctionUtils;
		this.newRound = newRound;
		this.addCallBack = callBack;
		this.evaluationStep = evaluationStep;
	}

	/**
	 * Create contents of the dialog.
	 * @param parent
	 */
	@Override
	protected Control createDialogArea(Composite parent) {
		Composite topContainer = (Composite) super.createDialogArea(parent);
		topContainer.addDisposeListener(new DisposeListener() {
			public void widgetDisposed(DisposeEvent e) {
				imageResolver.disposite();
			}
		});
		
		return topContainer;
	}

	/**
	 * @Description: 初始化
	 * @author guoyr
	 */
	private void init(){
		
	}
	
	private void refreshSupplierList() {
 		
	
	}
	
	
	
	/**
	 * @Description: 取消
	 * @author guoyr
	 */
	private void cancelAction(){
		this.getShell().close();
	}

	public CallBack getCallBack() {
		return addCallBack;
	}

	public void setCallBack(CallBack callBack) {
		this.addCallBack = callBack;
	}

	/**
	 * Return the initial size of the dialog.
	 */
	@Override
	protected Point getInitialSize() {
		return new Point(650, 400);
	}
}