From 9501fbf699c50497f764d40ac87ec4e46017d95a Mon Sep 17 00:00:00 2001 From: moazmohamed20 Date: Wed, 20 Dec 2023 14:10:32 +0200 Subject: [PATCH] Fix Issue #3 --- README.md | 22 +++++++++++----------- Screenshot.png | Bin 0 -> 4709 bytes ScreenshotEditMode.png | Bin 0 -> 4741 bytes 3 files changed, 11 insertions(+), 11 deletions(-) create mode 100644 Screenshot.png create mode 100644 ScreenshotEditMode.png diff --git a/README.md b/README.md index 990db8c..af9d56f 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,17 @@ -*Passive view* Model-View-Presenter in Windows Forms -==================================================== +# Model-View-Presenter (Passive View) in Windows Forms -There are remarkably few straightforward, minimal examples of the *Passive -view* (or *Humble dialog*) variety of the Model-View-Presenter pattern for -Windows Forms. +There are remarkably few straightforward, minimal examples of the _Passive view_ (or _Humble dialog_) variety of the Model-View-Presenter pattern for Windows Forms. This project aims to fill the gap. -The common MVVM way of using *INotifyPropertyChanged* to connect the model to the -view and have no presenter or the presenter as a bystander takes us to the *Supervising -Controller* land. Here, by design, everything is managed by the Presenter -instead. +The common MVVM way of using _INotifyPropertyChanged_ to connect the model to the view and have no presenter or the presenter as a bystander takes us to the _Supervising Controller_ land. Here, by design, everything is managed by the Presenter instead. -The design is as follows: +## Screenshots -![MVP class diagram](MVPOverviewClassDiagram.png) +![Screenshot in Normal Mode](Screenshot.png "Screenshot in Normal Mode") + +![Screenshot in Edit Mode](ScreenshotEditMode.png "Screenshot in Edit Mode") + +## MVP Class Diagram + +![MVP Class Diagram](MVPOverviewClassDiagram.png "MVP Class Diagram") diff --git a/Screenshot.png b/Screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..aa3783a29a9888bd3fd2f5241925815ca98417c2 GIT binary patch literal 4709 zcmeHLXH-+!z7Hx*i3nJLpbVn4&=rspAb@lbkz$Mp41^kBFc=i1s0b=m3DP^#A(KE* zdT&vr2_XrB0#ZYhD)k*@=B<0zTWj9C-`|IG&OW>T_ujv9_IYk*ss}#Ge-s1)ferL^ z%t0WgNgzGMb_lo=)+x)tg9&4|ZDz&raN`UngNbiDcJ z#nkSV?+5~MZ5immE$-i$PqmFWYk9VP!{Efl-`pOBvYyiyUvhb9W_R!1NJQ77#ZIYFL;=ngl=V21Gaz`$ZVCQ!aLsq` zqu0k&|HTir7~k&7?H?1#3yGu37$+=d{Zcz(*yhIv6D4jfHu3Yi)by||+IXE@sgt@VqqEN_5o`1&V^j3mgmOm9&9Qek$9m_byLUIg-_WR8 zP1LK{{kp{Zvyr6AC5i1Iuf4&Ewf2vxd}*oyU*b7yIDxM3c5LaqYCP6uYa95Z!M85; z+GyK((b_5Yy#}!2EL?zeOk)ksE9&QMp?O28>E~#V*0RmV}0P- zCS){Vx+CsP=hyDK2ffrAl=Ohfq%wE<=!31_J0I0fDM0CH!Zo#olP2X+4%L1^#0uLN zk4W2Hveii65a(c+cRk+7dyzmvV|G^wusy8-#Dd}nad&rl$p^i;e6To}7ti zr_eg+JyaLe{xmtB(*2}VFfM5)39hD4LQ#S>W4jw(`wbKsI(ECl=-bjlyDg@2 zWwXe3duBAHI5`fsZnJ)cz7-ECcw%1e44U4LY%?6< zfA2|)+1vCc=FWKp%uKX)bbMnIGCHyE0Sk3p(kkoRw@%8Rj2`{b4ypV8NpE9kp*cNB zOWp=xk=B+z6!rFkG5|LH`ovPS7MoDwKXUAUP_G5Loel!Uz{DV+3|=>K-QuG#w$2Nl zCWnGWEGzbzpMsK)l384iptPeTONe1lPQACAJ_btFq{aw;#+_AjahYj~-7c;38#M^( zfyO$$hS>C2+7|^Ah4g4pBu4=ZCQy!9AH%_zFnBcHURp$K`>B5^iT>Js@j;_CNb%Vq z+0z_f`m}=Zrdc3Lm8h_TKbb#gwU2B7FR|(i zsK|Q6OO5DK|NMG^9QcO4-@ZjDOHI_|vsLqsVhz88@$A-)*h=GiVp@-^;5Y4eRtobS z-}I_?W_V=ym(n2(Y@Scct*}EFd@)1)T=hfd0`2Yy3Hn=Z33dse-nWtG-La7luNvi@ z%HJy(<8>oHwKNi-6?%};5-*O7=cQ!zI@NsIGg^60)^KEbrZr8Xn${@6f6vuyEX}UF zSDMlzd^Y=(z0V)$XvNzQRP$vO38WEKnZ8rRzQr>AWRP6Zc7uFr5r#Wr(tp(F3z*Ll z5y_`m!|SSuR_Nnlb-8`r_st5M@EPU=eL=F5Gx%6`Es@!w_St}KaYDKw)#e(O&*TRt|cJVNLMQ+Jf$sK=;G5FN{jY5*Jw#AP9XA+-|hLZG86H8fCP`G(eS$I4zk-ocHBwh$y$N=*m>G)uB2% z2#5dCiJRvHsmNCo@!PxfKGcKl5$(Fb#g#grotwOjW7vqau$aM@%ppXkBM3FjA~Cv_ zw70|O?Cj-MkRazAg|8>kBl%$AF@ta_C`uV;GoLX}_mDzS1`l(XlU( z6l%(C6DD}~=2=H3a_EDY)=RO($f)M(sGEG2*y0oNdR5~7Q+6j{sU+h3_|*=^aUtg_ zD7|*oOhr+K!~@@6=UaK7HC)84HL0(M!lwy@YMkN0on?rHI5=Q2YP?&f`^Q!bGvRM? z`;x8tZ7M2xa9|HtJbK(VeDwC>aShjp%Rk=s!S11rnxn@wz!%E&USCr}(MNOKPO3@h zP`IQd!wB~3y3``f_!o8FJT!*u+Le*YD*nK$jG=aRw4CFz&oGLI_%#tut;^)BWfU*G zviGYIoM78ph@Pot%w}>+Ykc)Sgyg`P9PN-KS9CSHog@@iy?|bby#G$NO#;ckr+hsq zzeUb3ICH<9ec~Dvbr`L3NsL~*roZZ3lLvKePI*<;lRh3jnS-EiaTB=l%C{bsypTMH z12fCU633y;qFzt-yA8(vYzq~HjPNGEa9`6bMEiy<&n~+aaxaw3{2U#jCI&g0Q9>*e zl~7gJNl9o|w+IrIz1r(P zg%jSOSB%AJp>GSkrcsqb-e_kfDOg}BCMrTiHl8{)u!3S@L zpl?1#D*~W?0C7nLWR@Y|6D61hr9GH|27$?;#XvT|5X4W`h(U-fsKYL1ijF|+e^Uoe zjZqMTXg(ndx&PHrGLpC}^Bk0L7@-fea7x6@Yg`OY)TEk$jB?RIpdPMY%L+mrW+UD= zQ#`5ZMIH>Q9G1IF?!d_wPxuLv$(Ls8h2%Vm=zkQ^O*zBy?^#=zk3X*rY>V4hOD<# zOOq@Z%0;@uR+laD>B8bUyOTrFDaLQmyJiGyFK=wd+@@(lXS>>xo9&J0ee;ki4(~$6 zdldfTk87HLv{5oyY+_oU5HmqlVyc_P-^1lY76l4!E{m0gI1S7}+cY{eAIhEzB6NzO z=y@-a+iY4D7*8_%?pmx}`7{z7)X+^+9PRaOJSt3`Nsjo^LG;#B6EHB)9WLH(Z zz&Km=(&?E71vaD@vOQ5Gw`C zr`JPX^LkRe){b?w&s0+K^Uc(ENhX)}(u&F^ z%EG7e^u$SJV-r@=Ryvz@x?T z@z6DG*U$%fuO#ScDmO{})BdtNNl4jR?J1AZRZEz>GDS|MjU;;haP5H9*PPk+1I7yV z5gfLaw5w|zZpPcHhrImwGKwwY;@M0Bo%L zbm^F*)8sL!N)08eq{pta)ob&!x1-NpqPg?d&dd^7lsmCu(c{-CuNt${weF_6HEl85 zOB}5BoDFv2vN%%tgV+bItGOWsVXgfR)hZNq&?>LcjKW2QGGXOb&X^#D0{gX=3Yn-4 z;Wbd>9ihQlB~bqX9A00eCP(MTfjwP2#^3;O9FoCPVg_$2NcDw z69<;P^fQqNBt(fZ0HeD4#2^`G{x@p<2b?s@M(-P)2Tf|8<_1`d5J7EUW499l_}1`B zoGu9R(fRk_WUGn&_55|68R!Jozh&=g50q=0;&NS4lIw3=>cKf#p?x21sLk*i*jkN& zCqg~0Jjbjymyb;}gtp0^!FvD+1kU5O0xym1CY$*AzPqxO>hiKfQ$(&jexsbYduj~V z{HVUXa)p*hz{v7$d@0zVU84@d%=IPA5ntc zJ_CFPzEtn;{FVc6lfoj`3+Wa4Fg3};e}_kpBs6v!zW+#yeQ~AKJ0iXH`pOqI;8Z1M zm1@$QN6mPnxkD#DXVR zfa?`Vy2gEcl8$dE%zIDigj^r+^m$)45o>kfspAApm@uVI`|qx?CM5fOqTBqDL{YY$R9 z*+voVVWzlh%2|!J0Y>Hemmp@~)XCOoG6s2m@$*r;&{!(q>pz19dfBE79iMYrQKX+^ z&@Abwu(Uru{X`>Rn7%4de}}~D)DTDRw<2c&mv?551ILI03B8mAAYRP62qehq;PuA1tUYS}&hFYd6%i~s-t literal 0 HcmV?d00001 diff --git a/ScreenshotEditMode.png b/ScreenshotEditMode.png new file mode 100644 index 0000000000000000000000000000000000000000..02c2cc699e41553820d11e220f67c3120c1c6545 GIT binary patch literal 4741 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 A00000 literal 0 HcmV?d00001