From e85afad5889c53e08f53152a7b4d906b238141a3 Mon Sep 17 00:00:00 2001 From: AaronC Date: Thu, 25 Aug 2022 11:36:21 +0800 Subject: [PATCH 01/23] Add: Level 0 (Greet) --- src/main/java/Duke.class | Bin 0 -> 1158 bytes src/main/java/Duke.java | 7 +++++++ 2 files changed, 7 insertions(+) create mode 100644 src/main/java/Duke.class diff --git a/src/main/java/Duke.class b/src/main/java/Duke.class new file mode 100644 index 0000000000000000000000000000000000000000..774d19b2055542e6b034e7d2ccf7a842ef330fcc GIT binary patch literal 1158 zcmb7D>rN9v6#k|y-DRnQML<+wxR>jysF;*!Vhuu4FG&gfkYqD$2Uxn@X?CY1P5L0d zhW^lmA3lH&Wjxz9(%QzvnarFs-+bpXXJ&r>y8Z!R7tbwN7&mcu7!#OG6L#Oi13WY_ zV`A3CoB?iNo*}vC`mTP-5YMa~GbD1VEEz`gt}ox$t3??ciK0hHqAFaUVKVb6e<`kn z?Fs+fF6hAZ&$E%CRZ#VyB=_BjJp86!k=qe3g%P9}LhexGo%Tnunw&fQlm^KrZ?;$t zC%C8E+>U4w++ww7&iBa5v8`t0+vcZ^v+2;*sY9C6v3M3NpIivdOTy=eysY?{3V1`+xmIP-c*S78 zRjOQUNUC@uDh?%eQ^pU)OIgxAP@xfOS*2T1b=sI{*W6Y1M=H3cvP)6TTG+%EL#mYk zKMPdVVhmGNQIR?2mxMlX^#y667QPM{Rx$&wt{-9;Z>827jlrlzu|0YO6N4Nb8`zEt z`h;QW=4h^er7E)XP}*7Ti;`AB!@yH|eR-uS^%@=G(D!AK^F$a*O7(MhgpQB)-5m(O z?8$JcZJ6y(zYFOxJZjYB0DAXxZr?+8t=~mXcwWKPGHc)&!*bvG2Ia;u`)?lRF-*TS zYB8|rqtJYdRx>0S$)WY{U|&dKxJ`4i1=8=rD8@*Ss2-WdNWMtN@?R0(xJCl_h9T0^ z$&NJsTAN+#8}AD+$xocRN&ZJLMd{2@j8%$l6S7M& Date: Thu, 25 Aug 2022 14:41:33 +0800 Subject: [PATCH 02/23] Level 1 (Greet, Echo, Exit) --- src/main/java/Duke.class | Bin 1158 -> 1606 bytes src/main/java/Duke.java | 27 ++++++++++++++++++++++----- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/src/main/java/Duke.class b/src/main/java/Duke.class index 774d19b2055542e6b034e7d2ccf7a842ef330fcc..258c0ed6033a993ec779b4fadeae967321f391f2 100644 GIT binary patch delta 812 zcmZuvO-~b16g_vQ?M#QEg%Oa-w~A7rw1^6}qNM@~@}(sT?uI&nLY>w!HRy)K2n#oc zOyYt+K;nW#5=(-{r3-(KOJdObDhn3A#k(Kpy>rjK?``{k=udy19DN5chGa@ z)0VT6f4&~{A+92!<2HsB+|h9tNy30TLNPrOi4ekqEZ*)q)HzlwIHM&en~SD1rfpkA z9V1AID)$K9#e6B=u45EQ9b*_L$f?(sj{A6^VuBDjW!j~f*C}T0W%nBm$dh>J{-XD@ z1SxA1>Zd9-viazQT_`zer)Zfk5`@OC{{rDBT(`hv4nei84QDEA^91U;+TbzBlLkMb zSQ5VlPn7otj#}6fTW|Lv=rcQn^St{iNf~}LBE&u)B?&UTjBUHea@(dn{1xir0sM#1 zW}0`gZ~)oxmEje(sti3+Ms?g1@)&_Kg1cxsgNHmvr~&x!9$GxZXAqK5O+z|;-!oS;`h6Hib5jRbqg2#H3UD}`Gy%U0t7Oydz|nC&9R0hUyCiIbNh_G^Cu DAv2V! delta 375 zcmYLDyG{a85IwUO*t^U6LPSv>3akh!ps4r(#)87e!kUmRRE&uU#@5C}E6M!{OEo?c z3rhH}Aq}ynnyE0%&2wg^O{Gq=N~h5}ZxDm_bG(tC7>l z+nBX6H`r@u+}-2;NjKQu?*#&9tA7~O4mzhD4{>;dkF!|8LlGsjBdMgXG4G*_1sfF) zRV)gc=3J`gS{x-Png{Vko1E1!9m`isST>i|m9|j}w^q%Ks>qu8RF9E$fp5N)Z*C){ zw!>S)XF)G8XwZ~P9xM_0H{LwvBBKCx6i24u1 v{$Ha2O}1ias>Cr#(>#^Rbf|OEqO!smITjLFA-Z&`qlpI6WP^KxDgN{iDNHcw diff --git a/src/main/java/Duke.java b/src/main/java/Duke.java index 3b8124c5..83ea5152 100644 --- a/src/main/java/Duke.java +++ b/src/main/java/Duke.java @@ -1,3 +1,5 @@ +import java.util.Scanner; + public class Duke { public static void main(String[] args) { String logo = " ____ _ \n" @@ -7,11 +9,26 @@ public static void main(String[] args) { + "|____/ \\__,_|_|\\_\\___|\n"; System.out.println("Hello from\n" + logo); - //Level-0: Greet - System.out.println("---------------------------------------------------"); - System.out.println("Hello! What can I do for you today?"); - System.out.println("---------------------------------------------------"); - System.out.println("Goodbye!"); + //Greet System.out.println("---------------------------------------------------"); + System.out.println("Duke: Hello! What can I do for you today?"); + + boolean exit = false; + //Echo + Scanner response = new Scanner(System.in); + while (exit == false){ + System.out.println("---------------------------------------------------"); + System.out.print("You: "); + String response_str = response.nextLine(); + if (!response_str.equals("Bye")){ + System.out.println("---------------------------------------------------"); + System.out.println("Duke: " + response_str); + } else { + exit = true; + System.out.println("---------------------------------------------------"); + System.out.println("Duke: Goodbye!"); + System.out.println("---------------------------------------------------"); + } + } } } From 150fe48024db7e8d835ecde659164eeca6ff00b1 Mon Sep 17 00:00:00 2001 From: AaronC Date: Thu, 25 Aug 2022 14:44:21 +0800 Subject: [PATCH 03/23] Add: Level 1 (Greet, Echo, Exit) --- src/main/java/Duke.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/Duke.java b/src/main/java/Duke.java index 83ea5152..10746da1 100644 --- a/src/main/java/Duke.java +++ b/src/main/java/Duke.java @@ -20,7 +20,7 @@ public static void main(String[] args) { System.out.println("---------------------------------------------------"); System.out.print("You: "); String response_str = response.nextLine(); - if (!response_str.equals("Bye")){ + if (!response_str.equals("bye")){ System.out.println("---------------------------------------------------"); System.out.println("Duke: " + response_str); } else { From 331f166962696fcfb2521cee601124c9bdc9799f Mon Sep 17 00:00:00 2001 From: AaronC Date: Thu, 25 Aug 2022 15:04:46 +0800 Subject: [PATCH 04/23] Add: Level 2 (Add, List) --- src/main/java/Duke.class | Bin 1606 -> 2001 bytes src/main/java/Duke.java | 32 +++++++++++++++++++++++--------- 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/src/main/java/Duke.class b/src/main/java/Duke.class index 258c0ed6033a993ec779b4fadeae967321f391f2..76bb50e78961f6f50a77aa7a544d767f984981dd 100644 GIT binary patch delta 1022 zcmYjQOHWf#5dO}6o?EU!FP3r!YyQfLE3LK7ZFUD%kgaVNPe zUASG9o&rRGPuqKYuOVG?~1f zG-0EB@xu+R&qP1=JHxDW>j92~CI)aw$DoPBIKt58++h*t9y6RLtd9@jsE8YOdL&;? zJ)fPA2TdHq5fjI8!o*1=sPI%~cFx2poF*!xH`5$vIL?Z+=NJk_{djO7n@y2xJI8qn z5H^Nl!K!&GIX&KdY;-a`HpftMap=D>F*lQ$9^d!xpmRxz$QN+Yxht&}@rmT@M1M9# zdFc9s&b(aX_Y4sc3W*096=5#ahXG3Fw~fgUL}m8b@?G- zg{@n~d3f)mRF3f_6q9bbx~9aqkBiV5H;x1?o4%YNeR@+_TU$X1KpfdBUF;x zXDB1K;xk%Tu+{Z07;I_d^Aft1&P~yl?=N|Ai6vBTa*4#HZYbqZZ7s2&Qij4p(JaYr z)-42_W!0ba(v2*%5sesph*MM_{Pg(B=uO#JrY63m^KYo7@2RO@2)`nTZ>Yv9YVZTK zSVxFysAC4g%!>vVK!k=;zw*vaQBdLJtk}GLpDLtm;WGr@@BF*5JyxEBCpw>kq?vtiS*O delta 708 zcmY*XO-~b16g{u=rZXLfwvLLHwzO5Mf`wL5!6H&C7Df5cnuzWSodC5mrkxsVVu&WX zZ{CiTI}#U0O{@tE&O@gfK!OC}EDQ0vE&%!r9mTwn<19mlP^wbG**+g)+W^?(;y z9b+agVqC)|6BEcW42u>^i`R^cFD$=)8F?vmg+aaNG_r9MlgOF4iUNa@Z`vlNa81W` z2EXi_jZZmFd9i6H7`Ozetu&Lame!WjbBh&w$=w4L-P-Ef@?NM}ckPEH?=)QT*3+X* z Date: Fri, 26 Aug 2022 08:16:33 +0800 Subject: [PATCH 05/23] Add: Level 3 (Mark as done) --- src/main/java/Duke.class | Bin 2001 -> 2496 bytes src/main/java/Duke.java | 55 ++++++++++++++++++++++------------- src/main/java/Task.class | Bin 0 -> 546 bytes src/main/java/Task.java | 17 +++++++++++ src/main/java/TaskList.class | Bin 0 -> 1748 bytes src/main/java/TaskList.java | 35 ++++++++++++++++++++++ 6 files changed, 86 insertions(+), 21 deletions(-) create mode 100644 src/main/java/Task.class create mode 100644 src/main/java/Task.java create mode 100644 src/main/java/TaskList.class create mode 100644 src/main/java/TaskList.java diff --git a/src/main/java/Duke.class b/src/main/java/Duke.class index 76bb50e78961f6f50a77aa7a544d767f984981dd..788159bfbe894abe600928d8eefbd810d69613f3 100644 GIT binary patch literal 2496 zcmb7GOK=lM5Pc&{+Vy(DMqp!^-mK>X zCl4M0ID$_V?7^^vL+u#Br~)4jOL$R10K+oI1oKFU1QQCz@v@9#GLFl5MeHVo@Cg}{ z3Zj@2(@7bp1U)U|jEtm=v%=1+GNxtBD44~ZgmXgRHNiixAcc7u7eZjdegKywT$ZrF z5FF1NdFL2I+d$+ZgMZS@>I|LJc|)JAl$LaBo-Y-N<1g{N!O$~sb$W&0 z7`i24QN=a9E(FpH@;tW-(|Oxru(dROTI2g?p{#0JT3e(+bX8k*rP3O)oBm>2Oo$1# zD^;I0ZJe~yF=bWQj%kbO^uaV8Ev9LeUR6}Q0nX5M!ZaP*v3Pk#cXDRd?hIl{Mn**z zx`bsF*O6lwjsE|SAtI6z*Usq0qS>!q%5g`dRA@;pYii4;rB%&}=9pPtJL>+e5t1xfIl191WkhsoE35MQ* zmItCj+sq2x{9N%I)$TJz1$XccgX+SdEn8+uVGLVKyr55-Mut0=@=lIcw!;m_X4u!b zrl||oHwFdj#!hZ}ZX-O(;_jk|qm?0YHsDH72N?P-M>HeDmVrpC8v=H@n5V$@x3bhS z&2o<06pZL|YWgI-0fZ?pQdmvi)UirLu2AQ?-qahhj;7nR6PCrRq}Gu!%hkE%^YkQ; z&B3N8qG2VOjCg%%aH&LAOabRfuk%f1=GAICXqgPf*146*iE?M?^BQdwS!7zAQK9(j zGD?Xmf5M)ks;6X6WV3oUt`YPS&t`>$gm*=of5@=sc@^i4n`S|8yngliIK?xLX;CYD zOzE69%|fM2<&+d}+GLU2woYmK!s}1NM*T%O!;NfFxA)W)6YF92aGDh7t7W}~xHoCf zU|ervk{64qyrU;1e8RAIU3{&4W7zrMa_Gkk^fM8L@-Ee67{9wM+XTkw~ar9Z{aT5?!iCvklw$02+oG2xc@HXu>S!mp$3IE zp^gSsiEjIf4S9JRYS?(NhR%2(90+yQuqhr42ir#CQdo-1zOnYOTtnzv@@1Ar8`zyc zh#tbocV83j$7t{;q7z{`w7G^YUt(X|So<0@+IPGA9>3Uk(Z0vs2Log6-R<9y&Sx~l z=c5s(F-&8|>)BTFHd;gP8gBc?y$4}WSZlcEJ?f*QP**tU4+kIJ$F?7^{XTZYm1tP0 zVP_4ygsesp6BR6F4Ld#R;lKk5Nn|Y=4%D!F?a5<-h0n#}bAnDF;)8?@kkJi={O%+O zLm0wljG+f{^x_0@&!P|Kunh~?jx=`RF`4}tyYUOz_>~IaH`4l@(EO7u|Ahz(V35f; z$hr_^y@;^`7-okt!p1Smrf`^@#u%H!5w?h8p3=nuiF76SB(aJD zPjLZC6OY)mcjqY8S!bu(*R%cDQ*!g)x;_GV$PGG%4~QyMcJJXMyiZ{rrTs=qz)Qr7 IyYt1r0bYnzYXATM delta 1047 zcmYjQOHUMA5dKa-Pd6>hv<}?H5eF0*W{^?PQRj+?qWD0?%hfBsM`vQ@ibH~fi7uRt zadkJ?D_yv7LyQX_iD)oBHo9=5Zu|kdGBFwxV~jC)zwWr;BwgRBs#8^8)j9oa{+qh$ z%h{PH0M?*j;}0y6SZbja%Us%0Hqz*jST50NA`{qG*pOIhqD!JX@U9B<)i!F7l~@zt zT8VWo1X3;(te5CQKseDR69~qm-B^>O*P6tES>)_&WEjGmUx6r%{_TJR@f+S?Mvl?iQZ_g7e5g@&~@iJG47deWE#<{s8_Rc3K8mVs2f^V#$*sW9>!5{dHjOj_61d|zbSgg z4CaTt)vOh>V)_j%qCaM7$2~1(bVJP$H zo-uq$XNKBfrV3|T1uk%uoHSpujXKOj18T7t5i}#p9$j>kSQatlm}e8cJ9uM5?BWi` z|Bxx3^Dvmq7`Y8M5jn2gT-Sky%IIQ zSivxnFj2!7!~Z0~3C*I9dSI$^8h@fe{6Ip9e@Bx-uFYWsEjUKBInN`=<0x6RQE%iE QNYd6G%3LV_4CRLZ0k5a52><{9 diff --git a/src/main/java/Duke.java b/src/main/java/Duke.java index 32e83013..49b6ecce 100644 --- a/src/main/java/Duke.java +++ b/src/main/java/Duke.java @@ -1,48 +1,61 @@ import java.util.Scanner; +import java.util.Arrays; public class Duke { public static void main(String[] args) { + boolean isExit = false; + Scanner scanner = new Scanner(System.in); + TaskList task_list = new TaskList(); + String logo = " ____ _ \n" - + "| _ \\ _ _| | _____ \n" - + "| | | | | | | |/ / _ \\\n" - + "| |_| | |_| | < __/\n" - + "|____/ \\__,_|_|\\_\\___|\n"; + + "| _ \\ _ _| | _____ \n" + + "| | | | | | | |/ / _ \\\n" + + "| |_| | |_| | < __/\n" + + "|____/ \\__,_|_|\\_\\___|\n"; System.out.println("Hello from\n" + logo); //Greet System.out.println("---------------------------------------------------"); System.out.println("Duke: Hello! What can I do for you today?"); - boolean exit = false; - Scanner response = new Scanner(System.in); - String[] lst = new String[100]; - int lst_counter = 0; - - while (exit == false){ + + while (isExit == false){ + //Getting Input System.out.println("---------------------------------------------------"); System.out.print("You: "); - String response_str = response.nextLine(); - switch (response_str) { + String raw_input = scanner.nextLine(); + String[] input_list = raw_input.split(" "); + String cmd = input_list[0]; + + //Responding + switch (cmd) { case ("list"): System.out.println("---------------------------------------------------"); - System.out.println("Listing: " + response_str); - for (int i=0; i4Jm`x+nrEg23uRiRf<5A@gI(oc)*j1Kk!RK^Ogi zepGbcDMWa&=h=JSbIx;~_xtDb3&1go1~jZDk-(ZP>pC`cY--rjuq}{kxg#g=hM_m` z1#-2H{b*Nuw%@MQ!@%>~Cjtp?bTRN<0r9}Yspos)nLwd5&n@2x#LfpTax*p0cW=i1 zrW-WuW{*g^?S}Qx4#%S_N6yNZ%JUASk>hl)?O`O-up?mf?Vwwog-}a!icueo1INAe zq;s-ikGlIZxd{^m6FQP645S$Oo?nrvBt;UH0uIShh!-18S4YW+M7VJ)Ctr#LfoG==SY?ERC?t@!=H{^~N+GGiM_Y<~ONa Ijs~p!0%`$W4gdfE literal 0 HcmV?d00001 diff --git a/src/main/java/Task.java b/src/main/java/Task.java new file mode 100644 index 00000000..3081170c --- /dev/null +++ b/src/main/java/Task.java @@ -0,0 +1,17 @@ +public class Task { + public String description; + protected boolean isDone; + + public Task(String description){ + this.description = description; + this.isDone = false; + } + + public String getStatusIcon() { + return (isDone ? "X" : " "); + } + + public void markAsDone() { + if (isDone==false) this.isDone = true; + } +} \ No newline at end of file diff --git a/src/main/java/TaskList.class b/src/main/java/TaskList.class new file mode 100644 index 0000000000000000000000000000000000000000..f540e3e9181e0f5f935caeed1b7dfe6dd2edfaef GIT binary patch literal 1748 zcmaJ?T~ixX7=BK^mMlxb0IlV#RG}uJG=8?W0hFd<(S%lmMZ_wHWCykhyK#5Z8JzL1 zKSFQ4@wRnnn4vR{mrj31e@4eqpOXzCg^V{R=e*~Ap7(j5bI#`ZKZkz+xQ3FBA*A9M zL|Vg)j&QKJtYKD13|CYnqlUM2=DZWfyLd05kUBoZb(L}>0fD(VXY(qypyMNatYJ~Z zO@WAK{b&k^WlpP>=L-zyAIOI?Q}?ZEX3=%!UY_BsK)h&e+tRPQOds!-GnZeLUM0K0 z+}NCDTmFJTIGMUf=A2U|sy}bp=1P5c%XC-eR+SM=mdgsns>y(|D(&q|(RVF-JFB4D zw&@2M@#JzUs6Z_>CiqI2Kwr_9rAk58TAaFPO1HEVfJVB}9m^PlUFxbkbzTqw{RJ*kAB$P+hL08=Kd~=ror+$17EGKhUnawjXw!l!bQ*xUm zvLWuX`lYUCd)#6>zqf39CD*F?mLg4bxX@0~nhL7i?)0O14SAc*AL_E|Y1mNb^S!{- zaS_XY=v2(sjSZ|=k|p19_cTaC^Nv%g*944Z+cw=?ReGLDe}3-N-r@-E$8BkstEM*< z0JEpXc0^tQuI|;$F6kQ``A3(cBh;eE$!fJ|`DRwbmcaC>{<>)snE3xZK7>Jjynqlt zKzvG^Mbx|D>U=Xgf+**FX&lEHxz5j+;O}ty03scJictC)!s`c!JVo>gH&~Kmf;51} zF@iWLhBz0vfXNokB5A_R7=MP?`pf~eLV6$3%MJ9brPucnifoekB%MyGUQ!!W(?=pc z;uhT$^@m7jD3;L%;(sFcnCn1HjK9DD$2Z%3{L~V#5S|+)DD*3?rU}#wzoU0FvU$iN zXrPZPiaK+M{`PVo0}Z_PNQmG5{YxnfH5;B_gJ7FFT^yi~6LfKwK3-#N9wV6IZXBV% z5fU$PgHon(iKDXgJ}H!2)8YBCK+0Hpj8ax+S!$+%#4m`>K7JHp!52bx6;wP+TWKIG yPO#zy&c@l_#bzb`*{Dh*FPRg@TTM(7-|<&x(QmQIqUZ5G*JsG~0b^I2WA;BoW|8Lr literal 0 HcmV?d00001 diff --git a/src/main/java/TaskList.java b/src/main/java/TaskList.java new file mode 100644 index 00000000..bb1e4774 --- /dev/null +++ b/src/main/java/TaskList.java @@ -0,0 +1,35 @@ +import java.util.ArrayList; + +public class TaskList{ + public int size = 0; + protected ArrayList list = new ArrayList(); + + public TaskList(){} + + public void addTask(String task_name){ + Task task = new Task(task_name); + list.add(task); + this.size++; + } + + public Task getTask(int index){ + return list.get(index); + } + + public void printList(){ + for (int i=0; i Date: Thu, 1 Sep 2022 01:05:19 +0800 Subject: [PATCH 06/23] Add: Level 4 (ToDo, Event, Deadline) --- src/main/java/Deadline.class | Bin 0 -> 464 bytes src/main/java/Deadline.java | 14 +++++++ src/main/java/Duke.class | Bin 2496 -> 3797 bytes src/main/java/Duke.java | 78 ++++++++++++++++++++++++++++++----- src/main/java/Event.class | Bin 0 -> 460 bytes src/main/java/Event.java | 14 +++++++ src/main/java/Task.class | Bin 546 -> 852 bytes src/main/java/Task.java | 25 ++++++++--- src/main/java/TaskList.class | Bin 1748 -> 2505 bytes src/main/java/TaskList.java | 51 +++++++++++++++++++---- src/main/java/ToDo.class | Bin 0 -> 322 bytes src/main/java/ToDo.java | 9 ++++ 12 files changed, 167 insertions(+), 24 deletions(-) create mode 100644 src/main/java/Deadline.class create mode 100644 src/main/java/Deadline.java create mode 100644 src/main/java/Event.class create mode 100644 src/main/java/Event.java create mode 100644 src/main/java/ToDo.class create mode 100644 src/main/java/ToDo.java diff --git a/src/main/java/Deadline.class b/src/main/java/Deadline.class new file mode 100644 index 0000000000000000000000000000000000000000..7afa36a773c7809cf41cad9a42730051c826c07d GIT binary patch literal 464 zcmZWl%TB^T6g{_vwv>X3_yEPnN~lJbE;MdzSP?f67w!f+A*0xm(wg{Jn%J1Q@B{oP z;~gSy$Rzi1=A1Kk?)T5<7k~>Kxp1&qf{nTkTMo8$-qB&#M#DyvV27CuL@Eij{)2cH z-KmHs-9ehDXmUxgu2iJbYr;u;^?DWQ+z|>lamaRSeHF>u>}e#Ep%_gWaVIhjmao;@ zomDw=262{*Wlw2AC6FSVvdy`k%tIM_9`@mSXyJfBfrmrgmEaPbC7CA}iuohKZ0m8# zp`4EsHA__-@qg4jh$Hr%kVf>xa)Cma&Gz`ApbOn z;hQ;3zgEam^v`lwZwqx*b6{~S@F}vFg(`d3*}cIXuLbLWo-NMA%%cAe>-Ar5EkOP7 I24et<8 literal 0 HcmV?d00001 diff --git a/src/main/java/Deadline.java b/src/main/java/Deadline.java new file mode 100644 index 00000000..6a762efb --- /dev/null +++ b/src/main/java/Deadline.java @@ -0,0 +1,14 @@ +public class Deadline extends Task { + private String dueDate; + + public Deadline(String description, String dueDate){ + this.description = description; + this.isDone = false; + this.taskType = "D"; + this.dueDate = dueDate; + } + + public String getDueDate(){ + return this.dueDate; + } +} diff --git a/src/main/java/Duke.class b/src/main/java/Duke.class index 788159bfbe894abe600928d8eefbd810d69613f3..7260a87a3f711ba16da30919a2218161660741f3 100644 GIT binary patch literal 3797 zcmb7HeQX-aBr2(3R1Ze*wkR~Cd!CxRGBt$_i&wF+nyRj;9 z(Y^2cJn!>7@9%xS&iU=l#rFa1!!-qM=#tP~gC6uM5YQ)~Ux620G7fU)K#&B76b$3A zj3Y9R$~eZU5iUF`)LMNf}czPRe*xMpVWrZc~>rEhDBN4nx9e zEBh{rfHFXM3;p9#WKq(3X+ z2?B-F+&0Je0k3P(>+O?E( zlBt%Fm~NUzR>CtXK8N#M;PVXfsBX^=CT)ko)}r)irRVlSnb)+aHbpPZ^V+;C71fAc z@zc zZU=mLPR18idM0|J$bb>obeoWwMnuAE zDlXu4hH!aCbSL!eh;cS&m@%VW#kcTn6>s38gzu<$lN- zh(}bsRTR^>n6EP)C#H<=s`wti_4o0zj302%FE9wxd4>%~Qig6Dn(gS0p*aadTe@7m zjJLVu4^>>kJ0z~tJ?~v9&h>ONt~trHK{`KD@nbIT;Vz))FQ@zA=`%)*Y^*82aj6C> z1dF^%R^E1uG=bn%6e`wG(rOtnGdYLE4L#jXUTLVh!Rt%3a&+>t;t{I6B}D~4!MhBq zn?%~_td&+6!@9ISYjj&?On1hTPJ&kCBGa)MwwI2nsNt1mO&4|VPB6<(qg2W8vs3&Y z)eI3>uPZ@$W*Uz2s#&V)W;vnTbQ#{IsAUaMj!?SkDY{k# znqsWl8&6Q*anTgpNHLmj%jwK!^*pK7#;i>K@abdJ(8y*}MT09@85n3R$5P@_ikz`{ zID5;%S5!c`R>ekDXDGIzXJZLoiImsnMoUT7ILP-XQ9MN%g;#Z_-9rUQ9k@sgTTYR# z(I!VvPVzFMkm>RGsMSNIFU=UvNb+%#uOGI~x$PyP&lwui9Nqx5r0LcW?3l?EjSLT00lYHgRn65Byq?=Fsah^nF+_PrFnX6@=uQ!aOtyM?Pm^$& zSO3o#wl0@&(wwtqjnap!SR8$N%(1e02?fffLCc!WWvG@0_~)oQrQ5baIr3`x-AXo! zAA^I`IZ}qbwW!#>5@#8wLUA;oF{+4{XUtL#uQbuEr&1$H$7q*um0{b8`&Glnu;uP@ zsK-O}D~CS<{i2{xG>xAiYBSA@W^dC~u=i-e5TViMGCin4JNDC>M7=Tktx*Sv=fwTj zAxvC>com+Z>-6cm3g2*0ig>O-4to|!2?Z!b1ZzvPO7q4GVn;d8U%;xJ1q34Aus2v& z!0L!E>=RofQdo-A2yIHZrhwo(gymg&r4RqAeN6LNuqXaT^HH>3euL&t?Dc&}vyQez zAI(pDf1SNR^P5{de;B9v#c)kgmw+}5qVcwF5tcb z?&q>w$;&izma@REm#c5PyZUx6yQ4yVeo4K`seG%Uh&3!PqS4I(7fKUt(bXPUY^xR9{2@PG;4N$p`$GQKAc<1Al#suzb^$f#{cPdZpF*`4+-n4zxjz2so*$|$ zyENy7YCWeaT%lHg3ag7~S%MX&l-zwMFucAD%rCYDLV?@B0)2%;HlsLt1t+S@_>@RqP{T&C`ztF*M zpi>agC4|r|Y(|gJgkE7c`h*Vj3tbox4&jh6gh62(LxO=}A&J96is&qk3Fj~(Jc&`^ z85|d0!kBOg-jhGc%kP>^57KdPpQ?SH1GNKJzoP&c$$a}9~!!2@@S0d~Z1c|RYfLq9+wt`1& zqWLDh)F}h*icebS9{ jCw@w^Lap~b{2W)@NCFzQ;7<{6&>b`GXuIP%cbxwpWLc1> delta 1039 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 NVz=XT(w2{%e*p(neZl|$ diff --git a/src/main/java/TaskList.java b/src/main/java/TaskList.java index bb1e4774..f022a017 100644 --- a/src/main/java/TaskList.java +++ b/src/main/java/TaskList.java @@ -1,27 +1,58 @@ import java.util.ArrayList; public class TaskList{ + public int size = 0; protected ArrayList list = new ArrayList(); - public TaskList(){} - public void addTask(String task_name){ - Task task = new Task(task_name); - list.add(task); + public void addToDo(String description){ + ToDo toDo = new ToDo(description); + list.add(toDo); + this.size++; + } + + public void addDeadline(String description, String dueDate){ + Deadline deadline = new Deadline(description, dueDate); + list.add(deadline); + this.size++; + } + + public void addEvent(String description, String dateTime){ + Event event = new Event(description, dateTime); + list.add(event); this.size++; } public Task getTask(int index){ - return list.get(index); + return (Task)list.get(index); } public void printList(){ for (int i=0; i3w5Vm5Epi0&mBM@LMAZ4P~ZTE z1S$lMFl3UeaZXmx1b^h{ou#T4rQX!q8bbPi1>R6s6Ki+|Jrbgtn~S%N!U Date: Thu, 8 Sep 2022 11:53:13 +0800 Subject: [PATCH 07/23] Add: Level 5(Handle Errors) --- src/main/java/Duke.class | Bin 3797 -> 4722 bytes src/main/java/Duke.java | 118 ++++++++++++++---- .../java/exceptions/EmptyTaskException.java | 4 + 3 files changed, 95 insertions(+), 27 deletions(-) create mode 100644 src/main/java/exceptions/EmptyTaskException.java diff --git a/src/main/java/Duke.class b/src/main/java/Duke.class index 7260a87a3f711ba16da30919a2218161660741f3..97a64b2dbf98a3b62585484d6f5ba29a439214aa 100644 GIT binary patch literal 4722 zcmb_geQ+Dq5&ykANq0V<{2`(c#Ys4agxIMQ6Q?*-HjrRDiHYNU*yPIz;w)Wk#pgSr zJ2?mpfkJ@*1;R&~gq9Klm?X3$K%LZSfkI0^7+R(?onhMPADvD+{MGVDXWGsb+{d|0h4zF{W9V*5?qPFh4%7g1N<>4Bgw~oGKOTB zGKOVXGHe+s8MkmnX&DaJ;c_CQU0xtz^VJz%&!F3|&P)An#z(s3E;>-xI(=_7ihsape$x!IP^ z&ia{5hG37Y$A>oRsl0BbaOp|a_ z#W6h15Gf2n+n}EAF>c8iR@`V&@ojvE0_SPWxJk3IC$3wTkyh~xzROWR%OLma&QLCz zjuxX!%U@G3%BZHrwB2;mII4|$QZbF#MSqQ2BNyXrPb&A+v{qUbYg9(L?nZ5QEY=XC zsogPpi;XG_RoC0L>$qt>wb5_~?SxYqz;PMRsW^e>Ra}qjXrFnkquP4IH0@e#`=IV> z0D&*)(*=&`7_L)^u$|Hhfwukfv)+7={ z%XnSI4|tHqaazVX9`ExELVuRw@=hymPKjcd$R9wK1 zXr1oL__2yNII*n9PN%aC-UeAqTrFcIjI`tGRzlm)H_zpdVMDhZEm}vAd_0(x3ey4G z)W6S&Q`9dh%x&X=~A%B#W{E*;i~j5gbf z>+bfXJ4kPQ2VL^_ibAycO(_Y-??sc2lV#kRFXOZ7N=rH^GfBI(q?GEy805{7&OzNF zP`q(a7wM$Drn;w_1g~i4@{z9JHQh~k=TIC&Psa!O5o4HJ%4ip#qdf8DWE5T>);R5S z;;5J8h;G}>(Pdg+@18z>x+sJ6M55Pjry?Tpj+MNP3ucv7Sk6Ozsg>P5E94Xn-*8RDG4(DDZDcgy_!Tj$eKvwyqbB(QGS7X!2ACEQq!A!eRSShILqJ^~u?O`saoa(w3z;=nJV*P3HuQ=XhPj&Q>`W=H)Ie@Gg~ zrO`knAT~v%h!iaonw3b|IOd!t`v7-WdjBKsuQWPfcm9pW9yFbKhQ>Cm47^Wc9L<9q z?LGc?)5mB$vB3BH9W*`>DGNo$G5072#Aam-I?**Az1_#@Ekw`r=yiThuOWKAN3RNS zdIix7JbH=5=~|*M^XN-uPFEAHd9+kT3&P4NGD>m1-W&LS0u6LuOZOJKpQZcnwAoR* z-^hoemLjuk91F*U5OI91JX)9M0yoAci4_U>A_0#}#9kA1&vSbtE~) zKFksI9`PRMFQr#LeuV-}BVR{yXG*JU_>8)Ph3ZDR8UpC4TVAA2FIG2(s=|eBd|_j5 zVMLz5m0mu0F07y_QrR?tl^%19%_dc1bGg_Y3_^lIG+#szQOB|Bvl#HWhao67SB5L6 zFjO{$uFhkqYz}e^l@~DtFJcHzVW{93DyK1ASB#-z0$-cLP%)0^3=9>7fv;)dF8t?% zvyj*z8)XNu#2X)mpPggxv0oF-$3MU?1cYi~7L8fqknkjppNL^`4jo$WbhBgFOGy_Z z>JmELvk=B?L{Nh(umJVA3@fk@S78yZrb4rtxNETln@~r;M;q8`EN5+4!8V|YZNf^n z70v8MtYX^{Wihm{ezY=!zD5Vp#vHV>QEVWj9qewbWe2g2J&g725p=S{xPcu-H#?3^ z>?Af*!P~-KM=v{v9qeuFWbff-@@N?W`Fus`A^_7}w1M~JhJkzoIVL3MDi zAR;LQU<%bpk=Mh*Y*@kq*g`EFp&qW#jEvBV5n%)N3*ER)*n-=IUfdzXaHnA6fRMsn zfWW5QcFB>V=C3%|uv!tZcc_z*{g zKjWzIF^&oUz|+D%iT(t~MG4P|VZ2CDKOxS=^Ws9hATGvB;xe2RTX9Nk$7!(#FN@po zintSJL>;e*3B1lLtx$!igfXwEMfzlSOH!5DUAxX-M8^B-l0=_ Z6VV!->=^NG_MUfp&wIV+1K#uD{{qocNs9mg literal 3797 zcmb7HeQX-aBr2(3R1Ze*wkR~Cd!CxRGBt$_i&wF+nyRj;9 z(Y^2cJn!>7@9%xS&iU=l#rFa1!!-qM=#tP~gC6uM5YQ)~Ux620G7fU)K#&B76b$3A zj3Y9R$~eZU5iUF`)LMNf}czPRe*xMpVWrZc~>rEhDBN4nx9e zEBh{rfHFXM3;p9#WKq(3X+ z2?B-F+&0Je0k3P(>+O?E( zlBt%Fm~NUzR>CtXK8N#M;PVXfsBX^=CT)ko)}r)irRVlSnb)+aHbpPZ^V+;C71fAc z@zc zZU=mLPR18idM0|J$bb>obeoWwMnuAE zDlXu4hH!aCbSL!eh;cS&m@%VW#kcTn6>s38gzu<$lN- zh(}bsRTR^>n6EP)C#H<=s`wti_4o0zj302%FE9wxd4>%~Qig6Dn(gS0p*aadTe@7m zjJLVu4^>>kJ0z~tJ?~v9&h>ONt~trHK{`KD@nbIT;Vz))FQ@zA=`%)*Y^*82aj6C> z1dF^%R^E1uG=bn%6e`wG(rOtnGdYLE4L#jXUTLVh!Rt%3a&+>t;t{I6B}D~4!MhBq zn?%~_td&+6!@9ISYjj&?On1hTPJ&kCBGa)MwwI2nsNt1mO&4|VPB6<(qg2W8vs3&Y z)eI3>uPZ@$W*Uz2s#&V)W;vnTbQ#{IsAUaMj!?SkDY{k# znqsWl8&6Q*anTgpNHLmj%jwK!^*pK7#;i>K@abdJ(8y*}MT09@85n3R$5P@_ikz`{ zID5;%S5!c`R>ekDXDGIzXJZLoiImsnMoUT7ILP-XQ9MN%g;#Z_-9rUQ9k@sgTTYR# z(I!VvPVzFMkm>RGsMSNIFU=UvNb+%#uOGI~x$PyP&lwui9Nqx5r0LcW?3l?EjSLT00lYHgRn65Byq?=Fsah^nF+_PrFnX6@=uQ!aOtyM?Pm^$& zSO3o#wl0@&(wwtqjnap!SR8$N%(1e02?fffLCc!WWvG@0_~)oQrQ5baIr3`x-AXo! zAA^I`IZ}qbwW!#>5@#8wLUA;oF{+4{XUtL#uQbuEr&1$H$7q*um0{b8`&Glnu;uP@ zsK-O}D~CS<{i2{xG>xAiYBSA@W^dC~u=i-e5TViMGCin4JNDC>M7=Tktx*Sv=fwTj zAxvC>com+Z>-6cm3g2*0ig>O-4to|!2?Z!b1ZzvPO7q4GVn;d8U%;xJ1q34Aus2v& z!0L!E>=RofQdo-A2yIHZrhwo(gymg&r4RqAeN6LNuqXaT^HH>3euL&t?Dc&}vyQez zAI(pDf1SNR^P5{de;B9v#c)kgmw+}5qVcwF5tcb z?&q>w$;&izma@REm#c5PyZUx6yQ4yVeo4K`seG%Uh&3!PqS4I(7fKUt(bXPUY^xR9{2@PG;4N$p`$GQKAc<1Al#suzb^$f#{cPdZpF*`4+-n4zxjz2so*$|$ zyENy7YCWeaT%lHg3ag7~S%MX&l-zwMFucAD%rCYDLV?@B0)2%;HlsLt1t+S@_>@RqP{T&C`ztF*M zpi>agC4|r|Y(|gJgkE7c`h*Vj3tbox4&jh6gh62(LxO=}A&J96is&qk3Fj~(Jc&`^ z85|d0!kBOg-jhGc%kP>^57KdPpQ?SH1GNKJzoP&c$$a}9~!!2@@S0d~Z1c|RYfLq9+wt`1& zqWLDh)F}h*icebS9{ jCw@w^Lap~b{2W)@NCFzQ;7<{6&>b`GXuIP%cbxwpWLc1> diff --git a/src/main/java/Duke.java b/src/main/java/Duke.java index 3699ba09..47d0e836 100644 --- a/src/main/java/Duke.java +++ b/src/main/java/Duke.java @@ -2,6 +2,18 @@ import java.util.Arrays; public class Duke { + + private static void printLine(){ + System.out.println("---------------------------------------------------"); + } + + private static String getStringFromList(String[] inputList, int fromIndex, int toIndex) throws IllegalArgumentException{ + if (fromIndex >= toIndex){ + throw new IllegalArgumentException(); + } + return String.join(" ", Arrays.copyOfRange(inputList, fromIndex, toIndex)); + } + public static void main(String[] args) { boolean isExit = false; Scanner scanner = new Scanner(System.in); @@ -15,13 +27,13 @@ public static void main(String[] args) { System.out.println("Hello from\n" + logo); //Greet - System.out.println("---------------------------------------------------"); + printLine(); System.out.println("Duke: Hello! What can I do for you today?"); while (isExit == false){ //Getting Input - System.out.println("---------------------------------------------------"); + printLine(); System.out.print("You: "); String rawInput = scanner.nextLine(); String[] inputList = rawInput.split(" "); @@ -31,46 +43,83 @@ public static void main(String[] args) { //Responding switch (cmd) { case ("list"): - System.out.println("---------------------------------------------------"); + printLine(); + + //Printing result System.out.println("Tasks: "); taskList.printList(); break; + case ("bye"): + printLine(); isExit = true; - System.out.println("---------------------------------------------------"); + + //Printing result System.out.println("Duke: Goodbye!"); - System.out.println("---------------------------------------------------"); + printLine(); break; - case ("mark"): - System.out.println("---------------------------------------------------"); - System.out.println("Marked as done:"); - description = String.join(" ", Arrays.copyOfRange(inputList, 1, inputList.length)); - taskList.searchTask(description).markAsDone(); + case ("mark"): + printLine(); + + //Handle empty task + try{ + description = getStringFromList(inputList, 1, inputList.length); + taskList.searchTask(description).markAsDone(); + } catch (NullPointerException e){ //invalid + System.out.println("Please enter a valid task! "); + break; + } catch (IllegalArgumentException e){ //empty + System.out.println("Task cannot be empty!"); + break; + } + //Printing result + System.out.println("Marked as done:"); System.out.print("[X] "); System.out.println(description); break; + case ("unmark"): - System.out.println("---------------------------------------------------"); + printLine(); + + //Handle empty/invalid task + try{ + description = getStringFromList(inputList, 1, inputList.length); + taskList.searchTask(description).markAsNotDone(); + } catch (NullPointerException e){ + System.out.println("Please enter a valid task! "); + break; + } catch (IllegalArgumentException e){ //empty + System.out.println("Task cannot be empty!"); + break; + } + + //Printing result System.out.println("Marked as not completed:"); - - description = String.join(" ", Arrays.copyOfRange(inputList, 1, inputList.length)); - taskList.searchTask(description).markAsNotDone(); - System.out.print("[ ] "); System.out.println(description); break; + case ("todo"): //Add to list - System.out.println("---------------------------------------------------"); - description = String.join(" ", Arrays.copyOfRange(inputList, 1, inputList.length)); + printLine(); + + try{ + description = getStringFromList(inputList, 1, inputList.length); + } catch (IllegalArgumentException e){ + System.out.println("Task cannot be empty!"); + break; + } + + //Printing result System.out.println("Added:"); System.out.println(" [T][ ] " + description); taskList.addToDo(description); System.out.println("Now you have " + taskList.getSize() + " tasks in the list."); break; + case ("deadline"): - System.out.println("---------------------------------------------------"); + printLine(); int byPosition = 0; String dueDate; for (int i=0; i Date: Thu, 8 Sep 2022 12:03:27 +0800 Subject: [PATCH 08/23] Remove: unnecessary package --- src/main/java/exceptions/EmptyTaskException.java | 4 ---- 1 file changed, 4 deletions(-) delete mode 100644 src/main/java/exceptions/EmptyTaskException.java diff --git a/src/main/java/exceptions/EmptyTaskException.java b/src/main/java/exceptions/EmptyTaskException.java deleted file mode 100644 index 3e0cfd0d..00000000 --- a/src/main/java/exceptions/EmptyTaskException.java +++ /dev/null @@ -1,4 +0,0 @@ -package exceptions; -public class EmptyTaskException { - -} From 57f5e5b40f88e1e960656b901452bb0ac676ff2d Mon Sep 17 00:00:00 2001 From: AaronC Date: Thu, 15 Sep 2022 14:48:46 +0800 Subject: [PATCH 09/23] Add: Level 6 (Delete) --- src/main/java/Duke.class | Bin 4722 -> 5085 bytes src/main/java/Duke.java | 14 ++++++++++++-- src/main/java/TaskList.class | Bin 2505 -> 2610 bytes src/main/java/TaskList.java | 5 +++++ 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/main/java/Duke.class b/src/main/java/Duke.class index 97a64b2dbf98a3b62585484d6f5ba29a439214aa..ff001ad8372e1afc34e6ab813118cfe58e392758 100644 GIT binary patch literal 5085 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 delta 2484 zcmb`Je{fXQ6~{mKzTJH{Z{Kc`wV`Z~G^mIaA`o<`aSLcrEGQ5``6Y%0g8Ya;lYm8$ zr_!n@Md2v|wp2ijfUSYxLQ_qxR{MjowVmk<)7JjeX~%!s+D>QM&Q#NLU((b?o$-(E z&b{Y-&pqe+z31$E_w75Q{&q?5(+_%jfl2(t#w=zV=6E!5v&&qMI5!#QdECOS zF7rKRu)t-Zja%fAWUE!KChVXGl9+?PRF)ie*-XGGJ%uv+0WC8?BZ}qV(7&_-{6~y$~A>eg>f4@R=19uyS%V&T}zwK z0lwuknPl5}rw3q3XjwCF_F|66wD6ZtWk%wxhQGS?pZuyAFtLWMbkivCGM=vW(l}Z?^3h zd$=a{>jh%NY*{8-q`f@>q}R!BybcT7}4UmF?QHyA5pvWzAf&&c=-s0JCmXULpHXGRo> z)fKs@Q)k2z%Uj>Y;uFxR`T{Z8L@b+-@Jkv@UDgyCS>)1AhBqW_=w%Yxsm}F-(GfUn z{hyahYsVC+5^M7$uIuCJ#-2yFeUL7Yq%D?5wixkUUcy%>3HOs7g8YnJdDEboCl3UT`wDbf6W! z)k;}`D{W=GUZR!td&vD)E$bJVbiN+DBfXT9E3Yaa)GM#gd?D;jR|oxasX@84l`H?B z+>}zebPrbz%B71md_*oSayI8`yW4-ieF9glQd?BOsL1Xhu1>47>Suz*UaEdWTqks; z{*2hodY67e?E6lYGgO`#jXYdxKP$sG%C8Eha=B_`f|^Oan$1LYGdXn&lhk|~R5Mqr zW#m-7lQ^=LYDj*U9cCOwn8^epbyP28jBaj$M>t8OLG8@Nxm3*O9wdK(YvT|6o+ zcv$aYyFS1p`XD>?Q6AH02p-q3vP=J*-TIe2sei>DeU82Q_w3W}v0wk4r}aMszt2I( z<&aawbJD}ZPBqUu7jeWH$@5MfN1Z&!oM{|)=JJAbD=#_=>2eBmJ1aP4k1bun$UY_z zccoJ+hm+AR8zQ~ZMMsth?d%cD=Kt}?UGWz>x>@jf{YKOrYdwpo2te^Sf< z?*Loyf1;c7sW&#ZWMhFXx3uC9FbXy7U&I#;kfuJqLj%=HL!(xXFCqRYZ=bwmD$ZvL zN}4UY@L}ch^W*!&2mAc#wdKE4376ay^1hmxmor^+BR>@DiTZ22$?IgfU2v^Dtj*$E Q8qN1d^H-z!;b`9RAHHVCp8x;= diff --git a/src/main/java/Duke.java b/src/main/java/Duke.java index 47d0e836..21c6a8f0 100644 --- a/src/main/java/Duke.java +++ b/src/main/java/Duke.java @@ -170,10 +170,20 @@ public static void main(String[] args) { taskList.addEvent(description, dateTime); System.out.println("Now you have " + taskList.getSize() + " tasks in the list."); break; + + case ("delete"): + printLine(); + int tasknumber = Integer.parseInt(inputList[1]); + Task temp = taskList.getTask(tasknumber-1); + taskList.deleteTask(tasknumber-1); + System.out.println("Removed:"); + System.out.println(" [E][ ] " + temp.description); + System.out.println("Now you have " + taskList.getSize() + " tasks in the list."); + break; default: //unknown command - printLine(); - System.out.println("Sorry, I don't understand what that means :( "); + printLine(); + System.out.println("Sorry, I don't understand what that means :( "); break; } } diff --git a/src/main/java/TaskList.class b/src/main/java/TaskList.class index 00fb1c437ca70d6ad0d5d69a0b97479b6331b253..8c2ebb3af6a8cec9ecaa873322f29431c77a27e6 100644 GIT binary patch delta 867 zcmY*X%Tg0T6g@pjre}s0AweJ@rSSnIU;sr>5FZ$XAc$flqWFkr1Po+=#Q4PETXAL0 z(&8f!aN)w8W$E6H|KQGr@ACFwmAdKfbMCq4_PyQjd@oA!?|;2|4WJcI4Q#?b9Rcj; zIAFlF3OYFs8c-3DOc%!?13J1ndJGhxTar8x0QGpV)?iAVLD0v4z3+Y|)n&*otb3$E=7Y5JXtu5=I%ch?z)EjHgXWHZpj+ za%MU!FotodCR2g!*dcHkWY1z869SV+GZb}NRyLEJNlf*d*)c1bS*ya*FeNaJ8IFuV z7GVunB+fMnTt!O5HG%86A#f96a*GJulI$#G#N9a0l5F`>lJ0&D*n{zPbQC6KIf3_DmVfD{G%!&T`_#5tD=>m>5uB; zf2vYal~KH$RDM#?EFG^9uUaQ7s)Rsw7@Ajaw=}{_7+r5#OV#Y8P&qt5ps=49;wa>3 z`HsP_82APcrL_=KmIq5Z8`9GC~>6^sf}! zOG3-=RKCQF%Sq-RcGY*IfuDHP9jtGvpF9VE#AcM?^yQrvl(-)6^ z057;CMiWnR(2JkJFW|+Cd#u-(c&S(QtAAC!?Rm+Er86J@ym<#~EV*nba^ZyW#Dej9#6{ldK9zIVZX}(4#uSEVUJ$=VkpukcQl4Y z+7<7ZNgQ`L;Z;g>GA3Qp4yTRij7KYHHRm+v=bkQCDigd`?SX4mIt?`XtYlS?v`S}I zQ>%!ibE%w914*9&1{F>!n;9A(oyZ#4tcZ3^XD13iLu8FQlOOYGVV%zfh7~HU8SxqA zqGCx$E?3AGrZSV=*}_O}D8JZd%wgQ;5)&GkGD*_mvWcgB;(3N0r1KS~eXf#}ZYiH@ zhF%xH%jX8eJ~tT*zFPA|x40d=E&AqY?wAhugZGg}^&t2Xc@=r6s0}_vR|NCXM50^8DsN*`BEDh`$xt<5H>pJM*e=se zG>2r)ZWi)c$l8BIX+v6cnU>25HNCoOndxmy1eIdfFHC(gt4oxKpEzUn8zfaq^cR-; zO~0mC)B2OX@AUkTtti^$TbYf<-8QMnxD^FcA%DhHlrLyDvDs*ZSIKIIMdL5Ao{6LQ nzk`%~kuAb3wsKEaPqH)2a+fl?B`%lK9}?CR+9RRu5ACVHxyf&K diff --git a/src/main/java/TaskList.java b/src/main/java/TaskList.java index f022a017..33c14496 100644 --- a/src/main/java/TaskList.java +++ b/src/main/java/TaskList.java @@ -67,4 +67,9 @@ public Task searchTask(String task_description){ public int getSize(){ return size; } + + public void deleteTask(int index){ + list.remove(index); + this.size--; + } } \ No newline at end of file From c84fc42d3f4ea38825045674cdf124d5605a6827 Mon Sep 17 00:00:00 2001 From: AaronC Date: Thu, 15 Sep 2022 16:42:33 +0800 Subject: [PATCH 10/23] Add: Level 7 (Save) --- src/main/java/Duke.class | Bin 4722 -> 4871 bytes src/main/java/Duke.java | 4 +- src/main/java/FileHandler.class | Bin 0 -> 3213 bytes src/main/java/FileHandler.java | 106 ++++++++++++++++++++++++++++++++ src/main/java/TaskList.class | Bin 2505 -> 2747 bytes src/main/java/TaskList.java | 13 ++++ 6 files changed, 122 insertions(+), 1 deletion(-) create mode 100644 src/main/java/FileHandler.class create mode 100644 src/main/java/FileHandler.java diff --git a/src/main/java/Duke.class b/src/main/java/Duke.class index 97a64b2dbf98a3b62585484d6f5ba29a439214aa..7a07918a2ac98675ce3ab3bd71a7b3c80328672f 100644 GIT binary patch literal 4871 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 Z6VV!->=^NG_MUfp&wIV+1K#uD{{qocNs9mg diff --git a/src/main/java/Duke.java b/src/main/java/Duke.java index 47d0e836..22d259f5 100644 --- a/src/main/java/Duke.java +++ b/src/main/java/Duke.java @@ -2,7 +2,6 @@ import java.util.Arrays; public class Duke { - private static void printLine(){ System.out.println("---------------------------------------------------"); } @@ -15,6 +14,7 @@ private static String getStringFromList(String[] inputList, int fromIndex, int t } public static void main(String[] args) { + FileHandler.initFiles(); boolean isExit = false; Scanner scanner = new Scanner(System.in); TaskList taskList = new TaskList(); @@ -66,6 +66,7 @@ public static void main(String[] args) { try{ description = getStringFromList(inputList, 1, inputList.length); taskList.searchTask(description).markAsDone(); + FileHandler.markAsDone(taskList.getTaskIndex(description)); } catch (NullPointerException e){ //invalid System.out.println("Please enter a valid task! "); break; @@ -87,6 +88,7 @@ public static void main(String[] args) { try{ description = getStringFromList(inputList, 1, inputList.length); taskList.searchTask(description).markAsNotDone(); + FileHandler.markAsNotDone(taskList.getTaskIndex(description)); } catch (NullPointerException e){ System.out.println("Please enter a valid task! "); break; diff --git a/src/main/java/FileHandler.class b/src/main/java/FileHandler.class new file mode 100644 index 0000000000000000000000000000000000000000..8bd8afef26bff2ccdf8a72ef8a8dc29dfb633164 GIT binary patch literal 3213 zcmcIm{Z|xa6n+MFnb~DfTm{4u7a`>vvoaIXl#ke4P-Bw>t%ltZ#@(Hv*;$mrKD4y& zPqptaEB)E(z&UtMr=R;X`ZGEjJ@3o_OYEtiVmbGn_rCYN@4e4`-aGUAUkkqico;Xs zXvaYrhZOXLQG#9}`h@6L@VJbDFcieZ{0Rkz#Uw7opp2mqj^L<*V_`gr;SlyAAy%GJ za9m7ABJ@8NLK{wo(SlP7o(WU^Yy=WC1><6pjL@$pLsxKG7){8S3}ZVCAC!cZi%-?8XBUR5yRa>h#P)9i6?JqxBlLSa($9 zF|Fb(rX@s{mt2z$=bS@j;r0>RaCCR$ITbTv4^+G$yu2um+UVN4i1nRI>QjzknKEWo zoX1NNs{1uYn2I`9G->OaqeoA3UN7Ti6|V>%ui}D;>7oQFq2e`MU{Z%H%gH&mHZ`a_ zlU6FXz6`G`xTNAT-cZqjP8DzBE$--3@iyL3@UB>TkBVLu?+e8TOK}l`*pcP9nAt%y zs@t|@N3CQsZ`*pRL&b;qh^MaP;Z6Dy}K`M8&80Oa%J5iZ6ub%cT=mlT1Q+ zK}lA5Ju-eqPZHdK$AYS+wOkXWFVoMFtmFl`HcCoo(oM1;mN;5e}&(f)tX9)iNps%CkxWjyPElZwzwOp;1AWsRSj445J$lJus z6n#h5M$c*&$!SzXTAtE#N!xJA5yn^eniNe$XQN}$Qphm4)SMB+ndDQ> z(M*BEjv`L|%UgI)nHz5yb1O9WFz*sTmQUyoFM*ygvJ8JyQ&AU{eJervf$c5y=l6uQ zxfk^o7DwiFaVm?^yT)}X*G0gw!rgwzY!kWsIBx-akN`He%E*s{Y{}^6gfr=~B}OSd zEm7u#-?*lD+SuN6Tb}d2704+>mhJn*55zCZX=%?NHCRT{~ZUtfJ^w9CvY6g8Na%XSQg{ z2dUZ0k^L0GmU&3G+zk&=3L_yy*t2ZpVh(t==++@JL&vd=6^c94c<2BK{NBM=IyA;npo4RE+~TgmsKg9KD;(9Vkbb zV>Q+zib^zN1J@$x!baNG(0UVkP=&*^h+{K99)N8K+(EUBlDnv*l%Xur1F2IY#JUi3 z*^5Vb9MhI+`0@^L)8&?5*hoac5jilAjf1U`O*gQW+NuTm#!y>3qy7ms95#>K#6WAL z_6F+3I+NbAfP2>3G`2?Wy@5L4X6pj#{%PZ*Fep%nE};mPYh)7Q+r4!%mE%36sPr%de3!_^_@UbfB zok#Fr3raT^|8RGcIYX;3Yrz|Q|1M!RM0S8YDJMErEOtH1-GWD1@csN9Kp!5%6XZ>T z$UVzh7X8Gh4;L{&KXH1B;T>9BA+N4t(8a3_fklj?jOY+D{u3^RcjHeGJekeO(=Vg< z=rVdeK6=;x6}{&FLXX4~SByh=2l6`H^uG)Tn(Re0P| zt7_oY5P#*j(Q;xQtv{pYpAAc4gE~Ny5?1;;$1s`vEq>tnwTvFTK|y99F#{o=b7jhv IX;)f*1H_EjnE(I) literal 0 HcmV?d00001 diff --git a/src/main/java/FileHandler.java b/src/main/java/FileHandler.java new file mode 100644 index 00000000..6c85b902 --- /dev/null +++ b/src/main/java/FileHandler.java @@ -0,0 +1,106 @@ +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; +import java.util.ArrayList; + +public class FileHandler { + + public static ArrayList Lines = new ArrayList(); + + public static void initFiles(){ + File dataDir = new File("./DataDir"); + if (!dataDir.exists()) dataDir.mkdir(); + + try{ + File dataFile = new File("./DataDir/Data.txt"); + FileWriter myWriter = new FileWriter(dataFile); + if (!dataFile.exists()) dataFile.createNewFile(); + myWriter.write(""); + myWriter.close(); + } catch (Exception e){ + System.out.println("Failed to create file!"); + return; + } + } + + public static void addTask(Task task){ + String taskType = task.taskType; + try{ + FileWriter myWriter = new FileWriter("./DataDir/Data.txt", true); + + if (taskType == "T"){ + String line = "T | [ ] | " + task.description + "\n"; + myWriter.write(line); + Lines.add(line); + } else if (taskType == "E"){ + String line = "E | [ ] | " + task.description + " | " + task.getDateTime() + "\n"; + myWriter.write(line); + Lines.add(line); + } else if (taskType == "D"){ + String line = "D | [ ] | " + task.description + " | " + task.getDueDate() + "\n"; + myWriter.write(line); + Lines.add(line); + } + + myWriter.close(); + } catch (IOException e) { + System.out.println("An error occurred."); + return; + } + } + + public static void markAsDone(int index){ + String oldLine = Lines.get(index); + String newLine = oldLine.substring(0,5) + + "X" + + oldLine.substring(6, oldLine.length()); + Lines.set(index, newLine); + + try{ + //Erase Data + File dataFile = new File("./DataDir/Data.txt"); + FileWriter myWriter = new FileWriter(dataFile); + myWriter.write(""); + myWriter.close(); + + //Replace Data + dataFile = new File("./DataDir/Data.txt"); + myWriter = new FileWriter(dataFile, true); + for (int i=0; i < Lines.size(); i++){ + myWriter.write(Lines.get(i)); + } + myWriter.close(); + } catch (IOException e){ + System.out.println("An error occurred."); + return; + } + } + + public static void markAsNotDone(int index){ + String oldLine = Lines.get(index); + String newLine = oldLine.substring(0,5) + + " " + + oldLine.substring(6, oldLine.length()); + Lines.set(index, newLine); + + try{ + //Erase Data + File dataFile = new File("./DataDir/Data.txt"); + FileWriter myWriter = new FileWriter(dataFile); + if (!dataFile.exists()) dataFile.createNewFile(); + myWriter.write(""); + myWriter.close(); + + //Replace Data + dataFile = new File("./DataDir/Data.txt"); + myWriter = new FileWriter(dataFile, true); + for (int i=0; i < Lines.size(); i++){ + myWriter.write(Lines.get(i)); + } + myWriter.close(); + } catch (IOException e){ + System.out.println("An error occurred."); + return; + } + } +} diff --git a/src/main/java/TaskList.class b/src/main/java/TaskList.class index 00fb1c437ca70d6ad0d5d69a0b97479b6331b253..f09456f74955a58adfc932fc53359cea68756234 100644 GIT binary patch literal 2747 zcmbtWTUQfT6#h;UGGQ2sMp3ybC@KjA?9HkH6+ugs;3ZTWt<@nJVI(A&nNYD;TYA5& zKGr_=0bhKuE`=^!tILnE+8!S6BOT=A3=b{`TJA{?5$&{MW*d z0A9jZDmG$IC0ejoL9Yt0yV$3oPlX@-D)!@mG{3B1K!u8!f`ckF#H8_%fAGW`}KgXzTE@Vc}j&>#NyqO)1 zO4ll$=r{CqhOPoz%bY6j7ogw%DI?2*lu^T$nX!bnSjbJ1^GU|AWo-i030qH%$Ms1k zEd}QURLjuwsWI2DzD(F9Agu@=%chNs|4<0om02VluE`14Y9d$2r;G!pWRI~v|aC&BtPyeF-fIp440eK5lhoTL^@WE7_+r_+Z=&KoIqpv2@hpPiS~4CvW( z#$aZSQi@GbBBDMFBpV*R*9D zB+#2HNK_Zn%yk`+I--N2PefJB;6ok}p=N=#6Z*K(m&>Mf`-Ewaac0?i*0!EVX(^i9 z>_;)#K1ZoUJta;HY$>b7<@%Pus-@s;URW!Z%4OMjx-+Y)v|*+4=A>;(W3YsoB~Qf( znBlfcjQ)bruiK<3(A+jMy{lP-T<)ZC*qq>o-?&iFGnRsnq%J-aXkAXn%ueOTjpB`V z$vB{=>|B0Y!54HL%;m-llLA^Sn>F%%8QroBGW1Ppl|>9!lCC1GR@X85Wd0?VM;v9J z%N##da(+=eC8i=opPtDiOxuVm_)=i=6ZMtLOf6-*ZEtgJX~|fWonY0Di3ITp)tZ zB20`hUY=;V4S%wI9!k992L!@5QPDAn$`j$_O?Z4~iM|ZEhEU*VsS;JF=4WXQ$7Vc3 zz%Fbn!X9Km8F=GusLA$@c~lKWinx)dVJ#7j<|Ki zttV~+aT|%t7hf^oR`Tv)zM8DOVGhsSLCtlpT@w9#0vkBKu*ko-LfTlN@Orx&=;Zkh z_ri2s5hrgeha$n?EP6Zcz#qSXRSmwg3oHh6sO3r?SRiZ5%e4zwx3s*8x;fNe#cU+l zFpDF^Q2!f7F;?ROnj|LA5`h!Pzjb8#nR z9lQ^SE*@e%dkmwh+AwEpHit6GQ31DmG4msw#SLM8=vy2a`$6=j!)RL VV_eshrvz=o&iJY`o^r;se*>LTTxS3P literal 2505 zcmbtWTXz#x6#h=qW|GMiN}ybN!Kek=w4q)=l(d!7fK-!GNdyZbOp_rUn$CpGq*}Zy z`s}0l=tFto0a?(lRn~Ix;)~Dz0)6%eD0unKOj-hDv0VDllXLdj``dee`aA2t|Ef8f+H%TNK4~U1+S?LJEmd-Cc=0< zf;W(f5p+t$n>Z1JKwjRx6+-~|2zRIC#oJ*_OY`X%LGod|BM)a)?8mzb&M7!A(Bhbv z4FNI1ZP|2OfsV{YeL)|pxn_B2tXkC0JA~~~U>29q`_nu}x!AmA`H*GZDh=h_s%e!{GBiq$ zw4oQv3>DbZ#H)E+m~lrI42umZCBv1Kv4y^ge!ocWE6m}_-UQlmu3nhS>J_gn1-gLh z7<#oZ>&JCANxKdt;d35|Y?d^tIlERZ7)MRnV4DPxN%l%oHT0oh!!vkRU~?0eHS}T^ z>5`O4-=u~a6a>O+3`paUK&#i8h9a1vMW)d3JYLXn0VU2duV7Y#iHid5hi%(++^Sy5 z8t$xJbT)=C7e-mbJS+vwQb96|OY&UR;Gh(StD%Mk4eudIu(XEvrFD_}BN{HFq~Qav zsI}IZ#p}fz-SL@=MuC(znEYu{3mnNKgZ8~s{ik_L8s#k~^e7qy6|K)OzgS_*TlyNE z>S}p7=c3~p^F+0464i$^?V%|-bOspud`iWK_=ql|KQ6FsUY|3@ZL6TWr%ZR2JIB>6 z*Lkd@^=$qCAI9WpJXsO-j5sT>yQy#<^tTSyCPn1(>2f9tw#A_`oK;1OhEu4T71xx; zSOYWbk&2hF%xjex>6($&T~ZW|_suLGjEjDsJ88_D^SlTdmuh<1QSh;x`R4+?56UsE z1$)k@KYl(LNA-ehR~HprVQ9v-=V}!JZNjpQ>Uddq9D@vf)7WJl!MUh*4YeVVMQYZ+~KvEc^KK3O6Df;|bmxW==%N_yCl2nL6{7!>#p_Yw@;m?cN; zlgZeoC5#Q;MJRg{v96Z$t4xb!Y~e{dtfHggxOJ6ft=- Date: Tue, 27 Sep 2022 15:46:41 +0800 Subject: [PATCH 11/23] Add: Accounted for adding task with same name --- src/main/java/.idea/.gitignore | 8 ++++ src/main/java/.idea/artifacts/main_jar.xml | 8 ++++ src/main/java/.idea/misc.xml | 6 +++ src/main/java/.idea/modules.xml | 8 ++++ src/main/java/.idea/vcs.xml | 6 +++ src/main/java/DataDir/Data.txt | 1 + src/main/java/Duke.class | Bin 5085 -> 5369 bytes src/main/java/Duke.java | 45 ++++++++++++------ src/main/java/META-INF/MANIFEST.MF | 3 ++ src/main/java/TaskList.class | Bin 2610 -> 2852 bytes src/main/java/newfolder/DataDir/Data.txt | 0 src/main/java/newfolder/java.jar | Bin 0 -> 10570 bytes .../java/out/production/main/.idea/.gitignore | 8 ++++ .../main/.idea/artifacts/main_jar.xml | 8 ++++ .../java/out/production/main/.idea/misc.xml | 6 +++ .../out/production/main/.idea/modules.xml | 8 ++++ .../java/out/production/main/.idea/vcs.xml | 6 +++ .../java/out/production/main/Deadline.class | Bin 0 -> 561 bytes src/main/java/out/production/main/Duke.class | Bin 0 -> 5950 bytes src/main/java/out/production/main/Event.class | Bin 0 -> 554 bytes .../out/production/main/FileHandler.class | Bin 0 -> 3740 bytes .../out/production/main/META-INF/MANIFEST.MF | 3 ++ src/main/java/out/production/main/Task.class | Bin 0 -> 1050 bytes .../java/out/production/main/TaskList.class | Bin 0 -> 3414 bytes src/main/java/out/production/main/ToDo.class | Bin 0 -> 387 bytes 25 files changed, 109 insertions(+), 15 deletions(-) create mode 100644 src/main/java/.idea/.gitignore create mode 100644 src/main/java/.idea/artifacts/main_jar.xml create mode 100644 src/main/java/.idea/misc.xml create mode 100644 src/main/java/.idea/modules.xml create mode 100644 src/main/java/.idea/vcs.xml create mode 100644 src/main/java/DataDir/Data.txt create mode 100644 src/main/java/META-INF/MANIFEST.MF create mode 100644 src/main/java/newfolder/DataDir/Data.txt create mode 100644 src/main/java/newfolder/java.jar create mode 100644 src/main/java/out/production/main/.idea/.gitignore create mode 100644 src/main/java/out/production/main/.idea/artifacts/main_jar.xml create mode 100644 src/main/java/out/production/main/.idea/misc.xml create mode 100644 src/main/java/out/production/main/.idea/modules.xml create mode 100644 src/main/java/out/production/main/.idea/vcs.xml create mode 100644 src/main/java/out/production/main/Deadline.class create mode 100644 src/main/java/out/production/main/Duke.class create mode 100644 src/main/java/out/production/main/Event.class create mode 100644 src/main/java/out/production/main/FileHandler.class create mode 100644 src/main/java/out/production/main/META-INF/MANIFEST.MF create mode 100644 src/main/java/out/production/main/Task.class create mode 100644 src/main/java/out/production/main/TaskList.class create mode 100644 src/main/java/out/production/main/ToDo.class diff --git a/src/main/java/.idea/.gitignore b/src/main/java/.idea/.gitignore new file mode 100644 index 00000000..13566b81 --- /dev/null +++ b/src/main/java/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/src/main/java/.idea/artifacts/main_jar.xml b/src/main/java/.idea/artifacts/main_jar.xml new file mode 100644 index 00000000..b6c7247e --- /dev/null +++ b/src/main/java/.idea/artifacts/main_jar.xml @@ -0,0 +1,8 @@ + + + $PROJECT_DIR$/out/artifacts/main_jar + + + + + \ No newline at end of file diff --git a/src/main/java/.idea/misc.xml b/src/main/java/.idea/misc.xml new file mode 100644 index 00000000..0319d5d5 --- /dev/null +++ b/src/main/java/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/main/java/.idea/modules.xml b/src/main/java/.idea/modules.xml new file mode 100644 index 00000000..122a9054 --- /dev/null +++ b/src/main/java/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/src/main/java/.idea/vcs.xml b/src/main/java/.idea/vcs.xml new file mode 100644 index 00000000..c2365ab1 --- /dev/null +++ b/src/main/java/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/main/java/DataDir/Data.txt b/src/main/java/DataDir/Data.txt new file mode 100644 index 00000000..978b3e66 --- /dev/null +++ b/src/main/java/DataDir/Data.txt @@ -0,0 +1 @@ +T | [X] | CS2102 diff --git a/src/main/java/Duke.class b/src/main/java/Duke.class index ff001ad8372e1afc34e6ab813118cfe58e392758..d2b6da69684f277ccc6748b9c3a0f094195bddda 100644 GIT binary patch literal 5369 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 diff --git a/src/main/java/Duke.java b/src/main/java/Duke.java index 76cd7116..6ee4516e 100644 --- a/src/main/java/Duke.java +++ b/src/main/java/Duke.java @@ -114,11 +114,16 @@ public static void main(String[] args) { } //Printing result - System.out.println("Added:"); - System.out.println(" [T][ ] " + description); - taskList.addToDo(description); - System.out.println("Now you have " + taskList.getSize() + " tasks in the list."); - break; + if (taskList.searchTask(description) == null){ + System.out.println("Added:"); + System.out.println(" [T][ ] " + description); + taskList.addToDo(description); + System.out.println("Now you have " + taskList.getSize() + " tasks in the list."); + break; + } else { + System.out.println("Sorry, seems like you already have a task with the same name!"); + break; + } case ("deadline"): printLine(); @@ -141,11 +146,16 @@ public static void main(String[] args) { } //Printing result - System.out.println("Added:"); - System.out.println(" [D][ ] " + description + " (by: " + dueDate + ")"); - taskList.addDeadline(description, dueDate); - System.out.println("Now you have " + taskList.getSize() + " tasks in the list."); - break; + if (taskList.searchTask(description) == null){ + System.out.println("Added:"); + System.out.println(" [D][ ] " + description + " (by: " + dueDate + ")"); + taskList.addDeadline(description, dueDate); + System.out.println("Now you have " + taskList.getSize() + " tasks in the list."); + break; + } else { + System.out.println("Sorry, seems like you already have a task with the same name!"); + break; + } case ("event"): printLine(); @@ -167,11 +177,16 @@ public static void main(String[] args) { break; } - System.out.println("Added:"); - System.out.println(" [E][ ] " + description + " (at: " + dateTime + ")"); - taskList.addEvent(description, dateTime); - System.out.println("Now you have " + taskList.getSize() + " tasks in the list."); - break; + if (taskList.searchTask(description) == null){ + System.out.println("Added:"); + System.out.println(" [E][ ] " + description + " (at: " + dateTime + ")"); + taskList.addEvent(description, dateTime); + System.out.println("Now you have " + taskList.getSize() + " tasks in the list."); + break; + } else { + System.out.println("Sorry, seems like you already have a task with the same name!"); + break; + } case ("delete"): printLine(); diff --git a/src/main/java/META-INF/MANIFEST.MF b/src/main/java/META-INF/MANIFEST.MF new file mode 100644 index 00000000..9f37e4e0 --- /dev/null +++ b/src/main/java/META-INF/MANIFEST.MF @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Main-Class: Duke + diff --git a/src/main/java/TaskList.class b/src/main/java/TaskList.class index 8c2ebb3af6a8cec9ecaa873322f29431c77a27e6..b18316c76592e9cae1133327ca1f6fc01a45672a 100644 GIT binary patch literal 2852 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 cmwK^D + + $PROJECT_DIR$/out/artifacts/main_jar + + + + + \ No newline at end of file diff --git a/src/main/java/out/production/main/.idea/misc.xml b/src/main/java/out/production/main/.idea/misc.xml new file mode 100644 index 00000000..0319d5d5 --- /dev/null +++ b/src/main/java/out/production/main/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/main/java/out/production/main/.idea/modules.xml b/src/main/java/out/production/main/.idea/modules.xml new file mode 100644 index 00000000..122a9054 --- /dev/null +++ b/src/main/java/out/production/main/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/src/main/java/out/production/main/.idea/vcs.xml b/src/main/java/out/production/main/.idea/vcs.xml new file mode 100644 index 00000000..c2365ab1 --- /dev/null +++ b/src/main/java/out/production/main/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/main/java/out/production/main/Deadline.class b/src/main/java/out/production/main/Deadline.class new file mode 100644 index 0000000000000000000000000000000000000000..f3ee243bf36dfe95e3209eb0a87a8a1841bf8d1c GIT binary patch literal 561 zcmZWl%T5A85Uk;`AS|Nz#!vgYHn?nxkVm9)qir*BomBV%pI|{kp$oM)j3YF%Ae%6gZ zhyBKF65FtUuHanQ&?c7(N444ZY^B~-$XrD|(v_PwG&iHCj)_~k6HEl6t`6EdwvzuB zGs(RjDioT&(Y=5p6fO45up8S!Vxy3)zDfM)lFPOFtST|L(J1bkYb!dXDb=YQ|tL)`7RD5n?pe%KLvB~mL5JTq-%18V~2hel1<$al(5r!85r#I@ACXzg_O)Q zN--|Nr7bZFn5XHh-UpO-JVwe(kCFB&nK827$r#StWM*D4aA-4pS#mj;C-*YhH<*># z+52O{0v4GGo<~qeBGDG*B~JV)H|V98_1@vUGDwjSq?MvOA(SNv_$O3YnV?pG0p*fn AQvd(} literal 0 HcmV?d00001 diff --git a/src/main/java/out/production/main/Duke.class b/src/main/java/out/production/main/Duke.class new file mode 100644 index 0000000000000000000000000000000000000000..7b6a2020ba2f0d7c4b0ddff766195e7c4720080f GIT binary patch literal 5950 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 G%l`qUZ$U%= literal 0 HcmV?d00001 diff --git a/src/main/java/out/production/main/META-INF/MANIFEST.MF b/src/main/java/out/production/main/META-INF/MANIFEST.MF new file mode 100644 index 00000000..9f37e4e0 --- /dev/null +++ b/src/main/java/out/production/main/META-INF/MANIFEST.MF @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Main-Class: Duke + diff --git a/src/main/java/out/production/main/Task.class b/src/main/java/out/production/main/Task.class new file mode 100644 index 0000000000000000000000000000000000000000..8d883f9c093af8008c9da09d09c90a3d88ffe69c GIT binary patch literal 1050 zcma)(OK;Oa6orppvE$fDNuN+CEzcwfvSb0OR1qp6g|bLgA$E>y1viNu*$xsv1y=0X zg47C$1wVivg*andjw`ZY;hB5K_kMHFncshY{sQn69TPh4R8hfQ1NRKv7vTdP4|TL8 z)Xu!vjr@7yhk=A<|J?cDbf-=*?hca355~_V7>N^4h9Bpigo+>c!hnJFj>&UB@RLIc zN~?V;L46UP@lT`g2j0nIHu9pOGn(?G*$-W3dg?^J$n!%rdGE($^oNA=5_{|=gTzS| z@hewMve9a~J9+KQQ;d!_6|hr4vI%Q(IooXg3rS~9QaR?#i6%$6Bs)t^!X%Su zlG|H&Jtv_CafyhA{*0M92p5s-9s5FFRb2i=_-4UI-9il(4SLIO--3xMtq~;>)|TeJ z8J&A>a^)!V8wY$Hoe!sg&ZEjm6_9i%nY+P1yohUqS(m%SUF-aS^qql>HLjKPP{K9F zR#t!})|t^;Y;qON$J|A8qjLfI6O5+v6 z0Zov~1Jz0-tr+M!ZsY?UvRY(;^7ew_7k;)3>HeY9_gsfjh+C=UZ gZarouhEy`w%Un+a literal 0 HcmV?d00001 diff --git a/src/main/java/out/production/main/TaskList.class b/src/main/java/out/production/main/TaskList.class new file mode 100644 index 0000000000000000000000000000000000000000..e0a7712dd6bb34cb8a6daba3e140c3dc764d5313 GIT binary patch literal 3414 zcmbtWTX!4f72TgCYoy6IHnN?IFTqY?VkveEffk6JtDO{6*$LPrH35>bG}sf%8Y7Ji z4)-(-mzGOgpb5QGR(Q!`QC6_KoVB`m;Q^j`?n8Ot1%3c`_L&*Wa?qk(@G>*sne*+l z&pzjTGar1t^ltz+<8>Wda913gaa6-G9btd*3k~BsqPSbfaoi*3do|prL&pgXCv_M& zAx2ZfgwDMg9d*dYV8wAiCKE)S){((!ws!Q8>Yos(YVHL*Ai5xA7w39J&N6msQ z>%bUsr|hDF?!g7YH8YzXa|RvK>+)mg%=~2Us9Uh}lYJ6nP1Y)A3ihmPJ9z>2lBjed z4c9}6rUi*C*AR5jGP60-QrK1n_`4_)O3Rk4LDS`)Shl=fPcK6eIY#7zb5@>m#m_F*13K{E=Ek&=DSCZ8ZsgZ#cwj0=rPKAalooC=WY-8=DX5zb3 z!(#>>#}fvg#2JdPEW5nCh2nYI8u%s7$}Wa7un+qU{0ir&)0l>*3_Oiz6zUH+j$3pK z=IpTLPC40PT@=s8@M{CV!E+j(H}C>>#_*!7e{0}(I2Xh34cv&E47`M$1RFH)vRGf? z^FafDz&QiwamK&}2_9R{lc83+@$kecE5m|TnEWngKZ-uLnfYwaDo|Hxc~8W6mtS#F zGED1LL*OI!CGX~2)w5Z<)rfN~d6wR`Z%Kvg?TIlmyj>w4L4~(w5v{ znKOMlUd12jqLS?j>u1bqYrx58O!t`WPVuSent7MQd=;f~G{54jFe@rim|-K%h2 z)xKTHuMAczo#^t2Dh_4j5QuO)S!o_xjs~3$gXP(6@0yt3)vl7hFf!2om`1G!N@k9v zqXlcmnd2n=Nm}4<3R_o#+W9$W+6oRJKjlMa#&rtw8eZepwBt;dW)+N~eBLSyx~UMBYKoKfNtIye0?(XuQ@S&QE6}pLft=_?yv->$y_60XqX=hrnUlI<6o(zI_qe zaQD9uOI=1y_X6U_Qsb8qikxJ;l_2W~4)Tj*4QdI!j@Ndq^#Zl~U_l_l%3;7zacsa( z@KZ0}n{i7J{4|LQ;muc|k8kf@#F~+wAbQXDN56*g6O7q_^-Qt@OZOd2Ar!M)GJTj~4Q1{hvH`mwD{LUXKUQ-awCiWEi3z zhUnk2fVJxWs{Yesq!iHq3Z{Vt-zZ=<0la&n16VgXHDiNg}>y0ToqMB$c~m$7jH&2QjhPom`_ zju1otVHiQI)+MwFI3Y)S5}Ph!n2^Sgg1mMa@~l#Cd=r-D4SOQq&vJpIr*rJ;DOnT8 zu7!iw&cWM(BzAM?(v)zVV|Ri(va}W`^OKyM7dbbta&j)Qt=?uC7unM9v8g}gKkP?r zrcc>qUt)_2p}*V)_4ovXILLA};bR=)t}sHZsQHpFzmnhJIt@c# z;Lgu*_;Ze%!tFc){G;GGV#&~ShIhC6Wo=EhvaBOLtjqQVv|m6?&s%3h%=^Dey2nr4 zpW3}ld><3vPsR6AhJgyAwH{H@V;>7W>BP=*hjmgGnPef#|6?KA>{A=YNI>mP?vb-0 z8Q#<8Q)_SAooXYwU6GBE6?(0g&W1_vKcP!ydd+Na5M2Jh4QAWGd^@<_hGCE5O$2V> zpox|ddbD^AFXPhbk(DznStgsTAiELaujr<}!6rmBY^Jb^1^CR9^)QYE+X) p8-qa(W7Oj?hQIPIAA>*R@AwP5cZ%y~YGBiL%Dd*h>jU0(?pvBo!5aVo literal 0 HcmV?d00001 diff --git a/src/main/java/out/production/main/ToDo.class b/src/main/java/out/production/main/ToDo.class new file mode 100644 index 0000000000000000000000000000000000000000..6254b2bc6d3f0230330ac10ef2183f647fa0a071 GIT binary patch literal 387 zcmZWlO-sW-5Ph4Z%}1lH(bR9jTa93k9x7feo`RQ#g5I`isH-(wl2q_#c?g0Be}F$q zoC)6Cfj2wzX5P&1_s{1SfJ>Zsu(9o;jU9&2L7)AujXfLt0_`i6tLj=H9K=uZRSuUj zUkoQzq4LG(Y${;g=y@j4ja8oAtzTwYk;vJSGC{0Uxtz*Ear~FGsz+6lYMkh?9tm{j zS(z4URVkfw%fAr<-bAm9G`m$S>T=%&SNU*o;G>J4k3$>@h{VS+dbAPOu#@GpfH~kT z+o~MvoCL&!fKw5Zysa{v(o=2v2Y?t7bO}9*?qQGtVe|nJo!2lTvxXT3R*lv>5e7Ph heY6NoSY$5UH~AY$&~La#02`F$6Y{Ffm@SG71i!^cL}CB{ literal 0 HcmV?d00001 From ef55e2a9cbb96fb363c707f6fb6ca981831c2cb3 Mon Sep 17 00:00:00 2001 From: AaronC Date: Wed, 28 Sep 2022 20:43:22 +0800 Subject: [PATCH 12/23] Add: Level 8 (More OOP) --- src/main/java/Commands.class | Bin 0 -> 3025 bytes src/main/java/Commands.java | 153 +++++++++++++ src/main/java/DataDir/Data.txt | 3 +- src/main/java/Duke.class | Bin 5369 -> 1590 bytes src/main/java/Duke.java | 216 +++--------------- src/main/java/FileHandler.class | Bin 3213 -> 0 bytes src/main/java/Task.class | Bin 852 -> 0 bytes src/main/java/TaskList.class | Bin 2852 -> 0 bytes .../java/{ => TaskManager}/Deadline.class | Bin 464 -> 488 bytes src/main/java/{ => TaskManager}/Deadline.java | 1 + src/main/java/{ => TaskManager}/Event.class | Bin 460 -> 484 bytes src/main/java/{ => TaskManager}/Event.java | 1 + src/main/java/TaskManager/Task.class | Bin 0 -> 934 bytes src/main/java/{ => TaskManager}/Task.java | 8 +- src/main/java/TaskManager/TaskList.class | Bin 0 -> 3084 bytes src/main/java/{ => TaskManager}/TaskList.java | 54 +++-- src/main/java/TaskManager/ToDo.class | Bin 0 -> 346 bytes src/main/java/{ => TaskManager}/ToDo.java | 1 + src/main/java/ToDo.class | Bin 322 -> 0 bytes src/main/java/UI/FileHandler.class | Bin 0 -> 4471 bytes src/main/java/{ => UI}/FileHandler.java | 90 +++++++- src/main/java/UI/Parser.class | Bin 0 -> 1911 bytes src/main/java/UI/Parser.java | 63 +++++ src/main/java/UI/UI.class | Bin 0 -> 3250 bytes src/main/java/UI/UI.java | 90 ++++++++ src/main/java/newfolder/DataDir/Data.txt | 0 src/main/java/newfolder/java.jar | Bin 10570 -> 0 bytes 27 files changed, 468 insertions(+), 212 deletions(-) create mode 100644 src/main/java/Commands.class create mode 100644 src/main/java/Commands.java delete mode 100644 src/main/java/FileHandler.class delete mode 100644 src/main/java/Task.class delete mode 100644 src/main/java/TaskList.class rename src/main/java/{ => TaskManager}/Deadline.class (63%) rename src/main/java/{ => TaskManager}/Deadline.java (94%) rename src/main/java/{ => TaskManager}/Event.class (63%) rename src/main/java/{ => TaskManager}/Event.java (94%) create mode 100644 src/main/java/TaskManager/Task.class rename src/main/java/{ => TaskManager}/Task.java (82%) create mode 100644 src/main/java/TaskManager/TaskList.class rename src/main/java/{ => TaskManager}/TaskList.java (62%) create mode 100644 src/main/java/TaskManager/ToDo.class rename src/main/java/{ => TaskManager}/ToDo.java (89%) delete mode 100644 src/main/java/ToDo.class create mode 100644 src/main/java/UI/FileHandler.class rename src/main/java/{ => UI}/FileHandler.java (52%) create mode 100644 src/main/java/UI/Parser.class create mode 100644 src/main/java/UI/Parser.java create mode 100644 src/main/java/UI/UI.class create mode 100644 src/main/java/UI/UI.java delete mode 100644 src/main/java/newfolder/DataDir/Data.txt delete mode 100644 src/main/java/newfolder/java.jar diff --git a/src/main/java/Commands.class b/src/main/java/Commands.class new file mode 100644 index 0000000000000000000000000000000000000000..802728ad00151886e99bf6efd4d48d2701ba0c78 GIT binary patch literal 3025 zcmbVOSyL2O6#g2}o*5cY6pf(RxPsfbZ;&X6=tMva?j~w8eT9~pZtUqn#wCf-xFznI z2!xG?#>>rh_ zV-Xw|%?U9+Da$EYK9;>tWaD%MXC(MpSu9!lB1npjEiX!>b0YQY7|`KFa9&h{5`fEY zq;#ZpxEjiBl}Y-}P~doctL{8+4O{V)<@U#W1K)A`n>EaAaax82@2BQ5ob*5viv~}6}^F#9PF}&#;l{XKH{dsJ@Gv3 zwR?m^sa;uiiotbI5usx5uyPqoJla)C1>70Z5bO1_eo}Qfa(2ZYFP*krJF`v*7+8n6 zjtd5Sd1ed*^2{0-#zhU4?b$)K)7z^C}kz~_h? zxP~uuT$h&{8tNx9)SXSGdOXJsl)rZ*sm5|x+mljOMw!H{eA6Aqh664#l z+`(M~U*T&5_i*3916)7^SUO>maBVemFdG~^*XCte>`6JR9V6t3iRonn(>rJS>|;Uu zEp8b24)@tk<9(uG)#p z1~f{1J(izQK3lzC1?`h3d~RdYR4)!wMp=Gxpg?fNbb&ixXGnxG8Q<1SyC*3yc$C|t3qCKSBwX&C`9k}g2DmSlPro#-Lmb%)uHqJUgr{# z@Sc)`#_+TTMMR0F=~#pz!pbtEQ&waSHcl4LMAgR>9QH zG2q2UoZ}aphLzJ~c&fh~Ehn`G6DLI&XY4+V+2Lg+ncw?%wve9l<)GqmTS;RdcVL#0mRjYZRy)XSfqM@b%~6ULP&rP|_ zS}w$5W@aU&MoLXEY2Uz9EW>sz#};~(qx7_niiD1;D4n;y1K#R!ymQ9!&YcEt&D-!c z67L!wxt4g>5$_hFj1%R0;@v>J8;N%lrOlMK^Rr_*yxWR+e;CVeTQR?*sCX@h(Lb;# z1V1m2`DJz<@8z)|RMd{5TryuLOjxH<0yByU-bfkzIa7*V)bHWjZl=5yHT)Ga4;=)( zkLlb`=n29+z@4rTY!qdklGr8EfZK~ue+?@MbcIkCHrM8{i2cAveJ4S836RCb!V`2o zF|N+Td>d+=eK)U&dMA4j=ppJu&~cP+$GCrr7RT8vCy4qa8{#z6e1^!+q8S!{?j_L) z6{4>}*((}r94wOf3sD_AmI{-dZ(!2!&PE|7^&Cc|WM zkxWL&Bu6Hf$>i#PGifd|`F*S=%_S{iRhE|7Eu)yt5*0_ayrqsEb6~teE2KiytmJ>= zsyv#c;b(B5Dmh*YIcCe)6NLe7!z@GOai w@sK0&n2rC06Zw=0e-`qnmx@#}Ojwd-75j87f5n27=xC9Hq)$ literal 0 HcmV?d00001 diff --git a/src/main/java/Commands.java b/src/main/java/Commands.java new file mode 100644 index 00000000..885e5446 --- /dev/null +++ b/src/main/java/Commands.java @@ -0,0 +1,153 @@ +import TaskManager.Task; +import TaskManager.TaskList; +import UI.FileHandler; +import UI.Parser; +import UI.UI; + +public class Commands { + static String description; + + + public static void runList(){ + UI.printLine(); + TaskList.printList(); + } + + public static void runExit(){ + UI.printLine(); + System.out.println("Duke: Goodbye!"); + UI.printLine(); + } + + public static void runMark(){ + UI.printLine(); + try{ + description = Parser.getDescription(); + TaskList.searchTask(description).markAsDone(); + FileHandler.markAsDone(TaskList.getTaskIndex(description)); + } catch (NullPointerException e){ //invalid + System.out.println("Please enter a valid task!"); + return; + } catch (IllegalArgumentException e){ //empty + System.out.println("Task cannot be empty!"); + return; + } + + UI.printMarkAsDone(description); + } + + public static void runUnmark(){ + UI.printLine(); + + //Handle empty/invalid task + try{ + description = Parser.getDescription(); + TaskList.searchTask(description).markAsNotDone(); + FileHandler.markAsNotDone(TaskList.getTaskIndex(description)); + } catch (NullPointerException e){ + System.out.println("Please enter a valid task! "); + return; + } catch (IllegalArgumentException e){ //empty + System.out.println("Task cannot be empty!"); + return; + } + + //Printing result + UI.printMarkAsNotDone(description); + } + + public static void runToDo(){ + UI.printLine(); + + try{ + description = Parser.getDescription(); + } catch (IllegalArgumentException e){ + System.out.println("Task cannot be empty!"); + return; + } + + //Printing result + if (TaskList.searchTask(description) == null){ + TaskList.addToDo(description); + FileHandler.addTask(TaskList.getTaskAtIndex(TaskList.getSize()-1)); + UI.printTaskAdded(description); + } else { + System.out.println("Sorry, seems like you already have a task with the same name!"); + } + } + + public static void runDeadline(){ + UI.printLine(); + int byPosition = Parser.getByPosition(); + String dueDate; + + // Handle invalid input + try { + description = Parser.getDescription(byPosition); + dueDate = Parser.getDate(byPosition); + } catch (IllegalArgumentException e){ + System.out.println("Invalid input: task/date not given!"); + return; + } + + //Printing result + if (TaskList.searchTask(description) == null){ + TaskList.addDeadline(description, dueDate); + FileHandler.addTask(TaskList.getTaskAtIndex(TaskList.getSize()-1)); + UI.printTaskAdded(description); + } else { + System.out.println("Sorry, seems like you already have a task with the same name!"); + } + } + + public static void runEvent(){ + UI.printLine(); + int atPosition = Parser.getAtPosition(); + String dateTime; + + //Handle invalid input + try{ + description = Parser.getDescription(atPosition); + dateTime = Parser.getDate(atPosition); + } catch (IllegalArgumentException e){ + System.out.println("Invalid input: task/date not given!"); + return; + } + + //Printing result + if (TaskList.searchTask(description) == null){ + TaskList.addEvent(description, dateTime); + FileHandler.addTask(TaskList.getTaskAtIndex(TaskList.getSize()-1)); + UI.printTaskAdded(description); + } else { + System.out.println("Sorry, seems like you already have a task with the same name!"); + } + } + + public static void runDelete(){ + Task temp; + int taskIndex = -1; + + UI.printLine(); + + try{ + taskIndex = Parser.getTaskIndex()-1; + } catch (NumberFormatException e){ + description = Parser.getDescription(); + taskIndex = TaskList.getTaskIndex(description); + } + + try{ + temp = TaskList.getTaskAtIndex(taskIndex); + } catch (IndexOutOfBoundsException e){ + System.out.println("Sorry, index out of range!"); + return; + } + TaskList.deleteTask(taskIndex); + FileHandler.deleteTask(taskIndex); + UI.printTaskDeleted(temp); + } +} + + + diff --git a/src/main/java/DataDir/Data.txt b/src/main/java/DataDir/Data.txt index 978b3e66..51cd00f7 100644 --- a/src/main/java/DataDir/Data.txt +++ b/src/main/java/DataDir/Data.txt @@ -1 +1,2 @@ -T | [X] | CS2102 +T - [ ] - task1 +T - [ ] - task2 diff --git a/src/main/java/Duke.class b/src/main/java/Duke.class index d2b6da69684f277ccc6748b9c3a0f094195bddda..d37f3148b2309f8a5a00766c6290175b7c3b47f2 100644 GIT binary patch literal 1590 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 toIndex){ - throw new IllegalArgumentException(); - } - return String.join(" ", Arrays.copyOfRange(inputList, fromIndex, toIndex)); - } public static void main(String[] args) { FileHandler.initFiles(); - boolean isExit = false; - Scanner scanner = new Scanner(System.in); - TaskList taskList = new TaskList(); - - String logo = " ____ _ \n" - + "| _ \\ _ _| | _____ \n" - + "| | | | | | | |/ / _ \\\n" - + "| |_| | |_| | < __/\n" - + "|____/ \\__,_|_|\\_\\___|\n"; - System.out.println("Hello from\n" + logo); - - //Greet - printLine(); - System.out.println("Duke: Hello! What can I do for you today?"); + FileHandler.loadList(); + boolean isExitting = false; + UI.greetUser(); - while (isExit == false){ - //Getting Input - printLine(); + while (isExitting == false){ + //Prompt for Input + UI.printLine(); System.out.print("You: "); - String rawInput = scanner.nextLine(); - String[] inputList = rawInput.split(" "); - String cmd = inputList[0]; - String description; + + //Getting Input + Parser.readUserInput(); + String cmd = Parser.getCommand(); //Responding switch (cmd) { - case ("list"): - printLine(); - - //Printing result - System.out.println("Tasks: "); - taskList.printList(); + case ("list"): //List all tasks + Commands.runList(); break; - case ("bye"): - printLine(); - isExit = true; - - //Printing result - System.out.println("Duke: Goodbye!"); - printLine(); + case ("bye"): //Exit program + isExitting = true; + Commands.runExit(); break; - case ("mark"): - printLine(); - - //Handle empty task - try{ - description = getStringFromList(inputList, 1, inputList.length); - taskList.searchTask(description).markAsDone(); - FileHandler.markAsDone(taskList.getTaskIndex(description)); - } catch (NullPointerException e){ //invalid - System.out.println("Please enter a valid task! "); - break; - } catch (IllegalArgumentException e){ //empty - System.out.println("Task cannot be empty!"); - break; - } - - //Printing result - System.out.println("Marked as done:"); - System.out.print("[X] "); - System.out.println(description); + case ("mark"): //Mark task as done + Commands.runMark(); break; - case ("unmark"): - printLine(); - - //Handle empty/invalid task - try{ - description = getStringFromList(inputList, 1, inputList.length); - taskList.searchTask(description).markAsNotDone(); - FileHandler.markAsNotDone(taskList.getTaskIndex(description)); - } catch (NullPointerException e){ - System.out.println("Please enter a valid task! "); - break; - } catch (IllegalArgumentException e){ //empty - System.out.println("Task cannot be empty!"); - break; - } - - //Printing result - System.out.println("Marked as not completed:"); - System.out.print("[ ] "); - System.out.println(description); + case ("unmark"): //Mark task as not done + Commands.runUnmark(); break; - case ("todo"): //Add to list - printLine(); - - try{ - description = getStringFromList(inputList, 1, inputList.length); - } catch (IllegalArgumentException e){ - System.out.println("Task cannot be empty!"); - break; - } - - //Printing result - if (taskList.searchTask(description) == null){ - System.out.println("Added:"); - System.out.println(" [T][ ] " + description); - taskList.addToDo(description); - System.out.println("Now you have " + taskList.getSize() + " tasks in the list."); - break; - } else { - System.out.println("Sorry, seems like you already have a task with the same name!"); - break; - } - - case ("deadline"): - printLine(); - int byPosition = 0; - String dueDate; - for (int i=0; ivvoaIXl#ke4P-Bw>t%ltZ#@(Hv*;$mrKD4y& zPqptaEB)E(z&UtMr=R;X`ZGEjJ@3o_OYEtiVmbGn_rCYN@4e4`-aGUAUkkqico;Xs zXvaYrhZOXLQG#9}`h@6L@VJbDFcieZ{0Rkz#Uw7opp2mqj^L<*V_`gr;SlyAAy%GJ za9m7ABJ@8NLK{wo(SlP7o(WU^Yy=WC1><6pjL@$pLsxKG7){8S3}ZVCAC!cZi%-?8XBUR5yRa>h#P)9i6?JqxBlLSa($9 zF|Fb(rX@s{mt2z$=bS@j;r0>RaCCR$ITbTv4^+G$yu2um+UVN4i1nRI>QjzknKEWo zoX1NNs{1uYn2I`9G->OaqeoA3UN7Ti6|V>%ui}D;>7oQFq2e`MU{Z%H%gH&mHZ`a_ zlU6FXz6`G`xTNAT-cZqjP8DzBE$--3@iyL3@UB>TkBVLu?+e8TOK}l`*pcP9nAt%y zs@t|@N3CQsZ`*pRL&b;qh^MaP;Z6Dy}K`M8&80Oa%J5iZ6ub%cT=mlT1Q+ zK}lA5Ju-eqPZHdK$AYS+wOkXWFVoMFtmFl`HcCoo(oM1;mN;5e}&(f)tX9)iNps%CkxWjyPElZwzwOp;1AWsRSj445J$lJus z6n#h5M$c*&$!SzXTAtE#N!xJA5yn^eniNe$XQN}$Qphm4)SMB+ndDQ> z(M*BEjv`L|%UgI)nHz5yb1O9WFz*sTmQUyoFM*ygvJ8JyQ&AU{eJervf$c5y=l6uQ zxfk^o7DwiFaVm?^yT)}X*G0gw!rgwzY!kWsIBx-akN`He%E*s{Y{}^6gfr=~B}OSd zEm7u#-?*lD+SuN6Tb}d2704+>mhJn*55zCZX=%?NHCRT{~ZUtfJ^w9CvY6g8Na%XSQg{ z2dUZ0k^L0GmU&3G+zk&=3L_yy*t2ZpVh(t==++@JL&vd=6^c94c<2BK{NBM=IyA;npo4RE+~TgmsKg9KD;(9Vkbb zV>Q+zib^zN1J@$x!baNG(0UVkP=&*^h+{K99)N8K+(EUBlDnv*l%Xur1F2IY#JUi3 z*^5Vb9MhI+`0@^L)8&?5*hoac5jilAjf1U`O*gQW+NuTm#!y>3qy7ms95#>K#6WAL z_6F+3I+NbAfP2>3G`2?Wy@5L4X6pj#{%PZ*Fep%nE};mPYh)7Q+r4!%mE%36sPr%de3!_^_@UbfB zok#Fr3raT^|8RGcIYX;3Yrz|Q|1M!RM0S8YDJMErEOtH1-GWD1@csN9Kp!5%6XZ>T z$UVzh7X8Gh4;L{&KXH1B;T>9BA+N4t(8a3_fklj?jOY+D{u3^RcjHeGJekeO(=Vg< z=rVdeK6=;x6}{&FLXX4~SByh=2l6`H^uG)Tn(Re0P| zt7_oY5P#*j(Q;xQtv{pYpAAc4gE~Ny5?1;;$1s`vEq>tnwTvFTK|y99F#{o=b7jhv IX;)f*1H_EjnE(I) diff --git a/src/main/java/Task.class b/src/main/java/Task.class deleted file mode 100644 index 61e85e20947b650e48199a4d4cb33fc7aeb50028..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 852 zcma)3U2D@|6n@@(G-;Zw+I4O^H@EpgSHXb_UMRw_2*R8fEh65fStwc8q$H`}Pthyy zyj9o`yzmG3qr~SVGp)D_FLJ)#^E~G{CqI9E{{i3;?l`cpSw{^wY;4)smT}jluya2f58h8hg<6#Ll9+*d%j8KENBL6) zy|epT!FZM&@uhhX#o^&>G7Qs!KRjW@8-;m4_w!lyB9I~N&hABHJoW_Rm;SVXS-4Gc zL=LLqjchSn>HJF~GMtH@j`z=HdS!B$V z3!1xcp-sd}#V{Xs3R7^4!y3%4V3k&e?T}NWuXXR9!JG?oifR)kCn~H}d)#MT#Cam_ zBkZnm22Eh4v=X+=1GEcyJdex%s}=siIetm-#wQZ!7Z9xSa%+DGJQ7^1c3WpA0`&4C Si<`;Q`u{X;vhjMMdE+L~!8b#%$pr|AeQ(IfB!6#^qCinT=Ra#~pXjj{5_wTKk=Q0|ZT7UG3!Dd-mD;+k1ceJ2(0Huh|~~ zY{SVdc!s zP(+4S(WBeYQ)z|@Y%1ebKF-Iu{o_W44Jkv0B`aeKZP9>JB;UuF!;-xTR3|JwITF{$ z?6MSG5K!}mo=XlparI@=&I4&h_-H0&T>6Jb$gZp+VRKDRxK~p~+OP~Kfro{$Sv8R@ z3~A z3Y#1aW4I`zm`cMl*s39iJmt`ufnIFjHzPUb`%5Kb- zz>&cVMv|i`F*&NBBqTov^-L;lXxRb_SbCd^O<6=Qi zvoCMX7|o6w3O<%9`COoNp)NBso*glYciv&;fS$Cnxd{bdGBlRWjugfOv}h({fR7>+<4Y2;g-z{ul`lvox8%7K@0KULyCC!!Kl5u!^^rxT`SL==1_u;H=( z%GD;Y=E;6&;irE+KlUzu=6Uz|=8+ejyEfYz;O~Wyp9ZcSv~1_MUGP~OoPh|sZ^0G3 z4fntdJhxEsJr4vzT>XRr6s{Ght|Sy#O(m*O&0nvTT${0kfKOpd5%v%h%Eaq#Lmg=Em_b!fsE8YS zGVU@W`-!$3t5|FcYKi!CIb6-gt^T*TtBG4j+X@3 z4r;D*?~v%_6Ijdj**X5j71G8Ih1=cPz#!LmxEEyL(l~ir))Vskr?9u<4!rRjSl-|{ zH_K))jau%c!z@`_*shwz>iO+W)J>!QDyBmIhAA8+hWg(yin$tR(ImkMnF#sUOd(E4 z?SDb8or9bd;_5@Ul!nVz+j&w9%2=g@mr}&FlyCz@+)NQ~MgTi0;20?!poGsdB1LPC zTD(l@e8C}q%TZtBSZ;7IGbH;bJcnQSPv&<#k3T5+`&chr=%f{7tl~ag;sN>;)F{|? z56AD~$e$Fap!asJ@|v7sWm1S6+&decF*ODoIi{Wvd2XLZ^A%Ktu1~ty$8SPT+-bzo z_-;0`hmGtdgS**Qmz|jZs$}ANC)Ex_im5Ed%9{~z?`m>VH8<@HHZj=_Pn~BWUE{S$ zH`D#!D3w4O%KTL@pBy({)WgXlPh%O#t4Ll0gv0Xt)-nE<@cy;Q!(xZA}x9M`RsuN3?Wx=O*f6t8+}(N$k!e;ZEls`s&`e(v@##zjIt f<5PZ+KH=Ox<{DOJHcNLM4#Nuq<#Jt4x)FOSC)WnpW%)C@a1_5N@$;^z+qO1%o3~UUX4D1Yi d3>*w1K$au}*W}rZTHL%0j0}Pd3=B*RLI6yQ650R& delta 61 zcmaFCe1UnwcODLx)WnpW%)C@a2A0XvjLo7f3@i++44e#X415gi3?d9143Z3-lQ%PJ Raq}=RG6*s-FfcI)0RXZF3E2Pu diff --git a/src/main/java/Deadline.java b/src/main/java/TaskManager/Deadline.java similarity index 94% rename from src/main/java/Deadline.java rename to src/main/java/TaskManager/Deadline.java index 6a762efb..47f2aec9 100644 --- a/src/main/java/Deadline.java +++ b/src/main/java/TaskManager/Deadline.java @@ -1,3 +1,4 @@ +package TaskManager; public class Deadline extends Task { private String dueDate; diff --git a/src/main/java/Event.class b/src/main/java/TaskManager/Event.class similarity index 63% rename from src/main/java/Event.class rename to src/main/java/TaskManager/Event.class index 0af3f26f2ffd5a5d24d99c60080473ab8ad3bf92..a75ebd810cf51c6d58a9ac49326c7cbf2781af23 100644 GIT binary patch delta 81 zcmX@Z{DgVJH$}ma#Nuq<#Jt4x)FOS?vedj1Mg{?7v5EhiMOhhG7}yv%8Q2;47&sV2 ZfGkM{uF2CGwYYg17#Rc^7#Nrsga87I6086K delta 58 zcmaFDe1>_#H%?a9vedj1Mh2G2;*8CrEDS6RtPGqCYz%x1>YuW6g`g_m|>WK7E86Q)l#bhCX%R$3yn!5F)?ZD0@4_F4>}=J%0Py}#Gj%o zcWyOlW8%Ue;Eyt%J5vFbg^RggbI(2J-uL6@x9*1~jN@PwDwGdS^;_LM(_z2aj-w##KT)t_JsEV~jeUh&FlmiK2I>uyr$HFR z&lHSW{aC?#K04u_(m@dVN7G@~k2<=0#){YX<94j$>EvZkNY-lgWi%dpdV@nfPGA;l z6h~xdMqZdKW|i8%Lqvu%)X`x7Ql^(CN255EUF5*l;=+y;rhZGu6e@HQb%G%?r#+fR zJ^w`@JLE;ieL0ScB1$e?c)Y@EemgD-a9rf!D6B}|p$>K5kD3y*G(YL9?y294|0tzb zMwM@3^UVyHGKi5WQxi`r`aF~{)2=YvrdRaY##g8>3=~#rb4k&lE#nHUv_7Jj)>7jf znfI{E#wTRU=4X~N3!psKSh0|C_bpV2Sf5Rplbs_gxJ5FL*;QPl6|!B<%+Ti=_b!l~ z3v-g{DzX%&urb@?0qY{p6LBA4H_QuU1eQumVHI9`J(0)FT=s9y@DDHXMZudNIlx#l uV1pOj{5?PfZ!O&|_xEnH`1M)q7BkUmq{mx4LX|(Z|EF<}jW?3@ZvFy54ULHa literal 0 HcmV?d00001 diff --git a/src/main/java/Task.java b/src/main/java/TaskManager/Task.java similarity index 82% rename from src/main/java/Task.java rename to src/main/java/TaskManager/Task.java index 2db248a8..fe3ed798 100644 --- a/src/main/java/Task.java +++ b/src/main/java/TaskManager/Task.java @@ -1,5 +1,7 @@ +package TaskManager; + public class Task { - public String description; + protected String description; protected String taskType; protected boolean isDone; @@ -23,6 +25,10 @@ public void markAsNotDone(){ if (isDone==true) this.isDone = false; } + public String getDescription(){ + return description; + } + public String getDueDate(){ return " "; } diff --git a/src/main/java/TaskManager/TaskList.class b/src/main/java/TaskManager/TaskList.class new file mode 100644 index 0000000000000000000000000000000000000000..dfb4d3ddfba735a1bb13565967cb25286a5a2b6d GIT binary patch literal 3084 zcmbtWYf~Fl7=BI?*btTiX@PR71`92hR1{k;1X~eWOHJC^U=e96OR~b2u#4FZ8t<2S zzuzw(oe{q{qqYw1&>5|toN@dGesuieKhWA*pR*evNYojHnX~7-=Y5~|a-R2`eE-MN z*8pz9`yp(@J_UD#;KTk3v|~7gtvDcOcPfa7pdg{(UNzRvQ+OZ zrPCiD(d?OoW@=M& zaxkp1l=rIWM3;&OkX5lA9Riz*)s_n_Rd)*17Vo*mRAGa~S&L0S3UVsu@t{Ecn3j*^ ztz2YUo7W?z6>+$2w<>r@MIODRh6J_yRNRQ0R6LAFNW>9B-fmfr?PRsNgzijRX}h`{ zj|TCWipTMUiYL(<#8Yzdw2Ei&ND!w~Jd5XOJfz}zDR_bNy((Um^Osb-EK__1j*44B zB5o`}@V{g)1M?2Q##MHycxdvZo{}lAiad6b+oafEi0f&`I`8E!541qFRnx-$TDZLJ z=(9Aia?-$~hhg;`mSm(aU7KY`dGW6mlQk}5Gba0_K(mqj92v2xqtLCz?G(bRc#VEU zXGEZ3R-4fWEimWS!2#Iq%gd`DcAzE9LniKn!}8Ok&elHUqp0zsY>C9G3#w;j<->+KakTh zOrboh&sy`kg4ZQu-WF(E4a_j-tr@*=#drnSr==V#n^*8IP2-j|lVi85!=|Zc2Q!*& z>xBHExZevH9#i*gW;&zWZJuFleI`YcHHPx2N~n()=`ZuCNK}9r)H0c*;pj01?+LW8 z%db>y0$2UB9$NWaY~!Qj<5R-xfiw5Q;N#QnN~2s0dB1S%p=1lcg5R>Pvk+f$B5)nY za#tAOJ9j;LIhU%t`AYftZ8{I%7}fpp(+G4gqHOdu$^#Q;P`+v}A2C3_la;8Y%SKdj zegk$Eu=a4@PmSjDP{z8t&mx#0SoEL3Y6w@0F#nsdkzl(@fmOI*p??LdCs+faHWRFo zV7$r-k!@v;vLKa=r)d$D7odK@WpP(;sK3l9yZk{mt&FH8=Cr5>b}DYY~wTQ5OB;lwevv3&{#EuX=(20|dIAc@3hO z^H%J2{f6Mb1fSUKIpRZBa5PI>*&^-!TU%U5TUz>C=<48(RaecQo$}GuPrlDqTs5(H zzyZ3tlbsbu4H7Ks0r^wZbypAnWg?3!C(aU-=iHUx{2y?Ie*0 zn1Na|MO`~sc%QcE1?qM)vuKDtX(MNN6Vbph>!!`ZHXkJ7qjIdjY zV+`{+uZa_=!+pdXT<$P3L85@IMAzrBb?hwK&LFUQ+sL2m^3DqI_qiWKocmb*xA+Y) e{x|Rr-XsC; literal 0 HcmV?d00001 diff --git a/src/main/java/TaskList.java b/src/main/java/TaskManager/TaskList.java similarity index 62% rename from src/main/java/TaskList.java rename to src/main/java/TaskManager/TaskList.java index 1c391dc2..3b17b6db 100644 --- a/src/main/java/TaskList.java +++ b/src/main/java/TaskManager/TaskList.java @@ -1,39 +1,41 @@ +package TaskManager; import java.util.ArrayList; public class TaskList{ - public int size = 0; - protected ArrayList list = new ArrayList(); - public TaskList(){} + protected static int size = 0; + protected static ArrayList list = new ArrayList(); - public void addToDo(String description){ + public static void addToDo(String description){ ToDo toDo = new ToDo(description); - FileHandler.addTask(toDo); list.add(toDo); - this.size++; + size++; } - public void addDeadline(String description, String dueDate){ + public static void addDeadline(String description, String dueDate){ Deadline deadline = new Deadline(description, dueDate); - FileHandler.addTask(deadline); list.add(deadline); - this.size++; + size++; } - public void addEvent(String description, String dateTime){ + public static void addEvent(String description, String dateTime){ Event event = new Event(description, dateTime); - FileHandler.addTask(event); list.add(event); - this.size++; + size++; } - public Task getTask(int index){ + public static Task getTaskAtIndex(int index){ return (Task)list.get(index); } - public void printList(){ + public static void printList(){ + if (size == 0){ + System.out.println("Yay you have no tasks!"); + return; + } + System.out.println("Tasks:"); for (int i=0; i}X=qDmS{@TyNhLBe@K~sr3QHpfw%hh9x=?PaBt_!07$PJFK7fxx zIE)}m$MUg#eEjwO@d@AzM*&=PeK_c~(D$(0=E%jKivhv8P+HYjgm^rA6fYuO3!SI) zx>PzpKe;DZ*TqT_dNZZv-S&AQ%S3w5Vm5Epi0&mBM@LMAZ4P~ZTE z1S$lMFl3UeaZXmx1b^h{ou#T4rQX!q8bbPi1>R6s6Ki+|Jrbgtn~S%N!UT4JiqFgVf*0jDDi)9WAc-5waZD_a`{>^Z@$`fb1>&h3kH~mZ z!71UzQ(~2PI4eQc zB9V42*+X9|LgJxCi)-C_qDDN|tzbmwBzPlwOgD8~&RNkc?)LU-iJpdJlM&~AMfRfA zFzvNcAC6@_^|l$QL|7NjNGKN5W-T6x>4}vB8Wm00C_%MgiW)Vxm}g~8lV)m7(S$fZ zui`7XpyEYbkl-6XvP4#z1Ez|vij&!v4GXc217W?-j2dwnFR6GLuSh7}r19!Vz%&Bk zgsz!-U?10uWL#A7HJqp6To<_zW5t+y=ui zlV(EeYtha9MkG1YjmrwYuHqYbUBw%?!n_5l11jFcH&wiat17PHx&&#Xinnn^#ycv~ z80N-K6*urL7558pq$U+3)^@v!Q31!dL5=TVXo}YziKuCNeN)AEF{I#K72gvI-xrG? z2uFUX;zwffUKTKd-n?}jFj{Pg2lPb3NCb>g$Kal{DjGwA_UpW3Vu~R$& zxlK|9KUeVqexcyQto_N{moQ^{vz6rx3nm%a+I2t=o7CJro&FS@N>7WkQ(YiuStt4c z2~P5}PIj>zdwU|$1ZirgzEwYzp<|BnVA9lksbHk&K&Ebq&3&vrlfmg)FYC|d*yL^2 zP@fQr#U;$DupQ4Z+45!f#GXwYYgeH~R-q`KITe`}kX!9u{1U&C;E=o$=JskmdZQ5! zYi38(+|Q?^sl`QjmF7WWSN6UpJsD0!tp>x^ z)y|UM9oWNB2nXid{{=}MZ$RlR}M5n;WOWl95-=i0cUn$xGIMsU9}WG%h7FZ7E*chxadiK%{X{= z_b42lzJg&mw^XL#IuC`DyTjU*xf=@FyPTAcA*i8i@cIhVP_NQxDXLIIvkr)B7SkJ` z7+%cc$s7bw!t>iGQHoWV%TF^unkg{@&W}+l!%?z9hDV|Py;-*$3;EULWuQvIx^Wk3 zl~ELR`juhKsCAEGW~bjhjN)3^FQ+l9bIW`9fIiV{^%{JYBbW`oBIk5e`byF$4FwBU zw+5Z7o&2RS*BMFUwpwSmZiuC;+UHMW-Z@kU-Q0I)_dR}>-*W@={Z8NQ*17lg z8(5G=*$}o@`xf3pC6GsDakX!erQ-LyZeZ~=iDM3FXspKXPGgA(Z0Qi(wVta2Gs{33F<;KF*cHUL5=)44HUHj0tQ&~+X55Jo)?g1mzhk(YpS-m=hB}<$7w847 z!)5Ymn2fqfHhoBqzmQLVC7b@qJp7B=AETMI9pbI`N^Wdn#kN|RI||PjFY^c{0y2tZ z%w!&cF$};XW36lnbF%-9pF3(CWn=sd7BbUy)vQHf(*a(`YaDrnDH%cwO_1)=T$05} zM@}&L%R-|l@AS#eVJvS6`W9Wn0`69f5FxZyRi{x&c5s?Q5^oOr{FksuobwkPA$rqf zmIi$bFQF_WQ$2!}Q)Q~ss2M_0iztXsiGmQha$yh;GXr)-Y-1IGpJ*<$u`af=4tB6A zIpk$<)I9&e`A$} za`}?L7z^CN6j|8HSmhx|TXCNa68@0^sfY2;OJj9TX$!=H!}xSdmG2G$Bmx>QIt$Jq z(Y&*zVEqE>rm^NC=2r2EC2-ffSWAs#1?24CGeB6KVH^mB;p`m;Vgthm4zNMQ;e&zs z=wnkmNFYp7Hbsi|lX`~;Q$JxDr0x-FABKj95G4c$@Q4-od^kS=dn>~∓M*5jvSl z##m9`pN(2t#i-r9@{Ap|@RzMXVYvs3-Rxze@JDzpm_FY;Mo>F}ORK=8nz+X%>nvE~Dsg4e@%x>8EOAZX<03wPv$V;S)=5mM#1pK?EK^!V+rm*4;!$?Z zV+7|o>-r=s`bpO6DT4D9yX4bo$1~)|X)@$lLUbCB;W^qlONr+xafYiG_;k(!s|wCB zlE_VT>~geF13m&NBlA^k?~kLmZ5+ME40;!DiC*3RLXYJpUMQTDj{hr?BI+!XcFkQN zk}nd;mx$!cMDkT4`5KYDL==ZuYnNGxuajbLpa)k-xHpOQ72^9A5qz80t`gI0)Vz*Y z@Q#IM4P0YXc1=PPY?Vt$#C(7%WOMe#yhJof{wW+qedjRNU59V#>$!+8vHnBhkG$=e9Rgjx5ks!_^dTP_a8*13oHNt literal 0 HcmV?d00001 diff --git a/src/main/java/FileHandler.java b/src/main/java/UI/FileHandler.java similarity index 52% rename from src/main/java/FileHandler.java rename to src/main/java/UI/FileHandler.java index 6c85b902..5d78958a 100644 --- a/src/main/java/FileHandler.java +++ b/src/main/java/UI/FileHandler.java @@ -1,7 +1,12 @@ +package UI; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; +import java.io.BufferedReader; +import java.io.FileReader; +import TaskManager.TaskList; +import TaskManager.Task; public class FileHandler { @@ -13,35 +18,81 @@ public static void initFiles(){ try{ File dataFile = new File("./DataDir/Data.txt"); - FileWriter myWriter = new FileWriter(dataFile); if (!dataFile.exists()) dataFile.createNewFile(); - myWriter.write(""); - myWriter.close(); } catch (Exception e){ System.out.println("Failed to create file!"); + } + } + + public static void loadList(){ + String currLine; + String[] currLineList; + int currIndex = 0; + + String taskType; + String taskStatusIcon; + String taskDescription; + + FileReader fr; + BufferedReader br; + + File dataFile = new File("./DataDir/Data.txt"); + try{ + fr = new FileReader(dataFile); + br = new BufferedReader(fr); + + while ((currLine = br.readLine()) != null){ + System.out.println(currLine); + + Lines.add(currLine + "\n"); + currLineList = currLine.split(" - "); + + + taskType = currLineList[0]; + taskStatusIcon = currLineList[1].substring(1,currLineList[1].length()-1); + taskDescription = currLineList[2].substring(0,currLineList[2].length()); + + if (taskType.equals("E")){ + String taskDateTime = currLineList[3].substring(0,currLineList[3].length()); + TaskList.addEvent(taskDescription, taskDateTime); + if (taskStatusIcon.equals("X")) TaskList.getTaskAtIndex(currIndex).markAsDone(); + } else if (taskType.equals("D")){ + String taskDateTime = currLineList[3].substring(0,currLineList[3].length()); + TaskList.addDeadline(taskDescription, taskDateTime); + if (taskStatusIcon.equals("X")) TaskList.getTaskAtIndex(currIndex).markAsDone(); + } else if (taskType.equals("T")){ + TaskList.addToDo(taskDescription); + if (taskStatusIcon.equals("X")) TaskList.getTaskAtIndex(currIndex).markAsDone(); + } + currIndex++; + } + + fr.close(); + br.close(); + } catch (Exception e){ return; } + } public static void addTask(Task task){ - String taskType = task.taskType; + String taskType = task.getTaskType(); try{ FileWriter myWriter = new FileWriter("./DataDir/Data.txt", true); if (taskType == "T"){ - String line = "T | [ ] | " + task.description + "\n"; + String line = "T - [ ] - " + task.getDescription() + "\n"; myWriter.write(line); Lines.add(line); } else if (taskType == "E"){ - String line = "E | [ ] | " + task.description + " | " + task.getDateTime() + "\n"; + String line = "E - [ ] - " + task.getDescription() + " - " + task.getDateTime() + "\n"; myWriter.write(line); Lines.add(line); } else if (taskType == "D"){ - String line = "D | [ ] | " + task.description + " | " + task.getDueDate() + "\n"; + String line = "D - [ ] - " + task.getDescription() + " - " + task.getDueDate() + "\n"; myWriter.write(line); Lines.add(line); } - myWriter.close(); } catch (IOException e) { System.out.println("An error occurred."); @@ -49,6 +100,29 @@ public static void addTask(Task task){ } } + public static void deleteTask(int index){ + Lines.remove(index); + + try{ + //Erase Data + File dataFile = new File("./DataDir/Data.txt"); + FileWriter myWriter = new FileWriter(dataFile); + myWriter.write(""); + myWriter.close(); + + //Replace Data + dataFile = new File("./DataDir/Data.txt"); + myWriter = new FileWriter(dataFile, true); + for (int i=0; i < Lines.size(); i++){ + myWriter.write(Lines.get(i)); + } + myWriter.close(); + } catch (IOException e){ + System.out.println("An error occurred."); + return; + } + } + public static void markAsDone(int index){ String oldLine = Lines.get(index); String newLine = oldLine.substring(0,5) diff --git a/src/main/java/UI/Parser.class b/src/main/java/UI/Parser.class new file mode 100644 index 0000000000000000000000000000000000000000..3def918bd8d4774684993d0b8a9eeeda2d9fc35a GIT binary patch literal 1911 zcmah}T~`}b6x}xonaN~AAwVsJ(hn*mlr|b|X&YLl6f{Z;Hc+M2wH(4V4oxO;GEsQ< zPxz=WeeuD8o3w- z@Rorj-d4M7I<6ax-B1rVHQX|wBWECwX$`kkou)emkP0y}mi@{-DKzFTg3QoQ02_yqR#d6BoqUYL9nemvd zf(v$ofW9Z45YcJdvAsJ2;dJJaKxDSIE(K04*p7VAtgcCS*;=dcB;iVHeWfAY7M)R+ z-fXQ}wVZW<{&c2O?p|U7Df4cv8mP#mJIE*$I^ItdJ*)KezEy8&Fy=N(vhLY6ryq@gVPP5;O)TLffx-4Z&3ZP8$s0$q)I z#U^SzeRArVcG-tM43hZfopD`ji}Q<@YW1zfFCNmbWSKZ-i$F%6wrJ1RI;BZBYBnb| z*G_+|L+!VY1v=U+XjU*5$CG9Cy6JT_-Gaj^2ij>`6=i6gDCc2SSjjO!OJwHp@y=~E zJXz&%l_I%|M&LaEqro9!On3mjh7cpbz&1j=2=5@WjYzU<7ttMPM_0Satyp3( z(T@bzix_1(#WvDP5#5Fs&i%xbcDf#FrB#Vh*f~V}Ov9<+?-73ieRU79Uy@xDso{MX zzaqX5Q)LMGf&-8(m=wY?w3quxyecQ<-^jG2 zUr_0oE2eG?b%38Ed;$mXu@=0W@S(`(|3Wd!JC`weND(yHr^xN2`$zJ%H)x#jD~Iqh zOIH`h!ujxYN-_KZwWM;%Q@iN-4tgs846$#8c=q@2Ln>F$su5`1U*^*!M|6euxXO=C zmcyB3`*VKl;t2nVh!BH+u%j^o4mAD;Y487&UMJ}kNpFz!CP{CRbc&?6Pm=1sqQEw) end;a50?E~F^zEU42caX&1#VUUZx9v2oBsf-5Q`fC literal 0 HcmV?d00001 diff --git a/src/main/java/UI/Parser.java b/src/main/java/UI/Parser.java new file mode 100644 index 00000000..ca5dbdc2 --- /dev/null +++ b/src/main/java/UI/Parser.java @@ -0,0 +1,63 @@ +package UI; +import java.util.Scanner; +import java.util.Arrays; + +public class Parser { + private static Scanner scanner = new Scanner(System.in); + private static String rawInput; + private static String[] inputList; + + public static void readUserInput(){ + rawInput = scanner.nextLine(); + inputList = rawInput.split(" "); + } + + public static String getCommand(){ + return inputList[0]; + } + + private static String getStringFromList(String[] inputList, int fromIndex, int toIndex) throws IllegalArgumentException{ + if (fromIndex >= toIndex){ + throw new IllegalArgumentException(); + } + return String.join(" ", Arrays.copyOfRange(inputList, fromIndex, toIndex)); + } + + public static String getDescription(){ + return getStringFromList(inputList, 1, inputList.length); + } + + public static String getDescription(int atbyPosition){ + return getStringFromList(inputList, 1, atbyPosition); + } + + public static String getDate(int atbyPosition){ + return getStringFromList(inputList, atbyPosition+1, inputList.length); + } + + public static int getTaskIndex(){ + return Integer.parseInt(inputList[1]); + } + + public static int getByPosition(){ + int byPosition = 0; + for (int i=0; iC}DjU#s`DoEb1Bqvl@kU9Ubri==#c}nJ%Garkm~VL1&j_ z^M36nIr(q*6XfscImScI$p^@X^5j?5!!Rg%HuJc3>(+hOty}fq*Q@^l@FV=q#!-xQ zqkxYsT(EHwKe2Hdmo&Jn!FZN@pX!CH7K%1L#5D`oEtK@)WEKK9EZo$STUm7AhK*^= zSeWg`4{^sPxT~?xEZnnjU(X*{cxd5~=KE(0^Rtal0H}Fb+oCtIk{J>8x2y7Y1-J#%k=qZ66B|lJ8_1c_@ zX56_dDcwsHPc&IzyTNDNc(E8frkUP>lAcVufjh6FyvE10vhCA}TOoPL=*VE+u)gI| z?oI{^v@jnjmCVK}qJ3jw(v21`#S@{nnQfy?g-J^6X*qJq^OPsBvqhLtRh4LxRj5>( zA==YnJ*ucHz78leTRf#*aWH^f2EKzQSQI!j{QrM4s5+=f`2!IB1_gNfOBISi9H ziQJ`0l`Mo_yrT<|h1fxYx`Snm2#6U6Pw|Y11da>jChCi7R2q(cd3V80WW^0+QF;^zBiRV+G6_Am zagj;Z`Bk2DW3C2j)WNWJX!klf2$OV)bz(A1o?qeD7Jj4M`z@1uTh+p4Tu)T9xV6O2{V(# zuPKVVo=0gJsHbwB(`E)kSun6AxskcGW_!x@Sb$0vT3Aa)&NWhNYfBrItWgb*UE^-a zf`KgsMsXe2V*9H&Nf;Ypodd#*u# z0&+0BNi3J5a6WQtwm|1>F+W@65m-O&H|CzG3R_MaDQ!w5&CvVy{;`p(5htp~78TYh z-kUZxKg{3MEr}|WTVr3_Z7gjh^O&2CPz?ln=2bGG;!5N%C4NZ4o`Kw^{gHgyotegx z?sc58jV1NCSP26gzr*j@s^kOlh(9R=`fBc?8V`eto80x21!8gH21zV%ZQyP7--oiP zSDhvfo&b9n0Nkd)HyQiJD;n^MJ|$HyM>8Cvd!7pm`f?YRc9c>Pjmy z3g#NAf<13;l0I&1N3n9F%7R{emytIGxmy{XSN{uI;Kjo_IWiSKHQi~!T~<<^P!(FhNFC$bimdZ2r*kkh6mv1;@_8e?k0{ zh`>q0u9S#ween?2tjDNKf4ZNeBfI4#wyv|=W~mPrKA^}jPBlgTjjj9wYVajGO9Wk$ z1eqyn7#cpgN`AaV_fXb;iEZDZM=N%y_#Zeol-+JW6En)xlo-z}DISxNC-+Wld5w__K1_f6 z`b;1rZw2xSyGti^AOy`o2ET706nR%5TzY39CmF~P0~ux@c?L2Vc*x@mDywibJg;NyEvS%DhQMx2Whg_VK~p%@_Y#?QT$Z zI8`R!uj~$$-KDb6sO%o`^R2X>FxddMW&2;CH+$p-`qs0No}Mo5vctUmn3?I|&i: shows all existing tasks\n" + + "event : adds a new event task\n" + + "todo : adds a new todo task\n" + + "deadline : adds a new deadline task\n" + + "mark : marks a task as done\n" + + "unmark : marks a task as not done\n" + + "delete : removes task from list\n" + + "bye : exits program\n"; + + public static void printLine(){ + System.out.println("---------------------------------------------------"); + } + + public static void printTaskInfo(Task task){ + String description = task.getDescription(); + String taskType = task.getTaskType(); + String statusIcon = task.getStatusIcon(); + + System.out.print(" [" + taskType + "][" + statusIcon + "] " + description); + + if (taskType.equals("T")){ + System.out.println(" "); + } else if (taskType.equals("E")){ + System.out.println(" (at: " + task.getDateTime() + ")"); + } else if (taskType.equals("D")) { + System.out.println(" (by: " + task.getDueDate() + ")"); + } + } + + public static void printTaskInfo(String description){ + Task task = TaskList.searchTask(description); + String taskType = task.getTaskType(); + String statusIcon = task.getStatusIcon(); + + System.out.print(" [" + taskType + "][" + statusIcon + "] " + description); + + if (taskType.equals("T")){ + System.out.println(" "); + } else if (taskType.equals("E")){ + System.out.println(" (at: " + task.getDateTime() + ")"); + } else if (taskType.equals("D")) { + System.out.println(" (by: " + task.getDueDate() + ")"); + } + } + + public static void greetUser(){ + System.out.println("Hello from"); + System.out.println(logo); + + printLine(); + System.out.println(commandList); + + printLine(); + System.out.println("Duke: Hello! What can I do for you today?"); + } + + public static void printMarkAsDone(String description){ + System.out.println("Marked as done:"); + printTaskInfo(description); + } + + public static void printMarkAsNotDone(String description){ + System.out.println("Marked as not done:"); + printTaskInfo(description); + } + + public static void printTaskAdded(String description){ + System.out.println("Added:"); + printTaskInfo(description); + System.out.println("Now you have " + TaskList.getSize() + " tasks in your list!"); + } + + public static void printTaskDeleted(Task temp){ + System.out.println("Removed:"); + printTaskInfo(temp); + System.out.println("Now you have " + TaskList.getSize() + " tasks in your list!"); + } +} diff --git a/src/main/java/newfolder/DataDir/Data.txt b/src/main/java/newfolder/DataDir/Data.txt deleted file mode 100644 index e69de29b..00000000 diff --git a/src/main/java/newfolder/java.jar b/src/main/java/newfolder/java.jar deleted file mode 100644 index 7c04f4dc506c9dad7b8424e2ac5ad03ec7df6a4a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10570 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 cmwK^D Date: Wed, 28 Sep 2022 20:43:22 +0800 Subject: [PATCH 13/23] Add: More OOP --- src/main/java/Commands.class | Bin 0 -> 3025 bytes src/main/java/Commands.java | 153 +++++++++++++ src/main/java/DataDir/Data.txt | 3 +- src/main/java/Duke.class | Bin 5369 -> 1590 bytes src/main/java/Duke.java | 216 +++--------------- src/main/java/FileHandler.class | Bin 3213 -> 0 bytes src/main/java/Task.class | Bin 852 -> 0 bytes src/main/java/TaskList.class | Bin 2852 -> 0 bytes .../java/{ => TaskManager}/Deadline.class | Bin 464 -> 488 bytes src/main/java/{ => TaskManager}/Deadline.java | 1 + src/main/java/{ => TaskManager}/Event.class | Bin 460 -> 484 bytes src/main/java/{ => TaskManager}/Event.java | 1 + src/main/java/TaskManager/Task.class | Bin 0 -> 934 bytes src/main/java/{ => TaskManager}/Task.java | 8 +- src/main/java/TaskManager/TaskList.class | Bin 0 -> 3084 bytes src/main/java/{ => TaskManager}/TaskList.java | 54 +++-- src/main/java/TaskManager/ToDo.class | Bin 0 -> 346 bytes src/main/java/{ => TaskManager}/ToDo.java | 1 + src/main/java/ToDo.class | Bin 322 -> 0 bytes src/main/java/UI/FileHandler.class | Bin 0 -> 4471 bytes src/main/java/{ => UI}/FileHandler.java | 90 +++++++- src/main/java/UI/Parser.class | Bin 0 -> 1911 bytes src/main/java/UI/Parser.java | 63 +++++ src/main/java/UI/UI.class | Bin 0 -> 3250 bytes src/main/java/UI/UI.java | 90 ++++++++ src/main/java/newfolder/DataDir/Data.txt | 0 src/main/java/newfolder/java.jar | Bin 10570 -> 0 bytes 27 files changed, 468 insertions(+), 212 deletions(-) create mode 100644 src/main/java/Commands.class create mode 100644 src/main/java/Commands.java delete mode 100644 src/main/java/FileHandler.class delete mode 100644 src/main/java/Task.class delete mode 100644 src/main/java/TaskList.class rename src/main/java/{ => TaskManager}/Deadline.class (63%) rename src/main/java/{ => TaskManager}/Deadline.java (94%) rename src/main/java/{ => TaskManager}/Event.class (63%) rename src/main/java/{ => TaskManager}/Event.java (94%) create mode 100644 src/main/java/TaskManager/Task.class rename src/main/java/{ => TaskManager}/Task.java (82%) create mode 100644 src/main/java/TaskManager/TaskList.class rename src/main/java/{ => TaskManager}/TaskList.java (62%) create mode 100644 src/main/java/TaskManager/ToDo.class rename src/main/java/{ => TaskManager}/ToDo.java (89%) delete mode 100644 src/main/java/ToDo.class create mode 100644 src/main/java/UI/FileHandler.class rename src/main/java/{ => UI}/FileHandler.java (52%) create mode 100644 src/main/java/UI/Parser.class create mode 100644 src/main/java/UI/Parser.java create mode 100644 src/main/java/UI/UI.class create mode 100644 src/main/java/UI/UI.java delete mode 100644 src/main/java/newfolder/DataDir/Data.txt delete mode 100644 src/main/java/newfolder/java.jar diff --git a/src/main/java/Commands.class b/src/main/java/Commands.class new file mode 100644 index 0000000000000000000000000000000000000000..802728ad00151886e99bf6efd4d48d2701ba0c78 GIT binary patch literal 3025 zcmbVOSyL2O6#g2}o*5cY6pf(RxPsfbZ;&X6=tMva?j~w8eT9~pZtUqn#wCf-xFznI z2!xG?#>>rh_ zV-Xw|%?U9+Da$EYK9;>tWaD%MXC(MpSu9!lB1npjEiX!>b0YQY7|`KFa9&h{5`fEY zq;#ZpxEjiBl}Y-}P~doctL{8+4O{V)<@U#W1K)A`n>EaAaax82@2BQ5ob*5viv~}6}^F#9PF}&#;l{XKH{dsJ@Gv3 zwR?m^sa;uiiotbI5usx5uyPqoJla)C1>70Z5bO1_eo}Qfa(2ZYFP*krJF`v*7+8n6 zjtd5Sd1ed*^2{0-#zhU4?b$)K)7z^C}kz~_h? zxP~uuT$h&{8tNx9)SXSGdOXJsl)rZ*sm5|x+mljOMw!H{eA6Aqh664#l z+`(M~U*T&5_i*3916)7^SUO>maBVemFdG~^*XCte>`6JR9V6t3iRonn(>rJS>|;Uu zEp8b24)@tk<9(uG)#p z1~f{1J(izQK3lzC1?`h3d~RdYR4)!wMp=Gxpg?fNbb&ixXGnxG8Q<1SyC*3yc$C|t3qCKSBwX&C`9k}g2DmSlPro#-Lmb%)uHqJUgr{# z@Sc)`#_+TTMMR0F=~#pz!pbtEQ&waSHcl4LMAgR>9QH zG2q2UoZ}aphLzJ~c&fh~Ehn`G6DLI&XY4+V+2Lg+ncw?%wve9l<)GqmTS;RdcVL#0mRjYZRy)XSfqM@b%~6ULP&rP|_ zS}w$5W@aU&MoLXEY2Uz9EW>sz#};~(qx7_niiD1;D4n;y1K#R!ymQ9!&YcEt&D-!c z67L!wxt4g>5$_hFj1%R0;@v>J8;N%lrOlMK^Rr_*yxWR+e;CVeTQR?*sCX@h(Lb;# z1V1m2`DJz<@8z)|RMd{5TryuLOjxH<0yByU-bfkzIa7*V)bHWjZl=5yHT)Ga4;=)( zkLlb`=n29+z@4rTY!qdklGr8EfZK~ue+?@MbcIkCHrM8{i2cAveJ4S836RCb!V`2o zF|N+Td>d+=eK)U&dMA4j=ppJu&~cP+$GCrr7RT8vCy4qa8{#z6e1^!+q8S!{?j_L) z6{4>}*((}r94wOf3sD_AmI{-dZ(!2!&PE|7^&Cc|WM zkxWL&Bu6Hf$>i#PGifd|`F*S=%_S{iRhE|7Eu)yt5*0_ayrqsEb6~teE2KiytmJ>= zsyv#c;b(B5Dmh*YIcCe)6NLe7!z@GOai w@sK0&n2rC06Zw=0e-`qnmx@#}Ojwd-75j87f5n27=xC9Hq)$ literal 0 HcmV?d00001 diff --git a/src/main/java/Commands.java b/src/main/java/Commands.java new file mode 100644 index 00000000..885e5446 --- /dev/null +++ b/src/main/java/Commands.java @@ -0,0 +1,153 @@ +import TaskManager.Task; +import TaskManager.TaskList; +import UI.FileHandler; +import UI.Parser; +import UI.UI; + +public class Commands { + static String description; + + + public static void runList(){ + UI.printLine(); + TaskList.printList(); + } + + public static void runExit(){ + UI.printLine(); + System.out.println("Duke: Goodbye!"); + UI.printLine(); + } + + public static void runMark(){ + UI.printLine(); + try{ + description = Parser.getDescription(); + TaskList.searchTask(description).markAsDone(); + FileHandler.markAsDone(TaskList.getTaskIndex(description)); + } catch (NullPointerException e){ //invalid + System.out.println("Please enter a valid task!"); + return; + } catch (IllegalArgumentException e){ //empty + System.out.println("Task cannot be empty!"); + return; + } + + UI.printMarkAsDone(description); + } + + public static void runUnmark(){ + UI.printLine(); + + //Handle empty/invalid task + try{ + description = Parser.getDescription(); + TaskList.searchTask(description).markAsNotDone(); + FileHandler.markAsNotDone(TaskList.getTaskIndex(description)); + } catch (NullPointerException e){ + System.out.println("Please enter a valid task! "); + return; + } catch (IllegalArgumentException e){ //empty + System.out.println("Task cannot be empty!"); + return; + } + + //Printing result + UI.printMarkAsNotDone(description); + } + + public static void runToDo(){ + UI.printLine(); + + try{ + description = Parser.getDescription(); + } catch (IllegalArgumentException e){ + System.out.println("Task cannot be empty!"); + return; + } + + //Printing result + if (TaskList.searchTask(description) == null){ + TaskList.addToDo(description); + FileHandler.addTask(TaskList.getTaskAtIndex(TaskList.getSize()-1)); + UI.printTaskAdded(description); + } else { + System.out.println("Sorry, seems like you already have a task with the same name!"); + } + } + + public static void runDeadline(){ + UI.printLine(); + int byPosition = Parser.getByPosition(); + String dueDate; + + // Handle invalid input + try { + description = Parser.getDescription(byPosition); + dueDate = Parser.getDate(byPosition); + } catch (IllegalArgumentException e){ + System.out.println("Invalid input: task/date not given!"); + return; + } + + //Printing result + if (TaskList.searchTask(description) == null){ + TaskList.addDeadline(description, dueDate); + FileHandler.addTask(TaskList.getTaskAtIndex(TaskList.getSize()-1)); + UI.printTaskAdded(description); + } else { + System.out.println("Sorry, seems like you already have a task with the same name!"); + } + } + + public static void runEvent(){ + UI.printLine(); + int atPosition = Parser.getAtPosition(); + String dateTime; + + //Handle invalid input + try{ + description = Parser.getDescription(atPosition); + dateTime = Parser.getDate(atPosition); + } catch (IllegalArgumentException e){ + System.out.println("Invalid input: task/date not given!"); + return; + } + + //Printing result + if (TaskList.searchTask(description) == null){ + TaskList.addEvent(description, dateTime); + FileHandler.addTask(TaskList.getTaskAtIndex(TaskList.getSize()-1)); + UI.printTaskAdded(description); + } else { + System.out.println("Sorry, seems like you already have a task with the same name!"); + } + } + + public static void runDelete(){ + Task temp; + int taskIndex = -1; + + UI.printLine(); + + try{ + taskIndex = Parser.getTaskIndex()-1; + } catch (NumberFormatException e){ + description = Parser.getDescription(); + taskIndex = TaskList.getTaskIndex(description); + } + + try{ + temp = TaskList.getTaskAtIndex(taskIndex); + } catch (IndexOutOfBoundsException e){ + System.out.println("Sorry, index out of range!"); + return; + } + TaskList.deleteTask(taskIndex); + FileHandler.deleteTask(taskIndex); + UI.printTaskDeleted(temp); + } +} + + + diff --git a/src/main/java/DataDir/Data.txt b/src/main/java/DataDir/Data.txt index 978b3e66..51cd00f7 100644 --- a/src/main/java/DataDir/Data.txt +++ b/src/main/java/DataDir/Data.txt @@ -1 +1,2 @@ -T | [X] | CS2102 +T - [ ] - task1 +T - [ ] - task2 diff --git a/src/main/java/Duke.class b/src/main/java/Duke.class index d2b6da69684f277ccc6748b9c3a0f094195bddda..d37f3148b2309f8a5a00766c6290175b7c3b47f2 100644 GIT binary patch literal 1590 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 toIndex){ - throw new IllegalArgumentException(); - } - return String.join(" ", Arrays.copyOfRange(inputList, fromIndex, toIndex)); - } public static void main(String[] args) { FileHandler.initFiles(); - boolean isExit = false; - Scanner scanner = new Scanner(System.in); - TaskList taskList = new TaskList(); - - String logo = " ____ _ \n" - + "| _ \\ _ _| | _____ \n" - + "| | | | | | | |/ / _ \\\n" - + "| |_| | |_| | < __/\n" - + "|____/ \\__,_|_|\\_\\___|\n"; - System.out.println("Hello from\n" + logo); - - //Greet - printLine(); - System.out.println("Duke: Hello! What can I do for you today?"); + FileHandler.loadList(); + boolean isExitting = false; + UI.greetUser(); - while (isExit == false){ - //Getting Input - printLine(); + while (isExitting == false){ + //Prompt for Input + UI.printLine(); System.out.print("You: "); - String rawInput = scanner.nextLine(); - String[] inputList = rawInput.split(" "); - String cmd = inputList[0]; - String description; + + //Getting Input + Parser.readUserInput(); + String cmd = Parser.getCommand(); //Responding switch (cmd) { - case ("list"): - printLine(); - - //Printing result - System.out.println("Tasks: "); - taskList.printList(); + case ("list"): //List all tasks + Commands.runList(); break; - case ("bye"): - printLine(); - isExit = true; - - //Printing result - System.out.println("Duke: Goodbye!"); - printLine(); + case ("bye"): //Exit program + isExitting = true; + Commands.runExit(); break; - case ("mark"): - printLine(); - - //Handle empty task - try{ - description = getStringFromList(inputList, 1, inputList.length); - taskList.searchTask(description).markAsDone(); - FileHandler.markAsDone(taskList.getTaskIndex(description)); - } catch (NullPointerException e){ //invalid - System.out.println("Please enter a valid task! "); - break; - } catch (IllegalArgumentException e){ //empty - System.out.println("Task cannot be empty!"); - break; - } - - //Printing result - System.out.println("Marked as done:"); - System.out.print("[X] "); - System.out.println(description); + case ("mark"): //Mark task as done + Commands.runMark(); break; - case ("unmark"): - printLine(); - - //Handle empty/invalid task - try{ - description = getStringFromList(inputList, 1, inputList.length); - taskList.searchTask(description).markAsNotDone(); - FileHandler.markAsNotDone(taskList.getTaskIndex(description)); - } catch (NullPointerException e){ - System.out.println("Please enter a valid task! "); - break; - } catch (IllegalArgumentException e){ //empty - System.out.println("Task cannot be empty!"); - break; - } - - //Printing result - System.out.println("Marked as not completed:"); - System.out.print("[ ] "); - System.out.println(description); + case ("unmark"): //Mark task as not done + Commands.runUnmark(); break; - case ("todo"): //Add to list - printLine(); - - try{ - description = getStringFromList(inputList, 1, inputList.length); - } catch (IllegalArgumentException e){ - System.out.println("Task cannot be empty!"); - break; - } - - //Printing result - if (taskList.searchTask(description) == null){ - System.out.println("Added:"); - System.out.println(" [T][ ] " + description); - taskList.addToDo(description); - System.out.println("Now you have " + taskList.getSize() + " tasks in the list."); - break; - } else { - System.out.println("Sorry, seems like you already have a task with the same name!"); - break; - } - - case ("deadline"): - printLine(); - int byPosition = 0; - String dueDate; - for (int i=0; ivvoaIXl#ke4P-Bw>t%ltZ#@(Hv*;$mrKD4y& zPqptaEB)E(z&UtMr=R;X`ZGEjJ@3o_OYEtiVmbGn_rCYN@4e4`-aGUAUkkqico;Xs zXvaYrhZOXLQG#9}`h@6L@VJbDFcieZ{0Rkz#Uw7opp2mqj^L<*V_`gr;SlyAAy%GJ za9m7ABJ@8NLK{wo(SlP7o(WU^Yy=WC1><6pjL@$pLsxKG7){8S3}ZVCAC!cZi%-?8XBUR5yRa>h#P)9i6?JqxBlLSa($9 zF|Fb(rX@s{mt2z$=bS@j;r0>RaCCR$ITbTv4^+G$yu2um+UVN4i1nRI>QjzknKEWo zoX1NNs{1uYn2I`9G->OaqeoA3UN7Ti6|V>%ui}D;>7oQFq2e`MU{Z%H%gH&mHZ`a_ zlU6FXz6`G`xTNAT-cZqjP8DzBE$--3@iyL3@UB>TkBVLu?+e8TOK}l`*pcP9nAt%y zs@t|@N3CQsZ`*pRL&b;qh^MaP;Z6Dy}K`M8&80Oa%J5iZ6ub%cT=mlT1Q+ zK}lA5Ju-eqPZHdK$AYS+wOkXWFVoMFtmFl`HcCoo(oM1;mN;5e}&(f)tX9)iNps%CkxWjyPElZwzwOp;1AWsRSj445J$lJus z6n#h5M$c*&$!SzXTAtE#N!xJA5yn^eniNe$XQN}$Qphm4)SMB+ndDQ> z(M*BEjv`L|%UgI)nHz5yb1O9WFz*sTmQUyoFM*ygvJ8JyQ&AU{eJervf$c5y=l6uQ zxfk^o7DwiFaVm?^yT)}X*G0gw!rgwzY!kWsIBx-akN`He%E*s{Y{}^6gfr=~B}OSd zEm7u#-?*lD+SuN6Tb}d2704+>mhJn*55zCZX=%?NHCRT{~ZUtfJ^w9CvY6g8Na%XSQg{ z2dUZ0k^L0GmU&3G+zk&=3L_yy*t2ZpVh(t==++@JL&vd=6^c94c<2BK{NBM=IyA;npo4RE+~TgmsKg9KD;(9Vkbb zV>Q+zib^zN1J@$x!baNG(0UVkP=&*^h+{K99)N8K+(EUBlDnv*l%Xur1F2IY#JUi3 z*^5Vb9MhI+`0@^L)8&?5*hoac5jilAjf1U`O*gQW+NuTm#!y>3qy7ms95#>K#6WAL z_6F+3I+NbAfP2>3G`2?Wy@5L4X6pj#{%PZ*Fep%nE};mPYh)7Q+r4!%mE%36sPr%de3!_^_@UbfB zok#Fr3raT^|8RGcIYX;3Yrz|Q|1M!RM0S8YDJMErEOtH1-GWD1@csN9Kp!5%6XZ>T z$UVzh7X8Gh4;L{&KXH1B;T>9BA+N4t(8a3_fklj?jOY+D{u3^RcjHeGJekeO(=Vg< z=rVdeK6=;x6}{&FLXX4~SByh=2l6`H^uG)Tn(Re0P| zt7_oY5P#*j(Q;xQtv{pYpAAc4gE~Ny5?1;;$1s`vEq>tnwTvFTK|y99F#{o=b7jhv IX;)f*1H_EjnE(I) diff --git a/src/main/java/Task.class b/src/main/java/Task.class deleted file mode 100644 index 61e85e20947b650e48199a4d4cb33fc7aeb50028..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 852 zcma)3U2D@|6n@@(G-;Zw+I4O^H@EpgSHXb_UMRw_2*R8fEh65fStwc8q$H`}Pthyy zyj9o`yzmG3qr~SVGp)D_FLJ)#^E~G{CqI9E{{i3;?l`cpSw{^wY;4)smT}jluya2f58h8hg<6#Ll9+*d%j8KENBL6) zy|epT!FZM&@uhhX#o^&>G7Qs!KRjW@8-;m4_w!lyB9I~N&hABHJoW_Rm;SVXS-4Gc zL=LLqjchSn>HJF~GMtH@j`z=HdS!B$V z3!1xcp-sd}#V{Xs3R7^4!y3%4V3k&e?T}NWuXXR9!JG?oifR)kCn~H}d)#MT#Cam_ zBkZnm22Eh4v=X+=1GEcyJdex%s}=siIetm-#wQZ!7Z9xSa%+DGJQ7^1c3WpA0`&4C Si<`;Q`u{X;vhjMMdE+L~!8b#%$pr|AeQ(IfB!6#^qCinT=Ra#~pXjj{5_wTKk=Q0|ZT7UG3!Dd-mD;+k1ceJ2(0Huh|~~ zY{SVdc!s zP(+4S(WBeYQ)z|@Y%1ebKF-Iu{o_W44Jkv0B`aeKZP9>JB;UuF!;-xTR3|JwITF{$ z?6MSG5K!}mo=XlparI@=&I4&h_-H0&T>6Jb$gZp+VRKDRxK~p~+OP~Kfro{$Sv8R@ z3~A z3Y#1aW4I`zm`cMl*s39iJmt`ufnIFjHzPUb`%5Kb- zz>&cVMv|i`F*&NBBqTov^-L;lXxRb_SbCd^O<6=Qi zvoCMX7|o6w3O<%9`COoNp)NBso*glYciv&;fS$Cnxd{bdGBlRWjugfOv}h({fR7>+<4Y2;g-z{ul`lvox8%7K@0KULyCC!!Kl5u!^^rxT`SL==1_u;H=( z%GD;Y=E;6&;irE+KlUzu=6Uz|=8+ejyEfYz;O~Wyp9ZcSv~1_MUGP~OoPh|sZ^0G3 z4fntdJhxEsJr4vzT>XRr6s{Ght|Sy#O(m*O&0nvTT${0kfKOpd5%v%h%Eaq#Lmg=Em_b!fsE8YS zGVU@W`-!$3t5|FcYKi!CIb6-gt^T*TtBG4j+X@3 z4r;D*?~v%_6Ijdj**X5j71G8Ih1=cPz#!LmxEEyL(l~ir))Vskr?9u<4!rRjSl-|{ zH_K))jau%c!z@`_*shwz>iO+W)J>!QDyBmIhAA8+hWg(yin$tR(ImkMnF#sUOd(E4 z?SDb8or9bd;_5@Ul!nVz+j&w9%2=g@mr}&FlyCz@+)NQ~MgTi0;20?!poGsdB1LPC zTD(l@e8C}q%TZtBSZ;7IGbH;bJcnQSPv&<#k3T5+`&chr=%f{7tl~ag;sN>;)F{|? z56AD~$e$Fap!asJ@|v7sWm1S6+&decF*ODoIi{Wvd2XLZ^A%Ktu1~ty$8SPT+-bzo z_-;0`hmGtdgS**Qmz|jZs$}ANC)Ex_im5Ed%9{~z?`m>VH8<@HHZj=_Pn~BWUE{S$ zH`D#!D3w4O%KTL@pBy({)WgXlPh%O#t4Ll0gv0Xt)-nE<@cy;Q!(xZA}x9M`RsuN3?Wx=O*f6t8+}(N$k!e;ZEls`s&`e(v@##zjIt f<5PZ+KH=Ox<{DOJHcNLM4#Nuq<#Jt4x)FOSC)WnpW%)C@a1_5N@$;^z+qO1%o3~UUX4D1Yi d3>*w1K$au}*W}rZTHL%0j0}Pd3=B*RLI6yQ650R& delta 61 zcmaFCe1UnwcODLx)WnpW%)C@a2A0XvjLo7f3@i++44e#X415gi3?d9143Z3-lQ%PJ Raq}=RG6*s-FfcI)0RXZF3E2Pu diff --git a/src/main/java/Deadline.java b/src/main/java/TaskManager/Deadline.java similarity index 94% rename from src/main/java/Deadline.java rename to src/main/java/TaskManager/Deadline.java index 6a762efb..47f2aec9 100644 --- a/src/main/java/Deadline.java +++ b/src/main/java/TaskManager/Deadline.java @@ -1,3 +1,4 @@ +package TaskManager; public class Deadline extends Task { private String dueDate; diff --git a/src/main/java/Event.class b/src/main/java/TaskManager/Event.class similarity index 63% rename from src/main/java/Event.class rename to src/main/java/TaskManager/Event.class index 0af3f26f2ffd5a5d24d99c60080473ab8ad3bf92..a75ebd810cf51c6d58a9ac49326c7cbf2781af23 100644 GIT binary patch delta 81 zcmX@Z{DgVJH$}ma#Nuq<#Jt4x)FOS?vedj1Mg{?7v5EhiMOhhG7}yv%8Q2;47&sV2 ZfGkM{uF2CGwYYg17#Rc^7#Nrsga87I6086K delta 58 zcmaFDe1>_#H%?a9vedj1Mh2G2;*8CrEDS6RtPGqCYz%x1>YuW6g`g_m|>WK7E86Q)l#bhCX%R$3yn!5F)?ZD0@4_F4>}=J%0Py}#Gj%o zcWyOlW8%Ue;Eyt%J5vFbg^RggbI(2J-uL6@x9*1~jN@PwDwGdS^;_LM(_z2aj-w##KT)t_JsEV~jeUh&FlmiK2I>uyr$HFR z&lHSW{aC?#K04u_(m@dVN7G@~k2<=0#){YX<94j$>EvZkNY-lgWi%dpdV@nfPGA;l z6h~xdMqZdKW|i8%Lqvu%)X`x7Ql^(CN255EUF5*l;=+y;rhZGu6e@HQb%G%?r#+fR zJ^w`@JLE;ieL0ScB1$e?c)Y@EemgD-a9rf!D6B}|p$>K5kD3y*G(YL9?y294|0tzb zMwM@3^UVyHGKi5WQxi`r`aF~{)2=YvrdRaY##g8>3=~#rb4k&lE#nHUv_7Jj)>7jf znfI{E#wTRU=4X~N3!psKSh0|C_bpV2Sf5Rplbs_gxJ5FL*;QPl6|!B<%+Ti=_b!l~ z3v-g{DzX%&urb@?0qY{p6LBA4H_QuU1eQumVHI9`J(0)FT=s9y@DDHXMZudNIlx#l uV1pOj{5?PfZ!O&|_xEnH`1M)q7BkUmq{mx4LX|(Z|EF<}jW?3@ZvFy54ULHa literal 0 HcmV?d00001 diff --git a/src/main/java/Task.java b/src/main/java/TaskManager/Task.java similarity index 82% rename from src/main/java/Task.java rename to src/main/java/TaskManager/Task.java index 2db248a8..fe3ed798 100644 --- a/src/main/java/Task.java +++ b/src/main/java/TaskManager/Task.java @@ -1,5 +1,7 @@ +package TaskManager; + public class Task { - public String description; + protected String description; protected String taskType; protected boolean isDone; @@ -23,6 +25,10 @@ public void markAsNotDone(){ if (isDone==true) this.isDone = false; } + public String getDescription(){ + return description; + } + public String getDueDate(){ return " "; } diff --git a/src/main/java/TaskManager/TaskList.class b/src/main/java/TaskManager/TaskList.class new file mode 100644 index 0000000000000000000000000000000000000000..dfb4d3ddfba735a1bb13565967cb25286a5a2b6d GIT binary patch literal 3084 zcmbtWYf~Fl7=BI?*btTiX@PR71`92hR1{k;1X~eWOHJC^U=e96OR~b2u#4FZ8t<2S zzuzw(oe{q{qqYw1&>5|toN@dGesuieKhWA*pR*evNYojHnX~7-=Y5~|a-R2`eE-MN z*8pz9`yp(@J_UD#;KTk3v|~7gtvDcOcPfa7pdg{(UNzRvQ+OZ zrPCiD(d?OoW@=M& zaxkp1l=rIWM3;&OkX5lA9Riz*)s_n_Rd)*17Vo*mRAGa~S&L0S3UVsu@t{Ecn3j*^ ztz2YUo7W?z6>+$2w<>r@MIODRh6J_yRNRQ0R6LAFNW>9B-fmfr?PRsNgzijRX}h`{ zj|TCWipTMUiYL(<#8Yzdw2Ei&ND!w~Jd5XOJfz}zDR_bNy((Um^Osb-EK__1j*44B zB5o`}@V{g)1M?2Q##MHycxdvZo{}lAiad6b+oafEi0f&`I`8E!541qFRnx-$TDZLJ z=(9Aia?-$~hhg;`mSm(aU7KY`dGW6mlQk}5Gba0_K(mqj92v2xqtLCz?G(bRc#VEU zXGEZ3R-4fWEimWS!2#Iq%gd`DcAzE9LniKn!}8Ok&elHUqp0zsY>C9G3#w;j<->+KakTh zOrboh&sy`kg4ZQu-WF(E4a_j-tr@*=#drnSr==V#n^*8IP2-j|lVi85!=|Zc2Q!*& z>xBHExZevH9#i*gW;&zWZJuFleI`YcHHPx2N~n()=`ZuCNK}9r)H0c*;pj01?+LW8 z%db>y0$2UB9$NWaY~!Qj<5R-xfiw5Q;N#QnN~2s0dB1S%p=1lcg5R>Pvk+f$B5)nY za#tAOJ9j;LIhU%t`AYftZ8{I%7}fpp(+G4gqHOdu$^#Q;P`+v}A2C3_la;8Y%SKdj zegk$Eu=a4@PmSjDP{z8t&mx#0SoEL3Y6w@0F#nsdkzl(@fmOI*p??LdCs+faHWRFo zV7$r-k!@v;vLKa=r)d$D7odK@WpP(;sK3l9yZk{mt&FH8=Cr5>b}DYY~wTQ5OB;lwevv3&{#EuX=(20|dIAc@3hO z^H%J2{f6Mb1fSUKIpRZBa5PI>*&^-!TU%U5TUz>C=<48(RaecQo$}GuPrlDqTs5(H zzyZ3tlbsbu4H7Ks0r^wZbypAnWg?3!C(aU-=iHUx{2y?Ie*0 zn1Na|MO`~sc%QcE1?qM)vuKDtX(MNN6Vbph>!!`ZHXkJ7qjIdjY zV+`{+uZa_=!+pdXT<$P3L85@IMAzrBb?hwK&LFUQ+sL2m^3DqI_qiWKocmb*xA+Y) e{x|Rr-XsC; literal 0 HcmV?d00001 diff --git a/src/main/java/TaskList.java b/src/main/java/TaskManager/TaskList.java similarity index 62% rename from src/main/java/TaskList.java rename to src/main/java/TaskManager/TaskList.java index 1c391dc2..3b17b6db 100644 --- a/src/main/java/TaskList.java +++ b/src/main/java/TaskManager/TaskList.java @@ -1,39 +1,41 @@ +package TaskManager; import java.util.ArrayList; public class TaskList{ - public int size = 0; - protected ArrayList list = new ArrayList(); - public TaskList(){} + protected static int size = 0; + protected static ArrayList list = new ArrayList(); - public void addToDo(String description){ + public static void addToDo(String description){ ToDo toDo = new ToDo(description); - FileHandler.addTask(toDo); list.add(toDo); - this.size++; + size++; } - public void addDeadline(String description, String dueDate){ + public static void addDeadline(String description, String dueDate){ Deadline deadline = new Deadline(description, dueDate); - FileHandler.addTask(deadline); list.add(deadline); - this.size++; + size++; } - public void addEvent(String description, String dateTime){ + public static void addEvent(String description, String dateTime){ Event event = new Event(description, dateTime); - FileHandler.addTask(event); list.add(event); - this.size++; + size++; } - public Task getTask(int index){ + public static Task getTaskAtIndex(int index){ return (Task)list.get(index); } - public void printList(){ + public static void printList(){ + if (size == 0){ + System.out.println("Yay you have no tasks!"); + return; + } + System.out.println("Tasks:"); for (int i=0; i}X=qDmS{@TyNhLBe@K~sr3QHpfw%hh9x=?PaBt_!07$PJFK7fxx zIE)}m$MUg#eEjwO@d@AzM*&=PeK_c~(D$(0=E%jKivhv8P+HYjgm^rA6fYuO3!SI) zx>PzpKe;DZ*TqT_dNZZv-S&AQ%S3w5Vm5Epi0&mBM@LMAZ4P~ZTE z1S$lMFl3UeaZXmx1b^h{ou#T4rQX!q8bbPi1>R6s6Ki+|Jrbgtn~S%N!UT4JiqFgVf*0jDDi)9WAc-5waZD_a`{>^Z@$`fb1>&h3kH~mZ z!71UzQ(~2PI4eQc zB9V42*+X9|LgJxCi)-C_qDDN|tzbmwBzPlwOgD8~&RNkc?)LU-iJpdJlM&~AMfRfA zFzvNcAC6@_^|l$QL|7NjNGKN5W-T6x>4}vB8Wm00C_%MgiW)Vxm}g~8lV)m7(S$fZ zui`7XpyEYbkl-6XvP4#z1Ez|vij&!v4GXc217W?-j2dwnFR6GLuSh7}r19!Vz%&Bk zgsz!-U?10uWL#A7HJqp6To<_zW5t+y=ui zlV(EeYtha9MkG1YjmrwYuHqYbUBw%?!n_5l11jFcH&wiat17PHx&&#Xinnn^#ycv~ z80N-K6*urL7558pq$U+3)^@v!Q31!dL5=TVXo}YziKuCNeN)AEF{I#K72gvI-xrG? z2uFUX;zwffUKTKd-n?}jFj{Pg2lPb3NCb>g$Kal{DjGwA_UpW3Vu~R$& zxlK|9KUeVqexcyQto_N{moQ^{vz6rx3nm%a+I2t=o7CJro&FS@N>7WkQ(YiuStt4c z2~P5}PIj>zdwU|$1ZirgzEwYzp<|BnVA9lksbHk&K&Ebq&3&vrlfmg)FYC|d*yL^2 zP@fQr#U;$DupQ4Z+45!f#GXwYYgeH~R-q`KITe`}kX!9u{1U&C;E=o$=JskmdZQ5! zYi38(+|Q?^sl`QjmF7WWSN6UpJsD0!tp>x^ z)y|UM9oWNB2nXid{{=}MZ$RlR}M5n;WOWl95-=i0cUn$xGIMsU9}WG%h7FZ7E*chxadiK%{X{= z_b42lzJg&mw^XL#IuC`DyTjU*xf=@FyPTAcA*i8i@cIhVP_NQxDXLIIvkr)B7SkJ` z7+%cc$s7bw!t>iGQHoWV%TF^unkg{@&W}+l!%?z9hDV|Py;-*$3;EULWuQvIx^Wk3 zl~ELR`juhKsCAEGW~bjhjN)3^FQ+l9bIW`9fIiV{^%{JYBbW`oBIk5e`byF$4FwBU zw+5Z7o&2RS*BMFUwpwSmZiuC;+UHMW-Z@kU-Q0I)_dR}>-*W@={Z8NQ*17lg z8(5G=*$}o@`xf3pC6GsDakX!erQ-LyZeZ~=iDM3FXspKXPGgA(Z0Qi(wVta2Gs{33F<;KF*cHUL5=)44HUHj0tQ&~+X55Jo)?g1mzhk(YpS-m=hB}<$7w847 z!)5Ymn2fqfHhoBqzmQLVC7b@qJp7B=AETMI9pbI`N^Wdn#kN|RI||PjFY^c{0y2tZ z%w!&cF$};XW36lnbF%-9pF3(CWn=sd7BbUy)vQHf(*a(`YaDrnDH%cwO_1)=T$05} zM@}&L%R-|l@AS#eVJvS6`W9Wn0`69f5FxZyRi{x&c5s?Q5^oOr{FksuobwkPA$rqf zmIi$bFQF_WQ$2!}Q)Q~ss2M_0iztXsiGmQha$yh;GXr)-Y-1IGpJ*<$u`af=4tB6A zIpk$<)I9&e`A$} za`}?L7z^CN6j|8HSmhx|TXCNa68@0^sfY2;OJj9TX$!=H!}xSdmG2G$Bmx>QIt$Jq z(Y&*zVEqE>rm^NC=2r2EC2-ffSWAs#1?24CGeB6KVH^mB;p`m;Vgthm4zNMQ;e&zs z=wnkmNFYp7Hbsi|lX`~;Q$JxDr0x-FABKj95G4c$@Q4-od^kS=dn>~∓M*5jvSl z##m9`pN(2t#i-r9@{Ap|@RzMXVYvs3-Rxze@JDzpm_FY;Mo>F}ORK=8nz+X%>nvE~Dsg4e@%x>8EOAZX<03wPv$V;S)=5mM#1pK?EK^!V+rm*4;!$?Z zV+7|o>-r=s`bpO6DT4D9yX4bo$1~)|X)@$lLUbCB;W^qlONr+xafYiG_;k(!s|wCB zlE_VT>~geF13m&NBlA^k?~kLmZ5+ME40;!DiC*3RLXYJpUMQTDj{hr?BI+!XcFkQN zk}nd;mx$!cMDkT4`5KYDL==ZuYnNGxuajbLpa)k-xHpOQ72^9A5qz80t`gI0)Vz*Y z@Q#IM4P0YXc1=PPY?Vt$#C(7%WOMe#yhJof{wW+qedjRNU59V#>$!+8vHnBhkG$=e9Rgjx5ks!_^dTP_a8*13oHNt literal 0 HcmV?d00001 diff --git a/src/main/java/FileHandler.java b/src/main/java/UI/FileHandler.java similarity index 52% rename from src/main/java/FileHandler.java rename to src/main/java/UI/FileHandler.java index 6c85b902..5d78958a 100644 --- a/src/main/java/FileHandler.java +++ b/src/main/java/UI/FileHandler.java @@ -1,7 +1,12 @@ +package UI; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; +import java.io.BufferedReader; +import java.io.FileReader; +import TaskManager.TaskList; +import TaskManager.Task; public class FileHandler { @@ -13,35 +18,81 @@ public static void initFiles(){ try{ File dataFile = new File("./DataDir/Data.txt"); - FileWriter myWriter = new FileWriter(dataFile); if (!dataFile.exists()) dataFile.createNewFile(); - myWriter.write(""); - myWriter.close(); } catch (Exception e){ System.out.println("Failed to create file!"); + } + } + + public static void loadList(){ + String currLine; + String[] currLineList; + int currIndex = 0; + + String taskType; + String taskStatusIcon; + String taskDescription; + + FileReader fr; + BufferedReader br; + + File dataFile = new File("./DataDir/Data.txt"); + try{ + fr = new FileReader(dataFile); + br = new BufferedReader(fr); + + while ((currLine = br.readLine()) != null){ + System.out.println(currLine); + + Lines.add(currLine + "\n"); + currLineList = currLine.split(" - "); + + + taskType = currLineList[0]; + taskStatusIcon = currLineList[1].substring(1,currLineList[1].length()-1); + taskDescription = currLineList[2].substring(0,currLineList[2].length()); + + if (taskType.equals("E")){ + String taskDateTime = currLineList[3].substring(0,currLineList[3].length()); + TaskList.addEvent(taskDescription, taskDateTime); + if (taskStatusIcon.equals("X")) TaskList.getTaskAtIndex(currIndex).markAsDone(); + } else if (taskType.equals("D")){ + String taskDateTime = currLineList[3].substring(0,currLineList[3].length()); + TaskList.addDeadline(taskDescription, taskDateTime); + if (taskStatusIcon.equals("X")) TaskList.getTaskAtIndex(currIndex).markAsDone(); + } else if (taskType.equals("T")){ + TaskList.addToDo(taskDescription); + if (taskStatusIcon.equals("X")) TaskList.getTaskAtIndex(currIndex).markAsDone(); + } + currIndex++; + } + + fr.close(); + br.close(); + } catch (Exception e){ return; } + } public static void addTask(Task task){ - String taskType = task.taskType; + String taskType = task.getTaskType(); try{ FileWriter myWriter = new FileWriter("./DataDir/Data.txt", true); if (taskType == "T"){ - String line = "T | [ ] | " + task.description + "\n"; + String line = "T - [ ] - " + task.getDescription() + "\n"; myWriter.write(line); Lines.add(line); } else if (taskType == "E"){ - String line = "E | [ ] | " + task.description + " | " + task.getDateTime() + "\n"; + String line = "E - [ ] - " + task.getDescription() + " - " + task.getDateTime() + "\n"; myWriter.write(line); Lines.add(line); } else if (taskType == "D"){ - String line = "D | [ ] | " + task.description + " | " + task.getDueDate() + "\n"; + String line = "D - [ ] - " + task.getDescription() + " - " + task.getDueDate() + "\n"; myWriter.write(line); Lines.add(line); } - myWriter.close(); } catch (IOException e) { System.out.println("An error occurred."); @@ -49,6 +100,29 @@ public static void addTask(Task task){ } } + public static void deleteTask(int index){ + Lines.remove(index); + + try{ + //Erase Data + File dataFile = new File("./DataDir/Data.txt"); + FileWriter myWriter = new FileWriter(dataFile); + myWriter.write(""); + myWriter.close(); + + //Replace Data + dataFile = new File("./DataDir/Data.txt"); + myWriter = new FileWriter(dataFile, true); + for (int i=0; i < Lines.size(); i++){ + myWriter.write(Lines.get(i)); + } + myWriter.close(); + } catch (IOException e){ + System.out.println("An error occurred."); + return; + } + } + public static void markAsDone(int index){ String oldLine = Lines.get(index); String newLine = oldLine.substring(0,5) diff --git a/src/main/java/UI/Parser.class b/src/main/java/UI/Parser.class new file mode 100644 index 0000000000000000000000000000000000000000..3def918bd8d4774684993d0b8a9eeeda2d9fc35a GIT binary patch literal 1911 zcmah}T~`}b6x}xonaN~AAwVsJ(hn*mlr|b|X&YLl6f{Z;Hc+M2wH(4V4oxO;GEsQ< zPxz=WeeuD8o3w- z@Rorj-d4M7I<6ax-B1rVHQX|wBWECwX$`kkou)emkP0y}mi@{-DKzFTg3QoQ02_yqR#d6BoqUYL9nemvd zf(v$ofW9Z45YcJdvAsJ2;dJJaKxDSIE(K04*p7VAtgcCS*;=dcB;iVHeWfAY7M)R+ z-fXQ}wVZW<{&c2O?p|U7Df4cv8mP#mJIE*$I^ItdJ*)KezEy8&Fy=N(vhLY6ryq@gVPP5;O)TLffx-4Z&3ZP8$s0$q)I z#U^SzeRArVcG-tM43hZfopD`ji}Q<@YW1zfFCNmbWSKZ-i$F%6wrJ1RI;BZBYBnb| z*G_+|L+!VY1v=U+XjU*5$CG9Cy6JT_-Gaj^2ij>`6=i6gDCc2SSjjO!OJwHp@y=~E zJXz&%l_I%|M&LaEqro9!On3mjh7cpbz&1j=2=5@WjYzU<7ttMPM_0Satyp3( z(T@bzix_1(#WvDP5#5Fs&i%xbcDf#FrB#Vh*f~V}Ov9<+?-73ieRU79Uy@xDso{MX zzaqX5Q)LMGf&-8(m=wY?w3quxyecQ<-^jG2 zUr_0oE2eG?b%38Ed;$mXu@=0W@S(`(|3Wd!JC`weND(yHr^xN2`$zJ%H)x#jD~Iqh zOIH`h!ujxYN-_KZwWM;%Q@iN-4tgs846$#8c=q@2Ln>F$su5`1U*^*!M|6euxXO=C zmcyB3`*VKl;t2nVh!BH+u%j^o4mAD;Y487&UMJ}kNpFz!CP{CRbc&?6Pm=1sqQEw) end;a50?E~F^zEU42caX&1#VUUZx9v2oBsf-5Q`fC literal 0 HcmV?d00001 diff --git a/src/main/java/UI/Parser.java b/src/main/java/UI/Parser.java new file mode 100644 index 00000000..ca5dbdc2 --- /dev/null +++ b/src/main/java/UI/Parser.java @@ -0,0 +1,63 @@ +package UI; +import java.util.Scanner; +import java.util.Arrays; + +public class Parser { + private static Scanner scanner = new Scanner(System.in); + private static String rawInput; + private static String[] inputList; + + public static void readUserInput(){ + rawInput = scanner.nextLine(); + inputList = rawInput.split(" "); + } + + public static String getCommand(){ + return inputList[0]; + } + + private static String getStringFromList(String[] inputList, int fromIndex, int toIndex) throws IllegalArgumentException{ + if (fromIndex >= toIndex){ + throw new IllegalArgumentException(); + } + return String.join(" ", Arrays.copyOfRange(inputList, fromIndex, toIndex)); + } + + public static String getDescription(){ + return getStringFromList(inputList, 1, inputList.length); + } + + public static String getDescription(int atbyPosition){ + return getStringFromList(inputList, 1, atbyPosition); + } + + public static String getDate(int atbyPosition){ + return getStringFromList(inputList, atbyPosition+1, inputList.length); + } + + public static int getTaskIndex(){ + return Integer.parseInt(inputList[1]); + } + + public static int getByPosition(){ + int byPosition = 0; + for (int i=0; iC}DjU#s`DoEb1Bqvl@kU9Ubri==#c}nJ%Garkm~VL1&j_ z^M36nIr(q*6XfscImScI$p^@X^5j?5!!Rg%HuJc3>(+hOty}fq*Q@^l@FV=q#!-xQ zqkxYsT(EHwKe2Hdmo&Jn!FZN@pX!CH7K%1L#5D`oEtK@)WEKK9EZo$STUm7AhK*^= zSeWg`4{^sPxT~?xEZnnjU(X*{cxd5~=KE(0^Rtal0H}Fb+oCtIk{J>8x2y7Y1-J#%k=qZ66B|lJ8_1c_@ zX56_dDcwsHPc&IzyTNDNc(E8frkUP>lAcVufjh6FyvE10vhCA}TOoPL=*VE+u)gI| z?oI{^v@jnjmCVK}qJ3jw(v21`#S@{nnQfy?g-J^6X*qJq^OPsBvqhLtRh4LxRj5>( zA==YnJ*ucHz78leTRf#*aWH^f2EKzQSQI!j{QrM4s5+=f`2!IB1_gNfOBISi9H ziQJ`0l`Mo_yrT<|h1fxYx`Snm2#6U6Pw|Y11da>jChCi7R2q(cd3V80WW^0+QF;^zBiRV+G6_Am zagj;Z`Bk2DW3C2j)WNWJX!klf2$OV)bz(A1o?qeD7Jj4M`z@1uTh+p4Tu)T9xV6O2{V(# zuPKVVo=0gJsHbwB(`E)kSun6AxskcGW_!x@Sb$0vT3Aa)&NWhNYfBrItWgb*UE^-a zf`KgsMsXe2V*9H&Nf;Ypodd#*u# z0&+0BNi3J5a6WQtwm|1>F+W@65m-O&H|CzG3R_MaDQ!w5&CvVy{;`p(5htp~78TYh z-kUZxKg{3MEr}|WTVr3_Z7gjh^O&2CPz?ln=2bGG;!5N%C4NZ4o`Kw^{gHgyotegx z?sc58jV1NCSP26gzr*j@s^kOlh(9R=`fBc?8V`eto80x21!8gH21zV%ZQyP7--oiP zSDhvfo&b9n0Nkd)HyQiJD;n^MJ|$HyM>8Cvd!7pm`f?YRc9c>Pjmy z3g#NAf<13;l0I&1N3n9F%7R{emytIGxmy{XSN{uI;Kjo_IWiSKHQi~!T~<<^P!(FhNFC$bimdZ2r*kkh6mv1;@_8e?k0{ zh`>q0u9S#ween?2tjDNKf4ZNeBfI4#wyv|=W~mPrKA^}jPBlgTjjj9wYVajGO9Wk$ z1eqyn7#cpgN`AaV_fXb;iEZDZM=N%y_#Zeol-+JW6En)xlo-z}DISxNC-+Wld5w__K1_f6 z`b;1rZw2xSyGti^AOy`o2ET706nR%5TzY39CmF~P0~ux@c?L2Vc*x@mDywibJg;NyEvS%DhQMx2Whg_VK~p%@_Y#?QT$Z zI8`R!uj~$$-KDb6sO%o`^R2X>FxddMW&2;CH+$p-`qs0No}Mo5vctUmn3?I|&i: shows all existing tasks\n" + + "event : adds a new event task\n" + + "todo : adds a new todo task\n" + + "deadline : adds a new deadline task\n" + + "mark : marks a task as done\n" + + "unmark : marks a task as not done\n" + + "delete : removes task from list\n" + + "bye : exits program\n"; + + public static void printLine(){ + System.out.println("---------------------------------------------------"); + } + + public static void printTaskInfo(Task task){ + String description = task.getDescription(); + String taskType = task.getTaskType(); + String statusIcon = task.getStatusIcon(); + + System.out.print(" [" + taskType + "][" + statusIcon + "] " + description); + + if (taskType.equals("T")){ + System.out.println(" "); + } else if (taskType.equals("E")){ + System.out.println(" (at: " + task.getDateTime() + ")"); + } else if (taskType.equals("D")) { + System.out.println(" (by: " + task.getDueDate() + ")"); + } + } + + public static void printTaskInfo(String description){ + Task task = TaskList.searchTask(description); + String taskType = task.getTaskType(); + String statusIcon = task.getStatusIcon(); + + System.out.print(" [" + taskType + "][" + statusIcon + "] " + description); + + if (taskType.equals("T")){ + System.out.println(" "); + } else if (taskType.equals("E")){ + System.out.println(" (at: " + task.getDateTime() + ")"); + } else if (taskType.equals("D")) { + System.out.println(" (by: " + task.getDueDate() + ")"); + } + } + + public static void greetUser(){ + System.out.println("Hello from"); + System.out.println(logo); + + printLine(); + System.out.println(commandList); + + printLine(); + System.out.println("Duke: Hello! What can I do for you today?"); + } + + public static void printMarkAsDone(String description){ + System.out.println("Marked as done:"); + printTaskInfo(description); + } + + public static void printMarkAsNotDone(String description){ + System.out.println("Marked as not done:"); + printTaskInfo(description); + } + + public static void printTaskAdded(String description){ + System.out.println("Added:"); + printTaskInfo(description); + System.out.println("Now you have " + TaskList.getSize() + " tasks in your list!"); + } + + public static void printTaskDeleted(Task temp){ + System.out.println("Removed:"); + printTaskInfo(temp); + System.out.println("Now you have " + TaskList.getSize() + " tasks in your list!"); + } +} diff --git a/src/main/java/newfolder/DataDir/Data.txt b/src/main/java/newfolder/DataDir/Data.txt deleted file mode 100644 index e69de29b..00000000 diff --git a/src/main/java/newfolder/java.jar b/src/main/java/newfolder/java.jar deleted file mode 100644 index 7c04f4dc506c9dad7b8424e2ac5ad03ec7df6a4a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10570 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 cmwK^D Date: Thu, 29 Sep 2022 00:15:51 +0800 Subject: [PATCH 14/23] Add: Level 9 (Find) --- src/main/java/Commands.class | Bin 3025 -> 3550 bytes src/main/java/Commands.java | 80 +++++++++++++++++------ src/main/java/DataDir/Data.txt | 2 - src/main/java/Duke.class | Bin 1590 -> 1664 bytes src/main/java/Duke.java | 4 ++ src/main/java/TaskManager/TaskList.class | Bin 3084 -> 3766 bytes src/main/java/TaskManager/TaskList.java | 32 +++++++++ src/main/java/UI/FileHandler.class | Bin 4471 -> 4460 bytes src/main/java/UI/FileHandler.java | 2 - src/main/java/UI/Parser.class | Bin 1911 -> 1913 bytes src/main/java/UI/Parser.java | 2 +- src/main/java/UI/UI.class | Bin 3250 -> 3849 bytes src/main/java/UI/UI.java | 30 +++++++-- 13 files changed, 121 insertions(+), 31 deletions(-) diff --git a/src/main/java/Commands.class b/src/main/java/Commands.class index 802728ad00151886e99bf6efd4d48d2701ba0c78..21b51cbb1091af6bb3fb7211405f12af83144edc 100644 GIT binary patch literal 3550 zcmb_e`&U%g75*-QcV@gGK{3QcykH`r=;YDFplAXPC^86&*gR~L3-<_DX6BMRcaX`` zq-`E1&AVw{#yoW;eI(ko>@-d7k6o*OO8ScNkENO|rr)?mcIp{rJ9p_TDr9 z{_mF;0c^u332epg1XAcrpdWkU*o%P}_9ZZgbOJ-zFXG_@x-b&Q7922fP{bo59yM_& zhA|U|WB9oU?n&TY+$Y}dm+cYR{zA6DH1R+T4~o!{$GAKuB)?Hz{=RPXj(Wng96%c=c^?6?XJIpY~h%%G4ivF@b;7>638gbAR?iw} zUr_4_0;f2TbJg5%Asjy1>lX;EqHn-HnevXJGSETYn=5nPVn!Yg>y!fWF7bxG;(@P>uoi`Si_ zeh?Hp?YvUiyq)o;m0k1;wv!2X{Y87q(V#Wl<6byrhf~VVOO7N_g#D(tdm3+9cpGmS zSS#_9t`jazqJ?+xu7y)#@Sdzr3yAk|(m>OoDjxR(cS+(ce1H!ve1wl#g7ZaXpnf40 z!{f))1go-M0uMPkXHo@8Szn?R^^t*^v4P~+0Bd-LeHBXg7+8I|Wz;|OD$+}f;*A#b zp~|uk{Q?gfqh9s=-yb26hlPVNw zy54l-6L?)&*b|n;jqL*+>B|`qfheXHkCoN!9ZO?=2NDK~$w-LuSj`Z`R!3~o-h0{D z83C9Om7aXcmn^Q-+=doO5(Pb0A|JJp?tVXv)EgG5SA>bYa)ODe$YSG_QgkJzrsKNN z)H2C=)O(m{v`iNPGrc4`nvDh^M?J2qIKXOY+*=&+^IkNDbz&FltTKruNQ(8%A<4k= zL()Lo74R-ixP+ESJ>f#682yxIYkdV(G+|}1x_Z_|NvS@{DP^GJ3bD$!TL`^OQV%>S zV-`YG$I*~(D%)MA)NvRs{FdCx?^a&COj)iHTyt*oc^h}@_%`^i+4NT!=d|L__*|}q zF~o6uMYWA``7=wXDq-1zavhdYZ1Gu3!#Wz>Q8Bs=RoZAJjn1RGq2>aXbGcyLfNCmS zL*oXlz$%)rrh{!22Vc{HxIb9ct>c>A*Ow5xfcRgKIE&_?5-hIHBT+(a_gT~qNtBh0 za!&LH=Ox#aB@L9W(%P%f(QgeSu3=nxw=woDgx-aE#*{1^MkAk1+^wZXGjXk_-bPy3 zxR$A1hgRIkeH%8QovWL16Fqd$#}<0ogzeajUUXtNPxkO+kgN_c?RU~^D{8)_qbkY2 zi4`Lz>f(D$)PKt;RVKRRQsVS5e^Ebi9vYd4H98O1e&0N7BiJtHVJC6zVjlVk|1Rd? zZswtf?E9F9UgkmArpR_L^N^;+09owg$skXLnTHXs4)AmE2jpQ#B@d@`%79*74RZIq z;z7Ce>*R_xrM3UUI=vvt8>(H_L8&ZgK8qEiyIype`eo!|=^K{&zLjfWjM953Kf>L; zEb04L1^1Kd1HAnQdBYC*jgyy4)<-pmII7bon&Pb{&AKa4zamsAUDhZY#@?~EgcjoE zt2I4emm3y?ZYJo>CEWP`P@B4Hr7i{acGfN6G1M`b@VT4ec}T<$@pb~D&a+;Rvo7a| zyoeqAnU>;Dv@{;q=o?Wjm1yWfZ2AUq6FWBulU?7zM2;CMU_{c`|v4OkO6FSIFd5GI^a$-ncrGyDCinQ@)e_$~gItV-s|8($0^NgB)kzPpB%qOO4aiIYaIDSymsA+J_u0XK3{ihs(ztB%jdw zQ`-ND9zG+*KakcRS!#b~(|yiz`+`k&PE*z6!=l@(j*q)5yl1E?lejr*8<~q~X@pHu zf26cI&BE)9TEgUa#C&mWBx2wKucX8)`HClhBiAp9{qJP<4_t?f#Q#r?iE#F@4WbGn KupU}gq4$4CHV&`= literal 3025 zcmbVOSyL2O6#g2}o*5cY6pf(RxPsfbZ;&X6=tMva?j~w8eT9~pZtUqn#wCf-xFznI z2!xG?#>>rh_ zV-Xw|%?U9+Da$EYK9;>tWaD%MXC(MpSu9!lB1npjEiX!>b0YQY7|`KFa9&h{5`fEY zq;#ZpxEjiBl}Y-}P~doctL{8+4O{V)<@U#W1K)A`n>EaAaax82@2BQ5ob*5viv~}6}^F#9PF}&#;l{XKH{dsJ@Gv3 zwR?m^sa;uiiotbI5usx5uyPqoJla)C1>70Z5bO1_eo}Qfa(2ZYFP*krJF`v*7+8n6 zjtd5Sd1ed*^2{0-#zhU4?b$)K)7z^C}kz~_h? zxP~uuT$h&{8tNx9)SXSGdOXJsl)rZ*sm5|x+mljOMw!H{eA6Aqh664#l z+`(M~U*T&5_i*3916)7^SUO>maBVemFdG~^*XCte>`6JR9V6t3iRonn(>rJS>|;Uu zEp8b24)@tk<9(uG)#p z1~f{1J(izQK3lzC1?`h3d~RdYR4)!wMp=Gxpg?fNbb&ixXGnxG8Q<1SyC*3yc$C|t3qCKSBwX&C`9k}g2DmSlPro#-Lmb%)uHqJUgr{# z@Sc)`#_+TTMMR0F=~#pz!pbtEQ&waSHcl4LMAgR>9QH zG2q2UoZ}aphLzJ~c&fh~Ehn`G6DLI&XY4+V+2Lg+ncw?%wve9l<)GqmTS;RdcVL#0mRjYZRy)XSfqM@b%~6ULP&rP|_ zS}w$5W@aU&MoLXEY2Uz9EW>sz#};~(qx7_niiD1;D4n;y1K#R!ymQ9!&YcEt&D-!c z67L!wxt4g>5$_hFj1%R0;@v>J8;N%lrOlMK^Rr_*yxWR+e;CVeTQR?*sCX@h(Lb;# z1V1m2`DJz<@8z)|RMd{5TryuLOjxH<0yByU-bfkzIa7*V)bHWjZl=5yHT)Ga4;=)( zkLlb`=n29+z@4rTY!qdklGr8EfZK~ue+?@MbcIkCHrM8{i2cAveJ4S836RCb!V`2o zF|N+Td>d+=eK)U&dMA4j=ppJu&~cP+$GCrr7RT8vCy4qa8{#z6e1^!+q8S!{?j_L) z6{4>}*((}r94wOf3sD_AmI{-dZ(!2!&PE|7^&Cc|WM zkxWL&Bu6Hf$>i#PGifd|`F*S=%_S{iRhE|7Eu)yt5*0_ayrqsEb6~teE2KiytmJ>= zsyv#c;b(B5Dmh*YIcCe)6NLe7!z@GOai w@sK0&n2rC06Zw=0e-`qnmx@#}Ojwd-75j87f5n27=xC9Hq)$ diff --git a/src/main/java/Commands.java b/src/main/java/Commands.java index 885e5446..58ad11d5 100644 --- a/src/main/java/Commands.java +++ b/src/main/java/Commands.java @@ -3,11 +3,11 @@ import UI.FileHandler; import UI.Parser; import UI.UI; +import java.util.ArrayList; public class Commands { static String description; - public static void runList(){ UI.printLine(); TaskList.printList(); @@ -20,39 +20,64 @@ public static void runExit(){ } public static void runMark(){ + Task temp; + int taskIndex = -1; + UI.printLine(); + + //Handle empty/invalid task try{ + taskIndex = Parser.getTaskIndex(); + description = TaskList.getTaskAtIndex(taskIndex).getDescription(); + } catch (NumberFormatException e){ description = Parser.getDescription(); - TaskList.searchTask(description).markAsDone(); - FileHandler.markAsDone(TaskList.getTaskIndex(description)); - } catch (NullPointerException e){ //invalid - System.out.println("Please enter a valid task!"); - return; - } catch (IllegalArgumentException e){ //empty - System.out.println("Task cannot be empty!"); + taskIndex = TaskList.getTaskIndex(description); + } catch (ArrayIndexOutOfBoundsException e){ + System.out.println("Task index/name cannot be empty!"); return; } + try{ + temp = TaskList.getTaskAtIndex(taskIndex); + } catch (IndexOutOfBoundsException e){ + System.out.println("Task does not exist, please give a valid task index/name!"); + return; + } + + //Printing result + TaskList.markTask(taskIndex); + FileHandler.markAsDone(taskIndex); UI.printMarkAsDone(description); } public static void runUnmark(){ + Task temp; + int taskIndex = -1; + UI.printLine(); //Handle empty/invalid task try{ + taskIndex = Parser.getTaskIndex(); + description = TaskList.getTaskAtIndex(taskIndex).getDescription(); + } catch (NumberFormatException e){ description = Parser.getDescription(); - TaskList.searchTask(description).markAsNotDone(); - FileHandler.markAsNotDone(TaskList.getTaskIndex(description)); - } catch (NullPointerException e){ - System.out.println("Please enter a valid task! "); + taskIndex = TaskList.getTaskIndex(description); + } catch (ArrayIndexOutOfBoundsException e){ + System.out.println("Task index/name cannot be empty!"); return; - } catch (IllegalArgumentException e){ //empty - System.out.println("Task cannot be empty!"); + } + + try{ + temp = TaskList.getTaskAtIndex(taskIndex); + } catch (IndexOutOfBoundsException e){ + System.out.println("Task does not exist, please give a valid task index/name!"); return; } //Printing result + TaskList.unmarkTask(taskIndex); + FileHandler.markAsNotDone(taskIndex); UI.printMarkAsNotDone(description); } @@ -86,7 +111,7 @@ public static void runDeadline(){ description = Parser.getDescription(byPosition); dueDate = Parser.getDate(byPosition); } catch (IllegalArgumentException e){ - System.out.println("Invalid input: task/date not given!"); + System.out.println("Task/date cannot be empty!"); return; } @@ -110,7 +135,7 @@ public static void runEvent(){ description = Parser.getDescription(atPosition); dateTime = Parser.getDate(atPosition); } catch (IllegalArgumentException e){ - System.out.println("Invalid input: task/date not given!"); + System.out.println("Task/date cannot be empty!"); return; } @@ -131,21 +156,38 @@ public static void runDelete(){ UI.printLine(); try{ - taskIndex = Parser.getTaskIndex()-1; + taskIndex = Parser.getTaskIndex(); } catch (NumberFormatException e){ description = Parser.getDescription(); taskIndex = TaskList.getTaskIndex(description); + } catch (ArrayIndexOutOfBoundsException e){ + System.out.println("Task index/name cannot be empty!"); + return; } try{ temp = TaskList.getTaskAtIndex(taskIndex); } catch (IndexOutOfBoundsException e){ - System.out.println("Sorry, index out of range!"); + System.out.println("Task does not exist, please give a valid task index/name!"); return; } + UI.printTaskDeleted(temp); TaskList.deleteTask(taskIndex); FileHandler.deleteTask(taskIndex); - UI.printTaskDeleted(temp); + } + + public static void runFind(){ + String keyword; + + UI.printLine(); + try{ + keyword = Parser.getDescription(); + } catch (IllegalArgumentException e){ + System.out.println("Keyword cannot be empty!"); + return; + } + ArrayList result = TaskList.find(keyword); + UI.printFind(result); } } diff --git a/src/main/java/DataDir/Data.txt b/src/main/java/DataDir/Data.txt index 51cd00f7..e69de29b 100644 --- a/src/main/java/DataDir/Data.txt +++ b/src/main/java/DataDir/Data.txt @@ -1,2 +0,0 @@ -T - [ ] - task1 -T - [ ] - task2 diff --git a/src/main/java/Duke.class b/src/main/java/Duke.class index d37f3148b2309f8a5a00766c6290175b7c3b47f2..c8559008a30360b8c879df66010710d8242cb802 100644 GIT binary patch delta 960 zcmXYv%~KRd7{-6^vcnAH2%ABJvJqE7P-KJv@*yawe25W@paw)SL_|?s*9A^ixyivC zQ!$)kRdSsw_25Ujj+Ujj98&rRB!7VACAp<4hZL2!M|;GMep17h2Pg+ zyaGB|aoJAbvWI4a7MIUyHE1iNoxKhnuBN(Ny4h#YM-E#|^%8IAK0AZZlzX^3G3Z$XL{Uz|dBI|$VyONG%$j!hnk8M6_>|)?o#P)(^ z?76^C6)9-?WU29Ef&WSTc+fVsFYx`?b~whi1b$^~8&YvP6ZjiqUzLjEsleYDdpo81 zjmdku9Q0&9G)JXPt6S@!*09#7)&w&!rJeIy7b89m=}+p0RfTj#Yzk?O*c{RnQ5{kr zkq*g3d=^q2u_a_fL`_Kf$DQ3;BonUvXig^)pU(GeTfJ@VDs)jTJ*4FTHPX*kIZQ@| zsFe}w0ymrgBtV+wYe{sz(wL4y2)BoF_qQn3I delta 907 zcmXAlNlz3}6ot?2uIj2Ti@^c}nYwM}p=e|t8kvznCK06>)CR$BXa*THZfG~UHyszU zaAi`7ZV(kKE=*kL!i1GOe}Hl2+JzzBSH9HwPMxaz-hH``QjYb+x6_ZG05oGugCA8I zs$mM$Xb7TK;G!3Gs8`XTp%G0Qm$nGBYA8pWigw{46&)%rspwSErJ`F!kBVLmedre$ z5V$NbC@>^2EHIKGctypiIDAaOxPpnN2eXMuf;P3ex4pDH5Q{GpynTCX%QdT!`w<-% z5KwSc#}ooOu8A~iG?&>Mas6f-^lKf;R=l=3^5x^j4{%moWJTsGY9 zkPRvCfF_bdl0Wg8H>rm!k6*LDJNf1R$^HPe|C>FGy2BUj!>IS1ut(7p9bkVVf89P{ ze_1H~m|=fr8u~F(p5vaoNwTnJ8mUfPlti32jWj1t$s&%LM!FOGJRB3aWEy9k+^C4( zLDMjtSgMNXH;oJ@W~YmCq?<;jla+KX&yrqodm!QvP}qa4Mpg%_mo>y1XHB!_Y-Cwz zlXwE>EY#V^4q2$Skz=9M#(8dMBiBN%jXVpPHu5c`+K`XnF$#`RXq_I3NxPg$@57h; zB3C5xkxM@0Q2>Qh3?G%jPn9Sl6U9`EGO9;8HKB@HQB5HPsS~x-gL>*m0}Y~?M$kfI vXs1bpD2y(eM>op2O9`_6;tZW4s-T=7N_AG6UMnlIv;IJH!Aq!c?o{~?$z_u{ diff --git a/src/main/java/Duke.java b/src/main/java/Duke.java index c526d09d..54a8e034 100644 --- a/src/main/java/Duke.java +++ b/src/main/java/Duke.java @@ -55,6 +55,10 @@ public static void main(String[] args) { Commands.runDelete(); break; + case ("find"): + Commands.runFind(); + break; + default: //unknown command UI.printLine(); System.out.println("Sorry, I don't understand what that means :(\n " diff --git a/src/main/java/TaskManager/TaskList.class b/src/main/java/TaskManager/TaskList.class index dfb4d3ddfba735a1bb13565967cb25286a5a2b6d..56cfbda55fb08e6953ddfe69d85b096d58624844 100644 GIT binary patch delta 1630 zcmaJ>+gDUo82|0Loim3m$souugB6J~7n=|qO&k)L$u0;c2x6rjhr=*{XJBSPk!-Ta zsO(~=i&}QUN?WU1Dyz}eZS~TNtAC=G>Y|`ork@@{q5iP{l5L%-`U5i ziZz8Re|_~Gfc5xPK@go1wkxpV5jO(Zp`Z?3!s?c=Q-OpY3B3y3=n*@+B=otl8;{C( zOu^&WBV(^Z;3pJts516>DDQySNqNAK7VaSrB~QD_8j-P|JPGI?*pZeoD)z@ba0p}z za)Kf+@{Nm)2{9aya8S5A#bQ#R4oR4j@Z^Q_QN|7%zp&{&`_=4lx0)MfP{#H7g<~MC z_cH|Q+lSN%H8P^=sYq8oo7Pj!0n0U>Pme@evsrbrJ)O%pGsG6b9{)9L4B6^~4Oq*t zRPbz5bv31BBi)&JhNA&djy1TO<0%w4LI@k**u4G*Y+xu`2v1CCdYk#U^k zbr=jR&hdtDyh(O~<1Jyo&2d81bP`86TCs)W6xMRQBTiCoit=9tINrq!$7#IBu>vHT0XAjlG*fVKAq7S9dr(F;-4Bh8UrN6v z&#^h`R_!brB`sgBNkvyyD_n0rp`Dl9X$! zr8;>U$uD-wgO^deiGqEL1Y5-n(2-Ik_#h>CfQSp$$rfc^c`NfUF^`ym<|+P{c|own zoFV2>VjiOe58@#zSV&qpL5Apr#Mh|nyM$Hk_L!gKoy9u;Wt4TSDPnc7i276TlDWb% zOUd*J^Ca9MvYoxtHg@*LmC$)gWHXy{6|n$$l751^`2bz-LDXWB9+pG&P){L7{x>~nD4EO`!&Ta|LrnIyXXZDv6o k_=skO?sgWR;0$$olGb++MZah%4gE9@n&YrJX3R1BH<-vGI{*Lx delta 1127 zcmYk6ZBtcM6vuy?bGhf-bGOR9j>JWn$st7^FCd~(Y9#c45Q?Od4{$3~K%oFhMWxcx zipo4ae29FJGU-gsG`(o1nLa>o`vSe`rK#0_pX(&&#olYJ{a)yKL8OuEHMBjSrb7w8*Xfq@oe74il!8Xfz7NS4A z%Fzn}7cG}qw7g4OzZLg!1lSr(x|x zVZM+*GdF%J-!(H+IM+8mI~Sc!{N;VhXHlW_&%oz%7e0z^ChN>s(eKIc&DYVA-*;f6 zhK70?S12j2S>0}kt&P%+TG6aEFH5y{qrJ5LF6Nd5LyOjAY)ojdt+YwbN6kUQ26y7d z0dC}JG76SsmE(9m zqcR-1^lcKAcS!$?{Z8siidAyhUaV%hCsk)mOEeuWY<^m>9LY5gNSTKW`BpQS{V!V$X$i$D;GBRI{L0 zo_o}iKFa7fw7V~Ho8(RHD=XZu$X#Mp zM7BO^NyfD#YO&dB$6>V|3>+ljkn#`59>uYZ*xHz7acoDF_oxPTjCG6%z5D-r(4e^P zTjMR0{E?dByF9f_;_;1e{{VL{5_ find(String keyword){ + ArrayList result = new ArrayList(); + + for (int i=0; iC2U@MEQTSCB>UJofDZ_9+-i2Z0$vKKpomI}X{3ZZoZ~Sb z!kp(d7l?3?1-wML#0Hnyrj(zQu}e9>MJBkyU(rdbWv}8NJ_EJZ4`+_)Sx-2#jo;5f zu986=N4ZW8_2kpQX>MptqwoMVG%3BwEv6~?r`WmTFeA6a9XucE$*idj1utN#JL=xXBt delta 494 zcmWNN%S+Tz9K}C3w8r0LilBs%sUhK@j0+!>n)VPK8wF8Q$G4W1uTpf(%AzNlLg}x3 zfMPAu>B{{ZN zv0Q7Mw%e^O(8hOeCv08a<=bhQ}yu`^X zBGofaWEVsFjrZy~EcFP5e4vbvN;0Y}V`7Z*nokTesg2Lt7}qqR*HoZ8%$TBS;bw%J x74D00UxoW7+;^eoRc%4Ve<;WzZ7eC)vJ97GvLehcfqn|SDrJB!H{%LMOuTI2Dl!&M;T1)$DKctd4C6^Ezoup zFC}5%wuw9HVLFLA+*X(`o5(h!3->G%M{zSIawhWXS(=zNF{kwAlc>ji6AMaSuuz0& z!Z)#~*f$agOoS$)1WE}k8E7c@bH0J(=zV9&NfjJ#E;SJat~WPeU{B6379B4?>V}bl zrnKw1(M1FGon1Ex9P;zhz}`{UljEi0j0`57nF1xvi-bo?Y@kK+lTNsh@n*S9Tj!{H z7;`*lP6jE(4=7_T6Oogncv0I(U|Fkfb4jT-&jnIOQ=tsFxHdoL1Pg=Vu&)+OZjy}q zQ7mk&dNG*K%e;Z7s)AuzkdYF_UXQpQ`9qy?HcF9ONDT&oQ&t(!jy6xYbDk5G0%f3|bR@DagqYSLG`)l{u#(wQ&xq1RmHZ<4ptS&;I|P1ioTp1${QY ziibAdQsirRn84Rw<9m2$;`>VF2NVq3_@NT~$i|QH69d*&St$5oHt>r!&Y;J}^GMk^iyi}A!=(k; zFSJI7xHa!YBIkG_Bk~0JfhhYW5&3zie2IIhwo&GV6LQv*{Wi`kZ}!#1o*%_itVO+% z)cGmiGx0O!+s_S{ugRjnB=Z{kLIS_A@k_jCAT{9!LAggn^D>aa;m`9$#M%o*(TQ^N ztajx}AVTQ`x%mz{esx2Wm?x<(YB282_WvwXNDKVYR_GCFVoh6rDu?*v%L-Cmvs$~1E0;xzVda+-G z^Zs%uoI*j!2b8F=brvkSBt5FdgA!#ur^rl2dOjPuMM=1m&l4>?xh!g$7WdB=X-%uh zt;*FoD=(cq&wv!^Dp$pbnR2|^#?)3L8&a)f6z!O+9K1TZ4R%+6)hLxrOm^>Hr9pXls_5BCY9yEHC>(p035EB|}~JY73Mh zLe-gYyD2;)XYp;!$3xxgt}1{$X_si_R>t=1c_&)kzs^+Wta=x#mMz3*x%W; zOQO?>`i0SD;M8V7<)YnjDN9)>No7PEm?_5wthkU=26waecy_t33AF?6 zn>5ACo8@zS++Wt+civf&!l)FZ>&0zQRdI(3F0-R+agl7j9Qi&F#`d|=HfUU;0}1?E zb?V<6I8n=*>n-^Uvhvaq@8O7(i~OLRz(-8=sP8Y77Fit`&y&GW!3jgj%)h@mkrf;9 zopzOPECm^!h=Bu}HmH*CO_D7@RjfOx-`S*J31o9xDkg?_rYGD;GRQv~IJqspoqRKJ z?8$oQ;5%G5-xcd%sk@b&rEXS^d-#&b_XW~t`E-<{!LhOXFEIX0#=vu=O+_;hkqd zFY>9E5%e*<3k>fihS$&V(vOA5*eVfjgmdl`#v1awnY&GMcW7=J&)_c2eE}EglR9ZD997U4 zSntO_j8DVoY4s60)dDBT)~DOmwG@KJl>$}RZU;l^sc7v{{RQ>uN?pY delta 1502 zcmaJ>`%_a#6#g~|xqB}w;;l502nGa|kf1@O6fG*gCg0MlD>?3u0DxN4gq!qu0WM!c|<;Q;{KmQDF&rg?Hd7TsP)jcmmC%o>wlFm*=ie z6w6n<`O@Y%mL*CGWxS`bg1mq@r|>>*&`I-uLg52=5+9l^A93Nh!pCOe6APaz`1nk~ z87nR>dg;r{-jYHOb}Gm$dKGqIr*4TJiRO^kGtth}O?)o#g(3P+J9;uct|Kv5{}6v59ejna1#DfmdLrYy z^+T&$|7rcA`>lk&DsM^)x6Dy@b-&#!zSA@Iui|^%W0X}q#)|D{R;FKA{~XUTy|u}l(?*_51<8%3Y2vdFoFvyN zD2x$%poaYyH1!ndX+jHxP7pd+haL`3^^r2iZmVJGSI}NXN4--*L2l5VXUQ~0rfDSk zR: adds a new deadline task\n" + "mark : marks a task as done\n" + "unmark : marks a task as not done\n" - + "delete : removes task from list\n" + + "delete : removes task from list\n" + + "find : searches for all tasks that includes keyword" + "bye : exits program\n"; public static void printLine(){ System.out.println("---------------------------------------------------"); } - public static void printTaskInfo(Task task){ + public static void printTaskInfo(Task task){ String description = task.getDescription(); String taskType = task.getTaskType(); String statusIcon = task.getStatusIcon(); + int taskIndex = TaskList.getTaskIndex(description)+1; - System.out.print(" [" + taskType + "][" + statusIcon + "] " + description); + System.out.print(taskIndex +") [" + taskType + "][" + statusIcon + "] " + description); if (taskType.equals("T")){ System.out.println(" "); @@ -43,8 +46,9 @@ public static void printTaskInfo(String description){ Task task = TaskList.searchTask(description); String taskType = task.getTaskType(); String statusIcon = task.getStatusIcon(); + int taskIndex = TaskList.getTaskIndex(description)+1; - System.out.print(" [" + taskType + "][" + statusIcon + "] " + description); + System.out.print(taskIndex +") [" + taskType + "][" + statusIcon + "] " + description); if (taskType.equals("T")){ System.out.println(" "); @@ -82,9 +86,21 @@ public static void printTaskAdded(String description){ System.out.println("Now you have " + TaskList.getSize() + " tasks in your list!"); } - public static void printTaskDeleted(Task temp){ + public static void printTaskDeleted(Task tempTask){ System.out.println("Removed:"); - printTaskInfo(temp); - System.out.println("Now you have " + TaskList.getSize() + " tasks in your list!"); + printTaskInfo(tempTask); + System.out.println("Now you have " + (TaskList.getSize()-1) + " tasks in your list!"); + } + + public static void printFind(ArrayList result){ + if (result.size() == 0){ + System.out.println("Sorry, there are no tasks matching your search!"); + } else { + System.out.println("Here are the tasks matching your search: "); + for (int i=0; i Date: Thu, 29 Sep 2022 18:24:29 +0800 Subject: [PATCH 15/23] Add: branch-Level-9 --- src/main/java/DataDir/Data.txt | 1 + src/main/java/META-INF/MANIFEST.MF | 2 +- .../java/out/production/main/Commands.class | Bin 0 -> 4360 bytes .../java/out/production/main/DataDir/Data.txt | 1 + src/main/java/out/production/main/Duke.class | Bin 5950 -> 1830 bytes src/main/java/out/production/main/Event.class | Bin 554 -> 0 bytes .../out/production/main/FileHandler.class | Bin 3740 -> 0 bytes .../out/production/main/META-INF/MANIFEST.MF | 2 +- src/main/java/out/production/main/Task.class | Bin 1050 -> 0 bytes .../java/out/production/main/TaskList.class | Bin 3414 -> 0 bytes .../main/{ => TaskManager}/Deadline.class | Bin 561 -> 597 bytes .../production/main/TaskManager/Event.class | Bin 0 -> 590 bytes .../production/main/TaskManager/Task.class | Bin 0 -> 1162 bytes .../main/TaskManager/TaskList.class | Bin 0 -> 4520 bytes .../production/main/TaskManager/ToDo.class | Bin 0 -> 423 bytes src/main/java/out/production/main/ToDo.class | Bin 387 -> 0 bytes .../out/production/main/UI/FileHandler.class | Bin 0 -> 5388 bytes .../java/out/production/main/UI/Parser.class | Bin 0 -> 2174 bytes src/main/java/out/production/main/UI/UI.class | Bin 0 -> 4348 bytes 19 files changed, 4 insertions(+), 2 deletions(-) create mode 100644 src/main/java/out/production/main/Commands.class create mode 100644 src/main/java/out/production/main/DataDir/Data.txt delete mode 100644 src/main/java/out/production/main/Event.class delete mode 100644 src/main/java/out/production/main/FileHandler.class delete mode 100644 src/main/java/out/production/main/Task.class delete mode 100644 src/main/java/out/production/main/TaskList.class rename src/main/java/out/production/main/{ => TaskManager}/Deadline.class (52%) create mode 100644 src/main/java/out/production/main/TaskManager/Event.class create mode 100644 src/main/java/out/production/main/TaskManager/Task.class create mode 100644 src/main/java/out/production/main/TaskManager/TaskList.class create mode 100644 src/main/java/out/production/main/TaskManager/ToDo.class delete mode 100644 src/main/java/out/production/main/ToDo.class create mode 100644 src/main/java/out/production/main/UI/FileHandler.class create mode 100644 src/main/java/out/production/main/UI/Parser.class create mode 100644 src/main/java/out/production/main/UI/UI.class diff --git a/src/main/java/DataDir/Data.txt b/src/main/java/DataDir/Data.txt index e69de29b..01f76c80 100644 --- a/src/main/java/DataDir/Data.txt +++ b/src/main/java/DataDir/Data.txt @@ -0,0 +1 @@ +T - [ ] - task1 diff --git a/src/main/java/META-INF/MANIFEST.MF b/src/main/java/META-INF/MANIFEST.MF index 9f37e4e0..f3131026 100644 --- a/src/main/java/META-INF/MANIFEST.MF +++ b/src/main/java/META-INF/MANIFEST.MF @@ -1,3 +1,3 @@ Manifest-Version: 1.0 -Main-Class: Duke +Main-Class: Duke.java diff --git a/src/main/java/out/production/main/Commands.class b/src/main/java/out/production/main/Commands.class new file mode 100644 index 0000000000000000000000000000000000000000..bc13f7efb4ff18307b5c1d1e056ae22d4ab23a19 GIT binary patch literal 4360 zcmcgu`F9i775>K9j3kej7z~CsFlO_DK_qFD8XG4zvca*84PKh9O~%&49xQ2`(a2ad zO`0@q);3E++9qkq3e84h(h`NX>5o09e@p*_o~GZOkz^SJO?ys@4>RxGch~RT`;Gqg z&nsU7xC2)r*pGW6xEJ?Da6cXh<9qmi2oFZ^5UdDhFe~Cj1Tm;E_Ti+CIT0%n&+D*5 zIHhADgro>k5v1XWw?)}LEL&H$8692-SrIPDA0Qog4N)%U097;?t%u5u3F3T2x1I5Zp!iomuHoqD!p`; z>GZpBJljyUGJ3lWNXN_PcZ0luEBDsFnsXWhIgX zme3@!DrR|HMP_p2PR5oS((#;z5cLL^Xv}4T8k2TPv@EZv732|9NhRiz$B>;)aJ8Uv zryZB8^{&cflXTD=q?YyUWYh;y?uD3aT6>qd#o~Q-R5Iwj7S=vGiA*?IcUBGA(j9fh z2G}nxX5bdws^fVBKa=;*4ZI-l7Y)3Gmo?PKvJ2{xl$vF8 zH%j30VPB&a@SBF3sp04p$2q)6zVn3DG;F-uGN7xXicnWsyop?f^g@1gva2IyJJE4* z$S}%EaT+%G39c1$CjF>Ma&L2c8BG+(SNJx}{KhReqg)Nfobn{K0t=ClnRtCc*zXm@ z&F#Y-*G^=h7%QjyjqQbTUQ75DGhv{R5SxVOM}Q%iTRn4=@jgmsPfCIjQR&ab96_^!al=ne3_p- z>l1(Fozdf0<0l|T{fUGkP1ezPphUiMMFe)W&q`lN2@-I1Ed#G|cw2>hueF!Z5~;t8 zz(e#?;P}Q;Rso|kuSmk@_5hUXlVm9k9Tj3#Bx|-}(8s|?p`~DV)hD218m;{GvY)?s zc=5urTt&DhZ}WK@cTv7IzH2%^hql5+6~4vidS4jAx4AX~1>DXbPCyvnDH*qMFaPvB zs`6MT=9+I_k9AxdeAdxbJ&n3cMz=A9{A-}mB~&-nT*i7XSB;xc&EuPB+=N0oz9NFu1yeNFH^)7f?4UQ5qO!Mf66BlA8*W zCQ3K>+8bBsw}ufnF|NGZ82c91-Hk?`2rkoT=Cg$vY^BCF=Cz%AduU-|Gr_(YJFtuU zHta+@R|l}09y;h_AH8(4ioF;>7Y_5}2v0^>)p1^g;M_;3HWRQO^wNJjefQuHSGO~E zAMT{aL0@(kWrxvFkX2zE{q(6(21c*>ipf-QtLdm6*HIrnqNDLET2|?Z$yJ9j_`kxk znOJV}vE2N1vAl!Hb`#4(%&U)B4l?~aiNjsQvY!YJ63YRiA&A9@*iqsUr^PVQxSJ;< zJQ*XF<6Ir*---V-mP17>`JEKlfdRiOr3cw+Bhq|Zq}6;_w*D12`wIf~&FTdEF<%gD zyMS8J-7dQHvyONe?6jcoZsi)7;_e>GAK>m@cFKM1#`}ragY3eG*l89qnjtm`B6qSh zyLGhaAwuvwB#i2~j+XEao#LaV7GMFJl|a*qg_$ ze^-a@&r`9EgPbV9W~fup;c&OebB{GV%sY2kM~0JhniI3kT5`<$3~&7r-uR<_J)Pu+ z4YVHSsYZ*SvMTx-^1A`F-d8x4d1ywp%!B5SL(4x9)-keEDvw{M^4(v%@;(1e<&QJ> zCz$P1to&(K@;sA!hIKs4%AaHIFR=0#S=&pj{AE`D3KM;GP35B%DnG_K2r3UwZ&>+Q zv2tyH;m(IjMEal7XJ;O5?BsU-?+6B7npVg&%<-+~=yvf7QzXw5By!+2Mty@C=csd@ z+HbOv-y#%mlTy#q>K)SRyQI+fX#GCzKc~$sL z6jBa|vx{H{#CgD%32}B)FOXFc-m8eypu!D_bG(Qhf9+QB57-tAyL?sRGQOQMBZOsd zoWs!-46@E|ZVMY%J|KIT32>R2<=F;*;>j1p>k8}tBhmRYw%|)*@R!n+>(o5X>Orlb q+4;kkR)K5_aXf(uCOt_F`A`RvDXydmSkT=Z_Mq=6o2IM^-~AV861xuo literal 0 HcmV?d00001 diff --git a/src/main/java/out/production/main/DataDir/Data.txt b/src/main/java/out/production/main/DataDir/Data.txt new file mode 100644 index 00000000..01f76c80 --- /dev/null +++ b/src/main/java/out/production/main/DataDir/Data.txt @@ -0,0 +1 @@ +T - [ ] - task1 diff --git a/src/main/java/out/production/main/Duke.class b/src/main/java/out/production/main/Duke.class index 7b6a2020ba2f0d7c4b0ddff766195e7c4720080f..8a43badc117ecb52741c33975c26459c0e02c7cf 100644 GIT binary patch literal 1830 zcmZuxO>-1g6g@BV(LJ3e8JYwz2y`Hl31k=~7y^kTm=B0fJ|qc}AYf}%%W~<$k{_Tyz;flzDi>DDdwWtUg){TcedqOk_uYHn>G^T{ z+wTFK#RCmT(67;KfZ?2m^B80p%HU;OP%*4w1Q#{Df>DMs4Sg6_F~Rndipwe{RlKU= zH5Ek_Q!1ua%xIX!>kL;I<{0J~78tHFyuomdVNt~rpK)Emn+k3Sq=y{O2`>mFay?fC zlB2#Y1zL-aC#P%WWf{y{%Py@LMZaXZSFONdzO$GN*PJTFD2~-O2R>FU_*z?PGxvHd{ih!*Qtg&ZX=*dmN)4bsyEo6`fFZek_>&@7f@|!*)DaEqRKnc z3(3Wnt_*q0isRV|syafBUSqh!aF^j8!zRPq4EGt{L6<;r&JTjkUUSm4eXlz-Yo0BG zYG`@3d3VhU&5)riEw5^x&uQkYE3K+D1GyptGxW`pUoNvRSI}wdco*xG3O7k0`|oYc zEU(KFW&59{#_b8TEKC--x0fl5E2#q+)(x-Ft*NeW*+q&?1(V;xBt2dYqzo6Tv1^4C z5VEA64!v0oWtn>E*JxvVLlur+m}PG|S6XG#)SfuKrnegX1_sE3~<3or0wR z@i0PDghXN}Lh`^P5kyFRg|wk;L5+}!piT8oH}xm;TWJ2ALf~hP^LXWbCf_~z&HR<@ zLx=~zleJLz;~TO+;q>EA$zDNU`U%+z`qw7Newg|pctrM#L&;yRk^LlZ=v&zJG2Tn` zC+oPMH(FvEB$>K-qcx_b6w@1dBOBBCG}Gz4u{);Y3e(}dVZ^jwWqK-a?1^c2Hug62 zMqAAHWn=ej-e`}xk|qE4bhAmuO7Un4_^s;}#7WVQ(EHN$T6a zItC)_uj6!t=j!N<&{4;+2nXsgBRpS6M}&iQv_&{nN6Suw4{yP&Z-2zsmH=Pd2XxDP zbb_ua4UJ|xn$dz*WMN=8I?#rLXeY1zVgMat5C_Bs919 zk_m|fCrNFTow$orc#$M@npijX{e@<+jf#Rk`iYkK)7q+^Nhztu=TB%X+B4+dgqQvX Dkb#Sk literal 5950 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 G%l`qUZ$U%= diff --git a/src/main/java/out/production/main/META-INF/MANIFEST.MF b/src/main/java/out/production/main/META-INF/MANIFEST.MF index 9f37e4e0..f3131026 100644 --- a/src/main/java/out/production/main/META-INF/MANIFEST.MF +++ b/src/main/java/out/production/main/META-INF/MANIFEST.MF @@ -1,3 +1,3 @@ Manifest-Version: 1.0 -Main-Class: Duke +Main-Class: Duke.java diff --git a/src/main/java/out/production/main/Task.class b/src/main/java/out/production/main/Task.class deleted file mode 100644 index 8d883f9c093af8008c9da09d09c90a3d88ffe69c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1050 zcma)(OK;Oa6orppvE$fDNuN+CEzcwfvSb0OR1qp6g|bLgA$E>y1viNu*$xsv1y=0X zg47C$1wVivg*andjw`ZY;hB5K_kMHFncshY{sQn69TPh4R8hfQ1NRKv7vTdP4|TL8 z)Xu!vjr@7yhk=A<|J?cDbf-=*?hca355~_V7>N^4h9Bpigo+>c!hnJFj>&UB@RLIc zN~?V;L46UP@lT`g2j0nIHu9pOGn(?G*$-W3dg?^J$n!%rdGE($^oNA=5_{|=gTzS| z@hewMve9a~J9+KQQ;d!_6|hr4vI%Q(IooXg3rS~9QaR?#i6%$6Bs)t^!X%Su zlG|H&Jtv_CafyhA{*0M92p5s-9s5FFRb2i=_-4UI-9il(4SLIO--3xMtq~;>)|TeJ z8J&A>a^)!V8wY$Hoe!sg&ZEjm6_9i%nY+P1yohUqS(m%SUF-aS^qql>HLjKPP{K9F zR#t!})|t^;Y;qON$J|A8qjLfI6O5+v6 z0Zov~1Jz0-tr+M!ZsY?UvRY(;^7ew_7k;)3>HeY9_gsfjh+C=UZ gZarouhEy`w%Un+a diff --git a/src/main/java/out/production/main/TaskList.class b/src/main/java/out/production/main/TaskList.class deleted file mode 100644 index e0a7712dd6bb34cb8a6daba3e140c3dc764d5313..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3414 zcmbtWTX!4f72TgCYoy6IHnN?IFTqY?VkveEffk6JtDO{6*$LPrH35>bG}sf%8Y7Ji z4)-(-mzGOgpb5QGR(Q!`QC6_KoVB`m;Q^j`?n8Ot1%3c`_L&*Wa?qk(@G>*sne*+l z&pzjTGar1t^ltz+<8>Wda913gaa6-G9btd*3k~BsqPSbfaoi*3do|prL&pgXCv_M& zAx2ZfgwDMg9d*dYV8wAiCKE)S){((!ws!Q8>Yos(YVHL*Ai5xA7w39J&N6msQ z>%bUsr|hDF?!g7YH8YzXa|RvK>+)mg%=~2Us9Uh}lYJ6nP1Y)A3ihmPJ9z>2lBjed z4c9}6rUi*C*AR5jGP60-QrK1n_`4_)O3Rk4LDS`)Shl=fPcK6eIY#7zb5@>m#m_F*13K{E=Ek&=DSCZ8ZsgZ#cwj0=rPKAalooC=WY-8=DX5zb3 z!(#>>#}fvg#2JdPEW5nCh2nYI8u%s7$}Wa7un+qU{0ir&)0l>*3_Oiz6zUH+j$3pK z=IpTLPC40PT@=s8@M{CV!E+j(H}C>>#_*!7e{0}(I2Xh34cv&E47`M$1RFH)vRGf? z^FafDz&QiwamK&}2_9R{lc83+@$kecE5m|TnEWngKZ-uLnfYwaDo|Hxc~8W6mtS#F zGED1LL*OI!CGX~2)w5Z<)rfN~d6wR`Z%Kvg?TIlmyj>w4L4~(w5v{ znKOMlUd12jqLS?j>u1bqYrx58O!t`WPVuSent7MQd=;f~G{54jFe@rim|-K%h2 z)xKTHuMAczo#^t2Dh_4j5QuO)S!o_xjs~3$gXP(6@0yt3)vl7hFf!2om`1G!N@k9v zqXlcmnd2n=Nm}4<3R_o#+W9$W+6oRJKjlMa#&rtw8eZepwBt;dW)+N~eBLSyx~UMBYKoKfNtIye0?(XuQ@S&QE6}pLft=_?yv->$y_60XqX=hrnUlI<6o(zI_qe zaQD9uOI=1y_X6U_Qsb8qikxJ;l_2W~4)Tj*4QdI!j@Ndq^#Zl~U_l_l%3;7zacsa( z@KZ0}n{i7J{4|LQ;muc|k8kf@#F~+wAbQXDN56*g6O7q_^-Qt@OZOd2Ar!M)GJTj~4Q1{hvH`mwD{LUXKUQ-awCiWEi3z zhUnk2fVJxWs{Yesq!iHq3Z{Vt-zZ=<0la&n16VgXHDiNg}>y0ToqMB$c~m$7jH&2QjhPom`_ zju1otVHiQI)+MwFI3Y)S5}Ph!n2^Sgg1mMa@~l#Cd=r-D4SOQq&vJpIr*rJ;DOnT8 zu7!iw&cWM(BzAM?(v)zVV|Ri(va}W`^OKyM7dbbta&j)Qt=?uC7unM9v8g}gKkP?r zrcc>qUt)_2p}*V)_4ovXILLA};bR=)t}sHZsQHpFzmnhJIt@c# z;Lgu*_;Ze%!tFc){G;GGV#&~ShIhC6Wo=EhvaBOLtjqQVv|m6?&s%3h%=^Dey2nr4 zpW3}ld><3vPsR6AhJgyAwH{H@V;>7W>BP=*hjmgGnPef#|6?KA>{A=YNI>mP?vb-0 z8Q#<8Q)_SAooXYwU6GBE6?(0g&W1_vKcP!ydd+Na5M2Jh4QAWGd^@<_hGCE5O$2V> zpox|ddbD^AFXPhbk(DznStgsTAiELaujr<}!6rmBY^Jb^1^CR9^)QYE+X) p8-qa(W7Oj?hQIPIAA>*R@AwP5cZ%y~YGBiL%Dd*h>jU0(?pvBo!5aVo diff --git a/src/main/java/out/production/main/Deadline.class b/src/main/java/out/production/main/TaskManager/Deadline.class similarity index 52% rename from src/main/java/out/production/main/Deadline.class rename to src/main/java/out/production/main/TaskManager/Deadline.class index f3ee243bf36dfe95e3209eb0a87a8a1841bf8d1c..2e4c1065e3e8dd7123fd94e4a8a40790d98b0125 100644 GIT binary patch delta 121 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 VY2p-RPpaor>iM*KenCCI^k3;=ypR9@ literal 0 HcmV?d00001 diff --git a/src/main/java/out/production/main/TaskManager/ToDo.class b/src/main/java/out/production/main/TaskManager/ToDo.class new file mode 100644 index 0000000000000000000000000000000000000000..96d192681088d6701c65f2cdfc5d1898d3c7cf00 GIT binary patch literal 423 zcmZWlO;5r=5PefhTc8S7ir*&QuqJZ!fbk;ngkES!^tQkTS8!hYZsu(9o;jU9&2L7)AujXfLt0_`i6tLj=H9K=uZRSuUj zUkoQzq4LG(Y${;g=y@j4ja8oAtzTwYk;vJSGC{0Uxtz*Ear~FGsz+6lYMkh?9tm{j zS(z4URVkfw%fAr<-bAm9G`m$S>T=%&SNU*o;G>J4k3$>@h{VS+dbAPOu#@GpfH~kT z+o~MvoCL&!fKw5Zysa{v(o=2v2Y?t7bO}9*?qQGtVe|nJo!2lTvxXT3R*lv>5e7Ph heY6NoSY$5UH~AY$&~La#02`F$6Y{Ffm@SG71i!^cL}CB{ diff --git a/src/main/java/out/production/main/UI/FileHandler.class b/src/main/java/out/production/main/UI/FileHandler.class new file mode 100644 index 0000000000000000000000000000000000000000..1b7d11f63799d5e896f59b964b8e3add59287106 GIT binary patch literal 5388 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 B-?IP! literal 0 HcmV?d00001 diff --git a/src/main/java/out/production/main/UI/Parser.class b/src/main/java/out/production/main/UI/Parser.class new file mode 100644 index 0000000000000000000000000000000000000000..5e0d2e9ef59e3470ff2c5d0127b9b0617b00a91c GIT binary patch literal 2174 zcmah~TUQ%Z7~LlcOfs2J2p0=MiUlE|+9=wB4XsiN8cho}fYN&D5QcOhnZ(IN;aUHL zkNVOV9~9OCmR+m*?BDQTxR#fFW~O0iqw+B4_I>-?-#+_<-~Rgf34j@tRSaM*hJIXE zk;Dx-dpnAERLtY1Tr4QKr6P(s6^mF>@UA?0PvuEo#ryamih|s^9mO35%Q39rLkVL*rrwHdCZiD z1+&3`-uvw$I_FHwbZ!WQ)0uUF$U<$)5I9#bE#pqJx@p*}`eubY$wIB9SJrjglxu%8 z;yg4P0`bCHKD(mZ4Z~*5gl*_sYn=PU)Ux3$)T&k8+7jqXXWFsoVT?z5$*xsBzL|6z z!ufpL{Ma_r^46BICm{0F&8hjTMA6YpySMeaPgz~uD;agitXU-9#j>}IM#(na9fAII zdwflIHuqO*4O1o(UgqfzWzjfW)f>BhHHygU32xpDgbPzZ4d%;$dFK>Q)dP#@T&d#U ziCU~R?UJ!%${UD#3SX8!(C{KgG`xWG8rCqOVGu*?d{n`@hL7;Eh7^VcF1ns^Es?KO zjIv&tx693{VL2@o6l`d?hx-D9LAe(m>UPoiqG?zqBd6gLe5zp*X$7BY_#6)eLYw;< zbZl~_(_B5zxl=(&!xjulb(>CXSwx`wl-Ba*j!|NM)H3$yQ;U5DPCZKqbTsM}lTnlD z=gpG|(ry{w194x=ylw0I(xs(ZeSdlTE*}W1Or3F;MmOrCV zFzd`gTeo^*dDmh&Mp?e^XkEUayu~j2gJt}Vq^&x6A9{tIoC)wrX6~I;ZolCeRbGzd z-S4Sp*0S!CB&4BN`BKmOg`PRctm7sALJjaIE(}$gj5AeQ%pK`0j&TU-L4GfAmE|Zn zc1#^Z{KQEJqx^Pyn}h>2e|`~TT*WZnO1{Eq`PYAd&=JCih#Vl2>^MT_AruKFT(B;( zk#%E)>O+F#%b4JqtUuyIbRIwnPyg7;@d$L2J0>2qdx$O<(5@#X2!rd@L0PjVz?due&!R0cL%G zE&>ci9t4U8QN{u&T`iPpmiK6k`8vlXjp-9~MYet*xOYLG*pn>#W-H-qCdk{J2fdZxK!99wGLP5Rd-;eMn+?vX4OF{E{oBMimFCUW(0(P}*@!yEF%Q z8sTMJam5dD|Ek-z6hDsepNI%C_y=z;#(&jMJNOSmJ^xSWDof7Lf3qa?771M=p&1sw p{x5`P+Y^d1`RUV{@V(IW7|D$T^d6({5TR4sd#cLsHTD%k?jNmdwVMC{ literal 0 HcmV?d00001 diff --git a/src/main/java/out/production/main/UI/UI.class b/src/main/java/out/production/main/UI/UI.class new file mode 100644 index 0000000000000000000000000000000000000000..023d96b818e010d4d31c6e8fe65956173f9df9c6 GIT binary patch literal 4348 zcmb7H`*#z^75>%_v|eOL#2W`XraWw8P!bX#wh9;cV$rO zHhrW?pY+`(={spl-)$g=a`>UAKlg9wAJD&{r>E(6XJy%r4JVPT*_k`{-nsX?k6Hio zfA{_l;0WGx(1Yp6|uSEHrm@pQGSlP|_CG4|~2ItyU&=IPOlCNy!WcMYnv;4Lw=ci7oN87gMTWB})aW|UD`&VeprmkUGjJUo#rNgYu`^}LtXL7)bUD{gGQ8Dyp zV=wS6*uptpo27Cmiru&x<%>dZ6MEh+>FXA(JWn2r-69W~HD;#px;cCW6modmRH$`4 z5$TXl8-qvOaAqJH3dDuX63S>0C&YCPzXnPrU9#{{gD|AaIu?>0>k3a7zY<7Jdp^lq zyOMxZW3QYY2t&6fK`pm(twi*g#AwW$@(Er@ z2YXjFXjMT$%gzlH@f@)aQr#(rI)I|QEz?;TFWK;M`8ehfNEF3!U(LX7CJ&kW* zAdPS0MjGFe;oG>8!gtd6F1|;!PX<98#i2VpqT}hH6s=!_@7wr68b8F3(s%;{OoH(= z-o#s+DE>~R@nhVu@e^VBDG5Vq{7eWxPvaN(C6nolE|&v!B@8NQ>_=}JPa>Pf0rXnv z9;(jhK4myM)%j^RRz=rWc~zo75UN^GRdG;qYsZ;Dk~_Mj+=#or?n~paShHb~><4kO z#bBH4AICK`AMYKBvr4 zda@so3lnVy~hp?v_fFR=&Qb7C9Zp zFHku%HYArbH};&8c1x@Qt#XZ7Lq<*3lG7HpmMdAH8Xl*@Tv0hQHWZLw2x6kp781#+ z`U!Xa`5^v<45Ojai^NRxG%{>L`g(S$cxcisN{*8PPy)1bg`6s9#u;6^7KA05mZX-B zOx{ZfL=i=$COp4buCiIHI{RdeM{}SU0~JSVHVmdhx8hi6HJ1hRZLuMroxG}x?0ZW{ z$#u1yREyYFc~b?|#UAMe*=OX=A-{GjY;PNk+T~<+DAS|Mye!sD>3C@At+KJJ-aS8X zO_Fb%4kq_aJ6F6_8duIn*;-mGlB*Wdb)ouY#4B&n$@&G{opm;|D~`vT1q zoZMKCvvSy%RF@m~DXZJU-qoC1X%E|~XsBvYViZi)5(Q3@NP^(~w0#g=#x*4o@Lr}W zzNzq%-!&RsGu?OEozu#yC!^;lZBVkfQ=H4Mib9ek%dcU+{6vX-lrRjIO_7B{4kh7ULkSrErT-4+p_ab(YzY_kA4>mfa}QME;GXK-P66ciI`g zo|Sd9I}z+(3GNcgGC@h!RoE{s;a>>x5>j2oAZvQei*pFH<;;Qca+q)PM#Nf+R(^q?=MGwjIjkAskQ&{8 z7k10#!!6XbsipV8{(F?d9XP$2wRezy6YJ!Nb{=sPhkG;Y3~du>6kdN14+$@~I(jn? zo2^W;mAQuvW=jlfHikV;e}Ek{VkaT_7}i5!3wB{2cGIUl=;uEQLtLFh7YYQ?Cwzj! z6N%Y4il?}0#Z~kXPL>-qWqRrEdR#`1vu5gh9-qK5wBR^-x1#xdvb3hKH-!_)A0gkq z#Q-y~0+_qlIJ{qg;gA~bSq@CkhXsbh_XCDo_XXx4UCYv`N9oREbmS1Bc#^Bb^xz1A zIZ9xjA~1afCbtY2fg=G%Ao^&)5S2PM3&5OgB-sn~B33nnzla4b9PvBvk#6}D<@~0T_(~RyXiT@z#_>-%NMg#3~%yz0F@ExKmDTs9p zEAT0*dYTC|Y&=g2qunHe6voi%${x9ova?k743#~*sk!L!)Rl357d!7U zfhF@7?aVOgfN`pxpz3q1zVl1ecQkB0y-<-Dqi5py4pFZX^__|OmeTzWxWEH0@_YzFEU$j~Oq2{w(H!(go)p_zTRu{qOq v8(SBXE$MhE)=xW+f6j=H;V(w5g+Jk4{2AL=Ijnq|cA2VNGkRvMn6dVM9Ul=Y literal 0 HcmV?d00001 From d2d116b032bd18d1b65cd38110a3b0bfb9b70dcf Mon Sep 17 00:00:00 2001 From: AaronC Date: Fri, 30 Sep 2022 10:39:37 +0800 Subject: [PATCH 16/23] Add: Javadoc comments --- src/main/java/Commands.class | Bin 3550 -> 0 bytes src/main/java/DataDir/Data.txt | 2 + src/main/java/Duke.class | Bin 1664 -> 1667 bytes src/main/java/Duke.java | 11 ++- src/main/java/TaskManager/TaskList.class | Bin 3766 -> 2842 bytes src/main/java/TaskManager/TaskList.java | 94 +++++++++++++++-------- src/main/java/TaskManager/ToDo.java | 1 - src/main/java/UI/Commands.class | Bin 0 -> 3684 bytes src/main/java/{ => UI}/Commands.java | 75 ++++++++++++------ src/main/java/UI/FileHandler.class | Bin 4460 -> 4460 bytes src/main/java/UI/FileHandler.java | 46 ++++++++++- src/main/java/UI/Parser.class | Bin 1913 -> 1913 bytes src/main/java/UI/Parser.java | 36 +++++++++ src/main/java/UI/UI.class | Bin 3849 -> 3872 bytes src/main/java/UI/UI.java | 59 ++++++++++++-- 15 files changed, 261 insertions(+), 63 deletions(-) delete mode 100644 src/main/java/Commands.class create mode 100644 src/main/java/UI/Commands.class rename src/main/java/{ => UI}/Commands.java (82%) diff --git a/src/main/java/Commands.class b/src/main/java/Commands.class deleted file mode 100644 index 21b51cbb1091af6bb3fb7211405f12af83144edc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3550 zcmb_e`&U%g75*-QcV@gGK{3QcykH`r=;YDFplAXPC^86&*gR~L3-<_DX6BMRcaX`` zq-`E1&AVw{#yoW;eI(ko>@-d7k6o*OO8ScNkENO|rr)?mcIp{rJ9p_TDr9 z{_mF;0c^u332epg1XAcrpdWkU*o%P}_9ZZgbOJ-zFXG_@x-b&Q7922fP{bo59yM_& zhA|U|WB9oU?n&TY+$Y}dm+cYR{zA6DH1R+T4~o!{$GAKuB)?Hz{=RPXj(Wng96%c=c^?6?XJIpY~h%%G4ivF@b;7>638gbAR?iw} zUr_4_0;f2TbJg5%Asjy1>lX;EqHn-HnevXJGSETYn=5nPVn!Yg>y!fWF7bxG;(@P>uoi`Si_ zeh?Hp?YvUiyq)o;m0k1;wv!2X{Y87q(V#Wl<6byrhf~VVOO7N_g#D(tdm3+9cpGmS zSS#_9t`jazqJ?+xu7y)#@Sdzr3yAk|(m>OoDjxR(cS+(ce1H!ve1wl#g7ZaXpnf40 z!{f))1go-M0uMPkXHo@8Szn?R^^t*^v4P~+0Bd-LeHBXg7+8I|Wz;|OD$+}f;*A#b zp~|uk{Q?gfqh9s=-yb26hlPVNw zy54l-6L?)&*b|n;jqL*+>B|`qfheXHkCoN!9ZO?=2NDK~$w-LuSj`Z`R!3~o-h0{D z83C9Om7aXcmn^Q-+=doO5(Pb0A|JJp?tVXv)EgG5SA>bYa)ODe$YSG_QgkJzrsKNN z)H2C=)O(m{v`iNPGrc4`nvDh^M?J2qIKXOY+*=&+^IkNDbz&FltTKruNQ(8%A<4k= zL()Lo74R-ixP+ESJ>f#682yxIYkdV(G+|}1x_Z_|NvS@{DP^GJ3bD$!TL`^OQV%>S zV-`YG$I*~(D%)MA)NvRs{FdCx?^a&COj)iHTyt*oc^h}@_%`^i+4NT!=d|L__*|}q zF~o6uMYWA``7=wXDq-1zavhdYZ1Gu3!#Wz>Q8Bs=RoZAJjn1RGq2>aXbGcyLfNCmS zL*oXlz$%)rrh{!22Vc{HxIb9ct>c>A*Ow5xfcRgKIE&_?5-hIHBT+(a_gT~qNtBh0 za!&LH=Ox#aB@L9W(%P%f(QgeSu3=nxw=woDgx-aE#*{1^MkAk1+^wZXGjXk_-bPy3 zxR$A1hgRIkeH%8QovWL16Fqd$#}<0ogzeajUUXtNPxkO+kgN_c?RU~^D{8)_qbkY2 zi4`Lz>f(D$)PKt;RVKRRQsVS5e^Ebi9vYd4H98O1e&0N7BiJtHVJC6zVjlVk|1Rd? zZswtf?E9F9UgkmArpR_L^N^;+09owg$skXLnTHXs4)AmE2jpQ#B@d@`%79*74RZIq z;z7Ce>*R_xrM3UUI=vvt8>(H_L8&ZgK8qEiyIype`eo!|=^K{&zLjfWjM953Kf>L; zEb04L1^1Kd1HAnQdBYC*jgyy4)<-pmII7bon&Pb{&AKa4zamsAUDhZY#@?~EgcjoE zt2I4emm3y?ZYJo>CEWP`P@B4Hr7i{acGfN6G1M`b@VT4ec}T<$@pb~D&a+;Rvo7a| zyoeqAnU>;Dv@{;q=o?Wjm1yWfZ2AUq6FWBulU?7zM2;CMU_{c`|v4OkO6FSIFd5GI^a$-ncrGyDCinQ@)e_$~gItV-s|8($0^NgB)kzPpB%qOO4aiIYaIDSymsA+J_u0XK3{ihs(ztB%jdw zQ`-ND9zG+*KakcRS!#b~(|yiz`+`k&PE*z6!=l@(j*q)5yl1E?lejr*8<~q~X@pHu zf26cI&BE)9TEgUa#C&mWBx2wKucX8)`HClhBiAp9{qJP<4_t?f#Q#r?iE#F@4WbGn KupU}gq4$4CHV&`= diff --git a/src/main/java/DataDir/Data.txt b/src/main/java/DataDir/Data.txt index 01f76c80..5d7ef6e4 100644 --- a/src/main/java/DataDir/Data.txt +++ b/src/main/java/DataDir/Data.txt @@ -1 +1,3 @@ T - [ ] - task1 +E - [X] - ye - 12pm +D - [ ] - abc - 0 diff --git a/src/main/java/Duke.class b/src/main/java/Duke.class index c8559008a30360b8c879df66010710d8242cb802..77f8153a2fea767d8522702a2149575d433fb7c6 100644 GIT binary patch delta 158 zcmWN@O9ny#0EW@;@21jQQCvl(qNo(Tl^&E!L_|bHL_{ v)r6d;XKETyoMAsqNpil&8TQj sRSRlbQrC)x)-<)Dr7dmk=xC3v1CEY#b)u&;16>%(WvrWr$!qSn{~Z$)o&W#< diff --git a/src/main/java/Duke.java b/src/main/java/Duke.java index 54a8e034..7ea91cb2 100644 --- a/src/main/java/Duke.java +++ b/src/main/java/Duke.java @@ -1,3 +1,5 @@ + +import UI.Commands; import UI.FileHandler; import UI.Parser; import UI.UI; @@ -5,10 +7,17 @@ public class Duke { public static void main(String[] args) { + /* + * Setting up data file and taskList + */ FileHandler.initFiles(); FileHandler.loadList(); + boolean isExitting = false; + /* + * Prints Logo, Welcome message, Command list + */ UI.greetUser(); while (isExitting == false){ @@ -55,7 +64,7 @@ public static void main(String[] args) { Commands.runDelete(); break; - case ("find"): + case ("find"): //finds tasks based on keyword Commands.runFind(); break; diff --git a/src/main/java/TaskManager/TaskList.class b/src/main/java/TaskManager/TaskList.class index 56cfbda55fb08e6953ddfe69d85b096d58624844..5855bca57e03fbc39f68a1fc02b7c5b6ec4c0d10 100644 GIT binary patch literal 2842 zcma)8T~iZh6n>TjHd&UhC@2IgNL9WRzqNu`3fQI%Xbox+wJymDi^&F)4T9BvjUD?n z)7$E0Z+hc}AD!sbnNF|$8J*tt2h`Ep=j?_MG1bD%?%DS}=XuV1&U4<$<9~kr4ZwbU zrlAd^DvoHVz`H?g#CsZ=5fSTs6(49&5mhm!A&98#jH@^r#4&srz;O*ROayR3qw`4( zr|?k_Iwmz7z-jTFl8rMO*Url0oQjWSc~m~milQEW}T<%v8j9D|b;p8%O?<(gr5S=ix7sm|Sm@zYbV)qX+u4=%t zEoV@Hue0kUS%%XIBGg4K+Z@lOrp?TRF`eX!Y9ta9>5()u==9)|hCS04b264a(=Vab z^cXRXM3SKjwwCcK9~WTU=z?kUaJ4h0Bbg035j$Zn3Rk4-<-B>?dD1#^bOkjr$B6S_ z^My>ctZ8K8vx1{wOPMsvBI*U|B5|2yBPuSi67-C@ZDGmS7%gEYO~>^3{7jg&2&9b6 zMQ=sR*()FZ3znT=gUV)AzOje?ukU{}I4}@rN8A=`v2-pIH;-7-&>BfkD!5&Eb!aZ}k8k;;SF6u}krJ!lj zSZZ5J=h|kC1+&dgw>jL-wyUspq|r;23TXDAjvd&kVqV83WOQWV=*US{3z*Zf5Bqgo zMyHNNIm?^>GRUOyF`V?1I9Y>fvVb!|;uFQ{4&zW&*tz^klKIew=T{RS* zcYoJu?ouoT8Lvj;@RhO%aaZIh5&MESv+_~wENyRQ6J|D^vF05s&FIj}nrG?FOF1K%rI9gH=>;lB6Fm=Q zN76FqHQvW~+VQ?+ghxt2*LD`Jqtg3=6B19`j$zpZ4wou?c-F|oNNL(})2(2&02-Vx zD<$0Wl{005QryVv8oa7qS<-Ta3I&_p)h%eCOC z={@MBEv|#`5f*59go;VJ`=a;Y@5!U`)IC)B&)-MYN_+@@de$<&j)e8R(i>=R!}bE! zVeb3r5q<=9vb*O20%HX0eHGX`XjqRBp<4JKL|-|upbMtG7Oah6?F8FIs1Aa0gbJB; z@QhNBYUb0DNA>T}@9?vS$#$`1d$10B*~fkC+8B$!m#007-SpDnt9y!| z@&t{H+QS{MIa9=vf_C@@!Y*AnOuDh&U$CY-kF_^Z*?Z@@Lf$_WIgUr%gi6}S2^1so z1j4l2adMgHDJqopPv{erYotJwVyyIbv+q!=OSGYNpp{hP+g7N;x35=_>W_-sMXDB_ z4wxd;8C2seC2@}0n_}_LyL3(PJtMO6oDK1*IH0fxf4kIg;b4Kfm2dg;lUI;Sdy*h> zKL!e(I|Yg!4PFx)U4wk}p!o zO9U8vHSzk@#8*jt&5e6KaY?X8{5grgAn}(3IE=TMvD^_q@-6BZeT3%82WW{dt7NaI zkvzhbW9uz6Z_8tYXV%huL(H29_Ry|8<*Mg#&x%mJ3Hgf6y1|R&Yc$~-j_$X-P`;xu zzh}vBU>HBRN@|4v88j8m%2V{J&?#Wiuy_3p5#pWV==Qkv2WOPhC}eye{?&C-d87dK KG|YolVB}wsZ9)V9 literal 3766 zcmbtX`*Rc575=UyYo+!2CBR_IP&r`m3!FzGsb!oR+cZvOOp%M@5E9nXVlS3}%;Dm}UB;{yY!RJ&cIH_PpMHnaL%99Fa z!*~j(LU>xmX*?6cvnq|xsL-H?Fc%^2S-CPFfq*He&qWAshB?ZFkd-r51b&zyEXj}a z5d@^+F!GYYk#GgMP?V476kL$gQ}UxEtu88fUcu)D0(tYIAs{9=%$RvcU|ZsxUepH) zj+q%4$>sD?g41zp_e!(HrGM!-oe|OJG zvW(hkA~YpT%Q#lZ&KbFBeJ;ZpMNg-v?J=7XbbIg_-I^arIyuvtk4x8jT8tTbIzv~1 zeKo9V`-SK?UNkHw*EnxDGO`h8!b%$#B-cdG=D3;d5@{Wox+HaIkt;*PjmtS0S3E@d1w<%TxM@MHxKNL~#O;6Z_AIk~10 zZnvC2q+ve}Xm|l%)X;~1fvweMt9vd@9}#G&UUTlMr`sZ__Btt;F3V=tX_(h z>_TioFB&n+jyYV;cPe;E!^=2Cl}gb3poT%jHN1k$?1^bY9UG<+T3(C|$h3gKJw$Rm1U0^76tqA_Y)DczYdodu5aj&3>mO(9o~3V}M8i~gs? z>5pp9^-R~?8f4!&JmT^bDVu=?=uZCnw2@Ec%q7Q^lab9m%MPXISiu<69cC1YbJa_n45!F5KIuugbJ)ssb^p zXEI6CG2#k-Bha-ezgn>g?7FudI(c#S^7{4hrsPS)k$X1r8Xj5XaJVnD@1h@Ag~p&C=YTxPd@l8Fe!^5Dc7o8^Lvd zd7T6DFNS&&YG^|P#}DI?3f7}s_tPSJ3(9P7-%W%j3D$ovux7%wAj02vY$4dEYJr7a zF!f`>S_!tDP&)|LMlhb5mB@B8M_G`1#?xL#{kzcKRxMG?vlymK-#5;E%U+$j)U<5;FXMLGD_?CtS!& z5Z6DflcMmsqAF5tK#bz*L?iA)6ZUWux;V3!&wbQwH}0o?4{|h0^`4-9b>6HN4#1&) zOI&@0+I^L^f1Q&29Z~;8>pxSXf1$YkN=5vGy7(ssg%5Gjf-bS0vOP@JHUyh)BP{O7 zKWQ}u!~epG_c8SW>bRMY;?tGgKgCd`E_eHfqVBFmqujO0ewMwrjM!Dw^}l&ZFs;7} zsR}QzR)T={VHii4*C?VKcVgV-RpGx4pV;9M@y@IeW$7zhq|1M}!zJ3;G1Nh-WBb>s zqHkRCk?L>0H`b`ySv=rzQa!=WN}w5&Eb8OfjVYI|75+O!79UdAer72s<@enjM=@5R z?%-Sg1js9qtEHVJ@;HuGEFX|iv}o~qq0?>j^j(eK=$2~+Aw0=oW?lEy17ncx^1x{A zeFygq5hGegEsTg;iKiLnX&w{LU>lw#&S%!b=&gj&xZaXw>|Q@? list = new ArrayList(); + /* + * Adds ToDo task to list + */ public static void addToDo(String description){ ToDo toDo = new ToDo(description); list.add(toDo); size++; } + /* + * Adds Deadline task to list + */ public static void addDeadline(String description, String dueDate){ Deadline deadline = new Deadline(description, dueDate); list.add(deadline); size++; } + /* + * Adds Event task to list + */ public static void addEvent(String description, String dateTime){ Event event = new Event(description, dateTime); list.add(event); size++; } + /* + * Retrieves task based on index + */ public static Task getTaskAtIndex(int index){ return (Task)list.get(index); } + /* + * Prints all tasks and relevant info + */ public static void printList(){ if (size == 0){ System.out.println("Yay you have no tasks!"); @@ -36,82 +54,92 @@ public static void printList(){ System.out.println("Tasks:"); for (int i=0; i find(String keyword){ ArrayList result = new ArrayList(); diff --git a/src/main/java/TaskManager/ToDo.java b/src/main/java/TaskManager/ToDo.java index e985d5a7..1d818314 100644 --- a/src/main/java/TaskManager/ToDo.java +++ b/src/main/java/TaskManager/ToDo.java @@ -1,6 +1,5 @@ package TaskManager; public class ToDo extends Task { - public ToDo(String description){ this.description = description; this.isDone = false; diff --git a/src/main/java/UI/Commands.class b/src/main/java/UI/Commands.class new file mode 100644 index 0000000000000000000000000000000000000000..e34401d586aac1e667eb4ec4e6ac49fbcd656b9b GIT binary patch literal 3684 zcmcImX>%Oa6+NxRJu_}C$d)k%+ig48k|jL02@q`KWaP22&}vCuFu~B$JWFlOOe;M- zvc_3}Y%ER)OCTE#1TaciLS$EwNs5q#s*sT7TPk}hKOsLLm2mFs*|20nQ5C7G-|PGC za?ZW)-k!Jr^W!%F+=PV~cAzhYehkDgh@mKkaVUb37)CJ`!(kkWVmpq?*|8XI$8mYR z!^Fqs?6`>UG;tz=yF`As2`7Sakxs;rf)c+c<#keCr{vW&aVmmo5vJvlkw;dJJvp9< z;1lB7mq$(>K?HfxnU$B*vYQjdg6z(S-5Ck}$p}6rl26OoXH48<;$8#GQz|#%yEB37 zWev3TpK@lMc-qNM#zzC+%}(w%&=9E1jGT=*x#r5&?E_1<)qSdZsI-z5eoLtsw{npMN*|zP>OZH z%@SQ?&jghz7-IOiWuL;XA zPvA)tU$gLaJZa$@IBVgXvip`ip2ArJ8*3n>(`wR5C;Z8LhPA5U)2ILVtGAwLLW_`?w}Wh>TNaZ6=5u=9DiaewAj2<)|Mh~ zI;m7R)lBAV)ICEqTBgA>`IjbVw`QXO$WbDdQXFtiH0~)3dpS3p>^j%gdsZ3l5+uoc z&O6D#}{=}3MVje#Zr0}he>HT$&qECbBS1`>gEGC z9oN%OZnk`Iw99aauP)hLqSSc=8~DB3!LN4%A~JHhi^u@fD~GaP*{xic!;m4*=Wf2O zw#L`6jN7Vl8zBQ%)A$-fTZ?9_ql1rD9Q=z81mFoB)x3zv1w@L7zJ}OEET4zn zS40zc7qGmDW**O@sZS!cGSWh*dl6TZr7J4ZmHMn*+pSt){Cc!wH7vb$p@qrYiv(%a z>5Pn!7_gbATZylWx;v@ejjM1S)?*tw_}+y$CEJ+HDaPA+GnCIO7DsPKl>{+`_-ELRqvPmL9*{Bz5%iyBl|(JA0qo< zvL7S+Lu5Zf_M>EflsxYslVfCmJJ}y6`xDf-izj!Jy>nUiJr(xnO11CNwU;WF%XoEI zMwa}Vx3E^TSX;!ph7@l`5$m1^AUj^#xbSqsjprLNuy{3pw#LMMF{RBNA zK(4I?y^a{WirDA4&kf?Wk=!Iq_Fsm{miNu1S3tIk?wr|t= zEe?%ev2lLQ0r4Bwn>tj-_|1H zi<@CHF#>-e+COslSEBtB(f*mu@D~>3Zyd{i=NIN58ik2E-2nW+9IOPF&xrgr)^P$? QhkN)LiSe+PhjqB^9e5HzF#rGn literal 0 HcmV?d00001 diff --git a/src/main/java/Commands.java b/src/main/java/UI/Commands.java similarity index 82% rename from src/main/java/Commands.java rename to src/main/java/UI/Commands.java index 58ad11d5..d148f000 100644 --- a/src/main/java/Commands.java +++ b/src/main/java/UI/Commands.java @@ -1,31 +1,43 @@ +package UI; import TaskManager.Task; import TaskManager.TaskList; -import UI.FileHandler; -import UI.Parser; -import UI.UI; + import java.util.ArrayList; public class Commands { - static String description; - + static String description; //Represents name of tasks + static Task temp; + static int taskIndex = -1; + static String keyword; + + /* + * List function: + * Lists all existing tasks + */ public static void runList(){ UI.printLine(); TaskList.printList(); } + /* + * Exit function: + * Exits program + */ public static void runExit(){ UI.printLine(); System.out.println("Duke: Goodbye!"); UI.printLine(); } + /* + * Mark function: + * Marks a task as done + * Task specified by index/name + */ public static void runMark(){ - Task temp; - int taskIndex = -1; - UI.printLine(); - //Handle empty/invalid task + //Handle empty task try{ taskIndex = Parser.getTaskIndex(); description = TaskList.getTaskAtIndex(taskIndex).getDescription(); @@ -37,6 +49,7 @@ public static void runMark(){ return; } + //Handle when a task not in list is given try{ temp = TaskList.getTaskAtIndex(taskIndex); } catch (IndexOutOfBoundsException e){ @@ -50,10 +63,12 @@ public static void runMark(){ UI.printMarkAsDone(description); } + /* + * Unmark function: + * Marks a task as not done + * Task specified by index/name + */ public static void runUnmark(){ - Task temp; - int taskIndex = -1; - UI.printLine(); //Handle empty/invalid task @@ -81,6 +96,10 @@ public static void runUnmark(){ UI.printMarkAsNotDone(description); } + /* + * ToDo function: + * Adds a ToDo task to list + */ public static void runToDo(){ UI.printLine(); @@ -96,17 +115,21 @@ public static void runToDo(){ TaskList.addToDo(description); FileHandler.addTask(TaskList.getTaskAtIndex(TaskList.getSize()-1)); UI.printTaskAdded(description); - } else { + } else { //Handle duplicate task System.out.println("Sorry, seems like you already have a task with the same name!"); } } + /* + * Deadline function: + * Adds a Deadline task to list + */ public static void runDeadline(){ UI.printLine(); int byPosition = Parser.getByPosition(); String dueDate; - // Handle invalid input + // Handle empty task/date try { description = Parser.getDescription(byPosition); dueDate = Parser.getDate(byPosition); @@ -120,17 +143,21 @@ public static void runDeadline(){ TaskList.addDeadline(description, dueDate); FileHandler.addTask(TaskList.getTaskAtIndex(TaskList.getSize()-1)); UI.printTaskAdded(description); - } else { + } else { //Handle duplicate task System.out.println("Sorry, seems like you already have a task with the same name!"); } } + /* + * Event function: + * Adds an Event task to list + */ public static void runEvent(){ UI.printLine(); int atPosition = Parser.getAtPosition(); String dateTime; - //Handle invalid input + // Handle empty task/date try{ description = Parser.getDescription(atPosition); dateTime = Parser.getDate(atPosition); @@ -144,15 +171,17 @@ public static void runEvent(){ TaskList.addEvent(description, dateTime); FileHandler.addTask(TaskList.getTaskAtIndex(TaskList.getSize()-1)); UI.printTaskAdded(description); - } else { + } else { //Handle duplicate task System.out.println("Sorry, seems like you already have a task with the same name!"); } } + /* + * Delete: + * Removes a task from list + * Task specified by name/index + */ public static void runDelete(){ - Task temp; - int taskIndex = -1; - UI.printLine(); try{ @@ -176,9 +205,11 @@ public static void runDelete(){ FileHandler.deleteTask(taskIndex); } + /* + * Find function + * Searches for all tasks containing the keyword within its name/duedate + */ public static void runFind(){ - String keyword; - UI.printLine(); try{ keyword = Parser.getDescription(); diff --git a/src/main/java/UI/FileHandler.class b/src/main/java/UI/FileHandler.class index 940d2c038b3d3894e436522899fdbeb65ca0c747..3cd59f16b0e2f7006ca638507226055228a55ea6 100644 GIT binary patch delta 484 zcmWlVNk~;;7>1t{1YN}eQPE6rpoNm?BE$g=#Uag0T9y-0jyPlHRA!EeQF_5^I4%kj zTR7oWEOp^R(S=svfJ5$Fi3>ME1fg%MbIyPM?|Gm1JM}yDoBm_+cEt`i-0{E%Pi}F8 zV6GE_7h!nY-0WhF<^Zk`i38EPbO(PD2qKXP?h?a2;z{8#W(v7aC8;!#Mh6f0$U{Dp z&NPph*Nt^D*d~*GvN$1!GoEoyE`KTDA9-AmZ$J@AKr5yT1(`rcwq5%G!(7f);hm|H z>vOqQbCVYmsUehF;;7SLy`me)<|W0vqJl>KY0_6KuX&@lX5P|5CvDaghoz`4uJHjE zy4AG@Uo0Z_s=bwP`c&(Gfj-Ih^Mql^4oG&85{4*c#2W8-ob&~IMzy^$O@Aejac(oA zHBD-IiezR~-^NpB%wgaw<+8Y pp?<2`FKuy4BHNU)qguPX)6>G9Fu$d_FU12saj3l?S(ly1F98GQaWDV? delta 484 zcmWNN+e_1N7{)(8L2#4l3g-by${4b!%u|-Oh2pe@L$vbH$rDD|fm}>0JPn-(YFe$K zp%9H-ZSU9=;df@9+1#&*y#KH=ZBQj~I}Gv2MAzFsF4ZuE4H8NFuY!pX~0UO z(lsgTE$rM@j5})CEL4k(ty0^#tMiz9Jm)@s9`c4R25DEY4uW(tL3g;`vg3S23cZ}< zDY-o3jOy*Y)bxD{?o+T=>fsa5&jT?!=$ChZC%l&HZP=am$1_AK!`j-Y+ySj7NU7*9 zCgq;eDDRZ;y*h`)o>Bi0V| Lines = new ArrayList(); + /* + * Creates File and Directory if don't already exist + * Run at start of program + */ public static void initFiles(){ File dataDir = new File("./DataDir"); if (!dataDir.exists()) dataDir.mkdir(); @@ -24,23 +28,45 @@ public static void initFiles(){ } } + /* + * Updates the taskList information based on previous entries into data file + * Run at start of program + */ public static void loadList(){ + /* + * Variables for iterating through data file + */ String currLine; String[] currLineList; int currIndex = 0; + /* + * Variables for each task when updating taskList + */ String taskType; String taskStatusIcon; String taskDescription; + /* + * Readers to read data file + */ FileReader fr; BufferedReader br; + /* + * Data File + */ File dataFile = new File("./DataDir/Data.txt"); + try{ fr = new FileReader(dataFile); br = new BufferedReader(fr); + /* + * Reads all lines from data file + * Extract task information from line + * Inputs task into tasklist + */ while ((currLine = br.readLine()) != null){ Lines.add(currLine + "\n"); currLineList = currLine.split(" - "); @@ -64,7 +90,9 @@ public static void loadList(){ } currIndex++; } - + /* + * Close Readers + */ fr.close(); br.close(); } catch (Exception e){ @@ -73,6 +101,9 @@ public static void loadList(){ } + /* + * Writes task information as new line in data file + */ public static void addTask(Task task){ String taskType = task.getTaskType(); try{ @@ -98,6 +129,9 @@ public static void addTask(Task task){ } } + /* + * Removes task from data file + */ public static void deleteTask(int index){ Lines.remove(index); @@ -121,7 +155,12 @@ public static void deleteTask(int index){ } } + /* + * Marks a task as done in data file + * Overwrites entire file + */ public static void markAsDone(int index){ + //Replace Data in Lines list String oldLine = Lines.get(index); String newLine = oldLine.substring(0,5) + "X" @@ -148,7 +187,12 @@ public static void markAsDone(int index){ } } + /* + * Marks a task as not done in data file + * Overwrites entire file + */ public static void markAsNotDone(int index){ + //Replace Data in Lines list String oldLine = Lines.get(index); String newLine = oldLine.substring(0,5) + " " diff --git a/src/main/java/UI/Parser.class b/src/main/java/UI/Parser.class index d5e6b97ac3efa2cd7a04155fc77383f42a7d2738..c7ec32f3e4a8473e83435fc125a680261961297f 100644 GIT binary patch delta 137 zcmey#_mgkKPZmxQ22KW11`!6a$xN);j53q;SRFZ)8CV%q7~;bvoCWH4Z00ID$r0F|y3o&W#< diff --git a/src/main/java/UI/Parser.java b/src/main/java/UI/Parser.java index 44c6dffe..6e7accc1 100644 --- a/src/main/java/UI/Parser.java +++ b/src/main/java/UI/Parser.java @@ -3,19 +3,34 @@ import java.util.Arrays; public class Parser { + /* + * Variables to store user input + * scanner: Scanner object to take in user input + * rawInput: user input as one String + * inputList: user input in a list, with each element containing 1 word + */ private static Scanner scanner = new Scanner(System.in); private static String rawInput; private static String[] inputList; + /* + * Reads user input, updates rawInput and inputList + */ public static void readUserInput(){ rawInput = scanner.nextLine(); inputList = rawInput.split(" "); } + /* + * Obtains user command + */ public static String getCommand(){ return inputList[0]; } + /* + * Helper function to combine elements of inputList into a String + */ private static String getStringFromList(String[] inputList, int fromIndex, int toIndex) throws IllegalArgumentException{ if (fromIndex >= toIndex){ throw new IllegalArgumentException(); @@ -23,22 +38,40 @@ private static String getStringFromList(String[] inputList, int fromIndex, int t return String.join(" ", Arrays.copyOfRange(inputList, fromIndex, toIndex)); } + /* + * Reads all words after command in user input + */ public static String getDescription(){ return getStringFromList(inputList, 1, inputList.length); } + /* + * Reads all words after command and before 'at/by' in user input + * Used for adding Event/Deadline tasks + */ public static String getDescription(int atbyPosition){ return getStringFromList(inputList, 1, atbyPosition); } + /* + * Reads all words after 'at/by' in user input + * Used for adding Event/Deadline tasks + */ public static String getDate(int atbyPosition){ return getStringFromList(inputList, atbyPosition+1, inputList.length); } + /* + * Reads word after command as an integer + * Used for mark/unmark/delete functions + */ public static int getTaskIndex(){ return Integer.parseInt(inputList[1])-1; } + /* + * Finds the position of 'by' in user input + */ public static int getByPosition(){ int byPosition = 0; for (int i=0; i2n&yjh}5L5N7NvMuIdp9t(D#) zvGNfF8=pdamL?KAXUXpT?mfTUTZui#UaDH4A-CF3IDYIM?PhoUe4!*)%K69d%8B^i zUg2-2q1FQW+k8`5Q@seHPrmfJZ9`!QI^u}HK?ht6Ajve0QH)>;DP)+k7=w>-sfAzd zG>vH*Gc;yt%+Xk&vB=&Mjb$1c8Y?tb<-+pbVDbkQ&LHa=7d=$osrJbg$wyGC(Ub4ZaAr+8&wHf>(M(jqlQ-0*||qQ9$@1U T3Fai8O|qn5l?oWONX(A<@(`NRUv8YHFB~G?)zwD;pb+g~he8 zv$Yexg_RFrExv-CvpnaX-@WI)ICsw5z0ve755}K7Do;L@mubXdbXB|zE>7!la2|=7 zsD4C=YeVJGjJ*7&o?IIW4pJx}gKl)72LtGZhd#`rAB$8K45E%9#2A*>mUnlAM3IC? zVwA): shows all existing tasks\n" + "event : adds a new event task\n" + "todo : adds a new todo task\n" + "deadline : adds a new deadline task\n" - + "mark : marks a task as done\n" - + "unmark : marks a task as not done\n" - + "delete : removes task from list\n" - + "find : searches for all tasks that includes keyword" + + "mark : marks a task as done\n" + + "unmark : marks a task as not done\n" + + "delete : removes task from list\n" + + "find : searches for all tasks that includes keyword\n" + "bye : exits program\n"; + /* + * Prints a line + */ public static void printLine(){ System.out.println("---------------------------------------------------"); } + /* + * Prints TaskIndex, TaskStatus, TaskName, TaskDateTime(only for event/deadline tasks) + * Takes in a task as input + */ public static void printTaskInfo(Task task){ + /* + * Get task information required + */ String description = task.getDescription(); String taskType = task.getTaskType(); String statusIcon = task.getStatusIcon(); @@ -33,6 +49,9 @@ public static void printTaskInfo(Task task){ System.out.print(taskIndex +") [" + taskType + "][" + statusIcon + "] " + description); + /* + * Add date/time for Event/Deadline tasks + */ if (taskType.equals("T")){ System.out.println(" "); } else if (taskType.equals("E")){ @@ -42,7 +61,14 @@ public static void printTaskInfo(Task task){ } } + /* + * Prints TaskIndex, TaskStatus, TaskName, TaskDateTime(only for event/deadline tasks) + * Takes in a description as input + */ public static void printTaskInfo(String description){ + /* + * Get task information required + */ Task task = TaskList.searchTask(description); String taskType = task.getTaskType(); String statusIcon = task.getStatusIcon(); @@ -50,6 +76,9 @@ public static void printTaskInfo(String description){ System.out.print(taskIndex +") [" + taskType + "][" + statusIcon + "] " + description); + /* + * Add date/time for Event/Deadline tasks + */ if (taskType.equals("T")){ System.out.println(" "); } else if (taskType.equals("E")){ @@ -59,6 +88,10 @@ public static void printTaskInfo(String description){ } } + /* + * Prints Logo, Welcome message and Command List + * Run at start of program + */ public static void greetUser(){ System.out.println("Hello from"); System.out.println(logo); @@ -70,28 +103,44 @@ public static void greetUser(){ System.out.println("Duke: Hello! What can I do for you today?"); } + /* + * Message to be printed at end of successful Mark function + */ public static void printMarkAsDone(String description){ System.out.println("Marked as done:"); printTaskInfo(description); } - + + /* + * Message to be printed at end of successful Unmark function + */ public static void printMarkAsNotDone(String description){ System.out.println("Marked as not done:"); printTaskInfo(description); } + /* + * Message to be printed at end of successful ToDo/Event/Deadline function + */ public static void printTaskAdded(String description){ System.out.println("Added:"); printTaskInfo(description); System.out.println("Now you have " + TaskList.getSize() + " tasks in your list!"); } + /* + * Message to be printed at end of successful Delete function + */ public static void printTaskDeleted(Task tempTask){ System.out.println("Removed:"); printTaskInfo(tempTask); System.out.println("Now you have " + (TaskList.getSize()-1) + " tasks in your list!"); } + /* + * Message to be printed at end of successful Find function + * Takes in list of Tasks found by Find function as input + */ public static void printFind(ArrayList result){ if (result.size() == 0){ System.out.println("Sorry, there are no tasks matching your search!"); From 700f8dce3877351ae05def86240c60e38f8966da Mon Sep 17 00:00:00 2001 From: AaronC Date: Fri, 30 Sep 2022 19:53:43 +0800 Subject: [PATCH 17/23] Add: Feature List --- v0.1.jar | Bin 0 -> 16114 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 v0.1.jar diff --git a/v0.1.jar b/v0.1.jar new file mode 100644 index 0000000000000000000000000000000000000000..2d6348ed906c59fd466098bba455e5e84f41784a GIT binary patch literal 16114 zcmeIZ1y^24vo;*u-95OwySux)dvJ%~?(XjH?(R--cR~nG0)Y=^o_UhYIWy<|0bku~ zueI;ByQ-zCtE;=~l9L1iMt%nl4*pJ9ok#iIFNFLK_?@({5p6XQ~n)HJg&lGGGa6VvqybPJ5z2UpS)6Z1|};#4$E3LnTPWeyH@4*=iE zNrHjL(EpI9eicsn`pEsa$_%yNtAu?0D&%BoOk-%J@8Dpqw4sQljQpZ4Rwt=O7DSud zu%Qt!6IWD7Ei8~YCW-}voc=M;;w(-pE^v}&V}tK9ACBXD31e3%BTpM#*8

