package com.gx.tools.ole.signature;

import java.util.List;

import org.eclipse.swt.SWT;
import org.eclipse.swt.core.widgets.EDialog;
import org.eclipse.swt.core.widgets.ESepator;
import org.eclipse.swt.events.MouseAdapter;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.layout.FillLayout;
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.Shell;

import com.gx.obe.business.enumeration.UserEnum;
import com.gx.obe.components.core.enumeration.CommonEnum;
import com.gx.obe.config.ConfigConstants;
import com.gx.obe.config.utils.PropertiesUtils;
import com.gx.obe.message.Messages;
import com.gx.obe.util.utils.LogUtils;
import com.gx.obe.util.utils.ScreenUtils;
import com.gx.obe.web.entity.expert.Expert;
import com.gx.obe.web.entity.tender.TenderProjectEntity;
import com.gx.obe.web.service.expert.ExpertService;
import com.swtdesigner.ResourceManager;

/** 
 * @Description: 流转签章
 * @author guoyr 
 */
public class ManagerBacthSignatureDialog extends EDialog {

	private TenderProjectEntity tenderProject;
	private Composite container;
	private ExpertService expertService = new ExpertService();
	private Composite composite;
	private ExpertBatchSignatureComposite expertBatchSignatureComposite;
//	private UserInfoButton userInfoButton;
	{
		LogUtils.logClass(ManagerBacthSignatureDialog.class);
	}
	
	/** 
	 * @author guoyr
	 * @param parentShell
	 * @param tenderProjectEntity
	 * @param templateType 
	 */
	public ManagerBacthSignatureDialog(Shell parentShell, TenderProjectEntity tenderProjectEntity) {
		super(parentShell);
		setTitle(Messages.Button_scanSignatrue);
		this.tenderProject = tenderProjectEntity;
	}

	/**
	 * @Description: 
	 * @author guoyr
	 * @param parent
	 * @return 
	 */
	@Override
	protected Control createDialogArea(Composite parent) {
		container = (Composite) super.createDialogArea(parent);
		GridLayout gl_container = new GridLayout(1, false);
		container.setLayout(gl_container);
		
		composite = new Composite(container, SWT.NONE);
		GridLayout gl_composite = new GridLayout(10, false);
		gl_composite.horizontalSpacing = 20;
		gl_composite.verticalSpacing = 10;
		gl_composite.marginRight = 50;
		gl_composite.marginLeft = 50;
		composite.setLayout(gl_composite);
		composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1));
		ESepator sep = new ESepator(container, SWT.NONE);
		sep.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1));
		
		Composite composite_1 = new Composite(container, SWT.NONE);
		composite_1.setLayout(new FillLayout(SWT.HORIZONTAL));
		composite_1.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
		
		expertBatchSignatureComposite = new ExpertBatchSignatureComposite(composite_1, SWT.NONE);
		init();
		return container;
	}
	
	/**
	 * 初始化数据
	 */
	private void init(){
		container.setData("dialog", "true");
		List<Expert> expertList = expertService.getExpertListByTenderId(tenderProject.getId());
		int index = 0;
		if(null != expertList && expertList.size() > 0) {
			for(final Expert expert : expertList) {
				SignInfoButton imageButton = new SignInfoButton(composite, SWT.NONE);
				imageButton.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1));
				boolean managerIsFemale = null != expert.getUser() && UserEnum.FEMALE.equals(expert.getUser().getGender());
				if(managerIsFemale) {
					imageButton.setImage(ResourceManager.getPluginImage("com.gx.obe.common.icons", "icons/female_48.png"));
				}else {
					imageButton.setImage(ResourceManager.getPluginImage("com.gx.obe.common.icons", "icons/male_48.png"));
				}
//				if(managerIsFemale) {
				imageButton.setText(expert.getUser().getUserName());
				imageButton.addMouseListener(new MouseAdapter() {
					public void mouseUp(MouseEvent e) {
						expertBatchSignatureComposite.refreshSignatureFiles(tenderProject, expert.getUser(), expert);
						System.out.println("专家点击进入" + expert.getUser().getUserName());
					}
				});
//				默认选中第一个
				if(index == 0) {
					expertBatchSignatureComposite.refreshSignatureFiles(tenderProject, expert.getUser(), expert);
				}
				index ++;
			}
			
		}
	}
	
	/**
	 * Return the initial size of the dialog.
	 */
	@Override
	protected Point getInitialSize() {
		ScreenUtils  util = new ScreenUtils();
		int screenHight = util.getScreenHight() - util.getTaskBarHight();
		if(PropertiesUtils.getProperty(ConfigConstants.EVAL_FULL_SCREEN, "00").equals(CommonEnum.YES)) {
			screenHight = util.getScreenHight();
		}
		return new Point(util.getScreenWight(),screenHight);
//		return new Point(840, 616);
	}
}