void CStripsWindow::ShowData()
{
	m_wndList.DeleteAllItems();

	for ( int i = 0; i < m_pController->GetStripCount(); ++i )
	{
		CStrip* pStrip = m_pController->GetStrip(i);

		CString str;

		LVITEM lvItem;

		lvItem.mask     = LVIF_TEXT | LVIF_PARAM;
		lvItem.iSubItem = 0;
		lvItem.iItem    = i;
		lvItem.lParam	= (LPARAM) pStrip;

		str = pStrip->GetStripId();
		lvItem.pszText  = str.GetBuffer();

		str.ReleaseBuffer();
		
		m_wndList.InsertItem(&lvItem);

		str = GetDateString(pStrip).Left(17);
		m_wndList.SetItemText(i, 1, str);

		if ( pStrip->GetSetupData() )
		{
			CSetupData* pData = pStrip->GetSetupData();

			CStandPass* pLastPass = pData->GetPass(pData->GetPassCount() - 1);

			str.Format(_T("%.2lf"), pLastPass->GetExitThickness() * 1e3);
			m_wndList.SetItemText(i, 2, str);

			str.Format(_T("%.0lf"), pLastPass->GetExitWidth() * 1e3);
			m_wndList.SetItemText(i, 3, str);
		}
	}

	/*if ( m_pController->GetActiveStripIndex() < 0 )
		m_pController->SetActiveStripIndex(0);*/

	m_wndList.SetFocus();
	m_wndList.SetSelectionMark( m_pController->GetActiveStripIndex() );
	m_wndList.SetItemState( m_pController->GetActiveStripIndex(), LVIS_SELECTED, LVIS_SELECTED );
	m_wndList.SetItemState( m_pController->GetActiveStripIndex(), LVIS_FOCUSED, LVIS_FOCUSED );

}

void CStripsWindow::OnClickList(NMHDR* pNMHDR, LRESULT* pResult)
{
	CMainFrame* pMainFrame = (CMainFrame*) GetParentFrame();

	int nSel = m_wndList.GetSelectionMark();

	if ( nSel == -1 )
		pMainFrame->UpdateViews();
	else
	{
		m_pController->SetActiveStripIndex(nSel);

		CStrip* pStrip = m_pController->GetActiveStrip();

		if ( m_pController != NULL && pStrip && pStrip->GetSetupData() )
		{
			if ( m_pController->GetActiveMillPassIndex() >= (pStrip->GetSetupData()->GetPassCount() / 2) ||
				 m_pController->GetActiveMillPassIndex() < 0 )
				pMainFrame->SetActiveMillPassIndex( pStrip->GetMillPassMaxCount() - 1 );
			else
				pMainFrame->SetActiveMillPassIndex( m_pController->GetActiveMillPassIndex() - 1 );
		}
		else
		if ( m_pController != NULL && pStrip && pStrip->GetMeasuredData() )
		{
			CMeasuredData* pData = pStrip->GetMeasuredData();

			int nIndex = 0;
			for ( auto pass : pData->GetAllMillPasses() )
			{
				if ( m_pController->GetActiveMillPassIndex() == pass.first )
					break;

				nIndex++;
			}
			
			if ( nIndex == pData->GetAllMillPasses().size() )
				pMainFrame->SetActiveMillPassIndex(-1);
			else
				pMainFrame->SetActiveMillPassIndex(nIndex);

		}
		else
			pMainFrame->SetActiveMillPassIndex(-1);

			
		m_pController->SetActivePassIndex(0);

		pMainFrame->SetStripSizeChanged(true);

		pMainFrame->UpdateViewsStripSelectionChange();
	}
}