sed#N 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 Date: Fri, 30 Sep 2022 19:57:03 +0800 Subject: [PATCH 18/23] Add: Feature List --- docs/README.md | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/docs/README.md b/docs/README.md index 8077118e..291f3bf6 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,9 +1,17 @@ # User Guide ## Features - -### Feature-ABC - +list : shows all existing tasks +event : adds a new event task +todo : adds a new todo task +deadline : adds a new deadline task +mark : marks a task as done +unmark : marks a task as not done +delete : removes task from list +find : searches for all tasks that includes keyword +bye : exits program + +### List Description of the feature. ### Feature-XYZ From 45f681447f754f089a50a67ed77830e5753926f9 Mon Sep 17 00:00:00 2001 From: AaronC Date: Fri, 30 Sep 2022 20:03:51 +0800 Subject: [PATCH 19/23] Fix: Feature List new lines --- docs/README.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/README.md b/docs/README.md index 291f3bf6..1c595472 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,15 +1,15 @@ # User Guide ## Features -list : shows all existing tasks -event : adds a new event task -todo : adds a new todo task -deadline : adds a new deadline task -mark : marks a task as done -unmark : marks a task as not done -delete : removes task from list -find : searches for all tasks that includes keyword -bye : exits program +list : shows all existing tasks\n +event : adds a new event task\n +todo : adds a new todo task\n +deadline : adds a new deadline task\n +mark : marks a task as done\n +unmark : marks a task as not done\n +delete : removes task from list\n +find : searches for all tasks that includes keyword\n +bye : exits program\n ### List Description of the feature. From 02a477070605195d4b74dcf6ae9e4aeab9d32086 Mon Sep 17 00:00:00 2001 From: AaronC Date: Fri, 30 Sep 2022 20:36:51 +0800 Subject: [PATCH 20/23] Add: list --- docs/README.md | 64 ++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 51 insertions(+), 13 deletions(-) diff --git a/docs/README.md b/docs/README.md index 1c595472..d7d10c99 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,18 +1,56 @@ # User Guide -## Features -list : shows all existing tasks\n -event : adds a new event task\n -todo : adds a new todo task\n -deadline : adds a new deadline task\n -mark : marks a task as done\n -unmark : marks a task as not done\n -delete : removes task from list\n -find : searches for all tasks that includes keyword\n -bye : exits program\n - -### List -Description of the feature. +## Table of Contents +1. [Features](#features) + 1. [List all tasks: `List`](#List-all-tasks-list) + 2. [Exit program: `bye`](#exit-program-bye) + 3. [Find task: `find`](#find-task-find) + 4. [Add Todo task: `todo`](#add-todo-task-todo) + 5. [Add Event task: `event`](#add-event-task-event) + 6. [Add Deadline task: `deadline`](#add-deadline-task-deadline) + 7. [Remove task: `delete`](#delete-task-delete) + 8. [Mark task as done: `mark`](#mark-task-as-done) + 9. [Mark task as not done: `unmark`](#mark-task-as-not-done-unmark) + +## Features +> inputs by the user are shown in upper case +> e.g `todo TASKNAME`, `TASKNAME` is an input which the user decides + +### List all tasks: `list` +Format: `list` +Lists out all existing tasks in the task list in the format: +``` +1) [T][ ] todo +2) [E][ ] event (at: TIME) +3) [D][ ] deadline (by: TIME) +``` +The first square ([ ]) denotes what type of task it is: +- [T]: todo +- [E]: event +- [D]: deadline + +The second square ([ ]) denotes the task status: +- [X]: task completed +- [ ]: task not completed + +### Exit program: `bye` + +### Find task: `find` + +### Add Todo task: `todo` + +### Add Event task: `event` + +### Add Deadline task: `deadline` + +### Remove task: `delete` + +### Mark task as done: `mark` + +### Mark task as not done: `unmark` + + + ### Feature-XYZ From 15debf3a4224ec51afd02fed79a5dde1973ebc10 Mon Sep 17 00:00:00 2001 From: AaronC Date: Fri, 30 Sep 2022 20:55:59 +0800 Subject: [PATCH 21/23] Added: all features --- docs/README.md | 166 ++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 136 insertions(+), 30 deletions(-) diff --git a/docs/README.md b/docs/README.md index d7d10c99..bdba2584 100644 --- a/docs/README.md +++ b/docs/README.md @@ -16,60 +16,166 @@ > inputs by the user are shown in upper case > e.g `todo TASKNAME`, `TASKNAME` is an input which the user decides -### List all tasks: `list` -Format: `list` -Lists out all existing tasks in the task list in the format: -``` -1) [T][ ] todo -2) [E][ ] event (at: TIME) -3) [D][ ] deadline (by: TIME) -``` -The first square ([ ]) denotes what type of task it is: -- [T]: todo -- [E]: event -- [D]: deadline - -The second square ([ ]) denotes the task status: -- [X]: task completed -- [ ]: task not completed - ### Exit program: `bye` - -### Find task: `find` +Format: `bye` +Exits program ### Add Todo task: `todo` +Adds a todo task to your list +Format: `todo TASKNAME` + +Sample output: +``` +--------------------------------------------------- +You: todo TASKNAME1 +--------------------------------------------------- +Added: +1) [T][ ] TASKNAME1 +Now you have 1 tasks in your list! +--------------------------------------------------- +``` ### Add Event task: `event` +Adds an event task to your list +Format: `event TASKNAME at TIME` + +Sample output: +``` +--------------------------------------------------- +You: event TASKNAME2 at TIME +--------------------------------------------------- +Added: +2) [E][ ] TASKNAME2 (at: TIME) +Now you have 2 tasks in your list! +--------------------------------------------------- +``` ### Add Deadline task: `deadline` +Adds an event task to your list +Format: `deadline TASKNAME by TIME` + +Sample output: +``` +--------------------------------------------------- +You: deadline TASKNAME 3 by TIME +--------------------------------------------------- +Added: +3) [D][ ] TASKNAME3 (by: TIME) +Now you have 3 tasks in your list! +--------------------------------------------------- +``` -### Remove task: `delete` ### Mark task as done: `mark` +Marks an existing task in the task list as done +Format: `mark TASKINDEX` or `mark TASKNAME` + +Sample output: +``` +--------------------------------------------------- +You: mark TASKNAME1 +--------------------------------------------------- +Marked as done: +1) [T][X] TASKNAME1 +--------------------------------------------------- +``` + +``` +--------------------------------------------------- +You: mark 2 +--------------------------------------------------- +Marked as done: +2) [E][X] TASKNAME2 (at: TIME) +--------------------------------------------------- +``` ### Mark task as not done: `unmark` +Marks an existing task in the task list as done +Format: `unmark TASKINDEX` or `unmark TASKNAME` +Sample output: + +``` +--------------------------------------------------- +You: unmark TASKNAME1 +--------------------------------------------------- +Marked as not done: +1) [T][ ] TASKNAME1 +--------------------------------------------------- +``` +``` +--------------------------------------------------- +You: unmark 2 +--------------------------------------------------- +Marked as not done: +2) [E][ ] TASKNAME2 (at: TIME) +--------------------------------------------------- +``` + + +### List all tasks: `list` +Lists out all existing tasks in the task list +Format: `list` +Sample output: -### Feature-XYZ +``` +--------------------------------------------------- +You: list +--------------------------------------------------- +Tasks: +1) [T][ ] TASKNAME1 +2) [E][ ] TASKNAME2 (at: TIME) +3) [D][ ] TASKNAME3 (by: TIME) +--------------------------------------------------- +``` -Description of the feature. +The first square ([ ]) denotes what type of task it is: +- T: todo +- E: event +- D: deadline -## Usage +An 'X' within the second square indicates that the task is completed -### `Keyword` - Describe action +### Find task: `find` +Searches and prints for all tasks with the given contained within its NAME or TIME +Format: `find KEYWORD` -Describe the action and its outcome. +Sample Output: -Example of usage: +``` +--------------------------------------------------- +You: find 2 +--------------------------------------------------- +Here are the tasks matching your search: +2) [E][ ] TASKNAME2 (at: TIME) +--------------------------------------------------- +``` -`keyword (optional arguments)` +### Remove task: `delete` +Deletes a task in the list +Format: `delete TASKINDEX` or `delete TASKNAME` -Expected outcome: +Sample Output: -Description of the outcome. +``` +--------------------------------------------------- +You: delete 1 +--------------------------------------------------- +Removed: +1) [T][ ] TASKNAME1 +Now you have 2 tasks in your list! +--------------------------------------------------- +``` ``` -expected output +--------------------------------------------------- +You: delete TASKNAME2 +--------------------------------------------------- +Removed: +1) [E][ ] TASKNAME2 (at: TIME) +Now you have 1 tasks in your list! +--------------------------------------------------- ``` + From afdc14c616465c28ecf77e4840b363bee4c71a34 Mon Sep 17 00:00:00 2001 From: AaronC Date: Fri, 30 Sep 2022 21:00:44 +0800 Subject: [PATCH 22/23] Fix: small errors in formatting --- docs/README.md | 37 ++++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/docs/README.md b/docs/README.md index bdba2584..a4c5fd0f 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,25 +1,20 @@ # User Guide ## Table of Contents -1. [Features](#features) - 1. [List all tasks: `List`](#List-all-tasks-list) - 2. [Exit program: `bye`](#exit-program-bye) - 3. [Find task: `find`](#find-task-find) - 4. [Add Todo task: `todo`](#add-todo-task-todo) - 5. [Add Event task: `event`](#add-event-task-event) - 6. [Add Deadline task: `deadline`](#add-deadline-task-deadline) - 7. [Remove task: `delete`](#delete-task-delete) - 8. [Mark task as done: `mark`](#mark-task-as-done) - 9. [Mark task as not done: `unmark`](#mark-task-as-not-done-unmark) +1. [Add Todo task: `todo`](#add-todo-task-todo) +2. [Add Event task: `event`](#add-event-task-event) +3. [Add Deadline task: `deadline`](#add-deadline-task-deadline) +4. [Mark task as done: `mark`](#mark-task-as-done) +5. [Mark task as not done: `unmark`](#mark-task-as-not-done-unmark) +6. [List all tasks: `List`](#List-all-tasks-list) +7. [Find task: `find`](#find-task-find) +8. [Remove task: `delete`](#delete-task-delete) +9. [Exit program: `bye`](#exit-program-bye) ## Features > inputs by the user are shown in upper case > e.g `todo TASKNAME`, `TASKNAME` is an input which the user decides -### Exit program: `bye` -Format: `bye` -Exits program - ### Add Todo task: `todo` Adds a todo task to your list Format: `todo TASKNAME` @@ -67,7 +62,7 @@ Now you have 3 tasks in your list! ### Mark task as done: `mark` -Marks an existing task in the task list as done +Marks an existing task in the task list as done Format: `mark TASKINDEX` or `mark TASKNAME` Sample output: @@ -179,3 +174,15 @@ Now you have 1 tasks in your list! --------------------------------------------------- ``` +### Exit program: `bye` +Exits program +Format: `bye` + +Sample output: +``` +--------------------------------------------------- +You: bye +--------------------------------------------------- +Duke: Goodbye! +--------------------------------------------------- +``` \ No newline at end of file From 8d80670cacf95b745a97fdec051cb16b19084114 Mon Sep 17 00:00:00 2001 From: AaronC Date: Fri, 30 Sep 2022 21:06:21 +0800 Subject: [PATCH 23/23] Add: intro paragraph --- docs/README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/docs/README.md b/docs/README.md index a4c5fd0f..4cbd3e95 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,4 +1,14 @@ # User Guide +``` +Hello from + ____ _ +| _ \ _ _| | _____ +| | | | | | | |/ / _ \ +| |_| | |_| | < __/ +|____/ \__,_|_|\_\___| +``` + +Duke is a chatbot that allows you to keep track of all your tasks! ## Table of Contents 1. [Add Todo task: `todo`](#add-todo-task-todo)