[GME-commit] GMESRC/GME/Search Input.cpp, 1.3, 1.4 Input.h, 1.2, 1.3 Search.odl, 1.3, 1.4 Search.rc, 1.12, 1.13 SearchAlg.cpp, 1.11, 1.12 SearchAlg.h, 1.7, 1.8 SearchCtl.cpp, 1.3, 1.4 SearchCtl.h, 1.4, 1.5 SearchDlg.cpp, 1.22, 1.23 SearchDlg.h, 1.11, 1.12 resource.h, 1.9, 1.10
Log messages of CVS commits
gme-commit at list.isis.vanderbilt.edu
Fri Apr 18 12:00:45 CDT 2008
- Previous message: [GME-commit] GMESRC/GME/XmlBackEnd/SVNCode Util.cpp,1.4,1.5
- Next message: [GME-commit] GMESRC/GME/Gme MainFrm.cpp, 1.43, 1.44 search.cpp, 1.1, 1.2 search.h, 1.2, 1.3 GMESearch.cpp, 1.9, 1.10 GMESearch.h, 1.6, 1.7 GMEBrowser.cpp, 1.32, 1.33 GMEBrowser.h, 1.13, 1.14
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /project/gme-repository/GMESRC/GME/Search
In directory escher:/tmp/cvs-serv6401
Modified Files:
Input.cpp Input.h Search.odl Search.rc SearchAlg.cpp
SearchAlg.h SearchCtl.cpp SearchCtl.h SearchDlg.cpp
SearchDlg.h resource.h
Log Message:
Capable of local search, based on the selected object collection in the Browser.
(The selected objects can be any type, not just containers, and will check property matches
also on non-container selections.)
CVS User: Zoltan Molnar, ISIS (zolmol)
Index: Input.h
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Search/Input.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** Input.h 4 Dec 2006 18:19:23 -0000 1.2
--- Input.h 18 Apr 2008 17:00:43 -0000 1.3
***************
*** 25,29 ****
void GetInput(CString name, CString role, CString kind, CString attrname, int attrtype,
CString attrval, BOOL spl, BOOL mod, BOOL atom, BOOL ref, BOOL set, BOOL full,
! IMgaFCO *root, int searchscope, BOOL caseMatch);
/// The name of the object the user is searching for.
--- 25,29 ----
void GetInput(CString name, CString role, CString kind, CString attrname, int attrtype,
CString attrval, BOOL spl, BOOL mod, BOOL atom, BOOL ref, BOOL set, BOOL full,
! IMgaFCO *root, int searchscope, BOOL caseMatch, BOOL bScopedSearch);
/// The name of the object the user is searching for.
***************
*** 55,66 ****
/// Where to start the search from.
! CComPtr<IMgaFCO> searchroot;
// int doReferenceSearch;
/// The variable used for determining the Search Type - Global(0) or Local(1)
! int doGlobalSearch;
/// Does the user want caseMatching search
BOOL getCaseIgnored;
};
--- 55,69 ----
/// Where to start the search from.
! //CComPtr<IMgaFCO> searchroot; // Looks Obsolete to me [Zolmol]
// int doReferenceSearch;
/// The variable used for determining the Search Type - Global(0) or Local(1)
! //int doGlobalSearch; // Looks Obsolete to me [Zolmol]
/// Does the user want caseMatching search
BOOL getCaseIgnored;
+
+ /// Is the search restricted to a scope?
+ BOOL doScopedSearch;
};
Index: SearchAlg.cpp
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Search/SearchAlg.cpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -d -r1.11 -r1.12
*** SearchAlg.cpp 4 Dec 2006 18:19:23 -0000 1.11
--- SearchAlg.cpp 18 Apr 2008 17:00:43 -0000 1.12
***************
*** 35,39 ****
// the main entry point for a search
! void CSearch::Search(IMgaFolder *root, IMgaFCO *selected, CComPtr<IMgaFCOs> disp, CProgressCtrl *Progress)
{
results = disp;
--- 35,39 ----
// the main entry point for a search
! void CSearch::Search(IMgaFolder *root, IMgaObjects* scopeColl, IMgaFCO *selected, CComPtr<IMgaFCOs> disp, CProgressCtrl *Progress)
{
results = disp;
***************
*** 46,50 ****
SearchReferences(selected);
}
! else
{
SearchFolderHierarchy(pRoot);
--- 46,86 ----
SearchReferences(selected);
}
! else if( filter.doScopedSearch && scopeColl)
! {
! CComPtr<IMgaFCOs> non_container_coll; // will store the Atoms, Refs and Sets
! non_container_coll.CoCreateInstance( L"Mga.MgaFCOs"); // which are not Fs and Ms
! long nExtra = 0; // how many are there in the above collection
!
! MGACOLL_ITERATE(IMgaObject, scopeColl)
! {
! CComPtr<IMgaObject> iter;
!
! objtype_enum type;
! COMTHROW( MGACOLL_ITER->get_ObjType( &type));
!
! switch( type) {
! case OBJTYPE_FOLDER: SearchFolderHierarchy( CComQIPtr<IMgaFolder>( MGACOLL_ITER));break;
! case OBJTYPE_MODEL: SearchModelHierarchy( CComQIPtr<IMgaModel>( MGACOLL_ITER));break;
! case OBJTYPE_SET:
! case OBJTYPE_ATOM:
! case OBJTYPE_REFERENCE:
! CComQIPtr<IMgaFCO> an_fco( MGACOLL_ITER);
! if( an_fco && non_container_coll)
! {
! non_container_coll->Append( an_fco);
! ++nExtra;
! }
! } // switch
! } MGACOLL_ITERATE_END;
!
! if( nExtra && non_container_coll) // if coll is non-zero and has elements inside
! {
! CheckAllReferences( non_container_coll); // deals with refs only
! CheckAllAtoms( non_container_coll); // ... atoms only
! CheckAllSets( non_container_coll); // ... sets only
! }
! non_container_coll.Release();
! }
! else
{
SearchFolderHierarchy(pRoot);
Index: SearchDlg.cpp
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Search/SearchDlg.cpp,v
retrieving revision 1.22
retrieving revision 1.23
diff -C2 -d -r1.22 -r1.23
*** SearchDlg.cpp 10 Apr 2008 22:32:38 -0000 1.22
--- SearchDlg.cpp 18 Apr 2008 17:00:43 -0000 1.23
***************
*** 21,24 ****
--- 21,25 ----
CSearchDlg::CSearchDlg()
+ : m_scopedCtrlEnabled( FALSE)
{
//{{AFX_DATA_INIT(CSearchDlg)
***************
*** 37,40 ****
--- 38,42 ----
m_chkLocate = FALSE;
m_chkMatchCase = TRUE;
+ m_chkScopedSearch = FALSE;
m_stcRef = _T("");
//}}AFX_DATA_INIT
***************
*** 52,55 ****
--- 54,58 ----
DDX_Control(pDX, IDC_CHECK_LOCATE, m_chkLocateCtrl);
DDX_Control(pDX, IDC_CHECK_CASESENS, m_chkMatchCaseCtrl);
+ DDX_Control(pDX, IDC_CHECK_SCOPED, m_chkScopedSearchCtrl);
DDX_Control(pDX, IDC_CHECKFULLWORD, m_chkFullWordCtrl);
DDX_Control(pDX, IDC_EDITNAME, m_edtNameCtrl);
***************
*** 82,85 ****
--- 85,89 ----
DDX_Check(pDX, IDC_CHECK_LOCATE, m_chkLocate);
DDX_Check(pDX, IDC_CHECK_CASESENS, m_chkMatchCase);
+ DDX_Check(pDX, IDC_CHECK_SCOPED, m_chkScopedSearch);
DDX_Text(pDX, IDC_STATICREF, m_stcRef);
//}}AFX_DATA_MAP
***************
*** 103,110 ****
--- 107,126 ----
END_MESSAGE_MAP()
+ void CSearchDlg::EnableScoped( BOOL enabled)
+ {
+ m_scopedCtrlEnabled = enabled;
+ if( m_chkScopedSearchCtrl.GetSafeHwnd())
+ {
+ m_chkScopedSearchCtrl.SetCheck( BST_UNCHECKED);
+ m_chkScopedSearchCtrl.EnableWindow( m_scopedCtrlEnabled);
+ }
+ }
+
BOOL CSearchDlg::OnInitDialog()
{
CDialog::OnInitDialog();
//EnableSplSearch();
+ m_chkScopedSearchCtrl.EnableWindow( m_scopedCtrlEnabled);
+
m_lstResults.InsertColumn(1, "Object", LVCFMT_LEFT, 100, 1);
m_lstResults.InsertColumn(2, "Path", LVCFMT_LEFT, 210, 2);
***************
*** 244,247 ****
--- 260,264 ----
TheCtrl->BeginTransaction();
+ CComPtr<IMgaObjects> ccpObjectsInTerr = TheCtrl->PutInMyTerritory( TheCtrl->GetScopedL());
//the CInput class is a legacy from the Search Add-on
***************
*** 252,261 ****
CInput inp;
inp.GetInput(m_edtName,m_edtRoleName,m_edtKindName,m_edtAttrName,m_cmbCtrl.GetCurSel(),m_edtAttrValue,
! m_chkSplSearch,m_chkMod,m_chkAtom,m_chkRef,m_chkSet,m_chkFullWord,NULL,0,m_chkMatchCase);
CSearch searchGME(inp);
! searchGME.Search(rootInput,specialSearchFCO,results,&m_pgsSearch);
// AfxMessageBox("Finished Searching");
--- 269,278 ----
CInput inp;
inp.GetInput(m_edtName,m_edtRoleName,m_edtKindName,m_edtAttrName,m_cmbCtrl.GetCurSel(),m_edtAttrValue,
! m_chkSplSearch,m_chkMod,m_chkAtom,m_chkRef,m_chkSet,m_chkFullWord,NULL,0,m_chkMatchCase,m_chkScopedSearch);
CSearch searchGME(inp);
! searchGME.Search(rootInput, ccpObjectsInTerr, specialSearchFCO,results,&m_pgsSearch);
// AfxMessageBox("Finished Searching");
Index: resource.h
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Search/resource.h,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** resource.h 2 May 2006 22:05:59 -0000 1.9
--- resource.h 18 Apr 2008 17:00:43 -0000 1.10
***************
*** 40,43 ****
--- 40,44 ----
#define IDC_CHECK_LOCATE 229
#define IDC_CHECK_CASESENS 230
+ #define IDC_CHECK_SCOPED 231
// Next default values for new objects
Index: SearchCtl.cpp
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Search/SearchCtl.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** SearchCtl.cpp 2 May 2006 22:05:59 -0000 1.3
--- SearchCtl.cpp 18 Apr 2008 17:00:43 -0000 1.4
***************
*** 37,40 ****
--- 37,41 ----
//}}AFX_DISPATCH_MAP
DISP_FUNCTION_ID(CSearchCtrl, "AboutBox", DISPID_ABOUTBOX, AboutBox, VT_EMPTY, VTS_NONE)
+ DISP_FUNCTION_ID(CSearchCtrl, "SelMgaObjects", dispidSelMgaObjects, SelMgaObjects, VT_EMPTY, VTS_UNKNOWN)
END_DISPATCH_MAP()
***************
*** 448,451 ****
--- 449,482 ----
}
+ CComPtr<IMgaTerritory> CSearchCtrl::Terr()
+ {
+ return m_territory;
+ }
+
+ // needs to be called in a transaction
+ CComPtr<IMgaObjects> CSearchCtrl::PutInMyTerritory(CComPtr<IMgaObjects> &p_inColl)
+ {
+ CComPtr<IMgaObjects> coll_in_active_terr;
+ coll_in_active_terr.CoCreateInstance( L"Mga.MgaObjects");
+
+ long c = 0;
+ if( p_inColl) p_inColl->get_Count( &c);
+
+ // nothing to copy? no territory? failed to create out coll? or no transaction active?
+ if( c > 0 && m_territory && coll_in_active_terr && m_transactionCnt > 0)
+ {
+ for( long i = 1; i <= c; ++i) // for all items in coll
+ {
+ CComPtr<IMgaObject> obj, item;
+ p_inColl->get_Item( i, &item);
+
+ m_territory->OpenObj( item, &obj); // puts in our territory
+ coll_in_active_terr->Append( obj);
+ }
+ }
+
+ return coll_in_active_terr;
+ }
+
void CSearchCtrl::ClickOnObject(CComPtr<IMgaObject> object)
{
***************
*** 484,486 ****
--- 515,540 ----
AbortTransaction();
}
+ }
+
+ void CSearchCtrl::SelMgaObjects(IUnknown* p_selMgaObjs)
+ {
+ AFX_MANAGE_STATE(AfxGetStaticModuleState());
+
+ if (p_selMgaObjs != NULL) {
+ CComQIPtr<IMgaObjects> ccpMgaObjects( p_selMgaObjs);
+ if (ccpMgaObjects == NULL)
+ {
+ ThrowError(CTL_E_INVALIDPROPERTYVALUE, _T("Unable to cast MgaObjects."));
+ m_searchDlg.EnableScoped( FALSE);
+ return;
+ }
+
+ m_MgaObjs = ccpMgaObjects;
+ m_searchDlg.EnableScoped( TRUE);
+ }
+ else { // called when Dlg is Hidden, in order to release the Mga ptrs
+ m_MgaObjs.Release();
+ m_searchDlg.EnableScoped( FALSE);
+ }
+ //SetModifiedFlag();
}
Index: SearchCtl.h
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Search/SearchCtl.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** SearchCtl.h 2 May 2006 22:05:59 -0000 1.4
--- SearchCtl.h 18 Apr 2008 17:00:43 -0000 1.5
***************
*** 38,44 ****
--- 38,47 ----
public: //there is a "protected:" in the AFX section above..
CComPtr<IMgaProject> GetProject() { return m_project; }
+ CComPtr<IMgaObjects> GetScopedL() { return m_MgaObjs; }
void BeginTransaction();
void CommitTransaction();
void AbortTransaction();
+ CComPtr<IMgaTerritory> Terr();
+ CComPtr<IMgaObjects> PutInMyTerritory(CComPtr<IMgaObjects> &in_coll);
void ClickOnObject(CComPtr<IMgaObject> object);
void DblClickOnObject(CComPtr<IMgaObject> object);
***************
*** 59,62 ****
--- 62,66 ----
CComPtr<IMgaTerritory> m_territory;
CComPtr<IMgaProject> m_project;
+ CComPtr<IMgaObjects> m_MgaObjs;
// Message maps
***************
*** 109,112 ****
--- 113,117 ----
dispidMgaProject = 1L,
dispidOpenProject = 2L,
+ dispidSelMgaObjects = 3L,
eventidClickMgaObject = 1L,
eventidDblClickMgaObject = 2L,
***************
*** 120,123 ****
--- 125,130 ----
int m_transactionCnt;
bool m_inEventTransactionMode;
+ protected:
+ void SelMgaObjects(IUnknown* p_selMgaObjs);
};
Index: Search.rc
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Search/Search.rc,v
retrieving revision 1.12
retrieving revision 1.13
diff -C2 -d -r1.12 -r1.13
*** Search.rc 4 Dec 2006 18:19:23 -0000 1.12
--- Search.rc 18 Apr 2008 17:00:43 -0000 1.13
***************
*** 169,172 ****
--- 169,174 ----
CONTROL "Progress1",IDC_PROGRESSSEARCH,"msctls_progress32",NOT
WS_VISIBLE | WS_BORDER,16,162,199,20
+ CONTROL "Scoped Search",IDC_CHECK_SCOPED,"Button",
+ BS_AUTOCHECKBOX | WS_TABSTOP,161,115,65,10
END
Index: SearchAlg.h
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Search/SearchAlg.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** SearchAlg.h 1 Apr 2003 19:26:35 -0000 1.7
--- SearchAlg.h 18 Apr 2008 17:00:43 -0000 1.8
***************
*** 31,34 ****
--- 31,35 ----
*
* \param root : The project root folder, for a global search.
+ * \param scope : The collection of containers (if any) where local search should be performed
* \param selected : The selected object, for a reference search.
* \param disp : An empty list that will be used to store the results.
***************
*** 37,41 ****
*
*/
! void Search(IMgaFolder *root, IMgaFCO *selected, CComPtr<IMgaFCOs> disp, CProgressCtrl *Progress);
--- 38,42 ----
*
*/
! void Search(IMgaFolder *root, IMgaObjects* scope, IMgaFCO *selected, CComPtr<IMgaFCOs> disp, CProgressCtrl *Progress);
Index: Search.odl
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Search/Search.odl,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** Search.odl 2 May 2006 22:05:59 -0000 1.3
--- Search.odl 18 Apr 2008 17:00:43 -0000 1.4
***************
*** 35,38 ****
--- 35,40 ----
//{{AFX_ODL_METHOD(CSearchCtrl)
[id(2)] void OpenProject(BSTR connStr);
+ [id(3), helpstring("method for letting the Search component know, which objects are selected in the Tree Browser")]
+ void SelMgaObjects(IUnknown* p_selMgaObjs);
//}}AFX_ODL_METHOD
Index: Input.cpp
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Search/Input.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** Input.cpp 4 Dec 2006 18:19:23 -0000 1.3
--- Input.cpp 18 Apr 2008 17:00:43 -0000 1.4
***************
*** 32,37 ****
void CInput::GetInput(CString name, CString role, CString kind, CString attrname, int attrtype,
CString attrval, BOOL spl, BOOL mod, BOOL atom, BOOL ref, BOOL set, BOOL full,
! IMgaFCO *root, int searchscope, BOOL bMatchCase)
{
getCaseIgnored = !bMatchCase;
if( getCaseIgnored)
--- 32,40 ----
void CInput::GetInput(CString name, CString role, CString kind, CString attrname, int attrtype,
CString attrval, BOOL spl, BOOL mod, BOOL atom, BOOL ref, BOOL set, BOOL full,
! IMgaFCO*, int, //WAS: IMgaFCO *root, int searchscope,
! BOOL bMatchCase, BOOL bScopedSearch)
{
+ doScopedSearch = bScopedSearch;
+
getCaseIgnored = !bMatchCase;
if( getCaseIgnored)
***************
*** 136,143 ****
getSets = set;
! searchroot = root;
// doReferenceSearch = searchtype;
! doGlobalSearch = searchscope;
}
--- 139,146 ----
getSets = set;
! // searchroot = root;// looks obsolete to me, replaced by doScopedSearch [zolmol]
// doReferenceSearch = searchtype;
! // doGlobalSearch = searchscope; // looks obsolete to me, replaced by doScopedSearch [zolmol]
}
Index: SearchDlg.h
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Search/SearchDlg.h,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -d -r1.11 -r1.12
*** SearchDlg.h 4 Dec 2006 18:19:23 -0000 1.11
--- SearchDlg.h 18 Apr 2008 17:00:43 -0000 1.12
***************
*** 32,35 ****
--- 32,36 ----
void EnableSearch(); // enable search functions
void DisableSearch(); // must disable search functions
+ void EnableScoped( BOOL enable);
inline CSearchCtrl* getMyParent() { return GetCtrl(); }
***************
*** 59,62 ****
--- 60,64 ----
BOOL m_chkLocate;
BOOL m_chkMatchCase;
+ BOOL m_chkScopedSearch;
CString m_stcRef;
***************
*** 64,67 ****
--- 66,70 ----
CMButton m_chkLocateCtrl;
CMButton m_chkMatchCaseCtrl;
+ CMButton m_chkScopedSearchCtrl;
CMButton m_chkFullWordCtrl;
CMButton m_chkRefCtrl;
***************
*** 100,103 ****
--- 103,108 ----
CComPtr<IMgaFCOs> results;
CComPtr<IMgaFCO> specialSearchFCO;
+
+ BOOL m_scopedCtrlEnabled; // whether to enable scoped search at all
- Previous message: [GME-commit] GMESRC/GME/XmlBackEnd/SVNCode Util.cpp,1.4,1.5
- Next message: [GME-commit] GMESRC/GME/Gme MainFrm.cpp, 1.43, 1.44 search.cpp, 1.1, 1.2 search.h, 1.2, 1.3 GMESearch.cpp, 1.9, 1.10 GMESearch.h, 1.6, 1.7 GMEBrowser.cpp, 1.32, 1.33 GMEBrowser.h, 1.13, 1.14
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the GME-commit
mailing list