Index: Application/Ringtoets/src/Application.Ringtoets.Setup/Licentie.rtf
===================================================================
diff -u -r31d4921763c045040f9300542aed356147966cc8 -rc5717eada81586126cbf53266abb0fc925382393
--- Application/Ringtoets/src/Application.Ringtoets.Setup/Licentie.rtf (.../Licentie.rtf) (revision 31d4921763c045040f9300542aed356147966cc8)
+++ Application/Ringtoets/src/Application.Ringtoets.Setup/Licentie.rtf (.../Licentie.rtf) (revision c5717eada81586126cbf53266abb0fc925382393)
@@ -1,6 +1,6 @@
{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff0\deff0\stshfdbch31505\stshfloch31506\stshfhich31506\stshfbi0\deflang2057\deflangfe2052\themelang2057\themelangfe2052\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f2\fbidi \fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;}
{\f13\fbidi \fnil\fcharset134\fprq2{\*\panose 02010600030101010101}SimSun{\*\falt ???????????????????????????????};}{\f34\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria Math;}
-{\f37\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\f38\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0604030504040204}Tahoma;}{\f43\fbidi \fnil\fcharset134\fprq2{\*\panose 00000000000000000000}@SimSun;}
+{\f37\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\f38\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0604030504040204}Tahoma;}{\f43\fbidi \fnil\fcharset134\fprq2{\*\panose 02010600030101010101}@SimSun;}
{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fdbmajor\f31501\fbidi \fnil\fcharset134\fprq2{\*\panose 02010600030101010101}SimSun{\*\falt ???????????????????????????????};}
{\fhimajor\f31502\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria;}{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}
{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fdbminor\f31505\fbidi \fnil\fcharset134\fprq2{\*\panose 02010600030101010101}SimSun{\*\falt ???????????????????????????????};}
@@ -45,13 +45,13 @@
\sbasedon10 \slink19 \slocked \ssemihidden \styrsid7675473 Balloon Text Char;}{\s21\ql \li720\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin720\itap0\contextualspace \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0
\fs22\lang2057\langfe2052\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp2057\langfenp2052 \sbasedon0 \snext21 \sqformat \spriority34 \styrsid1010843 List Paragraph;}}{\*\rsidtbl \rsid23861\rsid423640\rsid488029\rsid799973\rsid984897\rsid1010843
\rsid1055020\rsid1135803\rsid1180769\rsid1201894\rsid1206572\rsid1391986\rsid1582918\rsid1604777\rsid1800570\rsid1862769\rsid1918796\rsid2112962\rsid2185294\rsid2448324\rsid2521833\rsid2703580\rsid2906174\rsid3020322\rsid3093214\rsid3172558\rsid3241544
-\rsid3426710\rsid3474088\rsid3612330\rsid3686156\rsid4150084\rsid4392039\rsid4733976\rsid4742281\rsid5064623\rsid5267739\rsid5457331\rsid5593428\rsid5862844\rsid5910193\rsid6122838\rsid6624093\rsid6822061\rsid6904447\rsid6947589\rsid7414554\rsid7672292
-\rsid7675473\rsid7691196\rsid7822308\rsid7881760\rsid7884431\rsid8282417\rsid8336808\rsid8355315\rsid8415516\rsid8471656\rsid8613675\rsid9054218\rsid9251590\rsid9259169\rsid9259511\rsid9324301\rsid9447286\rsid9534683\rsid9597286\rsid9837452\rsid10041733
-\rsid10243997\rsid10641850\rsid10645519\rsid10889275\rsid10903480\rsid10907227\rsid10959533\rsid10965045\rsid10969153\rsid11011627\rsid11234572\rsid11404854\rsid11541481\rsid11547836\rsid11865015\rsid11875882\rsid12255994\rsid12603449\rsid12614763
-\rsid12714335\rsid12780684\rsid12874015\rsid12992049\rsid13187850\rsid13327662\rsid13378822\rsid13521383\rsid13526234\rsid13707436\rsid13846203\rsid13923732\rsid14042855\rsid14624369\rsid14690030\rsid14697806\rsid14769386\rsid15038976\rsid15292511
-\rsid15341850\rsid15549573\rsid15599413\rsid15600639\rsid15998385\rsid16073068\rsid16086011\rsid16612758\rsid16653078}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info
-{\title License Agreement}{\author Deltares}{\operator Robert Tangerman}{\creatim\yr2016\mo1\dy13\hr16\min25}{\revtim\yr2016\mo7\dy20\hr11\min43}{\printim\yr2016\mo1\dy13\hr13\min29}{\version52}{\edmins67}{\nofpages3}{\nofwords962}{\nofchars5489}
-{\*\company Stichting Deltares}{\nofcharsws6439}{\vern49167}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}}\paperw12240\paperh15840\margl1440\margr1440\margt1440\margb1440\gutter0\ltrsect
+\rsid3426710\rsid3474088\rsid3612330\rsid3686156\rsid4150084\rsid4392039\rsid4733976\rsid4742281\rsid4987021\rsid5064623\rsid5267739\rsid5457331\rsid5593428\rsid5862844\rsid5910193\rsid6122838\rsid6624093\rsid6822061\rsid6904447\rsid6947589\rsid7414554
+\rsid7672292\rsid7675473\rsid7691196\rsid7822308\rsid7881760\rsid7884431\rsid8282417\rsid8336808\rsid8355315\rsid8415516\rsid8471656\rsid8613675\rsid9054218\rsid9251590\rsid9259169\rsid9259511\rsid9324301\rsid9447286\rsid9534683\rsid9597286\rsid9837452
+\rsid10041733\rsid10243997\rsid10641850\rsid10645519\rsid10889275\rsid10903480\rsid10907227\rsid10959533\rsid10965045\rsid10969153\rsid11011627\rsid11234572\rsid11404854\rsid11541481\rsid11547836\rsid11865015\rsid11875882\rsid12255994\rsid12603449
+\rsid12614763\rsid12714335\rsid12780684\rsid12874015\rsid12992049\rsid13187850\rsid13327662\rsid13378822\rsid13521383\rsid13526234\rsid13707436\rsid13846203\rsid13923732\rsid14042855\rsid14624369\rsid14690030\rsid14697806\rsid14769386\rsid15038976
+\rsid15292511\rsid15341850\rsid15549573\rsid15599413\rsid15600639\rsid15998385\rsid16073068\rsid16086011\rsid16612758\rsid16653078}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0
+\mnaryLim1}{\info{\title License Agreement}{\author Deltares}{\operator Robert Tangerman}{\creatim\yr2016\mo1\dy13\hr16\min25}{\revtim\yr2016\mo7\dy20\hr13\min28}{\printim\yr2016\mo1\dy13\hr13\min29}{\version53}{\edmins67}{\nofpages3}{\nofwords961}
+{\nofchars5483}{\*\company Stichting Deltares}{\nofcharsws6432}{\vern49167}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}}\paperw12240\paperh15840\margl1440\margr1440\margt1440\margb1440\gutter0\ltrsect
\widowctrl\ftnbj\aenddoc\hyphhotz425\trackmoves0\trackformatting1\donotembedsysfont1\relyonvml0\donotembedlingdata0\grfdocevents0\validatexml1\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors1
\noxlattoyen\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\formshade\horzdoc\dgmargin\dghspace180\dgvspace180\dghorigin1440\dgvorigin1440\dghshow1\dgvshow1
\jexpand\viewkind1\viewscale110\pgbrdrhead\pgbrdrfoot\splytwnine\ftnlytwnine\htmautsp\nolnhtadjtbl\useltbaln\alntblind\lytcalctblwd\lyttblrtgr\lnbrkrule\nobrkwrptbl\snaptogridincell\allowfieldendsel\wrppunct
@@ -185,12 +185,13 @@
\hich\af2\dbch\af31505\loch\f2 . Core.Components.OxyPlot.Forms.dll}{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid11865015
\par }\pard \ltrpar\ql \fi-360\li1215\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin1215\itap0\pararsid15599413 {\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid15599413 \hich\af2\dbch\af31505\loch\f2 18}{\rtlch\fcs1 \af2\afs21
\ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid15599413\charrsid16612758 \hich\af2\dbch\af31505\loch\f2 . Core.Plugins.}{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid15599413 \hich\af2\dbch\af31505\loch\f2
-Chart}{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid15599413 \hich\af2\dbch\af31505\loch\f2 .dll}{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid15599413\charrsid16612758
+Chart.dll}{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid15599413\charrsid16612758
\par }\pard \ltrpar\ql \fi-360\li1215\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin1215\itap0\pararsid11865015 {\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid6122838\charrsid16612758 \hich\af2\dbch\af31505\loch\f2 1}{
\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid15599413 \hich\af2\dbch\af31505\loch\f2 9}{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid11865015\charrsid16612758
\hich\af2\dbch\af31505\loch\f2 . Core.Plugins.CommonTools.dll
\par }{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid15599413 \hich\af2\dbch\af31505\loch\f2 20}{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid7884431\charrsid16612758 .}{\rtlch\fcs1
-\af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid11865015\charrsid16612758 \hich\af2\dbch\af31505\loch\f2 Core.Plugins.DotSpatial.dll
+\af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid11865015\charrsid16612758 \hich\af2\dbch\af31505\loch\f2 Core.Plugins.}{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid4987021
+\hich\af2\dbch\af31505\loch\f2 Map}{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid11865015\charrsid16612758 \hich\af2\dbch\af31505\loch\f2 .dll
\par }\pard \ltrpar\ql \fi-360\li1215\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin1215\itap0\pararsid1391986 {\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid1135803 \hich\af2\dbch\af31505\loch\f2 21}{\rtlch\fcs1 \af2\afs21
\ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid11865015\charrsid16612758 \hich\af2\dbch\af31505\loch\f2 . Core.Plugins.ProjectExplorer.dll
\par }\pard \ltrpar\ql \li855\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin855\itap0\pararsid15600639 {\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid15600639\charrsid16612758
@@ -238,7 +239,7 @@
\par }{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\insrsid11011627 \hich\af2\dbch\af31505\loch\f2 14}{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\insrsid10959533 \hich\af2\dbch\af31505\loch\f2 . Ringtoets.HeightStructures.Forms.dll
\par }{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\insrsid11011627 \hich\af2\dbch\af31505\loch\f2 15}{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\insrsid10959533 \hich\af2\dbch\af31505\loch\f2 . Ringtoets.HeightStructures.IO.dll
\par }\pard \ltrpar\ql \fi-360\li1215\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin1215\itap0\pararsid10959533 {\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\insrsid11011627 \hich\af2\dbch\af31505\loch\f2 16}{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0
-\f2\fs21\insrsid10959533 \hich\af2\dbch\af31505\loch\f2 . Ringtoets.HeightStructures.Plugin.dll
+\f2\fs21\insrsid10959533 \hich\af2\dbch\af31505\loch\f2 . Ringtoets.HeightStructures.Plugin\hich\af2\dbch\af31505\loch\f2 .dll
\par }{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\insrsid11011627 \hich\af2\dbch\af31505\loch\f2 17}{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\insrsid10959533 \hich\af2\dbch\af31505\loch\f2 . Ringtoets.HeightStructures.Service.dll
\par }\pard \ltrpar\ql \fi-360\li1215\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin1215\itap0\pararsid15600639 {\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\insrsid1582918 \hich\af2\dbch\af31505\loch\f2 1}{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0
\f2\fs21\insrsid11011627 \hich\af2\dbch\af31505\loch\f2 8}{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\insrsid2521833 \hich\af2\dbch\af31505\loch\f2 . }{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\insrsid12714335 \hich\af2\dbch\af31505\loch\f2
@@ -271,7 +272,7 @@
\f2\fs21\insrsid15600639\charrsid15600639 \hich\af2\dbch\af31505\loch\f2 . Ringtoets.Piping.Service.dll
\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid15600639 {\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\insrsid15600639\charrsid15600639
\par }{\rtlch\fcs1 \ab\af2\afs24 \ltrch\fcs0 \b\f2\fs24\insrsid15600639\charrsid15599413 \hich\af2\dbch\af31505\loch\f2 A. \tab }{\rtlch\fcs1 \ab\af2\afs24 \ltrch\fcs0 \b\f2\fs24\lang1043\langfe2052\langnp1043\insrsid15600639\charrsid1800570
-\hich\af2\dbch\af31505\loch\f2 \hich\f2 Software licentievoorwaarden onder de \'93\loch\f2 \hich\f2 GNU LESSER GENERAL PUBLIC LICENSE\'94\hich\af2\dbch\af31505\loch\f2 versie 3 zoals gepubliceerd door de Free Software Foundation.
+\hich\af2\dbch\af31505\loch\f2 \hich\f2 Software licentievoorwaarden onder de \'93\loch\f2 \hich\f2 GNU LESSER GENERAL PUBLIC LICENSE\'94\loch\f2 versie 3 zoals gepubliceerd door de Free Software Foundation.
\par }{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid15600639\charrsid1800570
\par }\pard \ltrpar\ql \li0\ri0\nowidctlpar\wrapdefault\faauto\rin0\lin0\itap0\pararsid9259511 {\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid15600639\charrsid5593428 \hich\af2\dbch\af31505\loch\f2 1. }{\rtlch\fcs1
\af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid9259511\charrsid1010843 \hich\af2\dbch\af31505\loch\f2 Dit programma genaamd \hich\f2 \lquote \loch\f2 Ringtoets\hich\f2 \rquote \loch\f2
@@ -294,20 +295,20 @@
\par }{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid15549573 \hich\af2\dbch\af31505\loch\f2 4}{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid15600639\charrsid14624369
\hich\af2\dbch\af31505\loch\f2 . Het programma wordt verspreid in de hoop dat het van nut is, maar ZONDER ENIGE GA}{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid15600639 \hich\af2\dbch\af31505\loch\f2 RANTIE}{
\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid15600639\charrsid14624369 \hich\af2\dbch\af31505\loch\f2 . }{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid15600639
-\hich\af2\dbch\af31505\loch\f2 Lees de tekst van de }{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid15600639\charrsid14624369 \hich\af2\dbch\af31505\loch\f2 GNU Lesser General Public License }{\rtlch\fcs1 \af2\afs21
-\ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid12255994 \hich\af2\dbch\af31505\loch\f2 versie 3 }{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid15600639\charrsid14624369 \hich\af2\dbch\af31505\loch\f2
-voor meer details.
+\hich\af2\dbch\af31505\loch\f2 Lees de t\hich\af2\dbch\af31505\loch\f2 ekst van de }{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid15600639\charrsid14624369 \hich\af2\dbch\af31505\loch\f2
+GNU Lesser General Public License }{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid12255994 \hich\af2\dbch\af31505\loch\f2 versie 3 }{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0
+\f2\fs21\lang1043\langfe2052\langnp1043\insrsid15600639\charrsid14624369 \hich\af2\dbch\af31505\loch\f2 voor meer details.
\par
\par }{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid15549573 \hich\af2\dbch\af31505\loch\f2 5}{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid15600639\charrsid14624369
\hich\af2\dbch\af31505\loch\f2 . De tekst van de GNU Lesser General Public License }{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid15600639 \hich\af2\dbch\af31505\loch\f2 versie 3 }{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0
\f2\fs21\lang1043\langfe2052\langnp1043\insrsid15600639\charrsid14624369 \hich\af2\dbch\af31505\loch\f2 wordt gezamenlijk met de Software}{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid15600639
\hich\af2\dbch\af31505\loch\f2 geleverd}{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid15600639\charrsid14624369 \hich\af2\dbch\af31505\loch\f2 . }{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0
\f2\fs21\lang1043\langfe2052\langnp1043\insrsid15600639\charrsid5593428 \hich\af2\dbch\af31505\loch\f2 Zo niet, zie dan }{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid4150084 \hich\af2\dbch\af31505\loch\f2 <}
{\field\fldedit{\*\fldinst {\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid15600639 \hich\af2\dbch\af31505\loch\f2 HYPERLINK "}{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0
-\f2\fs21\lang1043\langfe2052\langnp1043\insrsid15600639\charrsid1800570 \hich\af2\dbch\af31505\loch\f2 http://www.gnu.org/licenses/lgpl-3.0\hich\af2\dbch\af31505\loch\f2 .en.html}{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0
-\f2\fs21\lang1043\langfe2052\langnp1043\insrsid15600639 \hich\af2\dbch\af31505\loch\f2 " }{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid15600639 {\*\datafield
+\f2\fs21\lang1043\langfe2052\langnp1043\insrsid15600639\charrsid1800570 \hich\af2\dbch\af31505\loch\f2 http://www.gnu.org/licenses/lgpl-3.0.en.html}{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid15600639
+\hich\af2\dbch\af31505\loch\f2 " }{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid15600639 {\*\datafield
00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b7200000068007400740070003a002f002f007700770077002e0067006e0075002e006f00720067002f006c006900630065006e007300650073002f006c00670070006c002d0033002e0030002e0065006e002e006800
-74006d006c000000795881f43b1d7f48af2c825dc485276300000000a5ab0000000000004400e900006e14ec68d800000000000700b2004f000000ec000000006e20ffffff00000072002101000200}}}{\fldrslt {\rtlch\fcs1 \af2\afs21 \ltrch\fcs0
+74006d006c000000795881f43b1d7f48af2c825dc485276300000000a5ab0000000000004400e900006e14ec68d800000000000700b2004f000000ec000000006e20ffffff0000007200210100020059}}}{\fldrslt {\rtlch\fcs1 \af2\afs21 \ltrch\fcs0
\cs15\f2\fs21\ul\cf17\lang1043\langfe2052\langnp1043\insrsid15600639\charrsid9534683 \hich\af2\dbch\af31505\loch\f2 http://www.gnu.org/licenses/lgpl-3.0.en.html}}}\sectd \ltrsect\linex0\headery708\footery708\colsx708\sectdefaultcl\sftnbj {\rtlch\fcs1
\af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid4150084 \hich\af2\dbch\af31505\loch\f2 >}{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid12603449 \hich\af2\dbch\af31505\loch\f2 }{\rtlch\fcs1
\af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid15600639 \hich\af2\dbch\af31505\loch\f2 voor de tekst}{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid15600639\charrsid5593428 .
@@ -347,9 +348,9 @@
\par }{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid15549573 \hich\af2\dbch\af31505\loch\f2 4}{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid15600639\charrsid14624369
\hich\af2\dbch\af31505\loch\f2 . Het programma wordt verspreid in de hoop dat het van nut is, maar ZONDER ENIGE GA}{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid15600639 \hich\af2\dbch\af31505\loch\f2 RANTIE}{
\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid15600639\charrsid14624369 \hich\af2\dbch\af31505\loch\f2 . }{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid15600639
-\hich\af2\dbch\af31505\loch\f2 Lees de tekst van de }{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid15600639\charrsid14624369 \hich\af2\dbch\af31505\loch\f2 GNU General Public License}{\rtlch\fcs1 \af2\afs21
-\ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid7881760 \hich\af2\dbch\af31505\loch\f2 versie 3}{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid15600639\charrsid14624369 \hich\af2\dbch\af31505\loch\f2
- voor meer details.
+\hich\af2\dbch\af31505\loch\f2 Lees de tekst van de }{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid15600639\charrsid14624369 \hich\af2\dbch\af31505\loch\f2 GNU \hich\af2\dbch\af31505\loch\f2 General Public License}{
+\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid7881760 \hich\af2\dbch\af31505\loch\f2 versie 3}{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid15600639\charrsid14624369
+\hich\af2\dbch\af31505\loch\f2 voor meer details.
\par
\par }{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid15549573 \hich\af2\dbch\af31505\loch\f2 5}{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid15600639\charrsid14624369
\hich\af2\dbch\af31505\loch\f2 . De tekst van de GNU General Public License }{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid11875882 \hich\af2\dbch\af31505\loch\f2 versie 3 }{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0
@@ -360,18 +361,18 @@
\f2\fs21\lang1043\langfe2052\langnp1043\insrsid15600639\charrsid3686156 \hich\af2\dbch\af31505\loch\f2 http://www.gnu.org/licenses/gpl-3.0.en.html}{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid15600639
\hich\af2\dbch\af31505\loch\f2 " }{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid15600639 {\*\datafield
00d0c9ea79f9bace118c8200aa004ba90b0200000003000000e0c9ea79f9bace118c8200aa004ba90b7000000068007400740070003a002f002f007700770077002e0067006e0075002e006f00720067002f006c006900630065006e007300650073002f00670070006c002d0033002e0030002e0065006e002e0068007400
-6d006c000000795881f43b1d7f48af2c825dc485276300000000a5ab000000477d4c0000945e0000000065002f30000060b30004000000000000000000d8003500000000000000e5ff1f006000}}}{\fldrslt {\rtlch\fcs1 \af2\afs21 \ltrch\fcs0
+6d006c000000795881f43b1d7f48af2c825dc485276300000000a5ab000000477d4c0000945e0000000065002f30000060b30004000000000000000000d8003500000000000000e5ff1f00600000}}}{\fldrslt {\rtlch\fcs1 \af2\afs21 \ltrch\fcs0
\cs15\f2\fs21\ul\cf17\lang1043\langfe2052\langnp1043\insrsid15600639\charrsid9534683 \hich\af2\dbch\af31505\loch\f2 http://www.gnu.org/licenses/gpl-3.0.en.html}}}\sectd \ltrsect\linex0\headery708\footery708\colsx708\sectdefaultcl\sftnbj {\rtlch\fcs1
\af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid4150084 \hich\af2\dbch\af31505\loch\f2 >}{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid15600639 \hich\af2\dbch\af31505\loch\f2 voor de tekst}{
\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid15600639\charrsid5593428 .
\par
\par }{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid15549573 \hich\af2\dbch\af31505\loch\f2 6}{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid15600639\charrsid14624369
\hich\af2\dbch\af31505\loch\f2 . Alle namen}{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid12992049 \hich\af2\dbch\af31505\loch\f2 , }{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0
-\f2\fs21\lang1043\langfe2052\langnp1043\insrsid15600639\charrsid14624369 \hich\af2\dbch\af31505\loch\f2 logo\hich\f2 \rquote \loch\f2 s en verwijzingen naar "Deltares" zijn }{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0
-\f2\fs21\lang1043\langfe2052\langnp1043\insrsid15600639 \hich\af2\dbch\af31505\loch\f2 geregistree\hich\af2\dbch\af31505\loch\f2 rde merknamen van}{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0
-\f2\fs21\lang1043\langfe2052\langnp1043\insrsid15600639\charrsid14624369 \hich\af2\dbch\af31505\loch\f2 Stichting Deltares, }{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid15600639 \hich\af2\dbch\af31505\loch\f2
-en blijven te allen tijde eigendom van}{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid15600639\charrsid14624369 \hich\af2\dbch\af31505\loch\f2 Stichting Deltares. }{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0
-\f2\fs21\lang1043\langfe2052\langnp1043\insrsid15600639\charrsid13187850 \hich\af2\dbch\af31505\loch\f2 Alle rechten voorbehouden.}{\rtlch\fcs1 \ab\af2\afs24 \ltrch\fcs0 \b\f2\fs24\lang1043\langfe2052\langnp1043\insrsid15600639\charrsid5593428
+\f2\fs21\lang1043\langfe2052\langnp1043\insrsid15600639\charrsid14624369 \hich\af2\dbch\af31505\loch\f2 logo\hich\f2 \rquote \loch\f2 s en verwijzingen naar "Deltares" \hich\af2\dbch\af31505\loch\f2 zijn }{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0
+\f2\fs21\lang1043\langfe2052\langnp1043\insrsid15600639 \hich\af2\dbch\af31505\loch\f2 geregistreerde merknamen van}{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid15600639\charrsid14624369
+\hich\af2\dbch\af31505\loch\f2 Stichting Deltares, }{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid15600639 \hich\af2\dbch\af31505\loch\f2 en blijven te allen tijde eigendom van}{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0
+\f2\fs21\lang1043\langfe2052\langnp1043\insrsid15600639\charrsid14624369 \hich\af2\dbch\af31505\loch\f2 Stichting Deltares. }{\rtlch\fcs1 \af2\afs21 \ltrch\fcs0 \f2\fs21\lang1043\langfe2052\langnp1043\insrsid15600639\charrsid13187850
+\hich\af2\dbch\af31505\loch\f2 Alle rechten voorbehouden.}{\rtlch\fcs1 \ab\af2\afs24 \ltrch\fcs0 \b\f2\fs24\lang1043\langfe2052\langnp1043\insrsid15600639\charrsid5593428
\par }\pard \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0\pararsid15600639 {\rtlch\fcs1 \af0 \ltrch\fcs0 \lang1043\langfe2052\langnp1043\insrsid16086011\charrsid6624093
\par }{\*\themedata 504b030414000600080000002100e9de0fbfff0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb4ec3301045f748fc83e52d4a
9cb2400825e982c78ec7a27cc0c8992416c9d8b2a755fbf74cd25442a820166c2cd933f79e3be372bd1f07b5c3989ca74aaff2422b24eb1b475da5df374fd9ad
@@ -478,18 +479,18 @@
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffff010000000c6ad98892f1d411a65f0040963251e50000000000000000000000000051
-063c6be2d1010300000080020000000000004d0073006f004400610074006100530074006f0072006500000000000000000000000000000000000000000000000000000000000000000000000000000000001a000101ffffffffffffffff0200000000000000000000000000000000000000000000000051063c6be2d101
-0051063c6be2d10100000000000000000000000033005200d8004100ce00cd004d00cc004100d400d2005600d800cb00c100330034004f0055004d005700d0003d003d000000000000000000000000000000000032000101ffffffffffffffff0300000000000000000000000000000000000000000000000051063c6be2
-d1010051063c6be2d1010000000000000000000000004900740065006d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000201ffffffff04000000ffffffff000000000000000000000000000000000000000000000000
+ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffff010000000c6ad98892f1d411a65f0040963251e5000000000000000000000000e07b
+c5e579e2d1010300000080020000000000004d0073006f004400610074006100530074006f0072006500000000000000000000000000000000000000000000000000000000000000000000000000000000001a000101ffffffffffffffff020000000000000000000000000000000000000000000000e07bc5e579e2d101
+e07bc5e579e2d1010000000000000000000000003000d20056004c00cb005700d000cd0049004500de00d50044004900df004200c50058003300c600440041003d003d000000000000000000000000000000000032000101ffffffffffffffff030000000000000000000000000000000000000000000000e07bc5e579e2
+d101e07bc5e579e2d1010000000000000000000000004900740065006d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000201ffffffff04000000ffffffff000000000000000000000000000000000000000000000000
00000000000000000000000000000000d800000000000000010000000200000003000000feffffff0500000006000000070000000800000009000000feffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3c623a536f75726365732053656c65637465645374796c653d225c4150412e58534c22205374796c654e616d653d224150412220786d6c6e733a623d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f7267
2f6f6666696365446f63756d656e742f323030362f6269626c696f6772617068792220786d6c6e733d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f6f6666696365446f63756d656e742f323030362f6269626c696f677261706879223e3c2f623a536f75726365733e00000000
-0000000000000000000000000000000000000000000000000000000000000000000000003c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d226e6f223f3e0d0a3c64733a6461746173746f72654974656d2064733a6974656d49443d227b42413030
-314537352d324344332d344330332d393545322d4238354437384535304335427d2220786d6c6e733a64733d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f6f6666696365446f63756d656e742f323030362f637573746f6d586d6c223e3c64733a736368656d61526566733e3c
+0000000000000000000000000000000000000000000000000000000000000000000000003c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d226e6f223f3e0d0a3c64733a6461746173746f72654974656d2064733a6974656d49443d227b41443442
+323536422d324436432d344632302d423530432d3846433139353737363630437d2220786d6c6e733a64733d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f6f6666696365446f63756d656e742f323030362f637573746f6d586d6c223e3c64733a736368656d61526566733e3c
64733a736368656d615265662064733a7572693d22687474703a2f2f736368656d61732e6f70656e500072006f007000650072007400690065007300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000200ffffffffffffffffffffffff000000000000
0000000000000000000000000000000000000000000000000000000000000400000055010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000
Index: Application/Ringtoets/src/Application.Ringtoets/App.xaml.cs
===================================================================
diff -u -r31d4921763c045040f9300542aed356147966cc8 -rc5717eada81586126cbf53266abb0fc925382393
--- Application/Ringtoets/src/Application.Ringtoets/App.xaml.cs (.../App.xaml.cs) (revision 31d4921763c045040f9300542aed356147966cc8)
+++ Application/Ringtoets/src/Application.Ringtoets/App.xaml.cs (.../App.xaml.cs) (revision c5717eada81586126cbf53266abb0fc925382393)
@@ -40,7 +40,7 @@
using Core.Common.Utils;
using Core.Plugins.Chart;
using Core.Plugins.CommonTools;
-using Core.Plugins.DotSpatial;
+using Core.Plugins.Map;
using Core.Plugins.ProjectExplorer;
using log4net;
using Ringtoets.GrassCoverErosionInwards.Plugin;
@@ -157,7 +157,7 @@
new PipingPlugin(),
new HeightStructuresPlugin(),
new ChartPlugin(),
- new DotSpatialPlugin()
+ new MapPlugin()
#if INCLUDE_DEMOPROJECT
, new DemoProjectPlugin()
#endif
Index: Application/Ringtoets/src/Application.Ringtoets/Application.Ringtoets.csproj
===================================================================
diff -u -r31d4921763c045040f9300542aed356147966cc8 -rc5717eada81586126cbf53266abb0fc925382393
--- Application/Ringtoets/src/Application.Ringtoets/Application.Ringtoets.csproj (.../Application.Ringtoets.csproj) (revision 31d4921763c045040f9300542aed356147966cc8)
+++ Application/Ringtoets/src/Application.Ringtoets/Application.Ringtoets.csproj (.../Application.Ringtoets.csproj) (revision c5717eada81586126cbf53266abb0fc925382393)
@@ -65,14 +65,6 @@
Ringtoets.ico
-
- ..\..\..\..\packages\EntityFramework.6.1.3\lib\net40\EntityFramework.dll
- True
-
-
- ..\..\..\..\packages\EntityFramework.6.1.3\lib\net40\EntityFramework.SqlServer.dll
- True
-
False
..\..\..\..\packages\Fluent.Ribbon.3.4.0\lib\net40\Fluent.dll
@@ -83,17 +75,10 @@
-
3.5
-
-
-
- ..\..\..\..\packages\System.Data.SQLite.Core.1.0.99.0\lib\net40\System.Data.SQLite.dll
- True
-
@@ -156,18 +141,20 @@
Core.Plugins.CommonTools
False
-
+
{610E0A9C-1997-4C43-A10E-39D4C66ADA93}
- Core.Plugins.DotSpatial
+ Core.Plugins.Map
+ False
{ED20DBA9-D577-423F-A68D-A0A8130FB10B}
Core.Plugins.ProjectExplorer
False
-
+
{ffe3a667-3a4c-4f48-bc6b-1589867fcb41}
Demo.Ringtoets
+ False
{20955E2A-8CEB-46B0-ADC4-A97D4C6BBDF5}
@@ -192,6 +179,7 @@
{50963f12-448c-41ba-a62c-cdb0ab8d21e0}
Application.Ringtoets.Storage
+ False
@@ -271,11 +259,4 @@
-
-
-
- This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.
-
-
-
\ No newline at end of file
Index: Application/Ringtoets/src/Application.Ringtoets/app.config
===================================================================
diff -u -r3fdd2bee85bdf8b556c52d6706ed887c2b70bed4 -rc5717eada81586126cbf53266abb0fc925382393
--- Application/Ringtoets/src/Application.Ringtoets/app.config (.../app.config) (revision 3fdd2bee85bdf8b556c52d6706ed887c2b70bed4)
+++ Application/Ringtoets/src/Application.Ringtoets/app.config (.../app.config) (revision c5717eada81586126cbf53266abb0fc925382393)
@@ -36,7 +36,7 @@
-
+
Index: Application/Ringtoets/src/Application.Ringtoets/packages.config
===================================================================
diff -u -r4512af7782ee31b36941bb280b54d9da2953dd71 -rc5717eada81586126cbf53266abb0fc925382393
--- Application/Ringtoets/src/Application.Ringtoets/packages.config (.../packages.config) (revision 4512af7782ee31b36941bb280b54d9da2953dd71)
+++ Application/Ringtoets/src/Application.Ringtoets/packages.config (.../packages.config) (revision c5717eada81586126cbf53266abb0fc925382393)
@@ -23,8 +23,6 @@
All rights reserved.
-->
-
-
Fisheye: Tag c5717eada81586126cbf53266abb0fc925382393 refers to a dead (removed) revision in file `Core/Plugins/src/Core.Plugins.DotSpatial/Commands/ToggleMapLegendViewCommand.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag c5717eada81586126cbf53266abb0fc925382393 refers to a dead (removed) revision in file `Core/Plugins/src/Core.Plugins.DotSpatial/Core.Plugins.DotSpatial.csproj'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag c5717eada81586126cbf53266abb0fc925382393 refers to a dead (removed) revision in file `Core/Plugins/src/Core.Plugins.DotSpatial/DotSpatialPlugin.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag c5717eada81586126cbf53266abb0fc925382393 refers to a dead (removed) revision in file `Core/Plugins/src/Core.Plugins.DotSpatial/Legend/MapLegendController.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag c5717eada81586126cbf53266abb0fc925382393 refers to a dead (removed) revision in file `Core/Plugins/src/Core.Plugins.DotSpatial/Legend/MapLegendView.Designer.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag c5717eada81586126cbf53266abb0fc925382393 refers to a dead (removed) revision in file `Core/Plugins/src/Core.Plugins.DotSpatial/Legend/MapLegendView.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag c5717eada81586126cbf53266abb0fc925382393 refers to a dead (removed) revision in file `Core/Plugins/src/Core.Plugins.DotSpatial/Legend/MapLegendView.resx'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag c5717eada81586126cbf53266abb0fc925382393 refers to a dead (removed) revision in file `Core/Plugins/src/Core.Plugins.DotSpatial/MapRibbon.xaml'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag c5717eada81586126cbf53266abb0fc925382393 refers to a dead (removed) revision in file `Core/Plugins/src/Core.Plugins.DotSpatial/MapRibbon.xaml.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag c5717eada81586126cbf53266abb0fc925382393 refers to a dead (removed) revision in file `Core/Plugins/src/Core.Plugins.DotSpatial/Properties/AssemblyInfo.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag c5717eada81586126cbf53266abb0fc925382393 refers to a dead (removed) revision in file `Core/Plugins/src/Core.Plugins.DotSpatial/Properties/Resources.Designer.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag c5717eada81586126cbf53266abb0fc925382393 refers to a dead (removed) revision in file `Core/Plugins/src/Core.Plugins.DotSpatial/Properties/Resources.resx'.
Fisheye: No comparison available. Pass `N' to diff?
Index: Core/Plugins/src/Core.Plugins.DotSpatial/Resources/MapPanZoomImage.png
===================================================================
diff -u -r3aa114b55dd6caa46890a54af64fba874497c135 -rc5717eada81586126cbf53266abb0fc925382393
Binary files differ
Index: Core/Plugins/src/Core.Plugins.DotSpatial/Resources/area.png
===================================================================
diff -u -rd72c02e33c5e53b6048a701cd68673db7053726b -rc5717eada81586126cbf53266abb0fc925382393
Binary files differ
Index: Core/Plugins/src/Core.Plugins.DotSpatial/Resources/line.png
===================================================================
diff -u -rd72c02e33c5e53b6048a701cd68673db7053726b -rc5717eada81586126cbf53266abb0fc925382393
Binary files differ
Index: Core/Plugins/src/Core.Plugins.DotSpatial/Resources/map--plus.png
===================================================================
diff -u -r5e80369138024933a45f3e4ae721509dfb17d8fb -rc5717eada81586126cbf53266abb0fc925382393
Binary files differ
Index: Core/Plugins/src/Core.Plugins.DotSpatial/Resources/map-pin.png
===================================================================
diff -u -r33d1826440741f2fa8b53129d59c532f110dc2bf -rc5717eada81586126cbf53266abb0fc925382393
Binary files differ
Index: Core/Plugins/src/Core.Plugins.DotSpatial/Resources/map.png
===================================================================
diff -u -r6522a9f7396e770f8ecdcfda59c0966a86f6fb23 -rc5717eada81586126cbf53266abb0fc925382393
Binary files differ
Index: Core/Plugins/src/Core.Plugins.DotSpatial/Resources/points.png
===================================================================
diff -u -rd72c02e33c5e53b6048a701cd68673db7053726b -rc5717eada81586126cbf53266abb0fc925382393
Binary files differ
Index: Core/Plugins/src/Core.Plugins.DotSpatial/Resources/zoomextents.png
===================================================================
diff -u -r3aa114b55dd6caa46890a54af64fba874497c135 -rc5717eada81586126cbf53266abb0fc925382393
Binary files differ
Index: Core/Plugins/src/Core.Plugins.DotSpatial/Resources/zoomrectangle.png
===================================================================
diff -u -r3aa114b55dd6caa46890a54af64fba874497c135 -rc5717eada81586126cbf53266abb0fc925382393
Binary files differ
Fisheye: Tag c5717eada81586126cbf53266abb0fc925382393 refers to a dead (removed) revision in file `Core/Plugins/src/Core.Plugins.DotSpatial/packages.config'.
Fisheye: No comparison available. Pass `N' to diff?
Index: Core/Plugins/src/Core.Plugins.Map/Commands/ToggleMapLegendViewCommand.cs
===================================================================
diff -u
--- Core/Plugins/src/Core.Plugins.Map/Commands/ToggleMapLegendViewCommand.cs (revision 0)
+++ Core/Plugins/src/Core.Plugins.Map/Commands/ToggleMapLegendViewCommand.cs (revision c5717eada81586126cbf53266abb0fc925382393)
@@ -0,0 +1,64 @@
+// Copyright (C) Stichting Deltares 2016. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program 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.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using Core.Common.Controls.Commands;
+using Core.Plugins.Map.Legend;
+
+namespace Core.Plugins.Map.Commands
+{
+ ///
+ /// The command which toggles the visibility of the .
+ ///
+ public class ToggleMapLegendViewCommand : ICommand
+ {
+ private readonly MapLegendController controller;
+
+ ///
+ /// Creates a new instance of .
+ ///
+ /// The to use to invoke actions and determine state.
+ public ToggleMapLegendViewCommand(MapLegendController controller)
+ {
+ this.controller = controller;
+ }
+
+ public bool Enabled
+ {
+ get
+ {
+ return true;
+ }
+ }
+
+ public bool Checked
+ {
+ get
+ {
+ return controller.IsMapLegendViewOpen;
+ }
+ }
+
+ public void Execute(params object[] arguments)
+ {
+ controller.ToggleView();
+ }
+ }
+}
\ No newline at end of file
Index: Core/Plugins/src/Core.Plugins.Map/Core.Plugins.Map.csproj
===================================================================
diff -u
--- Core/Plugins/src/Core.Plugins.Map/Core.Plugins.Map.csproj (revision 0)
+++ Core/Plugins/src/Core.Plugins.Map/Core.Plugins.Map.csproj (revision c5717eada81586126cbf53266abb0fc925382393)
@@ -0,0 +1,198 @@
+
+
+
+
+ {610E0A9C-1997-4C43-A10E-39D4C66ADA93}
+ Library
+ Properties
+ Core.Plugins.Map
+ Core.Plugins.Map
+ v4.0
+ 512
+
+
+ true
+ full
+ false
+ DEBUG;TRACE
+ prompt
+
+
+ none
+ true
+ TRACE
+ prompt
+
+
+ TRACE
+ true
+ true
+ pdbonly
+ prompt
+ AllRules.ruleset
+
+
+
+ False
+ ..\..\..\..\lib\DotSpatial.1.8\DotSpatial.Data.dll
+
+
+ False
+ ..\..\..\..\lib\DotSpatial.1.8\DotSpatial.Topology.dll
+
+
+ ..\..\..\..\packages\Fluent.Ribbon.3.4.0\lib\net40\Fluent.dll
+ True
+
+
+ ..\..\..\..\packages\log4net.2.0.4\lib\net40-full\log4net.dll
+ True
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties\GlobalAssembly.cs
+
+
+
+
+
+ UserControl
+
+
+ MapLegendView.cs
+
+
+ MapRibbon.xaml
+
+
+
+ True
+ True
+ Resources.resx
+
+
+
+
+ {3bbfd65b-b277-4e50-ae6d-bd24c3434609}
+ Core.Common.Base
+ False
+
+
+ {1D27F91F-4E62-4EAF-A0A8-A32708B9A9B1}
+ Core.Common.Controls.TreeView
+ False
+
+
+ {9a2d67e6-26ac-4d17-b11a-2b4372f2f572}
+ Core.Common.Controls
+ False
+
+
+ {30E4C2AE-719E-4D70-9FA9-668A9767FBFA}
+ Core.Common.Gui
+ False
+
+
+ {e344867e-9ac9-44c8-88a5-8185681679a9}
+ Core.Common.IO
+ False
+
+
+ {f49bd8b2-332a-4c91-a196-8cce0a2c7d98}
+ Core.Common.Utils
+ False
+
+
+ {c90b77da-e421-43cc-b82e-529651bc21ac}
+ Core.Common.Version
+ False
+
+
+ {5a91174a-fb95-4c9d-9ca5-81c0b8d4361a}
+ Core.Components.DotSpatial.Forms
+ False
+
+
+ {4a06df0d-5d75-4bad-a95a-a3db9b7c4ad5}
+ Core.Components.Gis.Forms
+ False
+
+
+ {fd264fad-e6f9-47cc-97cd-770199a8e629}
+ Core.Components.Gis.IO
+ False
+
+
+ {318ba582-88c9-4816-a54a-a7e431461de3}
+ Core.Components.Gis
+ False
+
+
+
+
+ Copying.Lesser.licenseheader
+
+
+
+
+
+ Designer
+ MSBuild:Compile
+
+
+
+
+ MapLegendView.cs
+
+
+ PublicResXFileCodeGenerator
+ Resources.Designer.cs
+ Designer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
Index: Core/Plugins/src/Core.Plugins.Map/Legend/MapLegendController.cs
===================================================================
diff -u
--- Core/Plugins/src/Core.Plugins.Map/Legend/MapLegendController.cs (revision 0)
+++ Core/Plugins/src/Core.Plugins.Map/Legend/MapLegendController.cs (revision c5717eada81586126cbf53266abb0fc925382393)
@@ -0,0 +1,140 @@
+// Copyright (C) Stichting Deltares 2016. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program 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.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System;
+using System.Linq;
+using System.Windows.Forms;
+using Core.Common.Controls.Views;
+using Core.Common.Gui;
+using Core.Common.Gui.ContextMenu;
+using Core.Common.Gui.Forms.ViewHost;
+using Core.Components.Gis.Data;
+using Core.Plugins.Map.Properties;
+
+namespace Core.Plugins.Map.Legend
+{
+ ///
+ /// This class controls the actions which are related to controlling visibility and updating contents of a .
+ ///
+ public class MapLegendController
+ {
+ private readonly IViewController viewController;
+ private readonly IContextMenuBuilderProvider contextMenuBuilderProvider;
+ private readonly IWin32Window parentWindow;
+
+ ///
+ /// Fired when the map legend has been opened.
+ ///
+ public EventHandler OnOpenLegend;
+
+ private IView legendView;
+
+ ///
+ /// Creates a new instance of .
+ ///
+ /// The to invoke actions upon.
+ /// The to create context menus.
+ /// The to show dialogs.
+ /// Thrown when or is null.
+ public MapLegendController(IViewController viewController, IContextMenuBuilderProvider contextMenuBuilderProvider, IWin32Window parentWindow)
+ {
+ if (viewController == null)
+ {
+ throw new ArgumentNullException("viewController", "Cannot create a MapLegendController when the view controller is null.");
+ }
+ if (contextMenuBuilderProvider == null)
+ {
+ throw new ArgumentNullException("contextMenuBuilderProvider", "Cannot create a MapLegendController when the context menu builder provider is null.");
+ }
+ if (parentWindow == null)
+ {
+ throw new ArgumentNullException("parentWindow", "Cannot create a MapLegendController when the parent window is null");
+ }
+ this.viewController = viewController;
+ this.contextMenuBuilderProvider = contextMenuBuilderProvider;
+ this.parentWindow = parentWindow;
+ }
+
+ ///
+ /// Gets a value indicating whether the is visible.
+ ///
+ public bool IsMapLegendViewOpen
+ {
+ get
+ {
+ return legendView != null && viewController.ViewHost.ToolViews.Contains(legendView);
+ }
+ }
+
+ ///
+ /// Toggles the visibility of the .
+ ///
+ public void ToggleView()
+ {
+ if (IsMapLegendViewOpen)
+ {
+ CloseLegendView();
+ }
+ else
+ {
+ OpenLegendView();
+ }
+ }
+
+ ///
+ /// Updates the data for the if it is open.
+ ///
+ /// The to show. If null the data
+ /// will be cleared.
+ public void Update(MapData data)
+ {
+ if (IsMapLegendViewOpen)
+ {
+ legendView.Data = data;
+ }
+ }
+
+ ///
+ /// Opens the .
+ ///
+ private void OpenLegendView()
+ {
+ legendView = new MapLegendView(contextMenuBuilderProvider, parentWindow);
+
+ viewController.ViewHost.AddToolView(legendView, ToolViewLocation.Left);
+ viewController.ViewHost.SetImage(legendView, Resources.MapIcon);
+
+ if (OnOpenLegend != null)
+ {
+ OnOpenLegend(this, EventArgs.Empty);
+ }
+ }
+
+ ///
+ /// Closes the .
+ ///
+ private void CloseLegendView()
+ {
+ viewController.ViewHost.Remove(legendView);
+ legendView = null;
+ }
+ }
+}
\ No newline at end of file
Index: Core/Plugins/src/Core.Plugins.Map/Legend/MapLegendView.Designer.cs
===================================================================
diff -u
--- Core/Plugins/src/Core.Plugins.Map/Legend/MapLegendView.Designer.cs (revision 0)
+++ Core/Plugins/src/Core.Plugins.Map/Legend/MapLegendView.Designer.cs (revision c5717eada81586126cbf53266abb0fc925382393)
@@ -0,0 +1,57 @@
+namespace Core.Plugins.Map.Legend
+{
+ partial class MapLegendView
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.treeViewControl = new Core.Common.Controls.TreeView.TreeViewControl();
+ this.SuspendLayout();
+ //
+ // treeViewControl
+ //
+ this.treeViewControl.Data = null;
+ this.treeViewControl.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.treeViewControl.Location = new System.Drawing.Point(0, 0);
+ this.treeViewControl.Name = "treeViewControl";
+ this.treeViewControl.Size = new System.Drawing.Size(150, 150);
+ this.treeViewControl.TabIndex = 0;
+ //
+ // MapLegendView
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.treeViewControl);
+ this.Name = "MapLegendView";
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private Common.Controls.TreeView.TreeViewControl treeViewControl;
+ }
+}
Index: Core/Plugins/src/Core.Plugins.Map/Legend/MapLegendView.cs
===================================================================
diff -u
--- Core/Plugins/src/Core.Plugins.Map/Legend/MapLegendView.cs (revision 0)
+++ Core/Plugins/src/Core.Plugins.Map/Legend/MapLegendView.cs (revision c5717eada81586126cbf53266abb0fc925382393)
@@ -0,0 +1,271 @@
+// Copyright (C) Stichting Deltares 2016. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program 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.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System;
+using System.IO;
+using System.Linq;
+using System.Windows.Forms;
+using Core.Common.Base;
+using Core.Common.Controls.TreeView;
+using Core.Common.Controls.Views;
+using Core.Common.Gui.ContextMenu;
+using Core.Common.IO.Exceptions;
+using Core.Common.Utils.Builders;
+using Core.Components.DotSpatial.Forms;
+using Core.Components.Gis.Data;
+using Core.Components.Gis.IO.Readers;
+using DotSpatial.Data;
+using DotSpatial.Topology;
+using log4net;
+using MapResources = Core.Plugins.Map.Properties.Resources;
+using GuiResources = Core.Common.Gui.Properties.Resources;
+using ILog = log4net.ILog;
+
+namespace Core.Plugins.Map.Legend
+{
+ ///
+ /// The view which shows the data that is added to a .
+ ///
+ public sealed partial class MapLegendView : UserControl, IView
+ {
+ private static readonly ILog log = LogManager.GetLogger(typeof(MapLegendView));
+
+ private readonly IContextMenuBuilderProvider contextMenuBuilderProvider;
+ private readonly IWin32Window parentWindow;
+
+ ///
+ /// Creates a new instance of .
+ ///
+ /// The to create context menus.
+ ///
+ /// Thrown when or is null.
+ public MapLegendView(IContextMenuBuilderProvider contextMenuBuilderProvider, IWin32Window parentWindow)
+ {
+ if (contextMenuBuilderProvider == null)
+ {
+ throw new ArgumentNullException("contextMenuBuilderProvider", "Cannot create a MapLegendView when the context menu builder provider is null.");
+ }
+ if (parentWindow == null)
+ {
+ throw new ArgumentNullException("parentWindow", "Cannot create a MapLegendView when the parent window is null.");
+ }
+
+ this.contextMenuBuilderProvider = contextMenuBuilderProvider;
+ this.parentWindow = parentWindow;
+ InitializeComponent();
+ Text = MapResources.General_Map;
+
+ RegisterTreeNodeInfos();
+ }
+
+ public object Data
+ {
+ get
+ {
+ return (MapData) treeViewControl.Data;
+ }
+ set
+ {
+ treeViewControl.Data = (MapData) value;
+ }
+ }
+
+ private void RegisterTreeNodeInfos()
+ {
+ treeViewControl.RegisterTreeNodeInfo(new TreeNodeInfo
+ {
+ Text = mapPointData => mapPointData.Name,
+ Image = mapPointData => MapResources.PointsIcon,
+ CanDrag = (mapPointData, parentData) => true,
+ CanCheck = mapPointData => true,
+ IsChecked = mapPointData => mapPointData.IsVisible,
+ OnNodeChecked = PointBasedMapDataOnNodeChecked
+ });
+
+ treeViewControl.RegisterTreeNodeInfo(new TreeNodeInfo
+ {
+ Text = mapLineData => mapLineData.Name,
+ Image = mapLineData => MapResources.LineIcon,
+ CanDrag = (mapLineData, parentData) => true,
+ CanCheck = mapLineData => true,
+ IsChecked = mapLineData => mapLineData.IsVisible,
+ OnNodeChecked = PointBasedMapDataOnNodeChecked
+ });
+
+ treeViewControl.RegisterTreeNodeInfo(new TreeNodeInfo
+ {
+ Text = mapPolygonData => mapPolygonData.Name,
+ Image = mapPolygonData => MapResources.AreaIcon,
+ CanDrag = (mapPolygonData, parentData) => true,
+ CanCheck = mapPolygonData => true,
+ IsChecked = mapPolygonData => mapPolygonData.IsVisible,
+ OnNodeChecked = PointBasedMapDataOnNodeChecked
+ });
+
+ treeViewControl.RegisterTreeNodeInfo(new TreeNodeInfo
+ {
+ Text = mapDataCollection => mapDataCollection.Name,
+ Image = mapDataCollection => GuiResources.folder,
+ ChildNodeObjects = mapDataCollection => mapDataCollection.List.Reverse().Cast
Fisheye: Tag c5717eada81586126cbf53266abb0fc925382393 refers to a dead (removed) revision in file `Core/Plugins/test/Core.Plugins.DotSpatial.Test/Commands/ToggleMapLegendViewCommandTest.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag c5717eada81586126cbf53266abb0fc925382393 refers to a dead (removed) revision in file `Core/Plugins/test/Core.Plugins.DotSpatial.Test/Core.Plugins.DotSpatial.Test.csproj'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag c5717eada81586126cbf53266abb0fc925382393 refers to a dead (removed) revision in file `Core/Plugins/test/Core.Plugins.DotSpatial.Test/DotSpatialPluginTest.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag c5717eada81586126cbf53266abb0fc925382393 refers to a dead (removed) revision in file `Core/Plugins/test/Core.Plugins.DotSpatial.Test/Legend/MapDataCollectionTreeNodeInfoTest.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag c5717eada81586126cbf53266abb0fc925382393 refers to a dead (removed) revision in file `Core/Plugins/test/Core.Plugins.DotSpatial.Test/Legend/MapLegendControllerTest.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag c5717eada81586126cbf53266abb0fc925382393 refers to a dead (removed) revision in file `Core/Plugins/test/Core.Plugins.DotSpatial.Test/Legend/MapLegendViewTest.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag c5717eada81586126cbf53266abb0fc925382393 refers to a dead (removed) revision in file `Core/Plugins/test/Core.Plugins.DotSpatial.Test/Legend/MapLineDataTreeNodeInfoTest.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag c5717eada81586126cbf53266abb0fc925382393 refers to a dead (removed) revision in file `Core/Plugins/test/Core.Plugins.DotSpatial.Test/Legend/MapPointDataTreeNodeInfoTest.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag c5717eada81586126cbf53266abb0fc925382393 refers to a dead (removed) revision in file `Core/Plugins/test/Core.Plugins.DotSpatial.Test/Legend/MapPolygonDataTreeNodeInfoTest.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag c5717eada81586126cbf53266abb0fc925382393 refers to a dead (removed) revision in file `Core/Plugins/test/Core.Plugins.DotSpatial.Test/MapRibbonTest.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag c5717eada81586126cbf53266abb0fc925382393 refers to a dead (removed) revision in file `Core/Plugins/test/Core.Plugins.DotSpatial.Test/Properties/AssemblyInfo.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag c5717eada81586126cbf53266abb0fc925382393 refers to a dead (removed) revision in file `Core/Plugins/test/Core.Plugins.DotSpatial.Test/TestMapView.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag c5717eada81586126cbf53266abb0fc925382393 refers to a dead (removed) revision in file `Core/Plugins/test/Core.Plugins.DotSpatial.Test/TestView.Designer.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag c5717eada81586126cbf53266abb0fc925382393 refers to a dead (removed) revision in file `Core/Plugins/test/Core.Plugins.DotSpatial.Test/TestView.cs'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag c5717eada81586126cbf53266abb0fc925382393 refers to a dead (removed) revision in file `Core/Plugins/test/Core.Plugins.DotSpatial.Test/TestView.resx'.
Fisheye: No comparison available. Pass `N' to diff?
Fisheye: Tag c5717eada81586126cbf53266abb0fc925382393 refers to a dead (removed) revision in file `Core/Plugins/test/Core.Plugins.DotSpatial.Test/packages.config'.
Fisheye: No comparison available. Pass `N' to diff?
Index: Core/Plugins/test/Core.Plugins.Map.Test/Commands/ToggleMapLegendViewCommandTest.cs
===================================================================
diff -u
--- Core/Plugins/test/Core.Plugins.Map.Test/Commands/ToggleMapLegendViewCommandTest.cs (revision 0)
+++ Core/Plugins/test/Core.Plugins.Map.Test/Commands/ToggleMapLegendViewCommandTest.cs (revision c5717eada81586126cbf53266abb0fc925382393)
@@ -0,0 +1,141 @@
+// Copyright (C) Stichting Deltares 2016. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program 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.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System.Collections.Generic;
+using System.Windows.Forms;
+using Core.Common.Controls.Commands;
+using Core.Common.Controls.Views;
+using Core.Common.Gui;
+using Core.Common.Gui.ContextMenu;
+using Core.Common.Gui.Forms.ViewHost;
+using Core.Plugins.Map.Commands;
+using Core.Plugins.Map.Legend;
+using NUnit.Framework;
+using Rhino.Mocks;
+
+namespace Core.Plugins.Map.Test.Commands
+{
+ [TestFixture]
+ public class ToggleMapLegendViewCommandTest
+ {
+ [Test]
+ public void Constructor_Always_CreatesICommand()
+ {
+ // Call
+ var command = new ToggleMapLegendViewCommand(null);
+
+ // Assert
+ Assert.IsInstanceOf(command);
+ }
+
+ [Test]
+ public void Enabled_Always_ReturnsTrue()
+ {
+ // Call
+ var command = new ToggleMapLegendViewCommand(null);
+
+ // Assert
+ Assert.IsTrue(command.Enabled);
+ }
+
+ [Test]
+ [TestCase(true)]
+ [TestCase(false)]
+ public void Checked_LegendViewOpenOrClosed_ReturnsExpectedState(bool open)
+ {
+ // Setup
+ var mocks = new MockRepository();
+ var viewController = mocks.StrictMock();
+ var parentWindow = mocks.StrictMock();
+
+ var contextMenuBuilderProvider = mocks.StrictMock();
+
+ if (open)
+ {
+ var toolViewList = new List();
+ var viewHost = mocks.Stub();
+
+ viewController.Stub(vc => vc.ViewHost).Return(viewHost);
+ viewHost.Stub(vm => vm.ToolViews).Return(toolViewList);
+ viewHost.Expect(vm => vm.AddToolView(Arg.Matches(c => true), Arg.Matches(vl => vl == ToolViewLocation.Left))).WhenCalled(invocation =>
+ {
+ toolViewList.Add(invocation.Arguments[0] as MapLegendView);
+ });
+
+ viewHost.Expect(vm => vm.SetImage(null, null)).IgnoreArguments();
+ }
+
+ mocks.ReplayAll();
+
+ var controller = new MapLegendController(viewController, contextMenuBuilderProvider, parentWindow);
+ var command = new ToggleMapLegendViewCommand(controller);
+
+ if (open)
+ {
+ controller.ToggleView();
+ }
+
+ // Call
+ var result = command.Checked;
+
+ // Assert
+ Assert.AreEqual(open, result);
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ public void Execute_Always_TogglesLegend()
+ {
+ // Setup
+ var mocks = new MockRepository();
+ var viewController = mocks.StrictMock();
+ var contextMenuBuilderProvider = mocks.StrictMock();
+ var parentWindow = mocks.StrictMock();
+ var viewHost = mocks.Stub();
+ var toolViewList = new List();
+
+ viewController.Stub(vc => vc.ViewHost).Return(viewHost);
+ viewHost.Stub(vm => vm.ToolViews).Return(toolViewList);
+
+ // Open
+ viewHost.Expect(vm => vm.AddToolView(Arg.Matches(c => true), Arg.Matches(vl => vl == ToolViewLocation.Left))).WhenCalled(invocation =>
+ {
+ toolViewList.Add(invocation.Arguments[0] as MapLegendView);
+ });
+ viewHost.Expect(vm => vm.SetImage(null, null)).IgnoreArguments();
+
+ // Close
+ viewHost.Expect(vm => vm.Remove(Arg.Matches(v => true)));
+
+ mocks.ReplayAll();
+
+ var controller = new MapLegendController(viewController, contextMenuBuilderProvider, parentWindow);
+ var command = new ToggleMapLegendViewCommand(controller);
+
+ // Call
+ command.Execute();
+ command.Execute();
+
+ // Assert
+ mocks.VerifyAll();
+ }
+ }
+}
\ No newline at end of file
Index: Core/Plugins/test/Core.Plugins.Map.Test/Core.Plugins.Map.Test.csproj
===================================================================
diff -u
--- Core/Plugins/test/Core.Plugins.Map.Test/Core.Plugins.Map.Test.csproj (revision 0)
+++ Core/Plugins/test/Core.Plugins.Map.Test/Core.Plugins.Map.Test.csproj (revision c5717eada81586126cbf53266abb0fc925382393)
@@ -0,0 +1,154 @@
+
+
+
+ Debug
+ x86
+ {93AB5AFB-F58E-4EC4-A25E-FF439B1895E7}
+ Library
+ Properties
+ Core.Plugins.Map.Test
+ Core.Plugins.Map.Test
+ v4.0
+ 512
+
+
+ true
+ bin\Debug\
+ 4
+ x86
+ MinimumRecommendedRules.ruleset
+ TRACE;DEBUG
+ full
+
+
+ none
+ bin\Release\
+ 4
+ x86
+ MinimumRecommendedRules.ruleset
+ TRACE
+ true
+
+
+ bin\ReleaseForCodeCoverage\
+ TRACE
+ true
+ pdbonly
+ x86
+ prompt
+ MinimumRecommendedRules.ruleset
+
+
+
+ ..\..\..\..\packages\Fluent.Ribbon.3.4.0\lib\net40\Fluent.dll
+ True
+
+
+ ..\..\..\..\packages\NUnit.2.6.4\lib\nunit.framework.dll
+ True
+
+
+
+
+ ..\..\..\..\packages\RhinoMocks.3.6.1\lib\net\Rhino.Mocks.dll
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Component
+
+
+ UserControl
+
+
+ TestView.cs
+
+
+
+
+ {3BBFD65B-B277-4E50-AE6D-BD24C3434609}
+ Core.Common.Base
+
+
+ {1D27F91F-4E62-4EAF-A0A8-A32708B9A9B1}
+ Core.Common.Controls.TreeView
+
+
+ {9a2d67e6-26ac-4d17-b11a-2b4372f2f572}
+ Core.Common.Controls
+ True
+
+
+ {30e4c2ae-719e-4d70-9fa9-668a9767fbfa}
+ Core.Common.Gui
+ True
+
+
+ {F49BD8B2-332A-4C91-A196-8CCE0A2C7D98}
+ Core.Common.Utils
+
+
+ {26214BD0-DAFB-4CFC-8EB2-80C5D53C859E}
+ Core.Common.Gui.TestUtil
+
+
+ {D749EE4C-CE50-4C17-BF01-9A953028C126}
+ Core.Common.TestUtil
+
+
+ {5a91174a-fb95-4c9d-9ca5-81c0b8d4361a}
+ Core.Components.DotSpatial.Forms
+
+
+ {4a06df0d-5d75-4bad-a95a-a3db9b7c4ad5}
+ Core.Components.Gis.Forms
+
+
+ {318ba582-88c9-4816-a54a-a7e431461de3}
+ Core.Components.Gis
+
+
+ {9B6F3987-EAF7-4733-80C1-3DCAB44D87AE}
+ Core.Components.DotSpatial.TestUtil
+
+
+ {610e0a9c-1997-4c43-a10e-39d4c66ada93}
+ Core.Plugins.DotSpatial
+
+
+
+
+ Copying.Lesser.licenseheader
+
+
+
+
+
+ TestView.cs
+
+
+
+
+
\ No newline at end of file
Index: Core/Plugins/test/Core.Plugins.Map.Test/Legend/MapDataCollectionTreeNodeInfoTest.cs
===================================================================
diff -u
--- Core/Plugins/test/Core.Plugins.Map.Test/Legend/MapDataCollectionTreeNodeInfoTest.cs (revision 0)
+++ Core/Plugins/test/Core.Plugins.Map.Test/Legend/MapDataCollectionTreeNodeInfoTest.cs (revision c5717eada81586126cbf53266abb0fc925382393)
@@ -0,0 +1,321 @@
+// Copyright (C) Stichting Deltares 2016. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program 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.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Windows.Forms;
+using Core.Common.Base;
+using Core.Common.Controls.TreeView;
+using Core.Common.Gui.ContextMenu;
+using Core.Common.Gui.TestUtil.ContextMenu;
+using Core.Common.TestUtil;
+using Core.Common.Utils.Reflection;
+using Core.Components.Gis.Data;
+using Core.Plugins.Map.Legend;
+using Core.Plugins.Map.Properties;
+using NUnit.Framework;
+using Rhino.Mocks;
+using GuiResources = Core.Common.Gui.Properties.Resources;
+
+namespace Core.Plugins.Map.Test.Legend
+{
+ [TestFixture]
+ public class MapDataCollectionTreeNodeInfoTest
+ {
+ private MockRepository mocks;
+ private MapLegendView mapLegendView;
+ private TreeNodeInfo info;
+ private IContextMenuBuilderProvider contextMenuBuilderProvider;
+
+ [SetUp]
+ public void SetUp()
+ {
+ mocks = new MockRepository();
+ contextMenuBuilderProvider = mocks.StrictMock();
+ var parentWindow = mocks.Stub();
+ mapLegendView = new MapLegendView(contextMenuBuilderProvider, parentWindow);
+
+ TreeViewControl treeViewControl = TypeUtils.GetField(mapLegendView, "treeViewControl");
+ Dictionary treeNodeInfoLookup = TypeUtils.GetField>(treeViewControl, "tagTypeTreeNodeInfoLookup");
+
+ info = treeNodeInfoLookup[typeof(MapDataCollection)];
+ }
+
+ [TearDown]
+ public void TearDown()
+ {
+ mapLegendView.Dispose();
+
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ public void Initialized_Always_ExpectedPropertiesSet()
+ {
+ // Setup
+ mocks.ReplayAll();
+
+ // Assert
+ Assert.AreEqual(typeof(MapDataCollection), info.TagType);
+ Assert.IsNull(info.ForeColor);
+ Assert.IsNull(info.EnsureVisibleOnCreate);
+ Assert.IsNull(info.CanRename);
+ Assert.IsNull(info.OnNodeRenamed);
+ Assert.IsNull(info.CanRemove);
+ Assert.IsNull(info.OnNodeRemoved);
+ Assert.IsNull(info.CanCheck);
+ Assert.IsNull(info.IsChecked);
+ Assert.IsNull(info.OnNodeChecked);
+ Assert.IsNull(info.CanDrag);
+ }
+
+ [Test]
+ public void Text_Always_ReturnsNameFromMapData()
+ {
+ // Setup
+ var mapDataCollection = mocks.StrictMock(Enumerable.Empty(), "Collectie");
+
+ mocks.ReplayAll();
+
+ // Call
+ var text = info.Text(mapDataCollection);
+
+ // Assert
+ Assert.AreEqual(mapDataCollection.Name, text);
+ }
+
+ [Test]
+ public void Image_Always_ReturnsImageFromResource()
+ {
+ // Setup
+ mocks.ReplayAll();
+
+ // Call
+ var image = info.Image(null);
+
+ // Assert
+ TestHelper.AssertImagesAreEqual(GuiResources.folder, image);
+ }
+
+ [Test]
+ public void ChildNodeObjects_Always_ReturnsChildsOnDataReversed()
+ {
+ // Setup
+ var mapData1 = mocks.StrictMock("test data");
+ var mapData2 = mocks.StrictMock("test data");
+ var mapData3 = mocks.StrictMock("test data");
+ var mapDataCollection = mocks.StrictMock(new List
+ {
+ mapData1,
+ mapData2,
+ mapData3
+ }, "test data");
+
+ mocks.ReplayAll();
+
+ // Call
+ var objects = info.ChildNodeObjects(mapDataCollection);
+
+ // Assert
+ CollectionAssert.AreEqual(new[]
+ {
+ mapData3,
+ mapData2,
+ mapData1
+ }, objects);
+ }
+
+ [Test]
+ public void CanDrop_SourceNodeTagIsNoMapData_ReturnsFalse()
+ {
+ // Setup
+ var mapDataCollection = mocks.StrictMock(Enumerable.Empty(), "test data");
+
+ mocks.ReplayAll();
+
+ // Call
+ var canDrop = info.CanDrop(new object(), mapDataCollection);
+
+ // Assert
+ Assert.IsFalse(canDrop);
+ }
+
+ [Test]
+ public void CanDrop_SourceNodeTagIsMapData_ReturnsTrue()
+ {
+ // Setup
+ var mapData = mocks.StrictMock("test data");
+ var mapDataCollection = mocks.StrictMock(Enumerable.Empty(), "test data");
+
+ mocks.ReplayAll();
+
+ // Call
+ var canDrop = info.CanDrop(mapData, mapDataCollection);
+
+ // Assert
+ Assert.IsTrue(canDrop);
+ }
+
+ [Test]
+ public void CanInsert_SourceNodeTagIsNoMapData_ReturnsFalse()
+ {
+ // Setup
+ var mapDataCollection = mocks.StrictMock(Enumerable.Empty(), "test data");
+
+ mocks.ReplayAll();
+
+ // Call
+ var canInsert = info.CanInsert(new object(), mapDataCollection);
+
+ // Assert
+ Assert.IsFalse(canInsert);
+ }
+
+ [Test]
+ public void CanInsert_SourceNodeTagIsMapData_ReturnsTrue()
+ {
+ // Setup
+ var mapData = mocks.StrictMock("test data");
+ var mapDataCollection = mocks.StrictMock(Enumerable.Empty(), "test data");
+
+ mocks.ReplayAll();
+
+ // Call
+ var canInsert = info.CanInsert(mapData, mapDataCollection);
+
+ // Assert
+ Assert.IsTrue(canInsert);
+ }
+
+ [Test]
+ [TestCase(0)]
+ [TestCase(1)]
+ [TestCase(2)]
+ public void OnDrop_MapDataMovedToPositionInsideRange_SetsNewReverseOrder(int position)
+ {
+ // Setup
+ var mapData1 = mocks.StrictMock("test data");
+ var mapData2 = mocks.StrictMock("test data");
+ var mapData3 = mocks.StrictMock("test data");
+ var mapDataCollection = mocks.StrictMock(new List
+ {
+ mapData1,
+ mapData2,
+ mapData3
+ }, "test data");
+
+ var observer = mocks.StrictMock();
+ observer.Expect(o => o.UpdateObserver());
+
+ mocks.ReplayAll();
+
+ using (var treeViewControl = new TreeViewControl())
+ {
+ mapDataCollection.Attach(observer);
+
+ // Call
+ info.OnDrop(mapData1, mapDataCollection, mapDataCollection, position, treeViewControl);
+
+ // Assert
+ var reversedIndex = 2 - position;
+ Assert.AreSame(mapData1, mapDataCollection.List.ElementAt(reversedIndex));
+ }
+ }
+
+ [Test]
+ [TestCase(-50)]
+ [TestCase(-1)]
+ [TestCase(3)]
+ [TestCase(50)]
+ public void OnDrop_MapDataMovedToPositionOutsideRange_SetsNewReverseOrder(int position)
+ {
+ // Setup
+ var observer = mocks.StrictMock();
+ var mapData1 = mocks.StrictMock("test data");
+ var mapData2 = mocks.StrictMock("test data");
+ var mapData3 = mocks.StrictMock("test data");
+ var mapDataCollection = mocks.StrictMock(new List
+ {
+ mapData1,
+ mapData2,
+ mapData3
+ }, "test data");
+
+ mapDataCollection.Attach(observer);
+ mocks.ReplayAll();
+
+ using (var treeViewControl = new TreeViewControl())
+ {
+ // Call
+ TestDelegate test = () => info.OnDrop(mapData1, mapDataCollection, mapDataCollection, position, treeViewControl);
+
+ // Assert
+ Assert.Throws(test);
+ }
+ }
+
+ [Test]
+ public void ContextMenuStrip_Always_CallsContextMenuBuilderMethods()
+ {
+ // Setup
+ var mapDataCollection = mocks.StrictMock(Enumerable.Empty(), "test data");
+
+ var menuBuilderMock = mocks.StrictMock();
+ menuBuilderMock.Expect(mb => mb.AddCustomItem(null)).IgnoreArguments().Return(menuBuilderMock);
+ menuBuilderMock.Expect(mb => mb.Build()).Return(null);
+
+ using (var treeViewControl = new TreeViewControl())
+ {
+ contextMenuBuilderProvider.Expect(cmbp => cmbp.Get(mapDataCollection, treeViewControl)).Return(menuBuilderMock);
+
+ mocks.ReplayAll();
+
+ // Call
+ info.ContextMenuStrip(mapDataCollection, null, treeViewControl);
+ }
+
+ // Assert
+ // Expectancies will be asserted in TearDown()
+ }
+
+ [Test]
+ public void ContextMenuStrip_Always_ContainsAddMapLayerMenuItem()
+ {
+ // Setup
+ const string expectedItemText = "&Voeg kaartlaag toe...";
+ const string expectedItemTooltip = "Importeer een nieuwe kaartlaag en voeg deze toe.";
+ var mapDataCollection = mocks.StrictMock(Enumerable.Empty(), "test data");
+
+ using (var treeViewControl = new TreeViewControl())
+ {
+ contextMenuBuilderProvider.Expect(cmbp => cmbp.Get(mapDataCollection, treeViewControl)).Return(new CustomItemsOnlyContextMenuBuilder());
+ mocks.ReplayAll();
+
+ // Call
+ var contextMenu = info.ContextMenuStrip(mapDataCollection, null, treeViewControl);
+
+ // Assert
+ TestHelper.AssertContextMenuStripContainsItem(contextMenu, 0, expectedItemText, expectedItemTooltip, Resources.MapPlusIcon);
+ }
+ }
+ }
+}
\ No newline at end of file
Index: Core/Plugins/test/Core.Plugins.Map.Test/Legend/MapLegendControllerTest.cs
===================================================================
diff -u
--- Core/Plugins/test/Core.Plugins.Map.Test/Legend/MapLegendControllerTest.cs (revision 0)
+++ Core/Plugins/test/Core.Plugins.Map.Test/Legend/MapLegendControllerTest.cs (revision c5717eada81586126cbf53266abb0fc925382393)
@@ -0,0 +1,195 @@
+// Copyright (C) Stichting Deltares 2016. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program 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.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System;
+using System.Collections.Generic;
+using System.Windows.Forms;
+using Core.Common.Controls.Views;
+using Core.Common.Gui;
+using Core.Common.Gui.ContextMenu;
+using Core.Common.Gui.Forms.ViewHost;
+using Core.Plugins.Map.Legend;
+using NUnit.Framework;
+using Rhino.Mocks;
+
+namespace Core.Plugins.Map.Test.Legend
+{
+ [TestFixture]
+ public class MapLegendControllerTest
+ {
+ [Test]
+ public void Constructor_WithoutViewController_ThrowsArgumentNullException()
+ {
+ // Setup
+ var mocks = new MockRepository();
+ var contextMenuBuilderProvider = mocks.StrictMock();
+ var parentWindow = mocks.StrictMock();
+ mocks.ReplayAll();
+
+ // Call
+ TestDelegate test = () => new MapLegendController(null, contextMenuBuilderProvider, parentWindow);
+
+ // Assert
+ ArgumentNullException exception = Assert.Throws(test);
+ Assert.AreEqual("viewController", exception.ParamName);
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ public void Constructor_WithoutContextMenuBuilderProvider_ThrowsArgumentNullException()
+ {
+ // Setup
+ var mocks = new MockRepository();
+ var viewController = mocks.StrictMock();
+ var parentWindow = mocks.StrictMock();
+ mocks.ReplayAll();
+
+ // Call
+ TestDelegate test = () => new MapLegendController(viewController, null, parentWindow);
+
+ // Assert
+ ArgumentNullException exception = Assert.Throws(test);
+ Assert.AreEqual("contextMenuBuilderProvider", exception.ParamName);
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ public void Constructor_WithoutParentWindow_ThrowsArgumentNullException()
+ {
+ // Setup
+ var mocks = new MockRepository();
+ var viewController = mocks.StrictMock();
+ var contextMenuBuilderProvider = mocks.StrictMock();
+ mocks.ReplayAll();
+
+ // Call
+ TestDelegate test = () => new MapLegendController(viewController, contextMenuBuilderProvider, null);
+
+ // Assert
+ ArgumentNullException exception = Assert.Throws(test);
+ Assert.AreEqual("parentWindow", exception.ParamName);
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ public void Constructor_WithViewControllerAndContextMenuBuilderProvider_DoesNotThrowException()
+ {
+ // Setup
+ var mocks = new MockRepository();
+ var viewController = mocks.StrictMock();
+ var contextMenuBuilderProvider = mocks.StrictMock();
+ var parentWindow = mocks.StrictMock();
+
+ mocks.ReplayAll();
+
+ // Call
+ TestDelegate test = () => new MapLegendController(viewController, contextMenuBuilderProvider, parentWindow);
+
+ // Assert
+ Assert.DoesNotThrow(test);
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ [TestCase(true)]
+ [TestCase(false)]
+ public void IsLegendViewOpen_LegendViewOpenAndClosedState_ReturnsExpectedState(bool open)
+ {
+ // Setup
+ var mocks = new MockRepository();
+ var viewController = mocks.StrictMock();
+ var contextMenuBuilderProvider = mocks.StrictMock();
+ var parentWindow = mocks.StrictMock();
+
+ if (open)
+ {
+ var viewHost = mocks.Stub();
+ var toolViewList = new List();
+
+ viewController.Stub(tvc => tvc.ViewHost).Return(viewHost);
+ viewHost.Stub(vm => vm.ToolViews).Return(toolViewList);
+ viewHost.Expect(vm => vm.AddToolView(Arg.Matches(c => true), Arg.Matches(vl => vl == ToolViewLocation.Left))).WhenCalled(invocation =>
+ {
+ toolViewList.Add(invocation.Arguments[0] as MapLegendView);
+ });
+ viewHost.Expect(vm => vm.SetImage(null, null)).IgnoreArguments();
+ }
+
+ mocks.ReplayAll();
+
+ var controller = new MapLegendController(viewController, contextMenuBuilderProvider, parentWindow);
+
+ if (open)
+ {
+ controller.ToggleView();
+ }
+
+ // Call
+ var result = controller.IsMapLegendViewOpen;
+
+ // Assert
+ Assert.AreEqual(open, result);
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ [TestCase(true)]
+ [TestCase(false)]
+ public void ToggleLegendView_LegendViewOpenAndClosedState_TogglesStateOfLegendView(bool open)
+ {
+ // Setup
+ var mocks = new MockRepository();
+ var viewHost = mocks.StrictMock();
+ var viewController = mocks.StrictMock();
+ var contextMenuBuilderProvider = mocks.StrictMock();
+ var parentWindow = mocks.StrictMock();
+
+ var toolViewList = new List();
+ viewController.Stub(vc => vc.ViewHost).Return(viewHost);
+ viewHost.Stub(vm => vm.ToolViews).Return(toolViewList);
+ viewHost.Expect(vm => vm.AddToolView(Arg.Matches(c => true), Arg.Matches(vl => vl == ToolViewLocation.Left))).WhenCalled(invocation =>
+ {
+ toolViewList.Add(invocation.Arguments[0] as MapLegendView);
+ });
+ viewHost.Stub(tvc => tvc.SetImage(null, null)).IgnoreArguments();
+
+ if (open)
+ {
+ viewHost.Expect(p => p.Remove(Arg.Matches(c => true)));
+ }
+
+ mocks.ReplayAll();
+
+ var controller = new MapLegendController(viewController, contextMenuBuilderProvider, parentWindow);
+
+ if (open)
+ {
+ controller.ToggleView();
+ }
+
+ // Call
+ controller.ToggleView();
+
+ // Assert
+ mocks.VerifyAll();
+ }
+ }
+}
\ No newline at end of file
Index: Core/Plugins/test/Core.Plugins.Map.Test/Legend/MapLegendViewTest.cs
===================================================================
diff -u
--- Core/Plugins/test/Core.Plugins.Map.Test/Legend/MapLegendViewTest.cs (revision 0)
+++ Core/Plugins/test/Core.Plugins.Map.Test/Legend/MapLegendViewTest.cs (revision c5717eada81586126cbf53266abb0fc925382393)
@@ -0,0 +1,212 @@
+// Copyright (C) Stichting Deltares 2016. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program 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.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Windows.Forms;
+using Core.Common.Base.Geometry;
+using Core.Common.Controls.TreeView;
+using Core.Common.Controls.Views;
+using Core.Common.Gui.ContextMenu;
+using Core.Common.TestUtil;
+using Core.Common.Utils.Reflection;
+using Core.Components.Gis.Data;
+using Core.Components.Gis.Features;
+using Core.Components.Gis.Geometries;
+using Core.Plugins.Map.Legend;
+using Core.Plugins.Map.Properties;
+using NUnit.Framework;
+using Rhino.Mocks;
+
+namespace Core.Plugins.Map.Test.Legend
+{
+ [TestFixture]
+ public class MapLegendViewTest
+ {
+ private MockRepository mocks;
+ private IContextMenuBuilderProvider contextMenuBuilderProvider;
+ private IWin32Window parentWindow;
+
+ [SetUp]
+ public void SetUp()
+ {
+ mocks = new MockRepository();
+ contextMenuBuilderProvider = mocks.StrictMock();
+ parentWindow = mocks.StrictMock();
+ mocks.ReplayAll();
+ }
+
+ [TearDown]
+ public void TearDown()
+ {
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ public void Constructor_ContextMenuBuilderProviderAndWindowNotNull_CreatesUserControlAndTreeViewControl()
+ {
+ // Call
+ using (var view = new MapLegendView(contextMenuBuilderProvider, parentWindow))
+ {
+ var treeView = TypeUtils.GetField(view, "treeViewControl");
+
+ // Assert
+ Assert.IsInstanceOf(view);
+ Assert.IsInstanceOf(view);
+ Assert.IsNull(view.Data);
+ Assert.AreEqual(Resources.General_Map, view.Text);
+ Assert.IsNotNull(treeView);
+ Assert.IsInstanceOf(treeView);
+ }
+ }
+
+ [Test]
+ public void Constructor_ContextMenuBuilderProviderNull_ThrowsArgumentNullException()
+ {
+ // Call
+ TestDelegate test = () => new MapLegendView(null, parentWindow);
+
+ // Assert
+ TestHelper.AssertThrowsArgumentExceptionAndTestMessage(test, "Cannot create a MapLegendView when the context menu builder provider is null.");
+ }
+
+ [Test]
+ public void Constructor_ParentWindowNull_ThrowsArgumentNullException()
+ {
+ // Call
+ TestDelegate test = () => new MapLegendView(contextMenuBuilderProvider, null);
+
+ // Assert
+ TestHelper.AssertThrowsArgumentExceptionAndTestMessage(test, "Cannot create a MapLegendView when the parent window is null.");
+ }
+
+ [Test]
+ public void Data_MapDataCollection_DataSet()
+ {
+ // Setup
+ using (var view = new MapLegendView(contextMenuBuilderProvider, parentWindow))
+ {
+ var mapData = new MapDataCollection(new List(), "test data");
+
+ // Call
+ view.Data = mapData;
+
+ // Assert
+ Assert.AreSame(mapData, view.Data);
+ Assert.IsInstanceOf(view.Data);
+ }
+ }
+
+ [Test]
+ public void Data_MapPointData_DataSet()
+ {
+ // Setup
+ using (var view = new MapLegendView(contextMenuBuilderProvider, parentWindow))
+ {
+ var mapData = new MapPointData(CreateFeature(), "test data");
+
+ // Call
+ view.Data = mapData;
+
+ // Assert
+ Assert.AreSame(mapData, view.Data);
+ Assert.IsInstanceOf(view.Data);
+ }
+ }
+
+ [Test]
+ public void Data_MapLineData_DataSet()
+ {
+ // Setup
+ using (var view = new MapLegendView(contextMenuBuilderProvider, parentWindow))
+ {
+ var mapData = new MapLineData(CreateFeature(), "test data");
+
+ // Call
+ view.Data = mapData;
+
+ // Assert
+ Assert.AreSame(mapData, view.Data);
+ Assert.IsInstanceOf(view.Data);
+ }
+ }
+
+ [Test]
+ public void Data_MapPolygonData_DataSet()
+ {
+ // Setup
+ using (var view = new MapLegendView(contextMenuBuilderProvider, parentWindow))
+ {
+ var mapData = new MapPolygonData(CreateFeature(), "test data");
+
+ // Call
+ view.Data = mapData;
+
+ // Assert
+ Assert.AreSame(mapData, view.Data);
+ Assert.IsInstanceOf(view.Data);
+ }
+ }
+
+ [Test]
+ public void Data_ForNull_NullSet()
+ {
+ // Setup
+ using (var view = new MapLegendView(contextMenuBuilderProvider, parentWindow))
+ {
+ // Call
+ view.Data = null;
+
+ // Assert
+ Assert.IsNull(view.Data);
+ }
+ }
+
+ [Test]
+ public void Data_OtherObject_ThrowsInvalidCastException()
+ {
+ // Setup
+ using (var view = new MapLegendView(contextMenuBuilderProvider, parentWindow))
+ {
+ // Call
+ TestDelegate test = () => view.Data = new object();
+
+ // Assert
+ Assert.Throws(test);
+ }
+ }
+
+ private MapFeature[] CreateFeature()
+ {
+ return new []
+ {
+ new MapFeature(new []
+ {
+ new MapGeometry(new[]
+ {
+ Enumerable.Empty()
+ })
+ })
+ };
+ }
+ }
+}
\ No newline at end of file
Index: Core/Plugins/test/Core.Plugins.Map.Test/Legend/MapLineDataTreeNodeInfoTest.cs
===================================================================
diff -u
--- Core/Plugins/test/Core.Plugins.Map.Test/Legend/MapLineDataTreeNodeInfoTest.cs (revision 0)
+++ Core/Plugins/test/Core.Plugins.Map.Test/Legend/MapLineDataTreeNodeInfoTest.cs (revision c5717eada81586126cbf53266abb0fc925382393)
@@ -0,0 +1,205 @@
+// Copyright (C) Stichting Deltares 2016. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program 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.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Windows.Forms;
+using Core.Common.Base;
+using Core.Common.Controls.TreeView;
+using Core.Common.Gui.ContextMenu;
+using Core.Common.TestUtil;
+using Core.Common.Utils.Reflection;
+using Core.Components.Gis.Data;
+using Core.Components.Gis.Features;
+using Core.Plugins.Map.Legend;
+using Core.Plugins.Map.Properties;
+using NUnit.Framework;
+using Rhino.Mocks;
+
+namespace Core.Plugins.Map.Test.Legend
+{
+ [TestFixture]
+ public class MapLineDataTreeNodeInfoTest
+ {
+ private MockRepository mocks;
+ private MapLegendView mapLegendView;
+ private TreeNodeInfo info;
+
+ [SetUp]
+ public void SetUp()
+ {
+ mocks = new MockRepository();
+ var contextMenuBuilderProvider = mocks.StrictMock();
+ var parentWindow = mocks.StrictMock();
+
+ mapLegendView = new MapLegendView(contextMenuBuilderProvider, parentWindow);
+
+ TreeViewControl treeViewControl = TypeUtils.GetField(mapLegendView, "treeViewControl");
+ Dictionary treeNodeInfoLookup = TypeUtils.GetField>(treeViewControl, "tagTypeTreeNodeInfoLookup");
+
+ info = treeNodeInfoLookup[typeof(MapLineData)];
+ }
+
+ [TearDown]
+ public void TearDown()
+ {
+ mapLegendView.Dispose();
+
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ public void Initialized_Always_ExpectedPropertiesSet()
+ {
+ // Setup
+ mocks.ReplayAll();
+
+ // Assert
+ Assert.AreEqual(typeof(MapLineData), info.TagType);
+ Assert.IsNull(info.ForeColor);
+ Assert.IsNull(info.ContextMenuStrip);
+ Assert.IsNull(info.EnsureVisibleOnCreate);
+ Assert.IsNull(info.ChildNodeObjects);
+ Assert.IsNull(info.CanRename);
+ Assert.IsNull(info.OnNodeRenamed);
+ Assert.IsNull(info.CanRemove);
+ Assert.IsNull(info.OnNodeRemoved);
+ Assert.IsNull(info.CanDrop);
+ Assert.IsNull(info.CanInsert);
+ Assert.IsNull(info.OnDrop);
+ }
+
+ [Test]
+ public void Text_Always_ReturnsNameFromMapData()
+ {
+ // Setup
+ var mapLineData = mocks.StrictMock(Enumerable.Empty(), "MapLineData");
+ mocks.ReplayAll();
+
+ // Call
+ var text = info.Text(mapLineData);
+
+ // Assert
+ Assert.AreEqual(mapLineData.Name, text);
+ }
+
+ [Test]
+ public void Image_Always_ReturnsImageFromResource()
+ {
+ // Setup
+ mocks.ReplayAll();
+
+ // Call
+ var image = info.Image(null);
+
+ // Assert
+ TestHelper.AssertImagesAreEqual(Resources.LineIcon, image);
+ }
+
+ [Test]
+ public void CanCheck_Always_ReturnsTrue()
+ {
+ // Setup
+ var lineData = mocks.StrictMock(Enumerable.Empty(), "test data");
+
+ mocks.ReplayAll();
+
+ // Call
+ var canCheck = info.CanCheck(lineData);
+
+ // Assert
+ Assert.IsTrue(canCheck);
+ }
+
+ [TestCase(true)]
+ [TestCase(false)]
+ public void IsChecked_Always_ReturnsAccordingToVisibleStateOfLineData(bool isVisible)
+ {
+ // Setup
+ var lineData = mocks.StrictMock(Enumerable.Empty(), "test data");
+
+ lineData.IsVisible = isVisible;
+
+ mocks.ReplayAll();
+
+ // Call
+ var canCheck = info.IsChecked(lineData);
+
+ // Assert
+ Assert.AreEqual(isVisible, canCheck);
+ }
+
+ [TestCase(true)]
+ [TestCase(false)]
+ public void OnNodeChecked_LineDataNodeWithoutParent_SetsLineDataVisibility(bool initialVisibleState)
+ {
+ // Setup
+ var lineData = mocks.StrictMock(Enumerable.Empty(), "test data");
+
+ mocks.ReplayAll();
+
+ lineData.IsVisible = initialVisibleState;
+
+ // Call
+ info.OnNodeChecked(lineData, null);
+
+ // Assert
+ Assert.AreEqual(!initialVisibleState, lineData.IsVisible);
+ }
+
+ [TestCase(true)]
+ [TestCase(false)]
+ public void OnNodeChecked_LineDataNodeWithObservableParent_SetsLineDataVisibilityAndNotifiesParentObservers(bool initialVisibleState)
+ {
+ // Setup
+ var observable = mocks.StrictMock();
+ observable.Expect(o => o.NotifyObservers());
+
+ var lineData = mocks.StrictMock(Enumerable.Empty(), "test data");
+
+ mocks.ReplayAll();
+
+ lineData.IsVisible = initialVisibleState;
+
+ // Call
+ info.OnNodeChecked(lineData, observable);
+
+ // Assert
+ Assert.AreEqual(!initialVisibleState, lineData.IsVisible);
+ }
+
+ [Test]
+ public void CanDrag_Always_ReturnsTrue()
+ {
+ // Setup
+ var lineData = mocks.StrictMock(Enumerable.Empty(), "test data");
+
+ mocks.ReplayAll();
+
+ // Call
+ var canDrag = info.CanDrag(lineData, null);
+
+ // Assert
+ Assert.IsTrue(canDrag);
+ }
+ }
+}
\ No newline at end of file
Index: Core/Plugins/test/Core.Plugins.Map.Test/Legend/MapPointDataTreeNodeInfoTest.cs
===================================================================
diff -u
--- Core/Plugins/test/Core.Plugins.Map.Test/Legend/MapPointDataTreeNodeInfoTest.cs (revision 0)
+++ Core/Plugins/test/Core.Plugins.Map.Test/Legend/MapPointDataTreeNodeInfoTest.cs (revision c5717eada81586126cbf53266abb0fc925382393)
@@ -0,0 +1,202 @@
+// Copyright (C) Stichting Deltares 2016. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program 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.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Windows.Forms;
+using Core.Common.Base;
+using Core.Common.Controls.TreeView;
+using Core.Common.Gui.ContextMenu;
+using Core.Common.TestUtil;
+using Core.Common.Utils.Reflection;
+using Core.Components.Gis.Data;
+using Core.Components.Gis.Features;
+using Core.Plugins.Map.Legend;
+using Core.Plugins.Map.Properties;
+using NUnit.Framework;
+using Rhino.Mocks;
+
+namespace Core.Plugins.Map.Test.Legend
+{
+ [TestFixture]
+ public class MapPointDataTreeNodeInfoTest
+ {
+ private MockRepository mocks;
+ private MapLegendView mapLegendView;
+ private TreeNodeInfo info;
+
+ [SetUp]
+ public void SetUp()
+ {
+ mocks = new MockRepository();
+ var contextMenuBuilderProvider = mocks.StrictMock();
+ var parentWindow = mocks.StrictMock();
+
+ mapLegendView = new MapLegendView(contextMenuBuilderProvider, parentWindow);
+
+ TreeViewControl treeViewControl = TypeUtils.GetField(mapLegendView, "treeViewControl");
+ Dictionary treeNodeInfoLookup = TypeUtils.GetField>(treeViewControl, "tagTypeTreeNodeInfoLookup");
+
+ info = treeNodeInfoLookup[typeof(MapPointData)];
+ }
+
+ [TearDown]
+ public void TearDown()
+ {
+ mapLegendView.Dispose();
+ }
+
+ [Test]
+ public void Initialized_Always_ExpectedPropertiesSet()
+ {
+ // Setup
+ mocks.ReplayAll();
+
+ // Assert
+ Assert.AreEqual(typeof(MapPointData), info.TagType);
+ Assert.IsNull(info.ForeColor);
+ Assert.IsNull(info.ContextMenuStrip);
+ Assert.IsNull(info.EnsureVisibleOnCreate);
+ Assert.IsNull(info.ChildNodeObjects);
+ Assert.IsNull(info.CanRename);
+ Assert.IsNull(info.OnNodeRenamed);
+ Assert.IsNull(info.CanRemove);
+ Assert.IsNull(info.OnNodeRemoved);
+ Assert.IsNull(info.CanDrop);
+ Assert.IsNull(info.CanInsert);
+ Assert.IsNull(info.OnDrop);
+ }
+
+ [Test]
+ public void Text_Always_ReturnsNameFromMapData()
+ {
+ // Setup
+ var mapPointData = mocks.StrictMock(Enumerable.Empty(), "MapPointData");
+ mocks.ReplayAll();
+
+ // Call
+ var text = info.Text(mapPointData);
+
+ // Assert
+ Assert.AreEqual(mapPointData.Name, text);
+ }
+
+ [Test]
+ public void Image_Always_ReturnsImageFromResource()
+ {
+ // Setup
+ mocks.ReplayAll();
+
+ // Call
+ var image = info.Image(null);
+
+ // Assert
+ TestHelper.AssertImagesAreEqual(Resources.PointsIcon, image);
+ }
+
+ [Test]
+ public void CanCheck_Always_ReturnsTrue()
+ {
+ // Setup
+ var lineData = mocks.StrictMock(Enumerable.Empty(), "test data");
+
+ mocks.ReplayAll();
+
+ // Call
+ var canCheck = info.CanCheck(lineData);
+
+ // Assert
+ Assert.IsTrue(canCheck);
+ }
+
+ [TestCase(true)]
+ [TestCase(false)]
+ public void IsChecked_Always_ReturnsAccordingToVisibleStateOfLineData(bool isVisible)
+ {
+ // Setup
+ var lineData = mocks.StrictMock(Enumerable.Empty(), "test data");
+ lineData.IsVisible = isVisible;
+
+ mocks.ReplayAll();
+
+ // Call
+ var canCheck = info.IsChecked(lineData);
+
+ // Assert
+ Assert.AreEqual(isVisible, canCheck);
+ }
+
+ [TestCase(true)]
+ [TestCase(false)]
+ public void OnNodeChecked_LineDataNodeWithoutParent_SetsLineDataVisibility(bool initialVisibleState)
+ {
+ // Setup
+ var lineData = mocks.StrictMock(Enumerable.Empty(), "test data");
+
+ mocks.ReplayAll();
+
+ lineData.IsVisible = initialVisibleState;
+
+ // Call
+ info.OnNodeChecked(lineData, null);
+
+ // Assert
+ Assert.AreEqual(!initialVisibleState, lineData.IsVisible);
+ }
+
+ [TestCase(true)]
+ [TestCase(false)]
+ public void OnNodeChecked_LineDataNodeWithObservableParent_SetsLineDataVisibilityAndNotifiesParentObservers(bool initialVisibleState)
+ {
+ // Setup
+ var lineData = mocks.StrictMock(Enumerable.Empty(), "test data");
+
+ var observable = mocks.StrictMock();
+ observable.Expect(o => o.NotifyObservers());
+
+ mocks.ReplayAll();
+
+ lineData.IsVisible = initialVisibleState;
+
+ // Call
+ info.OnNodeChecked(lineData, observable);
+
+ // Assert
+ Assert.AreEqual(!initialVisibleState, lineData.IsVisible);
+ }
+
+ [Test]
+ public void CanDrag_Always_ReturnsTrue()
+ {
+ // Setup
+ var pointData = mocks.StrictMock(Enumerable.Empty(), "test data");
+
+ mocks.ReplayAll();
+
+ // Call
+ var canDrag = info.CanDrag(pointData, null);
+
+ // Assert
+ Assert.IsTrue(canDrag);
+ }
+ }
+}
\ No newline at end of file
Index: Core/Plugins/test/Core.Plugins.Map.Test/Legend/MapPolygonDataTreeNodeInfoTest.cs
===================================================================
diff -u
--- Core/Plugins/test/Core.Plugins.Map.Test/Legend/MapPolygonDataTreeNodeInfoTest.cs (revision 0)
+++ Core/Plugins/test/Core.Plugins.Map.Test/Legend/MapPolygonDataTreeNodeInfoTest.cs (revision c5717eada81586126cbf53266abb0fc925382393)
@@ -0,0 +1,206 @@
+// Copyright (C) Stichting Deltares 2016. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program 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.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Windows.Forms;
+using Core.Common.Base;
+using Core.Common.Controls.TreeView;
+using Core.Common.Gui.ContextMenu;
+using Core.Common.TestUtil;
+using Core.Common.Utils.Reflection;
+using Core.Components.Gis.Data;
+using Core.Components.Gis.Features;
+using Core.Plugins.Map.Legend;
+using Core.Plugins.Map.Properties;
+using NUnit.Framework;
+using Rhino.Mocks;
+
+namespace Core.Plugins.Map.Test.Legend
+{
+ [TestFixture]
+ public class MapPolygonDataTreeNodeInfoTest
+ {
+ private MockRepository mocks;
+ private MapLegendView mapLegendView;
+ private TreeNodeInfo info;
+
+ [SetUp]
+ public void SetUp()
+ {
+ var mockRepository = new MockRepository();
+ var contextMenuBuilderProvider = mockRepository.StrictMock();
+ var parentWindow = mockRepository.StrictMock();
+
+ mapLegendView = new MapLegendView(contextMenuBuilderProvider, parentWindow);
+
+ TreeViewControl treeViewControl = TypeUtils.GetField(mapLegendView, "treeViewControl");
+ Dictionary treeNodeInfoLookup = TypeUtils.GetField>(treeViewControl, "tagTypeTreeNodeInfoLookup");
+
+ info = treeNodeInfoLookup[typeof(MapPolygonData)];
+
+ mocks = mockRepository;
+ }
+
+ [TearDown]
+ public void TearDown()
+ {
+ mapLegendView.Dispose();
+
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ public void Initialized_Always_ExpectedPropertiesSet()
+ {
+ // Setup
+ mocks.ReplayAll();
+
+ // Assert
+ Assert.AreEqual(typeof(MapPolygonData), info.TagType);
+ Assert.IsNull(info.ForeColor);
+ Assert.IsNull(info.ContextMenuStrip);
+ Assert.IsNull(info.EnsureVisibleOnCreate);
+ Assert.IsNull(info.ChildNodeObjects);
+ Assert.IsNull(info.CanRename);
+ Assert.IsNull(info.OnNodeRenamed);
+ Assert.IsNull(info.CanRemove);
+ Assert.IsNull(info.OnNodeRemoved);
+ Assert.IsNull(info.CanDrop);
+ Assert.IsNull(info.CanInsert);
+ Assert.IsNull(info.OnDrop);
+ }
+
+ [Test]
+ public void Text_Always_ReturnsNameFromMapData()
+ {
+ // Setup
+ var mapPolygonData = mocks.StrictMock(Enumerable.Empty(), "MapPolygonData");
+ mocks.ReplayAll();
+
+ // Call
+ var text = info.Text(mapPolygonData);
+
+ // Assert
+ Assert.AreEqual(mapPolygonData.Name, text);
+ }
+
+ [Test]
+ public void Image_Always_ReturnsImageFromResource()
+ {
+ // Setup
+ mocks.ReplayAll();
+
+ // Call
+ var image = info.Image(null);
+
+ // Assert
+ TestHelper.AssertImagesAreEqual(Resources.AreaIcon, image);
+ }
+
+ [Test]
+ public void CanCheck_Always_ReturnsTrue()
+ {
+ // Setup
+ var lineData = mocks.StrictMock(Enumerable.Empty(), "test data");
+
+ mocks.ReplayAll();
+
+ // Call
+ var canCheck = info.CanCheck(lineData);
+
+ // Assert
+ Assert.IsTrue(canCheck);
+ }
+
+ [Test]
+ public void CanDrag_Always_ReturnsTrue()
+ {
+ // Setup
+ var polygonData = mocks.StrictMock(Enumerable.Empty(), "test data");
+
+ mocks.ReplayAll();
+
+ // Call
+ var canDrag = info.CanDrag(polygonData, null);
+
+ // Assert
+ Assert.IsTrue(canDrag);
+ }
+
+ [TestCase(true)]
+ [TestCase(false)]
+ public void IsChecked_Always_ReturnsAccordingToVisibleStateOfLineData(bool isVisible)
+ {
+ // Setup
+ var lineData = mocks.StrictMock(Enumerable.Empty(), "test data");
+ lineData.IsVisible = isVisible;
+
+ mocks.ReplayAll();
+
+ // Call
+ var canCheck = info.IsChecked(lineData);
+
+ // Assert
+ Assert.AreEqual(isVisible, canCheck);
+ }
+
+ [TestCase(true)]
+ [TestCase(false)]
+ public void OnNodeChecked_LineDataNodeWithoutParent_SetsLineDataVisibility(bool initialVisibleState)
+ {
+ // Setup
+ var lineData = mocks.StrictMock(Enumerable.Empty(), "test data");
+
+ mocks.ReplayAll();
+
+ lineData.IsVisible = initialVisibleState;
+
+ // Call
+ info.OnNodeChecked(lineData, null);
+
+ // Assert
+ Assert.AreEqual(!initialVisibleState, lineData.IsVisible);
+ }
+
+ [TestCase(true)]
+ [TestCase(false)]
+ public void OnNodeChecked_LineDataNodeWithObservableParent_SetsLineDataVisibilityAndNotifiesParentObservers(bool initialVisibleState)
+ {
+ // Setup
+ var lineData = mocks.StrictMock(Enumerable.Empty(), "test data");
+
+ var observable = mocks.StrictMock();
+ observable.Expect(o => o.NotifyObservers());
+
+ mocks.ReplayAll();
+
+ lineData.IsVisible = initialVisibleState;
+
+ // Call
+ info.OnNodeChecked(lineData, observable);
+
+ // Assert
+ Assert.AreEqual(!initialVisibleState, lineData.IsVisible);
+ }
+ }
+}
\ No newline at end of file
Index: Core/Plugins/test/Core.Plugins.Map.Test/MapPluginTest.cs
===================================================================
diff -u
--- Core/Plugins/test/Core.Plugins.Map.Test/MapPluginTest.cs (revision 0)
+++ Core/Plugins/test/Core.Plugins.Map.Test/MapPluginTest.cs (revision c5717eada81586126cbf53266abb0fc925382393)
@@ -0,0 +1,142 @@
+// Copyright (C) Stichting Deltares 2016. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program 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.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System;
+using System.Windows;
+using System.Windows.Threading;
+using Core.Common.Base.Storage;
+using Core.Common.Controls.Views;
+using Core.Common.Gui;
+using Core.Common.Gui.Forms.MainWindow;
+using Core.Common.Gui.Forms.ViewHost;
+using Core.Common.Gui.Plugin;
+using Core.Common.Gui.Settings;
+using Core.Components.DotSpatial.Forms;
+using Core.Plugins.DotSpatial.Test;
+using Core.Plugins.Map.Legend;
+using NUnit.Framework;
+using Rhino.Mocks;
+
+namespace Core.Plugins.Map.Test
+{
+ [TestFixture]
+ public class MapPluginTest
+ {
+ [Test]
+ public void DefaultConstructor_Always_NoRibbonCommandHandlerSet()
+ {
+ // Call
+ using (var plugin = new MapPlugin())
+ {
+ // Assert
+ Assert.IsInstanceOf(plugin);
+ Assert.IsNull(plugin.RibbonCommandHandler);
+ }
+ }
+
+ [Test]
+ [RequiresSTA]
+ public void Activate_WithoutGui_ThrowsArgumentNullException()
+ {
+ // Setup
+ using (var plugin = new MapPlugin())
+ {
+ // Call
+ TestDelegate test = () => plugin.Activate();
+
+ // Assert
+ ArgumentNullException exception = Assert.Throws(test);
+ Assert.AreEqual("viewController", exception.ParamName);
+ }
+ }
+
+ [Test]
+ [RequiresSTA]
+ public void Activate_WithGui_AddsMapLegendView()
+ {
+ // Setup
+ var mocks = new MockRepository();
+
+ using (var plugin = new MapPlugin())
+ {
+ var gui = mocks.StrictMock();
+ var mainWindow = mocks.StrictMock();
+ var viewHost = mocks.Stub();
+
+ gui.Expect(g => g.MainWindow).Return(mainWindow);
+ gui.Stub(g => g.ViewHost).Return(viewHost);
+ viewHost.Expect(vm => vm.ToolViews).Return(new IView[0]);
+ viewHost.Expect(vm => vm.AddToolView(Arg.Matches(c => true), Arg.Matches(vl => vl == ToolViewLocation.Left)));
+ viewHost.Expect(vm => vm.SetImage(null, null)).IgnoreArguments();
+ viewHost.Expect(vm => vm.ActiveDocumentView).Return(null);
+ viewHost.Expect(vm => vm.ActiveDocumentViewChanged += null).IgnoreArguments();
+ viewHost.Expect(vm => vm.ActiveDocumentViewChanged -= null).IgnoreArguments();
+
+ mocks.ReplayAll();
+
+ plugin.Gui = gui;
+
+ // Call
+ plugin.Activate();
+
+ // Assert
+ Assert.IsInstanceOf(plugin);
+ Assert.NotNull(plugin.RibbonCommandHandler);
+ }
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ [RequiresSTA]
+ [TestCase(true)]
+ [TestCase(false)]
+ public void GivenConfiguredGui_WhenActiveDocumentViewChangesToViewWithMap_ThenRibbonSetVisibility(bool visible)
+ {
+ // Given
+ var mocks = new MockRepository();
+ var projectStore = mocks.Stub();
+ mocks.ReplayAll();
+
+ using (var gui = new GuiCore(new MainWindow(), projectStore, new GuiCoreSettings()))
+ {
+ var plugin = new MapPlugin();
+ var testMapView = new TestMapView();
+ var map = new MapControl();
+ IView viewMock = visible ? (IView) testMapView : new TestView();
+
+ testMapView.Data = map;
+
+ gui.Plugins.Add(plugin);
+ plugin.Gui = gui;
+ gui.Run();
+
+ // When
+ gui.ViewHost.AddDocumentView(viewMock);
+
+ // Then
+ Assert.AreEqual(visible ? Visibility.Visible : Visibility.Collapsed, plugin.RibbonCommandHandler.GetRibbonControl().ContextualGroups[0].Visibility);
+ mocks.VerifyAll();
+ }
+
+ Dispatcher.CurrentDispatcher.InvokeShutdown();
+ }
+ }
+}
\ No newline at end of file
Index: Core/Plugins/test/Core.Plugins.Map.Test/MapRibbonTest.cs
===================================================================
diff -u
--- Core/Plugins/test/Core.Plugins.Map.Test/MapRibbonTest.cs (revision 0)
+++ Core/Plugins/test/Core.Plugins.Map.Test/MapRibbonTest.cs (revision c5717eada81586126cbf53266abb0fc925382393)
@@ -0,0 +1,388 @@
+// Copyright (C) Stichting Deltares 2016. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program 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.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System.Linq;
+using System.Windows;
+using System.Windows.Forms;
+using Core.Common.Controls.Commands;
+using Core.Common.Gui;
+using Core.Common.Gui.ContextMenu;
+using Core.Components.Gis.Forms;
+using Core.Plugins.Map.Commands;
+using Core.Plugins.Map.Legend;
+using Fluent;
+using NUnit.Framework;
+using Rhino.Mocks;
+using Button = Fluent.Button;
+using ButtonBase = System.Windows.Controls.Primitives.ButtonBase;
+using Control = System.Windows.Controls.Control;
+using ToggleButton = Fluent.ToggleButton;
+
+namespace Core.Plugins.Map.Test
+{
+ [TestFixture]
+ public class MapRibbonTest
+ {
+ [Test]
+ [RequiresSTA]
+ public void DefaultContstructor_Always_CreatesControl()
+ {
+ // Setup
+ var ribbon = new MapRibbon();
+
+ // Call & Assert
+ Assert.IsInstanceOf(ribbon.GetRibbonControl());
+ }
+
+ [Test]
+ [RequiresSTA]
+ public void Commands_NoCommandsAssigned_ReturnsEmptyCommandsCollection()
+ {
+ // Setup
+ var ribbon = new MapRibbon();
+
+ // Call & Assert
+ CollectionAssert.IsEmpty(ribbon.Commands);
+ }
+
+ [Test]
+ [RequiresSTA]
+ public void Commands_CommandsAssigned_ReturnsAssignedCommands()
+ {
+ // Setup
+ var mocks = new MockRepository();
+ var viewController = mocks.Stub();
+ var contextMenuBuilderProvider = mocks.StrictMock();
+ var parentWindow = mocks.StrictMock();
+
+ mocks.ReplayAll();
+
+ var toggleLegendViewCommand = new ToggleMapLegendViewCommand(new MapLegendController(viewController, contextMenuBuilderProvider, parentWindow));
+
+ var ribbon = new MapRibbon
+ {
+ ToggleLegendViewCommand = toggleLegendViewCommand
+ };
+
+ // Call
+ var commands = ribbon.Commands.ToArray();
+
+ // Assert
+ CollectionAssert.AreEqual(new ICommand[]
+ {
+ toggleLegendViewCommand
+ }, commands);
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ [RequiresSTA]
+ public void IsContextualTabVisible_Always_ReturnsFalse()
+ {
+ // Setup
+ var ribbon = new MapRibbon();
+
+ // Call & Assert
+ Assert.IsFalse(ribbon.IsContextualTabVisible(null, null));
+ }
+
+ [Test]
+ [RequiresSTA]
+ [TestCase(true)]
+ [TestCase(false)]
+ public void ValidateItems_WithOrWithoutMap_UpdatesMapContextualVisiblity(bool mapVisible)
+ {
+ // Setup
+ var mocks = new MockRepository();
+ var map = mocks.Stub();
+
+ mocks.ReplayAll();
+
+ var ribbon = new MapRibbon();
+ var contextualGroup = ribbon.GetRibbonControl().FindName("MapContextualGroup") as RibbonContextualTabGroup;
+
+ // Precondition
+ Assert.IsNotNull(contextualGroup, "Ribbon should have a map contextual group button");
+
+ // Call
+ ribbon.Map = mapVisible ? map : null;
+
+ // Assert
+ Assert.AreEqual(mapVisible ? Visibility.Visible : Visibility.Collapsed, contextualGroup.Visibility);
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ [RequiresSTA]
+ [TestCase(true)]
+ [TestCase(false)]
+ public void ValidateItems_Always_ToggleLegendViewIsCheckedEqualToCommandChecked(bool commandChecked)
+ {
+ // Setup
+ var mocks = new MockRepository();
+ var command = mocks.StrictMock();
+ command.Expect(c => c.Checked).Return(commandChecked);
+
+ mocks.ReplayAll();
+
+ var ribbon = new MapRibbon
+ {
+ ToggleLegendViewCommand = command
+ };
+
+ var toggleLegendViewButton = ribbon.GetRibbonControl().FindName("ToggleLegendViewButton") as ToggleButton;
+
+ // Precondition
+ Assert.IsNotNull(toggleLegendViewButton, "Ribbon should have a toggle legend view button.");
+
+ // Call
+ ribbon.ValidateItems();
+
+ // Assert
+ Assert.AreEqual(commandChecked, toggleLegendViewButton.IsChecked);
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ [RequiresSTA]
+ [TestCase(true)]
+ [TestCase(false)]
+ public void ValidateItems_Always_TogglePanningButtonIsCheckedEqualToPanningChecked(bool panningChecked)
+ {
+ // Setup
+ var mocks = new MockRepository();
+ var map = mocks.DynamicMock();
+ map.Stub(m => m.IsPanningEnabled).Return(panningChecked);
+ mocks.ReplayAll();
+
+ var ribbon = new MapRibbon
+ {
+ Map = map
+ };
+
+ var button = ribbon.GetRibbonControl().FindName("TogglePanningButton") as ToggleButton;
+
+ // Precondition
+ Assert.IsNotNull(button, "Ribbon should have a toggle panning button.");
+
+ // Call
+ ribbon.ValidateItems();
+
+ // Assert
+ Assert.AreEqual(panningChecked, button.IsChecked);
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ [RequiresSTA]
+ [TestCase(true)]
+ [TestCase(false)]
+ public void ValidateItems_Always_ToggleRectangleZoomingButtonIsCheckedEqualToRectangleZoomChecked(bool rectangleZoomChecked)
+ {
+ // Setup
+ var mocks = new MockRepository();
+ var map = mocks.DynamicMock();
+ map.Stub(m => m.IsRectangleZoomingEnabled).Return(rectangleZoomChecked);
+ mocks.ReplayAll();
+
+ var ribbon = new MapRibbon
+ {
+ Map = map
+ };
+
+ var button = ribbon.GetRibbonControl().FindName("ToggleRectangleZoomingButton") as ToggleButton;
+
+ // Precondition
+ Assert.IsNotNull(button, "Ribbon should have a toggle rectangle zooming button.");
+
+ // Call
+ ribbon.ValidateItems();
+
+ // Assert
+ Assert.AreEqual(rectangleZoomChecked, button.IsChecked);
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ [RequiresSTA]
+ [TestCase(true)]
+ [TestCase(false)]
+ public void ValidateItems_Always_ToggleMouseCoordinatesButtonIsCheckedEqualToMouseCoordinatesChecked(bool mouseCoordinatesChecked)
+ {
+ // Setup
+ var mocks = new MockRepository();
+ var map = mocks.DynamicMock();
+ map.Stub(m => m.IsMouseCoordinatesVisible).Return(mouseCoordinatesChecked);
+ mocks.ReplayAll();
+
+ var ribbon = new MapRibbon
+ {
+ Map = map
+ };
+
+ var button = ribbon.GetRibbonControl().FindName("ToggleMouseCoordinatesButton") as ToggleButton;
+
+ // Precondition
+ Assert.IsNotNull(button, "Ribbon should have a toggle mouse coordinate visibility button.");
+
+ // Call
+ ribbon.ValidateItems();
+
+ // Assert
+ Assert.AreEqual(mouseCoordinatesChecked, button.IsChecked);
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ [RequiresSTA]
+ public void ToggleLegendViewButton_OnClick_ExecutesToggleLegendViewCommand()
+ {
+ // Setup
+ var mocks = new MockRepository();
+ var command = mocks.StrictMock();
+ command.Expect(c => c.Execute());
+
+ mocks.ReplayAll();
+
+ var ribbon = new MapRibbon
+ {
+ ToggleLegendViewCommand = command
+ };
+ var button = ribbon.GetRibbonControl().FindName("ToggleLegendViewButton") as ToggleButton;
+
+ // Precondition
+ Assert.IsNotNull(button, "Ribbon should have a toggle legend view button");
+
+ // Call
+ button.RaiseEvent(new RoutedEventArgs(ButtonBase.ClickEvent));
+
+ // Assert
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ [RequiresSTA]
+ public void TogglePanning_OnClick_TogglePanning()
+ {
+ // Setup
+ var mocks = new MockRepository();
+ var map = mocks.DynamicMock();
+ map.Expect(c => c.TogglePanning());
+
+ mocks.ReplayAll();
+
+ var ribbon = new MapRibbon
+ {
+ Map = map
+ };
+ var button = ribbon.GetRibbonControl().FindName("TogglePanningButton") as ToggleButton;
+
+ // Precondition
+ Assert.IsNotNull(button, "Ribbon should have a toggle panning button.");
+
+ // Call
+ button.RaiseEvent(new RoutedEventArgs(ButtonBase.ClickEvent));
+
+ // Assert
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ [RequiresSTA]
+ public void ToggleRectangleZooming_OnClick_ToggleRectangleZooming()
+ {
+ // Setup
+ var mocks = new MockRepository();
+ var map = mocks.DynamicMock();
+ map.Expect(c => c.ToggleRectangleZooming());
+
+ mocks.ReplayAll();
+
+ var ribbon = new MapRibbon
+ {
+ Map = map
+ };
+ var button = ribbon.GetRibbonControl().FindName("ToggleRectangleZoomingButton") as ToggleButton;
+
+ // Precondition
+ Assert.IsNotNull(button, "Ribbon should have a toggle rectangle zooming button.");
+
+ // Call
+ button.RaiseEvent(new RoutedEventArgs(ButtonBase.ClickEvent));
+
+ // Assert
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ [RequiresSTA]
+ public void ZoomToAll_OnClick_ZoomToAll()
+ {
+ // Setup
+ var mocks = new MockRepository();
+ var map = mocks.DynamicMock();
+ map.Expect(c => c.ZoomToAllVisibleLayers());
+
+ mocks.ReplayAll();
+
+ var ribbon = new MapRibbon
+ {
+ Map = map
+ };
+ var button = ribbon.GetRibbonControl().FindName("ZoomToAllButton") as Button;
+
+ // Precondition
+ Assert.IsNotNull(button, "Ribbon should have a zoom to all button.");
+
+ // Call
+ button.RaiseEvent(new RoutedEventArgs(ButtonBase.ClickEvent));
+
+ // Assert
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ [RequiresSTA]
+ public void ToggleMouseCoordinatesVisibility_OnClick_ToggleMouseCoordinates()
+ {
+ // Setup
+ var mocks = new MockRepository();
+ var map = mocks.DynamicMock();
+ map.Expect(c => c.ToggleMouseCoordinatesVisibility());
+ mocks.ReplayAll();
+
+ var ribbon = new MapRibbon
+ {
+ Map = map
+ };
+ var button = ribbon.GetRibbonControl().FindName("ToggleMouseCoordinatesButton") as ToggleButton;
+
+ // Precondition
+ Assert.IsNotNull(button, "Ribbon should have a toggle mouse coordinates button.");
+
+ // Call
+ button.RaiseEvent(new RoutedEventArgs(ButtonBase.ClickEvent));
+
+ // Assert
+ mocks.VerifyAll();
+ }
+ }
+}
\ No newline at end of file
Index: Core/Plugins/test/Core.Plugins.Map.Test/Properties/AssemblyInfo.cs
===================================================================
diff -u
--- Core/Plugins/test/Core.Plugins.Map.Test/Properties/AssemblyInfo.cs (revision 0)
+++ Core/Plugins/test/Core.Plugins.Map.Test/Properties/AssemblyInfo.cs (revision c5717eada81586126cbf53266abb0fc925382393)
@@ -0,0 +1,27 @@
+// Copyright (C) Stichting Deltares 2016. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program 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.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System.Reflection;
+using System.Runtime.InteropServices;
+
+[assembly: AssemblyTitle("Core.Plugins.Map.Test")]
+[assembly: AssemblyProduct("Core.Plugins.Map.Test")]
+[assembly: Guid("93AB5AFB-F58E-4EC4-A25E-FF439B1895E7")]
\ No newline at end of file
Index: Core/Plugins/test/Core.Plugins.Map.Test/TestMapView.cs
===================================================================
diff -u
--- Core/Plugins/test/Core.Plugins.Map.Test/TestMapView.cs (revision 0)
+++ Core/Plugins/test/Core.Plugins.Map.Test/TestMapView.cs (revision c5717eada81586126cbf53266abb0fc925382393)
@@ -0,0 +1,43 @@
+// Copyright (C) Stichting Deltares 2016. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program 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.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System.Windows.Forms;
+using Core.Components.DotSpatial.Forms;
+using Core.Components.Gis.Forms;
+
+namespace Core.Plugins.DotSpatial.Test
+{
+ ///
+ /// Simple implementation which can be used in tests.
+ ///
+ public class TestMapView : Control, IMapView
+ {
+ public object Data { get; set; }
+
+ public IMapControl Map
+ {
+ get
+ {
+ return (MapControl) Data;
+ }
+ }
+ }
+}
\ No newline at end of file
Index: Core/Plugins/test/Core.Plugins.Map.Test/TestView.Designer.cs
===================================================================
diff -u
--- Core/Plugins/test/Core.Plugins.Map.Test/TestView.Designer.cs (revision 0)
+++ Core/Plugins/test/Core.Plugins.Map.Test/TestView.Designer.cs (revision c5717eada81586126cbf53266abb0fc925382393)
@@ -0,0 +1,45 @@
+namespace Core.Plugins.DotSpatial.Test
+{
+ partial class TestView
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.SuspendLayout();
+ //
+ // TestView
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Name = "TestView";
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ }
+}
Index: Core/Plugins/test/Core.Plugins.Map.Test/TestView.cs
===================================================================
diff -u
--- Core/Plugins/test/Core.Plugins.Map.Test/TestView.cs (revision 0)
+++ Core/Plugins/test/Core.Plugins.Map.Test/TestView.cs (revision c5717eada81586126cbf53266abb0fc925382393)
@@ -0,0 +1,36 @@
+// Copyright (C) Stichting Deltares 2016. All rights reserved.
+//
+// This file is part of Ringtoets.
+//
+// Ringtoets is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program 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.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with this program. If not, see .
+//
+// All names, logos, and references to "Deltares" are registered trademarks of
+// Stichting Deltares and remain full property of Stichting Deltares at all times.
+// All rights reserved.
+
+using System.Windows.Forms;
+using Core.Common.Controls.Views;
+
+namespace Core.Plugins.DotSpatial.Test
+{
+ public partial class TestView : UserControl, IView
+ {
+ public TestView()
+ {
+ InitializeComponent();
+ }
+
+ public object Data { get; set; }
+ }
+}
\ No newline at end of file
Index: Core/Plugins/test/Core.Plugins.Map.Test/TestView.resx
===================================================================
diff -u
--- Core/Plugins/test/Core.Plugins.Map.Test/TestView.resx (revision 0)
+++ Core/Plugins/test/Core.Plugins.Map.Test/TestView.resx (revision c5717eada81586126cbf53266abb0fc925382393)
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
Index: Core/Plugins/test/Core.Plugins.Map.Test/packages.config
===================================================================
diff -u
--- Core/Plugins/test/Core.Plugins.Map.Test/packages.config (revision 0)
+++ Core/Plugins/test/Core.Plugins.Map.Test/packages.config (revision c5717eada81586126cbf53266abb0fc925382393)
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
Index: Ringtoets.sln
===================================================================
diff -u -re3f2c52b847d4ff820d504e2e9ddf247de3ee609 -rc5717eada81586126cbf53266abb0fc925382393
--- Ringtoets.sln (.../Ringtoets.sln) (revision e3f2c52b847d4ff820d504e2e9ddf247de3ee609)
+++ Ringtoets.sln (.../Ringtoets.sln) (revision c5717eada81586126cbf53266abb0fc925382393)
@@ -210,10 +210,6 @@
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Core.Components.DotSpatial.Test", "Core\Components\test\Core.Components.DotSpatial.Test\Core.Components.DotSpatial.Test.csproj", "{DD7ECAFF-D8A1-4D92-99C0-27498ACB32D4}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Core.Plugins.DotSpatial", "Core\Plugins\src\Core.Plugins.DotSpatial\Core.Plugins.DotSpatial.csproj", "{610E0A9C-1997-4C43-A10E-39D4C66ADA93}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Core.Plugins.DotSpatial.Test", "Core\Plugins\test\Core.Plugins.DotSpatial.Test\Core.Plugins.DotSpatial.Test.csproj", "{93AB5AFB-F58E-4EC4-A25E-FF439B1895E7}"
-EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Core.Components.Charting.Test", "Core\Components\test\Core.Components.Charting.Test\Core.Components.Charting.Test.csproj", "{F40A7DC1-A697-41A7-8676-6C0AD8274FB4}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Core.Components.Charting.TestUtil", "Core\Components\test\Core.Components.Charting.TestUtil\Core.Components.Charting.TestUtil.csproj", "{E900A014-CA87-4374-87F0-813D653A9698}"
@@ -374,6 +370,10 @@
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Core.Plugins.Chart.Test", "Core\Plugins\test\Core.Plugins.Chart.Test\Core.Plugins.Chart.Test.csproj", "{45EF3071-5C30-40AA-8B99-CE174DCEEE48}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Core.Plugins.Map", "Core\Plugins\src\Core.Plugins.Map\Core.Plugins.Map.csproj", "{610E0A9C-1997-4C43-A10E-39D4C66ADA93}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Core.Plugins.Map.Test", "Core\Plugins\test\Core.Plugins.Map.Test\Core.Plugins.Map.Test.csproj", "{93AB5AFB-F58E-4EC4-A25E-FF439B1895E7}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
CreateInstaller|x86 = CreateInstaller|x86
@@ -880,24 +880,6 @@
{DD7ECAFF-D8A1-4D92-99C0-27498ACB32D4}.Release|x86.Build.0 = Release|x86
{DD7ECAFF-D8A1-4D92-99C0-27498ACB32D4}.ReleaseForCodeCoverage|x86.ActiveCfg = ReleaseForCodeCoverage|x86
{DD7ECAFF-D8A1-4D92-99C0-27498ACB32D4}.ReleaseForCodeCoverage|x86.Build.0 = ReleaseForCodeCoverage|x86
- {610E0A9C-1997-4C43-A10E-39D4C66ADA93}.CreateInstaller|x86.ActiveCfg = Release|x86
- {610E0A9C-1997-4C43-A10E-39D4C66ADA93}.CreateInstaller|x86.Build.0 = Release|x86
- {610E0A9C-1997-4C43-A10E-39D4C66ADA93}.CreateInstallerWithDemoProject|x86.ActiveCfg = Release|x86
- {610E0A9C-1997-4C43-A10E-39D4C66ADA93}.CreateInstallerWithDemoProject|x86.Build.0 = Release|x86
- {610E0A9C-1997-4C43-A10E-39D4C66ADA93}.Debug|x86.ActiveCfg = Debug|x86
- {610E0A9C-1997-4C43-A10E-39D4C66ADA93}.Debug|x86.Build.0 = Debug|x86
- {610E0A9C-1997-4C43-A10E-39D4C66ADA93}.Release|x86.ActiveCfg = Release|x86
- {610E0A9C-1997-4C43-A10E-39D4C66ADA93}.Release|x86.Build.0 = Release|x86
- {610E0A9C-1997-4C43-A10E-39D4C66ADA93}.ReleaseForCodeCoverage|x86.ActiveCfg = ReleaseForCodeCoverage|x86
- {610E0A9C-1997-4C43-A10E-39D4C66ADA93}.ReleaseForCodeCoverage|x86.Build.0 = ReleaseForCodeCoverage|x86
- {93AB5AFB-F58E-4EC4-A25E-FF439B1895E7}.CreateInstaller|x86.ActiveCfg = Release|x86
- {93AB5AFB-F58E-4EC4-A25E-FF439B1895E7}.CreateInstallerWithDemoProject|x86.ActiveCfg = Release|x86
- {93AB5AFB-F58E-4EC4-A25E-FF439B1895E7}.Debug|x86.ActiveCfg = Debug|x86
- {93AB5AFB-F58E-4EC4-A25E-FF439B1895E7}.Debug|x86.Build.0 = Debug|x86
- {93AB5AFB-F58E-4EC4-A25E-FF439B1895E7}.Release|x86.ActiveCfg = Release|x86
- {93AB5AFB-F58E-4EC4-A25E-FF439B1895E7}.Release|x86.Build.0 = Release|x86
- {93AB5AFB-F58E-4EC4-A25E-FF439B1895E7}.ReleaseForCodeCoverage|x86.ActiveCfg = ReleaseForCodeCoverage|x86
- {93AB5AFB-F58E-4EC4-A25E-FF439B1895E7}.ReleaseForCodeCoverage|x86.Build.0 = ReleaseForCodeCoverage|x86
{F40A7DC1-A697-41A7-8676-6C0AD8274FB4}.CreateInstaller|x86.ActiveCfg = Release|x86
{F40A7DC1-A697-41A7-8676-6C0AD8274FB4}.CreateInstallerWithDemoProject|x86.ActiveCfg = Release|x86
{F40A7DC1-A697-41A7-8676-6C0AD8274FB4}.Debug|x86.ActiveCfg = Debug|x86
@@ -1489,6 +1471,24 @@
{45EF3071-5C30-40AA-8B99-CE174DCEEE48}.Release|x86.Build.0 = Release|x86
{45EF3071-5C30-40AA-8B99-CE174DCEEE48}.ReleaseForCodeCoverage|x86.ActiveCfg = ReleaseForCodeCoverage|x86
{45EF3071-5C30-40AA-8B99-CE174DCEEE48}.ReleaseForCodeCoverage|x86.Build.0 = ReleaseForCodeCoverage|x86
+ {610E0A9C-1997-4C43-A10E-39D4C66ADA93}.CreateInstaller|x86.ActiveCfg = Release|x86
+ {610E0A9C-1997-4C43-A10E-39D4C66ADA93}.CreateInstaller|x86.Build.0 = Release|x86
+ {610E0A9C-1997-4C43-A10E-39D4C66ADA93}.CreateInstallerWithDemoProject|x86.ActiveCfg = Release|x86
+ {610E0A9C-1997-4C43-A10E-39D4C66ADA93}.CreateInstallerWithDemoProject|x86.Build.0 = Release|x86
+ {610E0A9C-1997-4C43-A10E-39D4C66ADA93}.Debug|x86.ActiveCfg = Debug|x86
+ {610E0A9C-1997-4C43-A10E-39D4C66ADA93}.Debug|x86.Build.0 = Debug|x86
+ {610E0A9C-1997-4C43-A10E-39D4C66ADA93}.Release|x86.ActiveCfg = Release|x86
+ {610E0A9C-1997-4C43-A10E-39D4C66ADA93}.Release|x86.Build.0 = Release|x86
+ {610E0A9C-1997-4C43-A10E-39D4C66ADA93}.ReleaseForCodeCoverage|x86.ActiveCfg = ReleaseForCodeCoverage|x86
+ {610E0A9C-1997-4C43-A10E-39D4C66ADA93}.ReleaseForCodeCoverage|x86.Build.0 = ReleaseForCodeCoverage|x86
+ {93AB5AFB-F58E-4EC4-A25E-FF439B1895E7}.CreateInstaller|x86.ActiveCfg = Release|x86
+ {93AB5AFB-F58E-4EC4-A25E-FF439B1895E7}.CreateInstallerWithDemoProject|x86.ActiveCfg = Release|x86
+ {93AB5AFB-F58E-4EC4-A25E-FF439B1895E7}.Debug|x86.ActiveCfg = Debug|x86
+ {93AB5AFB-F58E-4EC4-A25E-FF439B1895E7}.Debug|x86.Build.0 = Debug|x86
+ {93AB5AFB-F58E-4EC4-A25E-FF439B1895E7}.Release|x86.ActiveCfg = Release|x86
+ {93AB5AFB-F58E-4EC4-A25E-FF439B1895E7}.Release|x86.Build.0 = Release|x86
+ {93AB5AFB-F58E-4EC4-A25E-FF439B1895E7}.ReleaseForCodeCoverage|x86.ActiveCfg = ReleaseForCodeCoverage|x86
+ {93AB5AFB-F58E-4EC4-A25E-FF439B1895E7}.ReleaseForCodeCoverage|x86.Build.0 = ReleaseForCodeCoverage|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -1531,12 +1531,12 @@
{E23513DE-B7D0-4415-BCDF-5A33CD084388} = {0D9858E1-CF2D-4DE5-AC0E-64401900D531}
{93E73FAB-FAE8-49C6-9ABB-27D24DF761F6} = {4B4F0984-5730-4E28-93E7-DDE0F29BA550}
{ED20DBA9-D577-423F-A68D-A0A8130FB10B} = {4B4F0984-5730-4E28-93E7-DDE0F29BA550}
- {610E0A9C-1997-4C43-A10E-39D4C66ADA93} = {4B4F0984-5730-4E28-93E7-DDE0F29BA550}
{4163B996-3455-4324-A38A-9F2F0E6FCB52} = {4B4F0984-5730-4E28-93E7-DDE0F29BA550}
+ {610E0A9C-1997-4C43-A10E-39D4C66ADA93} = {4B4F0984-5730-4E28-93E7-DDE0F29BA550}
{8BD31773-6F6D-42EE-810D-0A5DAD809F9D} = {209AC67F-DCFA-4355-B45A-9D9A2E4593D2}
{07206938-9671-4DC7-BDE4-35B0F6E20DBC} = {209AC67F-DCFA-4355-B45A-9D9A2E4593D2}
- {93AB5AFB-F58E-4EC4-A25E-FF439B1895E7} = {209AC67F-DCFA-4355-B45A-9D9A2E4593D2}
{45EF3071-5C30-40AA-8B99-CE174DCEEE48} = {209AC67F-DCFA-4355-B45A-9D9A2E4593D2}
+ {93AB5AFB-F58E-4EC4-A25E-FF439B1895E7} = {209AC67F-DCFA-4355-B45A-9D9A2E4593D2}
{0590D3BB-EB3E-4B53-BD64-1725E1CBB1F4} = {041EDC04-3A1E-4FBA-BEB7-F391571C609F}
{B5F4F5A5-FD36-405D-ABA1-56C270207C8F} = {041EDC04-3A1E-4FBA-BEB7-F391571C609F}
{4D840673-3812-4338-A352-84854E32B8A0} = {0590D3BB-EB3E-4B53-BD64-1725E1CBB1F4}