|
From: <got...@us...> - 2010-01-10 14:47:42
|
Revision: 546
http://scstudio.svn.sourceforge.net/scstudio/?rev=546&view=rev
Author: gotthardp
Date: 2010-01-10 14:47:31 +0000 (Sun, 10 Jan 2010)
Log Message:
-----------
Membership integrated with Visio add-on.
Modified Paths:
--------------
trunk/src/data/CMakeLists.txt
trunk/src/membership/CMakeLists.txt
trunk/src/membership/membership_alg.cpp
trunk/src/membership/membership_alg.h
trunk/src/view/visio/addon/aboutdlg.h
trunk/src/view/visio/addon/addon.cpp
trunk/src/view/visio/addon/addon.h
trunk/src/view/visio/addon/dllmodule.cpp
trunk/src/view/visio/addon/dllmodule.h
trunk/src/view/visio/addon/dllmodule.rc
trunk/src/view/visio/addon/document.cpp
trunk/src/view/visio/addon/document.h
trunk/src/view/visio/addon/errors.cpp
trunk/src/view/visio/addon/errors.h
trunk/src/view/visio/addon/eventsink.idl
trunk/src/view/visio/addon/extract.cpp
trunk/src/view/visio/addon/extract.h
trunk/src/view/visio/addon/optionsdlg.cpp
trunk/src/view/visio/addon/optionsdlg.h
trunk/src/view/visio/addon/reportview.cpp
trunk/src/view/visio/addon/reportview.h
trunk/src/view/visio/addon/resource.h
trunk/src/view/visio/addon/scstudio.vcproj
trunk/src/view/visio/addon/visualize.cpp
trunk/src/view/visio/addon/visualize.h
trunk/src/view/visio/scstudio.nsi
trunk/tests/membership/CMakeLists.txt
trunk/tests/membership/membership_test.cpp
Added Paths:
-----------
trunk/src/data/searcher.h
trunk/src/membership/module.cpp
trunk/src/view/visio/addon/finddlg.cpp
trunk/src/view/visio/addon/finddlg.h
Modified: trunk/src/data/CMakeLists.txt
===================================================================
--- trunk/src/data/CMakeLists.txt 2010-01-08 12:30:49 UTC (rev 545)
+++ trunk/src/data/CMakeLists.txt 2010-01-10 14:47:31 UTC (rev 546)
@@ -14,6 +14,7 @@
prerequisite_check.h
formatter.h
checker.h
+ searcher.h
transformer.h
session_attribute.cpp
session_attribute.h
Added: trunk/src/data/searcher.h
===================================================================
--- trunk/src/data/searcher.h (rev 0)
+++ trunk/src/data/searcher.h 2010-01-10 14:47:31 UTC (rev 546)
@@ -0,0 +1,48 @@
+/*
+ * scstudio - Sequence Chart Studio
+ * http://scstudio.sourceforge.net
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * Copyright (c) 2009 Petr Gotthard <pet...@ce...>
+ *
+ * $Id$
+ */
+
+#ifndef _SEARCHER_H
+#define _SEARCHER_H
+
+#include <boost/shared_ptr.hpp>
+
+#include "data/msc.h"
+#include "data/reporter.h"
+
+#if defined(_MSC_VER)
+// FIXME: to be removed once the Searcher has some implementation in a .cpp file
+#pragma warning(disable: 4275)
+#endif
+
+class Searcher : public Reporter
+{
+public:
+ virtual ~Searcher() {}
+
+ //! Find the first occurence of needle in haystack.
+ virtual MscPtr find(MscPtr haystack, MscPtr needle) = 0;
+};
+
+typedef boost::shared_ptr<Searcher> SearcherPtr;
+
+//! module initialization function
+typedef Searcher* (*FInitMembership)();
+
+#endif /* _SEARCHER_H */
+
+// $Id$
Property changes on: trunk/src/data/searcher.h
___________________________________________________________________
Added: svn:keywords
+ Id
Added: svn:eol-style
+ native
Modified: trunk/src/membership/CMakeLists.txt
===================================================================
--- trunk/src/membership/CMakeLists.txt 2010-01-08 12:30:49 UTC (rev 545)
+++ trunk/src/membership/CMakeLists.txt 2010-01-10 14:47:31 UTC (rev 546)
@@ -1,5 +1,6 @@
ADD_LIBRARY(scmembership SHARED
export.h
+ module.cpp
membership_alg.cpp
membership_alg.h
)
Modified: trunk/src/membership/membership_alg.cpp
===================================================================
--- trunk/src/membership/membership_alg.cpp 2010-01-08 12:30:49 UTC (rev 545)
+++ trunk/src/membership/membership_alg.cpp 2010-01-10 14:47:31 UTC (rev 546)
@@ -51,10 +51,18 @@
return result;
}
-HMscPtr MembershipAlg::find(MscPtr msc, BMscPtr bmsc_f)
+MscPtr MembershipAlg::find(MscPtr msc, MscPtr bmsc)
{
HMscPtr hmsc = boost::dynamic_pointer_cast<HMsc > (msc);
+ BMscPtr bmsc_f = boost::dynamic_pointer_cast<BMsc>(bmsc);
+ if (bmsc_f == NULL)
+ {
+ print_report(RS_ERROR,
+ stringize() << "Searched flow must be a basic MSC.");
+ return NULL;
+ }
+
if (hmsc != NULL)
return search_hmsc(hmsc, bmsc_f);
else
Modified: trunk/src/membership/membership_alg.h
===================================================================
--- trunk/src/membership/membership_alg.h 2010-01-08 12:30:49 UTC (rev 545)
+++ trunk/src/membership/membership_alg.h 2010-01-10 14:47:31 UTC (rev 546)
@@ -19,7 +19,7 @@
#include <vector>
#include <string>
#include "data/msc.h"
-//#include "data/membership.h"
+#include "data/searcher.h"
#include "membership/export.h"
#include "check/pseudocode/msc_duplicators.h"
@@ -285,7 +285,7 @@
}
}
-class SCMEMBERSHIP_EXPORT MembershipAlg//: public Membership, public HMscMembership
+class SCMEMBERSHIP_EXPORT MembershipAlg: public Searcher
{
public:
@@ -312,7 +312,7 @@
/**
* Checks whether hmsc satisfy universal boundedness property.
*/
- HMscPtr find(MscPtr hmsc, BMscPtr bmsc);
+ virtual MscPtr find(MscPtr hmsc, MscPtr bmsc);
/**
* Cleans up no more needed attributes.
Added: trunk/src/membership/module.cpp
===================================================================
--- trunk/src/membership/module.cpp (rev 0)
+++ trunk/src/membership/module.cpp 2010-01-10 14:47:31 UTC (rev 546)
@@ -0,0 +1,30 @@
+/*
+ * scstudio - Sequence Chart Studio
+ * http://scstudio.sourceforge.net
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * Copyright (c) 2010 Petr Gotthard <pet...@ce...>
+ *
+ * $Id$
+ */
+
+#include "data/searcher.h"
+#include "membership/membership_alg.h"
+
+// module initialization function
+// note: the Visio add-on searches for a function of this name
+extern "C" SCMEMBERSHIP_EXPORT
+Searcher* init_membership()
+{
+ return new MembershipAlg();
+}
+
+// $Id$
Property changes on: trunk/src/membership/module.cpp
___________________________________________________________________
Added: svn:keywords
+ Id
Added: svn:eol-style
+ native
Modified: trunk/src/view/visio/addon/aboutdlg.h
===================================================================
--- trunk/src/view/visio/addon/aboutdlg.h 2010-01-08 12:30:49 UTC (rev 545)
+++ trunk/src/view/visio/addon/aboutdlg.h 2010-01-10 14:47:31 UTC (rev 546)
@@ -11,7 +11,7 @@
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
- * Copyright (c) 2007-2008 Petr Gotthard <pet...@ce...>
+ * Copyright (c) 2007-2010 Petr Gotthard <pet...@ce...>
*
* $Id$
*/
Modified: trunk/src/view/visio/addon/addon.cpp
===================================================================
--- trunk/src/view/visio/addon/addon.cpp 2010-01-08 12:30:49 UTC (rev 545)
+++ trunk/src/view/visio/addon/addon.cpp 2010-01-10 14:47:31 UTC (rev 546)
@@ -11,7 +11,7 @@
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
- * Copyright (c) 2007-2008 Petr Gotthard <pet...@ce...>
+ * Copyright (c) 2007-2010 Petr Gotthard <pet...@ce...>
*
* $Id$
*/
@@ -276,9 +276,12 @@
TRACE("CStudioAddon::Run() menu item 'Check--Drawing--Export'");
return pDocumentMonitor->OnMenuExport(vsoApp);
case 205:
+ TRACE("CStudioAddon::Run() menu item 'Check--Drawing--Find Flow'");
+ return pDocumentMonitor->OnMenuFindFlow(vsoApp);
+ case 206:
TRACE("CStudioAddon::Run() menu item 'Check--Drawing--Repaint'");
return pDocumentMonitor->OnMenuRepaint(vsoApp);
- case 206:
+ case 207:
TRACE("CStudioAddon::Run() menu item 'Check--Options'");
return DisplayOptions();
Modified: trunk/src/view/visio/addon/addon.h
===================================================================
--- trunk/src/view/visio/addon/addon.h 2010-01-08 12:30:49 UTC (rev 545)
+++ trunk/src/view/visio/addon/addon.h 2010-01-10 14:47:31 UTC (rev 546)
@@ -11,7 +11,7 @@
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
- * Copyright (c) 2007-2008 Petr Gotthard <pet...@ce...>
+ * Copyright (c) 2007-2010 Petr Gotthard <pet...@ce...>
*
* $Id$
*/
Modified: trunk/src/view/visio/addon/dllmodule.cpp
===================================================================
--- trunk/src/view/visio/addon/dllmodule.cpp 2010-01-08 12:30:49 UTC (rev 545)
+++ trunk/src/view/visio/addon/dllmodule.cpp 2010-01-10 14:47:31 UTC (rev 546)
@@ -11,7 +11,7 @@
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
- * Copyright (c) 2007-2008 Petr Gotthard <pet...@ce...>
+ * Copyright (c) 2007-2010 Petr Gotthard <pet...@ce...>
*
* $Id$
*/
Modified: trunk/src/view/visio/addon/dllmodule.h
===================================================================
--- trunk/src/view/visio/addon/dllmodule.h 2010-01-08 12:30:49 UTC (rev 545)
+++ trunk/src/view/visio/addon/dllmodule.h 2010-01-10 14:47:31 UTC (rev 546)
@@ -11,7 +11,7 @@
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
- * Copyright (c) 2007-2008 Petr Gotthard <pet...@ce...>
+ * Copyright (c) 2007-2010 Petr Gotthard <pet...@ce...>
*
* $Id$
*/
Modified: trunk/src/view/visio/addon/dllmodule.rc
===================================================================
--- trunk/src/view/visio/addon/dllmodule.rc 2010-01-08 12:30:49 UTC (rev 545)
+++ trunk/src/view/visio/addon/dllmodule.rc 2010-01-10 14:47:31 UTC (rev 546)
@@ -37,7 +37,7 @@
DEFPUSHBUTTON "&OK",IDOK,184,60,50,14
END
-IDD_OPTIONS DIALOGEX 0, 0, 205, 135
+IDD_OPTIONS DIALOGEX 0, 0, 200, 135
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Options"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
@@ -50,7 +50,20 @@
COMBOBOX IDC_OUTPUTLEVEL,5,118,130,61,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP
END
+IDD_FIND_FLOW DIALOGEX 0, 0, 275, 111
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
+CAPTION "Find"
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ DEFPUSHBUTTON "Start",IDOK,220,72,50,14
+ PUSHBUTTON "Cancel",IDCANCEL,220,92,50,14
+ LTEXT "Find flow",IDC_STATIC,5,5,100,8
+ CONTROL "",IDC_DRAWING1,"SysTreeView32",TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT | TVS_SHOWSELALWAYS | WS_BORDER | WS_HSCROLL | WS_TABSTOP,5,14,100,92
+ LTEXT "In drawing",IDC_STATIC,110,5,100,8
+ CONTROL "",IDC_DRAWING2,"SysTreeView32",TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT | TVS_SHOWSELALWAYS | WS_BORDER | WS_HSCROLL | WS_TABSTOP,110,14,100,92
+END
+
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
@@ -139,6 +152,14 @@
TOPMARGIN, 5
BOTTOMMARGIN, 130
END
+
+ IDD_FIND_FLOW, DIALOG
+ BEGIN
+ LEFTMARGIN, 5
+ RIGHTMARGIN, 270
+ TOPMARGIN, 5
+ BOTTOMMARGIN, 106
+ END
END
#endif // APSTUDIO_INVOKED
Modified: trunk/src/view/visio/addon/document.cpp
===================================================================
--- trunk/src/view/visio/addon/document.cpp 2010-01-08 12:30:49 UTC (rev 545)
+++ trunk/src/view/visio/addon/document.cpp 2010-01-10 14:47:31 UTC (rev 546)
@@ -11,7 +11,7 @@
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
- * Copyright (c) 2007-2008 Petr Gotthard <pet...@ce...>
+ * Copyright (c) 2007-2010 Petr Gotthard <pet...@ce...>
*
* $Id$
*/
@@ -23,6 +23,7 @@
#include "errors.h"
#include "extract.h"
#include "visualize.h"
+#include "finddlg.h"
#include "optionsdlg.h"
#include <fstream>
@@ -79,6 +80,7 @@
// terminate all module functions
m_formatters.clear();
m_checkers.clear();
+ m_membership = SearcherPtr(); // NULL
m_transformers.clear();
// close extension modules
for(std::vector<HINSTANCE>::const_iterator mpos = m_open_modules.begin();
@@ -193,10 +195,17 @@
continue;
}
- FInitFormatters init_formatters = (FInitFormatters)GetProcAddress(module, "init_formatters");
- FInitCheckers init_checkers = (FInitCheckers)GetProcAddress(module, "init_checkers");
- FInitTransformers init_transformers = (FInitTransformers)GetProcAddress(module, "init_transformers");
- if(init_formatters == NULL && init_checkers == NULL && init_transformers == NULL)
+ FInitFormatters init_formatters =
+ (FInitFormatters)GetProcAddress(module, "init_formatters");
+ FInitCheckers init_checkers =
+ (FInitCheckers)GetProcAddress(module, "init_checkers");
+ FInitMembership init_membership =
+ (FInitMembership)GetProcAddress(module, "init_membership");
+ FInitTransformers init_transformers =
+ (FInitTransformers)GetProcAddress(module, "init_transformers");
+
+ if(init_formatters == NULL && init_checkers == NULL
+ && init_membership == NULL && init_transformers == NULL)
{
DisplayException(m_vsoApp, basic_stringize<TCHAR>()
<< _T("Cannot open module '") << valData << _T("'"), MB_OK | MB_ICONEXCLAMATION);
@@ -234,6 +243,9 @@
delete[] checkers;
}
+ if(init_membership != NULL)
+ m_membership = boost::shared_ptr<Searcher>(init_membership());
+
if(init_transformers != NULL)
{
Transformer **transformers = init_transformers();
@@ -324,6 +336,11 @@
page = GetOrCreatePage(vsoDocument->Pages, vsoShape->Text);
// switch to the found page
m_vsoApp->ActiveWindow->Page = (IDispatch *)page;
+
+ // if the page is empty, set zoom to 100%
+ if (page->Shapes->Count == 0)
+ m_vsoApp->ActiveWindow->Zoom = 1;
+
return VAORC_SUCCESS;
}
@@ -391,11 +408,19 @@
menuItem32->Enabled = m_formatters.size() > 0;
Visio::IVMenuItemPtr menuItem33 = menuItem3->MenuItems->Add();
- menuItem33->Caption = "&Repaint";
+ menuItem33->Caption = "&Find Flow...";
menuItem33->AddOnName = ADDON_NAME;
menuItem33->AddOnArgs = "/event=205";
menuItem33->BeginGroup = true;
+ // enable only if membership is available
+ menuItem33->Enabled = m_membership != NULL;
+ Visio::IVMenuItemPtr menuItem34 = menuItem3->MenuItems->Add();
+ menuItem34->Caption = "&Repaint";
+ menuItem34->AddOnName = ADDON_NAME;
+ menuItem34->AddOnArgs = "/event=206";
+ menuItem34->BeginGroup = true;
+
for(TransformerPtrList::const_iterator tpos = m_transformers.begin();
tpos != m_transformers.end(); tpos++)
{
@@ -413,7 +438,7 @@
Visio::IVMenuItemPtr menuItem4 = menu->MenuItems->Add();
menuItem4->Caption = "&Options...";
menuItem4->AddOnName = ADDON_NAME;
- menuItem4->AddOnArgs = "/event=206";
+ menuItem4->AddOnArgs = "/event=207";
vsoDocument->SetCustomMenus(vsoMenus);
}
@@ -891,188 +916,94 @@
return result;
}
-std::wstring filter_to_wstring(const std::string& str)
+VAORC CDocumentMonitor::OnMenuImport(Visio::IVApplicationPtr vsoApp)
{
- std::wstring res;
+ // clear the verification report
+ m_reportView->Reset();
- const char *spos = str.data();
- size_t ssize = str.length();
- while(ssize > 0)
- {
- int inc;
- // this converts '@' to '\0'
- // note: this function is intended only for CFileDialog filter strings
- if(*spos == '\0' || *spos == '@')
- {
- res.push_back(wchar_t('\0'));
- inc = 1;
- }
- else
- {
- wchar_t wc;
- inc = mbtowc(&wc, spos, ssize);
- res.push_back(wc);
- }
+ char fileName[_MAX_PATH];
+ // ask user for the filename
+ if (GetInputFile(fileName) < 0)
+ return VAORC_FAILURE;
- spos += inc;
- ssize -= inc;
- }
- return res;
+ ImportFormatterPtr formatter = GetImportFormatter(fileName);
+ if(formatter == NULL)
+ return VAORC_FAILURE;
+
+ // import the drawing
+ ImportDocument(formatter, fileName);
+ return VAORC_SUCCESS;
}
-VAORC CDocumentMonitor::OnMenuImport(Visio::IVApplicationPtr vsoApp)
+VAORC CDocumentMonitor::OnMenuExport(Visio::IVApplicationPtr vsoApp)
{
// clear the verification report
m_reportView->Reset();
- std::string extension;
- std::stringstream filter;
+ char fileName[_MAX_PATH];
+ // ask user for the filename
+ if (GetOutputFile(fileName) < 0)
+ return VAORC_FAILURE;
- // construct the filter string
- // _T("Text Documents (*.txt)\0*.txt\0All Files (*.*)\0*.*\0")
- for(FormatterPtrList::const_iterator fpos = m_formatters.begin();
- fpos != m_formatters.end(); fpos++)
- {
- ImportFormatterPtr formatter = boost::dynamic_pointer_cast<ImportFormatter>(*fpos);
- if(formatter == NULL)
- continue;
+ ExportFormatterPtr formatter = GetExportFormatter(fileName);
+ if(formatter == NULL)
+ return VAORC_FAILURE;
- filter << (*fpos)->get_description()
- << " (*." << (*fpos)->get_extension() << ")@*." << (*fpos)->get_extension() << "@";
-
- if(extension.empty())
- extension = (*fpos)->get_extension();
- }
- // append a filter to display all files
- filter << "All Files (*.*)@*.*@";
- // translate char --> TCHAR and '@' --> '\0'
- // note: Windows stringstream cannot handle '\0' inside a string
- std::wstring extension_w = filter_to_wstring(extension);
- std::wstring filter_w = filter_to_wstring(filter.str());
-
- CFileDialog dialog(TRUE /* open */,
- extension_w.c_str(), NULL,
- OFN_EXPLORER | OFN_HIDEREADONLY | OFN_ENABLESIZING | OFN_FILEMUSTEXIST,
- filter_w.c_str());
- INT_PTR res = dialog.DoModal();
-
- if(res != IDOK)
- return VAORC_SUCCESS;
-
- TRACE("OnMenuImport() loading " << dialog.m_szFileTitle << " from " << dialog.m_szFileName);
-
- char fileName[MAX_PATH];
- wcstombs(fileName, dialog.m_szFileName, MAX_PATH);
-
- char *fileExtension = strrchr(fileName, '.');
- if(fileExtension == NULL || *fileExtension == '\0')
+ std::ofstream stream;
+ stream.open(fileName, std::ios::out | std::ios::trunc);
+ if(!stream.good())
{
MessageBox(GetActiveWindow(),
- _T("No extension given. Cannot determine file type."), _T("Error"), MB_OK | MB_ICONEXCLAMATION);
+ _T("Cannot export given file."), _T("Error"), MB_OK | MB_ICONEXCLAMATION);
return VAORC_FAILURE;
}
- // look for the appropriate export formatter
- for(FormatterPtrList::const_iterator fpos = m_formatters.begin();
- fpos != m_formatters.end(); fpos++)
- {
- if(_stricmp(fileExtension+1, (*fpos)->get_extension().c_str()) != 0)
- continue;
+ // export the drawing
+ ExportActiveDocument(formatter, stream);
+ stream.close();
- ImportFormatterPtr formatter = boost::dynamic_pointer_cast<ImportFormatter>(*fpos);
- if(formatter == NULL)
- continue;
-
- ImportDocument(formatter, fileName);
- return VAORC_SUCCESS;
- }
-
- MessageBox(GetActiveWindow(),
- _T("No suitable import filter found."), _T("Error"), MB_OK | MB_ICONEXCLAMATION);
- return VAORC_FAILURE;
+ return VAORC_SUCCESS;
}
-VAORC CDocumentMonitor::OnMenuExport(Visio::IVApplicationPtr vsoApp)
+VAORC CDocumentMonitor::OnMenuFindFlow(Visio::IVApplicationPtr vsoApp)
{
+ CFindDlg dlg(vsoApp);
+ // ask user for the drawings to be compared
+ if (dlg.DoModal() != IDOK)
+ return VAORC_FAILURE;
+
// clear the verification report
m_reportView->Reset();
- std::string extension;
- std::stringstream filter;
+ CDrawingExtractor extractor(m_reportView);
+ // obtain MSC to search for (needle)
+ MscPtr msc_needle = extractor.extract_msc(dlg.m_page1);
- // construct the filter string
- // _T("Text Documents (*.txt)\0*.txt\0All Files (*.*)\0*.*\0")
- for(FormatterPtrList::const_iterator fpos = m_formatters.begin();
- fpos != m_formatters.end(); fpos++)
- {
- ExportFormatterPtr formatter = boost::dynamic_pointer_cast<ExportFormatter>(*fpos);
- if(formatter == NULL)
- continue;
+ MscPtr msc_haystack;
+ // obtain MSC to search in (haystack)
+ if (dlg.m_page2 != dlg.m_page1)
+ msc_haystack = extractor.extract_msc(dlg.m_page2);
+ else
+ msc_haystack = msc_needle;
- filter << (*fpos)->get_description()
- << " (*." << (*fpos)->get_extension() << ")@*." << (*fpos)->get_extension() << "@";
+ if (msc_haystack == NULL || msc_needle == NULL)
+ return VAORC_FAILURE;
- if(extension.empty())
- extension = (*fpos)->get_extension();
- }
- // append a filter to display all files
- filter << "All Files (*.*)@*.*@";
- // translate char --> TCHAR and '@' --> '\0'
- // note: Windows stringstream cannot handle '\0' inside a string
- std::wstring extension_w = filter_to_wstring(extension);
- std::wstring filter_w = filter_to_wstring(filter.str());
-
- CFileDialog dialog(FALSE /* save as */,
- extension_w.c_str(), NULL,
- OFN_EXPLORER | OFN_HIDEREADONLY | OFN_ENABLESIZING | OFN_OVERWRITEPROMPT,
- filter_w.c_str());
- INT_PTR res = dialog.DoModal();
-
- if(res != IDOK)
- return VAORC_SUCCESS;
-
- TRACE("OnMenuExport() saving " << dialog.m_szFileTitle << " as " << dialog.m_szFileName);
-
- char fileName[MAX_PATH];
- wcstombs(fileName, dialog.m_szFileName, MAX_PATH);
-
- char *fileExtension = strrchr(fileName, '.');
- if(fileExtension == NULL || *fileExtension == '\0')
+ MscPtr result = m_membership->find(msc_haystack, msc_needle);
+ if (result != NULL)
{
- MessageBox(GetActiveWindow(),
- _T("No extension given. Cannot determine file type."), _T("Error"), MB_OK | MB_ICONEXCLAMATION);
- return VAORC_FAILURE;
+ m_reportView->Print(RS_NOTICE, stringize()
+ << "Flow " << msc_needle->get_label() << " in drawing " << msc_haystack->get_label()
+ << " found.", result);
}
-
- // look for the appropriate export formatter
- for(FormatterPtrList::const_iterator fpos = m_formatters.begin();
- fpos != m_formatters.end(); fpos++)
+ else
{
- if(_stricmp(fileExtension+1, (*fpos)->get_extension().c_str()) != 0)
- continue;
-
- ExportFormatterPtr formatter = boost::dynamic_pointer_cast<ExportFormatter>(*fpos);
- if(formatter == NULL)
- continue;
-
- std::ofstream stream;
- stream.open(fileName, std::ios::out | std::ios::trunc);
- if(!stream.good())
- {
- MessageBox(GetActiveWindow(),
- _T("Cannot export given file."), _T("Error"), MB_OK | MB_ICONEXCLAMATION);
- return VAORC_FAILURE;
- }
-
- ExportActiveDocument(formatter, stream);
-
- stream.close();
- return VAORC_SUCCESS;
+ m_reportView->Print(RS_NOTICE, stringize()
+ << "Flow " << msc_needle->get_label() << " in drawing " << msc_haystack->get_label()
+ << " not found.");
}
- MessageBox(GetActiveWindow(),
- _T("No suitable export filter found."), _T("Error"), MB_OK | MB_ICONEXCLAMATION);
- return VAORC_FAILURE;
+ return VAORC_SUCCESS;
}
VAORC CDocumentMonitor::OnMenuRepaint(Visio::IVApplicationPtr vsoApp)
@@ -1212,6 +1143,106 @@
m_reportVisible = false;
}
+std::wstring filter_to_wstring(const std::string& str)
+{
+ std::wstring res;
+
+ const char *spos = str.data();
+ size_t ssize = str.length();
+ while(ssize > 0)
+ {
+ int inc;
+ // this converts '@' to '\0'
+ // note: this function is intended only for CFileDialog filter strings
+ if(*spos == '\0' || *spos == '@')
+ {
+ res.push_back(wchar_t('\0'));
+ inc = 1;
+ }
+ else
+ {
+ wchar_t wc;
+ inc = mbtowc(&wc, spos, ssize);
+ res.push_back(wc);
+ }
+
+ spos += inc;
+ ssize -= inc;
+ }
+ return res;
+}
+
+int CDocumentMonitor::GetInputFile(char* fileName)
+{
+ std::string extension;
+ std::stringstream filter;
+
+ // construct the filter string
+ // _T("Text Documents (*.txt)\0*.txt\0All Files (*.*)\0*.*\0")
+ for(FormatterPtrList::const_iterator fpos = m_formatters.begin();
+ fpos != m_formatters.end(); fpos++)
+ {
+ ImportFormatterPtr formatter = boost::dynamic_pointer_cast<ImportFormatter>(*fpos);
+ if(formatter == NULL)
+ continue;
+
+ filter << (*fpos)->get_description()
+ << " (*." << (*fpos)->get_extension() << ")@*." << (*fpos)->get_extension() << "@";
+
+ if(extension.empty())
+ extension = (*fpos)->get_extension();
+ }
+ // append a filter to display all files
+ filter << "All Files (*.*)@*.*@";
+ // translate char --> TCHAR and '@' --> '\0'
+ // note: Windows stringstream cannot handle '\0' inside a string
+ std::wstring extension_w = filter_to_wstring(extension);
+ std::wstring filter_w = filter_to_wstring(filter.str());
+
+ CFileDialog dialog(TRUE /* open */,
+ extension_w.c_str(), NULL,
+ OFN_EXPLORER | OFN_HIDEREADONLY | OFN_ENABLESIZING | OFN_FILEMUSTEXIST,
+ filter_w.c_str());
+ INT_PTR res = dialog.DoModal();
+
+ if(res != IDOK)
+ return -1; // failure
+
+ TRACE("GetInputFile() loading " << dialog.m_szFileTitle << " from " << dialog.m_szFileName);
+
+ wcstombs(fileName, dialog.m_szFileName, _MAX_PATH);
+ return 0; // success
+}
+
+ImportFormatterPtr CDocumentMonitor::GetImportFormatter(const char* fileName)
+{
+ const char *fileExtension = strrchr(fileName, '.');
+ if(fileExtension == NULL || *fileExtension == '\0')
+ {
+ MessageBox(GetActiveWindow(),
+ _T("No extension given. Cannot determine file type."), _T("Error"), MB_OK | MB_ICONEXCLAMATION);
+ return ImportFormatterPtr(); // NULL
+ }
+
+ // look for the appropriate export formatter
+ for(FormatterPtrList::const_iterator fpos = m_formatters.begin();
+ fpos != m_formatters.end(); fpos++)
+ {
+ if(_stricmp(fileExtension+1, (*fpos)->get_extension().c_str()) != 0)
+ continue;
+
+ ImportFormatterPtr formatter = boost::dynamic_pointer_cast<ImportFormatter>(*fpos);
+ if(formatter == NULL)
+ continue;
+
+ return formatter;
+ }
+
+ MessageBox(GetActiveWindow(),
+ _T("No suitable import filter found."), _T("Error"), MB_OK | MB_ICONEXCLAMATION);
+ return ImportFormatterPtr(); // NULL
+}
+
void CDocumentMonitor::ImportDocument(const ImportFormatterPtr& formatter, const std::string& filename)
{
// load the document
@@ -1252,6 +1283,77 @@
m_vsoApp->EndUndoScope(scope_id, true);
}
+int CDocumentMonitor::GetOutputFile(char* fileName)
+{
+ std::string extension;
+ std::stringstream filter;
+
+ // construct the filter string
+ // _T("Text Documents (*.txt)\0*.txt\0All Files (*.*)\0*.*\0")
+ for(FormatterPtrList::const_iterator fpos = m_formatters.begin();
+ fpos != m_formatters.end(); fpos++)
+ {
+ ExportFormatterPtr formatter = boost::dynamic_pointer_cast<ExportFormatter>(*fpos);
+ if(formatter == NULL)
+ continue;
+
+ filter << (*fpos)->get_description()
+ << " (*." << (*fpos)->get_extension() << ")@*." << (*fpos)->get_extension() << "@";
+
+ if(extension.empty())
+ extension = (*fpos)->get_extension();
+ }
+ // append a filter to display all files
+ filter << "All Files (*.*)@*.*@";
+ // translate char --> TCHAR and '@' --> '\0'
+ // note: Windows stringstream cannot handle '\0' inside a string
+ std::wstring extension_w = filter_to_wstring(extension);
+ std::wstring filter_w = filter_to_wstring(filter.str());
+
+ CFileDialog dialog(FALSE /* save as */,
+ extension_w.c_str(), NULL,
+ OFN_EXPLORER | OFN_HIDEREADONLY | OFN_ENABLESIZING | OFN_OVERWRITEPROMPT,
+ filter_w.c_str());
+ INT_PTR res = dialog.DoModal();
+
+ if(res != IDOK)
+ return -1; // failure
+
+ TRACE("GetOutputFile() saving " << dialog.m_szFileTitle << " as " << dialog.m_szFileName);
+
+ wcstombs(fileName, dialog.m_szFileName, _MAX_PATH);
+ return 0; // success
+}
+
+ExportFormatterPtr CDocumentMonitor::GetExportFormatter(const char* fileName)
+{
+ const char *fileExtension = strrchr(fileName, '.');
+ if(fileExtension == NULL || *fileExtension == '\0')
+ {
+ MessageBox(GetActiveWindow(),
+ _T("No extension given. Cannot determine file type."), _T("Error"), MB_OK | MB_ICONEXCLAMATION);
+ return ExportFormatterPtr(); // NULL
+ }
+
+ // look for the appropriate export formatter
+ for(FormatterPtrList::const_iterator fpos = m_formatters.begin();
+ fpos != m_formatters.end(); fpos++)
+ {
+ if(_stricmp(fileExtension+1, (*fpos)->get_extension().c_str()) != 0)
+ continue;
+
+ ExportFormatterPtr formatter = boost::dynamic_pointer_cast<ExportFormatter>(*fpos);
+ if(formatter == NULL)
+ continue;
+
+ return formatter;
+ }
+
+ MessageBox(GetActiveWindow(),
+ _T("No suitable export filter found."), _T("Error"), MB_OK | MB_ICONEXCLAMATION);
+ return ExportFormatterPtr(); // NULL
+}
+
void CDocumentMonitor::ExportActiveDocument(const ExportFormatterPtr& formatter, std::ostream& stream)
{
CDrawingExtractor extractor(m_reportView);
Modified: trunk/src/view/visio/addon/document.h
===================================================================
--- trunk/src/view/visio/addon/document.h 2010-01-08 12:30:49 UTC (rev 545)
+++ trunk/src/view/visio/addon/document.h 2010-01-10 14:47:31 UTC (rev 546)
@@ -11,7 +11,7 @@
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
- * Copyright (c) 2007-2008 Petr Gotthard <pet...@ce...>
+ * Copyright (c) 2007-2010 Petr Gotthard <pet...@ce...>
*
* $Id$
*/
@@ -20,6 +20,7 @@
#include "reportview.h"
#include "data/formatter.h"
#include "data/checker.h"
+#include "data/searcher.h"
#include "data/transformer.h"
//! template used to create new documents
@@ -49,13 +50,18 @@
VAORC OnMenuWindowsReporter(Visio::IVApplicationPtr vsoApp);
VAORC OnMenuImport(Visio::IVApplicationPtr vsoApp);
VAORC OnMenuExport(Visio::IVApplicationPtr vsoApp);
+ VAORC OnMenuFindFlow(Visio::IVApplicationPtr vsoApp);
VAORC OnMenuRepaint(Visio::IVApplicationPtr vsoApp);
VAORC OnMenuTransform(Visio::IVApplicationPtr vsoApp, int index);
void ShowReportView();
void OnHideReportView();
+ int GetInputFile(char* fileName);
+ ImportFormatterPtr GetImportFormatter(const char* fileName);
void ImportDocument(const ImportFormatterPtr& formatter, const std::string& filename);
+ int GetOutputFile(char* fileName);
+ ExportFormatterPtr GetExportFormatter(const char* fileName);
void ExportActiveDocument(const ExportFormatterPtr& formatter, std::ostream& stream);
int DisplayDocument(const MscPtr& msc);
@@ -86,6 +92,8 @@
MscPtr run_transformers(MscPtr& msc, const TransformerPtrList& transformer_list);
+ SearcherPtr m_membership;
+
CStudioAddon *m_addon;
Visio::IVApplicationPtr m_vsoApp;
Visio::IVDocumentPtr m_vsoDocument;
Modified: trunk/src/view/visio/addon/errors.cpp
===================================================================
--- trunk/src/view/visio/addon/errors.cpp 2010-01-08 12:30:49 UTC (rev 545)
+++ trunk/src/view/visio/addon/errors.cpp 2010-01-10 14:47:31 UTC (rev 546)
@@ -11,7 +11,7 @@
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
- * Copyright (c) 2007-2008 Petr Gotthard <pet...@ce...>
+ * Copyright (c) 2007-2010 Petr Gotthard <pet...@ce...>
*
* $Id$
*/
Modified: trunk/src/view/visio/addon/errors.h
===================================================================
--- trunk/src/view/visio/addon/errors.h 2010-01-08 12:30:49 UTC (rev 545)
+++ trunk/src/view/visio/addon/errors.h 2010-01-10 14:47:31 UTC (rev 546)
@@ -11,7 +11,7 @@
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
- * Copyright (c) 2007-2008 Petr Gotthard <pet...@ce...>
+ * Copyright (c) 2007-2010 Petr Gotthard <pet...@ce...>
*
* $Id$
*/
Modified: trunk/src/view/visio/addon/eventsink.idl
===================================================================
--- trunk/src/view/visio/addon/eventsink.idl 2010-01-08 12:30:49 UTC (rev 545)
+++ trunk/src/view/visio/addon/eventsink.idl 2010-01-10 14:47:31 UTC (rev 546)
@@ -11,7 +11,7 @@
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
- * Copyright (c) 2007-2008 Petr Gotthard <pet...@ce...>
+ * Copyright (c) 2007-2010 Petr Gotthard <pet...@ce...>
*
* $Id$
*/
Modified: trunk/src/view/visio/addon/extract.cpp
===================================================================
--- trunk/src/view/visio/addon/extract.cpp 2010-01-08 12:30:49 UTC (rev 545)
+++ trunk/src/view/visio/addon/extract.cpp 2010-01-10 14:47:31 UTC (rev 546)
@@ -11,7 +11,7 @@
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
- * Copyright (c) 2007-2008 Petr Gotthard <pet...@ce...>
+ * Copyright (c) 2007-2010 Petr Gotthard <pet...@ce...>
*
* $Id$
*/
Modified: trunk/src/view/visio/addon/extract.h
===================================================================
--- trunk/src/view/visio/addon/extract.h 2010-01-08 12:30:49 UTC (rev 545)
+++ trunk/src/view/visio/addon/extract.h 2010-01-10 14:47:31 UTC (rev 546)
@@ -11,7 +11,7 @@
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
- * Copyright (c) 2007-2008 Petr Gotthard <pet...@ce...>
+ * Copyright (c) 2007-2010 Petr Gotthard <pet...@ce...>
*
* $Id$
*/
Added: trunk/src/view/visio/addon/finddlg.cpp
===================================================================
--- trunk/src/view/visio/addon/finddlg.cpp (rev 0)
+++ trunk/src/view/visio/addon/finddlg.cpp 2010-01-10 14:47:31 UTC (rev 546)
@@ -0,0 +1,90 @@
+/*
+ * scstudio - Sequence Chart Studio
+ * http://scstudio.sourceforge.net
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * Copyright (c) 2007-2010 Petr Gotthard <pet...@ce...>
+ *
+ * $Id$
+ */
+
+#include "stdafx.h"
+#include "finddlg.h"
+
+CFindDlg::CFindDlg(Visio::IVApplicationPtr vsoApp)
+ : ATL::CDialogImpl<CFindDlg>(), CWinDataExchange<CFindDlg>()
+{
+ m_vsoApp = vsoApp;
+}
+
+LRESULT CFindDlg::OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
+{
+ CenterWindow(GetParent());
+
+ DoDataExchange();
+ InitializeTree(m_drawing1);
+ InitializeTree(m_drawing2);
+
+ return bHandled = FALSE;
+}
+
+LRESULT CFindDlg::OnCloseCmd(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled)
+{
+ if(wID == IDOK)
+ {
+ m_page1 = GetTreeSelection(m_drawing1);
+ m_page2 = GetTreeSelection(m_drawing2);
+
+ if (m_page1 == NULL || m_page2 == NULL)
+ return 0;
+ }
+
+ EndDialog(wID);
+ return 0;
+}
+
+void CFindDlg::InitializeTree(CTreeViewCtrl& tree)
+{
+ for(int i = 1; i <= m_vsoApp->Windows->Count; i++)
+ {
+ Visio::IVWindowPtr vsoWindow = m_vsoApp->Windows->Item[i];
+ Visio::IVDocumentPtr vsoDocument = vsoWindow->Document;
+
+ HTREEITEM docitem = tree.InsertItem(vsoWindow->Caption, 0, 0);
+ tree.SetItemData(docitem, vsoDocument->ID);
+ for(int j = 1; j <= vsoDocument->Pages->Count; j++)
+ {
+ Visio::IVPagePtr vsoPage = vsoDocument->Pages->Item[j];
+ HTREEITEM pageitem = tree.InsertItem(vsoPage->Name, docitem, 0);
+ tree.SetItemData(pageitem, vsoPage->ID);
+ }
+
+ tree.Expand(docitem);
+ }
+}
+
+Visio::IVPagePtr CFindDlg::GetTreeSelection(CTreeViewCtrl& tree)
+{
+ HTREEITEM item = tree.GetSelectedItem();
+ HTREEITEM parent = tree.GetParentItem(item);
+ if (parent == 0)
+ return NULL;
+
+ Visio::IVDocumentPtr vsoDocument =
+ m_vsoApp->Documents->ItemFromID[tree.GetItemData(parent)];
+
+ Visio::IVPagePtr vsoPage =
+ vsoDocument->Pages->ItemFromID[tree.GetItemData(item)];
+
+ return vsoPage;
+}
+
+// $Id$
Property changes on: trunk/src/view/visio/addon/finddlg.cpp
___________________________________________________________________
Added: svn:keywords
+ Id
Added: svn:eol-style
+ native
Added: trunk/src/view/visio/addon/finddlg.h
===================================================================
--- trunk/src/view/visio/addon/finddlg.h (rev 0)
+++ trunk/src/view/visio/addon/finddlg.h 2010-01-10 14:47:31 UTC (rev 546)
@@ -0,0 +1,66 @@
+/*
+ * scstudio - Sequence Chart Studio
+ * http://scstudio.sourceforge.net
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * Copyright (c) 2007-2010 Petr Gotthard <pet...@ce...>
+ *
+ * $Id$
+ */
+
+#pragma once
+
+// Include libraries from the Windows Template Library (WTL).
+// http://wtl.sourceforge.net
+#include <atldlgs.h>
+#include <atlctrls.h>
+#include <atlddx.h>
+
+class CFindDlg
+ : public ATL::CDialogImpl<CFindDlg>, public CWinDataExchange<CFindDlg>
+{
+public:
+ enum { IDD = IDD_FIND_FLOW };
+ CTreeViewCtrl m_drawing1;
+ CTreeViewCtrl m_drawing2;
+
+ CFindDlg(Visio::IVApplicationPtr vsoApp);
+ Visio::IVPagePtr m_page1;
+ Visio::IVPagePtr m_page2;
+
+protected:
+BEGIN_DDX_MAP(CFindDlg)
+ DDX_CONTROL_HANDLE(IDC_DRAWING1, m_drawing1)
+ DDX_CONTROL_HANDLE(IDC_DRAWING2, m_drawing2)
+END_DDX_MAP()
+
+BEGIN_MSG_MAP(CFindDlg)
+ MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
+ COMMAND_ID_HANDLER(IDOK, OnCloseCmd)
+ COMMAND_ID_HANDLER(IDCANCEL, OnCloseCmd)
+END_MSG_MAP()
+
+// Handler prototypes:
+// LRESULT MessageHandler(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
+// LRESULT CommandHandler(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled)
+// LRESULT NotifyHandler(int idCtrl, LPNMHDR pnmh, BOOL& bHandled)
+
+ LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
+ LRESULT OnCloseCmd(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);
+
+ void InitializeTree(CTreeViewCtrl& tree);
+ Visio::IVPagePtr GetTreeSelection(CTreeViewCtrl& tree);
+
+private:
+ Visio::IVApplicationPtr m_vsoApp;
+};
+
+// $Id$
Property changes on: trunk/src/view/visio/addon/finddlg.h
___________________________________________________________________
Added: svn:keywords
+ Id
Added: svn:eol-style
+ native
Modified: trunk/src/view/visio/addon/optionsdlg.cpp
===================================================================
--- trunk/src/view/visio/addon/optionsdlg.cpp 2010-01-08 12:30:49 UTC (rev 545)
+++ trunk/src/view/visio/addon/optionsdlg.cpp 2010-01-10 14:47:31 UTC (rev 546)
@@ -11,7 +11,7 @@
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
- * Copyright (c) 2007-2008 Petr Gotthard <pet...@ce...>
+ * Copyright (c) 2007-2010 Petr Gotthard <pet...@ce...>
*
* $Id$
*/
Modified: trunk/src/view/visio/addon/optionsdlg.h
===================================================================
--- trunk/src/view/visio/addon/optionsdlg.h 2010-01-08 12:30:49 UTC (rev 545)
+++ trunk/src/view/visio/addon/optionsdlg.h 2010-01-10 14:47:31 UTC (rev 546)
@@ -11,7 +11,7 @@
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
- * Copyright (c) 2007-2008 Petr Gotthard <pet...@ce...>
+ * Copyright (c) 2007-2010 Petr Gotthard <pet...@ce...>
*
* $Id$
*/
Modified: trunk/src/view/visio/addon/reportview.cpp
===================================================================
--- trunk/src/view/visio/addon/reportview.cpp 2010-01-08 12:30:49 UTC (rev 545)
+++ trunk/src/view/visio/addon/reportview.cpp 2010-01-10 14:47:31 UTC (rev 546)
@@ -11,7 +11,7 @@
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
- * Copyright (c) 2007-2008 Petr Gotthard <pet...@ce...>
+ * Copyright (c) 2007-2010 Petr Gotthard <pet...@ce...>
*
* $Id$
*/
Modified: trunk/src/view/visio/addon/reportview.h
===================================================================
--- trunk/src/view/visio/addon/reportview.h 2010-01-08 12:30:49 UTC (rev 545)
+++ trunk/src/view/visio/addon/reportview.h 2010-01-10 14:47:31 UTC (rev 546)
@@ -11,7 +11,7 @@
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
- * Copyright (c) 2007-2008 Petr Gotthard <pet...@ce...>
+ * Copyright (c) 2007-2010 Petr Gotthard <pet...@ce...>
*
* $Id$
*/
Modified: trunk/src/view/visio/addon/resource.h
===================================================================
--- trunk/src/view/visio/addon/resource.h 2010-01-08 12:30:49 UTC (rev 545)
+++ trunk/src/view/visio/addon/resource.h 2010-01-10 14:47:31 UTC (rev 546)
@@ -11,15 +11,20 @@
#define IDD_OPTIONS 204
#define IDC_ABOUT_VERSION 205
#define IDC_CHECKLIST 206
+#define IDD_SEARCH 206
+#define IDD_SEARCH_FLOW 206
+#define IDD_FIND_FLOW 206
#define IDC_OUTPUTLEVEL 207
+#define IDC_DRAWING1 208
+#define IDC_DRAWING2 209
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
-#define _APS_NEXT_RESOURCE_VALUE 206
+#define _APS_NEXT_RESOURCE_VALUE 207
#define _APS_NEXT_COMMAND_VALUE 32768
-#define _APS_NEXT_CONTROL_VALUE 208
+#define _APS_NEXT_CONTROL_VALUE 209
#define _APS_NEXT_SYMED_VALUE 105
#endif
#endif
Modified: trunk/src/view/visio/addon/scstudio.vcproj
===================================================================
--- trunk/src/view/visio/addon/scstudio.vcproj 2010-01-08 12:30:49 UTC (rev 545)
+++ trunk/src/view/visio/addon/scstudio.vcproj 2010-01-10 14:47:31 UTC (rev 546)
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
- Version="9.00"
+ Version="9,00"
Name="scstudio"
ProjectGUID="{0E00282C-F48B-4984-A274-5B59E1E2AD49}"
RootNamespace="scstudio"
@@ -300,6 +300,14 @@
>
</File>
<File
+ RelativePath=".\finddlg.cpp"
+ >
+ </File>
+ <File
+ RelativePath=".\finddlg.h"
+ >
+ </File>
+ <File
RelativePath=".\optionsdlg.cpp"
>
</File>
Modified: trunk/src/view/visio/addon/visualize.cpp
===================================================================
--- trunk/src/view/visio/addon/visualize.cpp 2010-01-08 12:30:49 UTC (rev 545)
+++ trunk/src/view/visio/addon/visualize.cpp 2010-01-10 14:47:31 UTC (rev 546)
@@ -11,7 +11,7 @@
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
- * Copyright (c) 2007-2008 Petr Gotthard <pet...@ce...>
+ * Copyright (c) 2007-2010 Petr Gotthard <pet...@ce...>
*
* $Id$
*/
Modified: trunk/src/view/visio/addon/visualize.h
===================================================================
--- trunk/src/view/visio/addon/visualize.h 2010-01-08 12:30:49 UTC (rev 545)
+++ trunk/src/view/visio/addon/visualize.h 2010-01-10 14:47:31 UTC (rev 546)
@@ -11,7 +11,7 @@
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
- * Copyright (c) 2007-2008 Petr Gotthard <pet...@ce...>
+ * Copyright (c) 2007-2010 Petr Gotthard <pet...@ce...>
*
* $Id$
*/
Modified: trunk/src/view/visio/scstudio.nsi
===================================================================
--- trunk/src/view/visio/scstudio.nsi 2010-01-08 12:30:49 UTC (rev 545)
+++ trunk/src/view/visio/scstudio.nsi 2010-01-10 14:47:31 UTC (rev 546)
@@ -10,7 +10,7 @@
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
; Lesser General Public License for more details.
;
-; Copyright (c) 2008-2009 Petr Gotthard <pet...@ce...>
+; Copyright (c) 2008-2010 Petr Gotthard <pet...@ce...>
;
; $Id$
@@ -158,6 +158,7 @@
WriteRegStr HKCU '${RegModulesPath}' 'sc_z120' 'scZ120.dll'
WriteRegStr HKCU '${RegModulesPath}' 'sc_engmann' 'scengmann.dll'
WriteRegStr HKCU '${RegModulesPath}' 'sc_modelchecking' 'scmodelchecking.dll'
+ WriteRegStr HKCU '${RegModulesPath}' 'sc_membership' 'scmembership.dll'
WriteRegStr HKCU '${RegModulesPath}' 'sc_beautify' 'scbeautify.dll'
; configure checks
WriteRegDWORD HKCU '${RegChecksPath}\Universal Boundedness' 'Priority' '0'
Modified: trunk/tests/membership/CMakeLists.txt
===================================================================
--- trunk/tests/membership/CMakeLists.txt 2010-01-08 12:30:49 UTC (rev 545)
+++ trunk/tests/membership/CMakeLists.txt 2010-01-10 14:47:31 UTC (rev 546)
@@ -13,14 +13,20 @@
#ADD_MEMBERSHIP_TEST(test_hmsc01 test_bmsc01 1)
-ADD_TEST(membtest-01 ${CMAKE_CURRENT_SOURCE_DIR}/membership_test ${CMAKE_CURRENT_SOURCE_DIR}/test_hmsc01.mpr ${CMAKE_CURRENT_SOURCE_DIR}/test_bmsc01.mpr 0)
+GET_TARGET_PROPERTY(MEMBERSHIP_TEST_EXECUTABLE membership_test LOCATION)
+# Replace the "$(IntDir)", "$(OutDir)", or "$(CONFIGURATION)"
+# depending on the generator being used with the test-time variable.
+STRING(REGEX REPLACE "\\$\\(.*\\)" "\${CTEST_CONFIGURATION_TYPE}"
+ MEMBERSHIP_TEST_EXECUTABLE "${MEMBERSHIP_TEST_EXECUTABLE}")
-ADD_TEST(membtest-02 ${CMAKE_CURRENT_SOURCE_DIR}/membership_test ${CMAKE_CURRENT_SOURCE_DIR}/test_hmsc02.mpr ${CMAKE_CURRENT_SOURCE_DIR}/test_bmsc02.mpr 1)
+ADD_TEST(membtest-01 ${MEMBERSHIP_TEST_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test_hmsc01.mpr ${CMAKE_CURRENT_SOURCE_DIR}/test_bmsc01.mpr 0)
-ADD_TEST(membtest-03 ${CMAKE_CURRENT_SOURCE_DIR}/membership_test ${CMAKE_CURRENT_SOURCE_DIR}/test_hmsc03.mpr ${CMAKE_CURRENT_SOURCE_DIR}/test_bmsc03.mpr 0)
+ADD_TEST(membtest-02 ${MEMBERSHIP_TEST_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test_hmsc02.mpr ${CMAKE_CURRENT_SOURCE_DIR}/test_bmsc02.mpr 1)
-ADD_TEST(membtest-04 ${CMAKE_CURRENT_SOURCE_DIR}/membership_test ${CMAKE_CURRENT_SOURCE_DIR}/test_hmsc04.mpr ${CMAKE_CURRENT_SOURCE_DIR}/test_bmsc04.mpr 1)
+ADD_TEST(membtest-03 ${MEMBERSHIP_TEST_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test_hmsc03.mpr ${CMAKE_CURRENT_SOURCE_DIR}/test_bmsc03.mpr 0)
-ADD_TEST(membtest-05 ${CMAKE_CURRENT_SOURCE_DIR}/membership_test ${CMAKE_CURRENT_SOURCE_DIR}/test_hmsc05.mpr ${CMAKE_CURRENT_SOURCE_DIR}/test_bmsc05.mpr 0)
+ADD_TEST(membtest-04 ${MEMBERSHIP_TEST_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test_hmsc04.mpr ${CMAKE_CURRENT_SOURCE_DIR}/test_bmsc04.mpr 1)
-ADD_TEST(membtest-06 ${CMAKE_CURRENT_SOURCE_DIR}/membership_test ${CMAKE_CURRENT_SOURCE_DIR}/test_hmsc06.mpr ${CMAKE_CURRENT_SOURCE_DIR}/test_bmsc06.mpr 1)
+ADD_TEST(membtest-05 ${MEMBERSHIP_TEST_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test_hmsc05.mpr ${CMAKE_CURRENT_SOURCE_DIR}/test_bmsc05.mpr 0)
+
+ADD_TEST(membtest-06 ${MEMBERSHIP_TEST_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test_hmsc06.mpr ${CMAKE_CURRENT_SOURCE_DIR}/test_bmsc06.mpr 1)
Modified: trunk/tests/membership/membership_test.cpp
===================================================================
--- trunk/tests/membership/membership_test.cpp 2010-01-08 12:30:49 UTC (rev 545)
+++ trunk/tests/membership/membership_test.cpp 2010-01-10 14:47:31 UTC (rev 546)
@@ -86,7 +86,7 @@
char *path = strdup(argv[1]);
- //char *filename = extract_filename(path);
+ char *filename = extract_filename(path);
MembershipAlg mem;
@@ -103,8 +103,6 @@
std::cerr << "ERROR: HMSC should contain bMSC" << std::endl;
errors = 1;
}
-
- std::cout << std::endl;
}
else
{
@@ -115,6 +113,18 @@
}
else
std::cout << "OK: HMSC contains bMSC" << std::endl;
+
+ std::cout << std::endl;
+
+ try
+ {
+ z120.save_msc(std::cout, TOWSTRING(filename), result);
+ }
+ catch(std::exception& exc)
+ {
+ std::cerr << "EXCEPTION: Cannot save the document: " << exc.what() << std::endl;
+ errors = 1;
+ }
}
free(path);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|