// PA_EdIR_DiagReplace.cpp : implementation file // #include "stdafx.h" //#include "edir.h" #include "EdIRReplce.hpp" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif #include "ITF/FrmGest.hpp" ///////////////////////////////////////////////////////////////////////////// // CPA_EdIR_DiagReplace dialog CPA_EdIR_DiagReplace::CPA_EdIR_DiagReplace(CPA_EdIR_EditCtrl *EditCtrl ,CWnd* pParent /*=NULL*/) : CDialog(CPA_EdIR_DiagReplace::IDD, &g_oBaseFrame) { m_EditCtrl = EditCtrl; m_EditCtrl->m_fnSetSelectAString(FALSE); m_bFirst = TRUE; //{{AFX_DATA_INIT(CPA_EdIR_DiagReplace) m_bCaseSensitive = FALSE; m_bAllAi = FALSE; //}}AFX_DATA_INIT m_DiagView = ((CPA_EdIR_Frame*)(m_EditCtrl->GetParentFrame()))->m_fn_pclGetDiagrammeView(); } void CPA_EdIR_DiagReplace::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CPA_EdIR_DiagReplace) DDX_Control(pDX, IDC_COMBO_REPLACE, m_replace); DDX_Control(pDX, IDC_COMBO_FIND, m_find); DDX_Check(pDX, IDC_CHECK_CASE_SENSITIVE, m_bCaseSensitive); DDX_Check(pDX, IDC_CHECK_ALL_AI, m_bAllAi); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CPA_EdIR_DiagReplace, CDialog) //{{AFX_MSG_MAP(CPA_EdIR_DiagReplace) ON_BN_CLICKED(IDC_BUTTON_FIND_NEXT, OnButtonFindNext) ON_BN_CLICKED(IDC_BUTTON_REPLACE, OnButtonReplace) ON_BN_CLICKED(IDC_BUTTON_REPLACE_ALL, OnButtonReplaceAll) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CPA_EdIR_DiagReplace message handlers void CPA_EdIR_DiagReplace::OnButtonFindNext() { UpdateData(TRUE); CString csText1; m_find.GetWindowText(csText1); CString csText2; m_replace.GetWindowText(csText2); m_EditCtrl->m_bSearchIsFinished=FALSE; long l_SizeFind = csText1.GetLength(); long l_SizeReplace = csText2.GetLength(); long l_find; long iCount; long iActive; if (!fn_ExistFind(csText1)) m_find.InsertString(0,csText1); if (!fn_ExistReplace(csText2)) m_replace.InsertString(0,csText2); //Stefan Dumitrean 7-07-98 ( Find-Replace scroll ) // long index = m_EditCtrl->m_fn_lGetCurrentCharIndex(); long lStart, index; m_EditCtrl->GetSel( lStart, index ); //End Stefan Dumitrean 7-07-98 ( Find-Replace scroll ) if (m_bFirst) { l_find = m_EditCtrl->m_fn_lFindString(m_bCaseSensitive ,(index- l_SizeFind)>=0 ?index- l_SizeFind:0,csText1); m_bFirst=FALSE; } else l_find = m_EditCtrl->m_fn_lFindString(m_bCaseSensitive ,index ,csText1); if (l_find == -1) { if (m_EditCtrl->m_fnGetSelectAString()) { m_EditCtrl->m_fn_vColorText( m_EditCtrl->m_lFirstSelectIndex,m_EditCtrl->m_lLastSelectIndex,m_EditCtrl->col_last); } if (m_bAllAi) { iCount = m_DiagView->m_clBehaviourListBox.GetCount(); iActive = m_DiagView->m_clBehaviourListBox.GetCurSel(); if (iActive < iCount-1) { m_DiagView->m_clBehaviourListBox.SetCurSel(iActive+1); CPA_EdIR_Behaviour *pclBehaviour; pclBehaviour=(CPA_EdIR_Behaviour *)m_DiagView->m_clBehaviourListBox.GetItemDataPtr((m_DiagView->m_clBehaviourListBox).GetCurSel()); m_DiagView->m_fn_vOldActiveBehaviourHasChanged(pclBehaviour,FALSE); m_EditCtrl = &(m_DiagView->m_fn_pclGetActiveBehaviour())->m_clEditCtrl; m_EditCtrl->ShowWindow(TRUE); m_bFirst = TRUE; m_EditCtrl->m_fnSetSelectAString(FALSE); } } } else { //Stefan Dumitrean 6-07-98 ( Find-Replace scroll ) m_EditCtrl->HideSelection( FALSE, TRUE ); m_EditCtrl->SetSel( l_find, l_find + l_SizeFind ); // m_EditCtrl->m_fn_vSetCursorPos(l_find+l_SizeFind+1); //End Stefan Dumitrean 6-07-98 ( Find-Replace scroll ) } if (m_EditCtrl->m_bSearchIsFinished == TRUE) { AfxMessageBox("End of file" ); SetFocus(); } } void CPA_EdIR_DiagReplace::OnButtonReplace() { UpdateData(TRUE); CString csText1; m_find.GetWindowText(csText1); CString csText2; m_replace.GetWindowText(csText2); long lFind = csText1.GetLength(); long l_find ; long iCount; long iActive; m_EditCtrl->m_bSearchIsFinished = FALSE; if (!m_EditCtrl->m_fnGetSelectAString()) { long lCharIndex = m_EditCtrl->m_fn_lGetCurrentCharIndex(); long lFirst,lLast; m_EditCtrl->m_fn_csGetWordIn(lCharIndex , lFirst, lLast); l_find = m_EditCtrl->m_fn_lFindString(m_bCaseSensitive , lFirst ,csText1); if (l_find ==-1 && m_bAllAi) { iCount = m_DiagView->m_clBehaviourListBox.GetCount(); iActive = m_DiagView->m_clBehaviourListBox.GetCurSel(); if (iActive < iCount-1) { m_DiagView->m_clBehaviourListBox.SetCurSel(iActive+1); CPA_EdIR_Behaviour *pclBehaviour; pclBehaviour=(CPA_EdIR_Behaviour *)m_DiagView->m_clBehaviourListBox.GetItemDataPtr((m_DiagView->m_clBehaviourListBox).GetCurSel()); m_DiagView->m_fn_vOldActiveBehaviourHasChanged(pclBehaviour,FALSE); m_EditCtrl = &(m_DiagView->m_fn_pclGetActiveBehaviour())->m_clEditCtrl; m_EditCtrl->ShowWindow(TRUE); m_bFirst = TRUE; m_EditCtrl->m_fnSetSelectAString(FALSE); } } //Stefan Dumitrean 6-07-98 ( Find-Replace scroll ) else { m_EditCtrl->HideSelection( FALSE, TRUE ); m_EditCtrl->SetSel( l_find, l_find + lFind ); } //End Stefan Dumitrean 6-07-98 ( Find-Replace scroll ) } else { CString csText; m_EditCtrl->GetWindowText(csText); long l1 = m_EditCtrl->m_lFirstSelectIndex; long l2 = lFind; CString csReplaceString = csText.Mid(l1, l2); m_EditCtrl->m_fn_ReplaceString(m_EditCtrl->m_lLastSelectIndex, csReplaceString , csText2); l_find =m_EditCtrl->m_fn_lFindString(m_bCaseSensitive ,m_EditCtrl->m_lLastSelectIndex, csText1 ); //Stefan Dumitrean 6-07-98 ( Find-Replace scroll ) m_EditCtrl->HideSelection( FALSE, TRUE ); m_EditCtrl->SetSel( l_find, l_find + lFind ); // m_EditCtrl->m_fn_vSetCursorPos(l_find+lFind +1); //End Stefan Dumitrean 6-07-98 ( Find-Replace scroll ) } if (m_EditCtrl->m_bSearchIsFinished == TRUE) { AfxMessageBox("End of file" ); SetFocus(); } } void CPA_EdIR_DiagReplace::OnButtonReplaceAll() { int iCount; int iActiveBehaviour; HCURSOR hWaitCursor; HCURSOR hOldCursor; UpdateData(TRUE); CString csText1; m_find.GetWindowText(csText1); CString csText2; m_replace.GetWindowText(csText2); m_EditCtrl->m_bSearchIsFinished = FALSE; if(!m_bAllAi) { m_EditCtrl->m_fn_ReplaceAllString(m_bCaseSensitive ,0 , csText1 , csText2); } else { hWaitCursor = AfxGetApp()->LoadStandardCursor( IDC_WAIT ); hOldCursor = SetCursor( hWaitCursor ); iCount = m_DiagView->m_clBehaviourListBox.GetCount(); for (iActiveBehaviour=0;iActiveBehaviour<=iCount-1;iActiveBehaviour++) { m_DiagView->m_clBehaviourListBox.SetCurSel(iActiveBehaviour); CPA_EdIR_Behaviour *pclBehaviour; pclBehaviour=(CPA_EdIR_Behaviour *)m_DiagView->m_clBehaviourListBox.GetItemDataPtr((m_DiagView->m_clBehaviourListBox).GetCurSel()); m_DiagView->m_fn_vOldActiveBehaviourHasChanged(pclBehaviour,FALSE); m_EditCtrl = &(m_DiagView->m_fn_pclGetActiveBehaviour())->m_clEditCtrl; m_EditCtrl->m_fn_ReplaceAllString(m_bCaseSensitive ,0 , csText1 , csText2); } } SetCursor( hOldCursor ); if (m_EditCtrl->m_bSearchIsFinished == TRUE) AfxMessageBox("End of file" ); SetFocus(); } BOOL CPA_EdIR_DiagReplace::OnInitDialog() { CDialog::OnInitDialog(); GetDlgItem(IDC_COMBO_FIND)->SetFocus(); FILE *File1; FILE *File2; char text[512]; File1=fopen("\\cpa\\tempgrp\\tia\\ListAIFind.lst","r") ; if(File1) { fscanf(File1, "%s" , text); if (feof(File1)) { } else { while(!feof(File1)) { if (text !="\n") m_find.AddString(text); fscanf(File1, "%s" , text); } } fclose(File1); } File2=fopen("\\cpa\\tempgrp\\tia\\ListAIReplace.lst","r") ; if(File2) { fscanf(File2, "%s" , text); if (feof(File2)) { } else { while(!feof(File2)) { if (text !="\n") m_replace.AddString(text); fscanf(File2, "%s" , text); } } fclose(File2); } long first , last; CString cs_actual; cs_actual = m_EditCtrl->m_fn_csGetWordIn(m_EditCtrl->m_fn_lGetCurrentCharIndex(),first , last); m_find.InsertString(-1 , cs_actual); m_find.SelectString(-1,cs_actual); return TRUE; } BOOL CPA_EdIR_DiagReplace::DestroyWindow() { FILE *File1; FILE *File2; char text[512]; int i; m_EditCtrl->m_lFirstSelectIndex=0; m_EditCtrl->m_lLastSelectIndex=0; if(File1=fopen("\\cpa\\tempgrp\\tia\\ListAIFind.lst","w")) { for (i=0;iRestoreCol(); return CDialog::DestroyWindow(); } BOOL CPA_EdIR_DiagReplace::fn_ExistFind(CString search) { UpdateData(TRUE); int i; char text[300]; for (i=0;iRestoreCol(); CDialog::OnCancel(); }