From 617f3fac6a900f56f25435f01ecfbd88a944eaa1 Mon Sep 17 00:00:00 2001 From: Keys Date: Sun, 16 Sep 2018 23:56:26 -0400 Subject: [PATCH 01/10] basic XML Walk Structure being constructed with GUI base --- src/ScenerioEditor.java | 20 ++++++++++----- src/UnitPanel.java | 54 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+), 6 deletions(-) diff --git a/src/ScenerioEditor.java b/src/ScenerioEditor.java index 991931f..38d60e1 100644 --- a/src/ScenerioEditor.java +++ b/src/ScenerioEditor.java @@ -8,6 +8,7 @@ import org.w3c.dom.NamedNodeMap; import mekhq.campaign.unit.*; import mekhq.Version; +import java.lang.Integer; //import mekhq.campaign.Campaign; @@ -17,6 +18,7 @@ import java.util.UUID; import java.io.*; import javax.swing.*; +import java.math.*; public class ScenerioEditor { @@ -25,9 +27,10 @@ public class ScenerioEditor { public ScenerioEditor() { try { + mFrame = new ScenerioEditorGUI("Scenerio Editor"); DocumentBuilder dBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); - Document doc = dBuilder.parse(new File("C:\\Users\\jhahn\\eclipse-workspace\\MekHQ\\mekhq-master\\MekHQ\\campaigns\\Fist and Falcon\\test.cpnx")); + Document doc = dBuilder.parse(new File("C:\\MekHQ\\campaigns\\Fist and Falcon\\test.cpnx")); Element campaignEle = doc.getDocumentElement(); NodeList nl = campaignEle.getChildNodes(); campaignEle.normalize(); @@ -52,7 +55,7 @@ public ScenerioEditor() { // Okay, so what element is it? String xn = wn.getNodeName(); - if (xn.equalsIgnoreCase("units")) { // This is needed so that the campaign name gets set in retVal + if (xn.equalsIgnoreCase("units")) { processUnitNodes( wn); } } @@ -73,6 +76,7 @@ public ScenerioEditor() { private void processUnitNodes(Node wn) { NodeList wList = wn.getChildNodes(); + int cnt = 0; UUID id; int oldId; String chassis; @@ -91,10 +95,13 @@ private void processUnitNodes(Node wn) { // Errr, what should we do here? continue; } + cnt += 1; NamedNodeMap attrs = wn2.getAttributes(); Node idNode = attrs.getNamedItem("id"); id = UUID.fromString(idNode.getTextContent()); mFrame.getUnitPanel().setUID(id.toString()); + mFrame.getUnitPanel().setCounter(Integer.toString(cnt)); + // Okay, now load Part-specific fields! NodeList nl = wn2.getChildNodes(); @@ -104,10 +111,11 @@ private void processUnitNodes(Node wn) { if (wn3.getNodeName().equalsIgnoreCase("entity")) { NamedNodeMap eattrs = wn3.getAttributes(); - Node chassisNode = eattrs.getNamedItem("chassis"); - chassis = chassisNode.getTextContent(); - System.out.println(chassis); - mFrame.getUnitPanel().setChassisType(chassis); + System.out.println(eattrs.getNamedItem("chassis").getTextContent()); + mFrame.getUnitPanel().setChassisType(eattrs.getNamedItem("chassis").getTextContent()); + mFrame.getUnitPanel().setModel(eattrs.getNamedItem("model").getTextContent()); + mFrame.getUnitPanel().setMType(eattrs.getNamedItem("type").getTextContent()); + mFrame.getUnitPanel().setunitCommander(eattrs.getNamedItem("commander").getTextContent()); } /* if (wn2.getNodeName().equalsIgnoreCase("site")) { site = Integer.parseInt(wn2.getTextContent()); diff --git a/src/UnitPanel.java b/src/UnitPanel.java index 7b62dc5..a4688d6 100644 --- a/src/UnitPanel.java +++ b/src/UnitPanel.java @@ -6,28 +6,67 @@ public class UnitPanel extends JPanel { private JTextField uID = null; private JTextField chassisType = null; + private JTextField model = null; + private JTextField mType = null; + private JTextField unitCommander = null; + private JTextField cnt = null; public UnitPanel() { super(); JButton j = new JButton("TEST"); this.setLayout(new BoxLayout(this,BoxLayout.Y_AXIS)); + //accessable textfields + cnt = new JTextField(10); uID = new JTextField(10); chassisType = new JTextField(10); + model = new JTextField(10); + mType = new JTextField(10); + unitCommander = new JTextField(10); + //Counter + JPanel jp0 = new JPanel(); + jp0.setLayout(new GridLayout(0,2)); + jp0.add(new JLabel("Count")); + jp0.add(cnt); + + // unit ID JPanel jp = new JPanel(); jp.setLayout(new GridLayout(0,2)); jp.add(new JLabel("Unit ID")); jp.add(uID); + // Chassis Type JPanel jp1 = new JPanel(); jp1.setLayout(new GridLayout(0,2)); jp1.add(new JLabel("Chassis Type")); jp1.add(chassisType); + //Model + JPanel jp2 = new JPanel(); + jp2.setLayout(new GridLayout(0,2)); + jp2.add(new JLabel("Model")); + jp2.add(model); + + //Mech type + JPanel jp3 = new JPanel(); + jp3.setLayout(new GridLayout(0,2)); + jp3.add(new JLabel("Type")); + jp3.add(mType); + + //unitCommander + JPanel jp4 = new JPanel(); + jp4.setLayout(new GridLayout(0,2)); + jp4.add(new JLabel("Unit Commander")); + jp4.add(unitCommander); + // add the Jpanels + this.add(jp0); this.add(jp); this.add(jp1); + this.add(jp2); + this.add(jp3); + this.add(jp4); this.add(j); this.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.RAISED )); @@ -43,4 +82,19 @@ public void setChassisType(String s) { chassisType.setText(s); } + public void setModel(String s) { + model.setText(s); + } + + public void setMType(String s) { + mType.setText(s); + } + + public void setunitCommander(String s) { + unitCommander.setText(s); + } + + public void setCounter(String s) { + cnt.setText(s); + } } From 8a2da0b59ff6c01a5a2e33052c9920dfa123e813 Mon Sep 17 00:00:00 2001 From: Keys Date: Sun, 16 Sep 2018 23:57:29 -0400 Subject: [PATCH 02/10] Basic XML walk and GUI base --- bin/ScenerioEditor.class | Bin 4408 -> 4645 bytes bin/UnitPanel.class | Bin 1500 -> 2500 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/bin/ScenerioEditor.class b/bin/ScenerioEditor.class index b05462723f167c6055b470fed86edbf3739063f8..de37c155784ec6af3f2b486ebeade2db0023f619 100644 GIT binary patch delta 1748 zcmZXU3v5$m6vuz3E$eN2S4zXgvJr5C3Y$X$qLeW;$P7>rMZghAn4`?$*3GS(k`Rk9 z62(W95)DKokVr-2V}NA^1bl(u`-Km{$3PSX@h!+>p4)B=wN38*zH|QP{Lgp(=ew=> zPxW{2IlFlqFif&r+?&N-I6AoDgpA9Ixp{#WCoc*;=9V{=53VkcR1O{+iH0k~^(IfV zUdXv@?7&c$b8@u4DpEPp%`J2stS>Z^uDmu>~B{(Z?FK=k5 zYOwHIOtxBhuZ2&WV-2^=s|y=!6S~#Z&JI^wupK6^STI9j6D*^_Yl0)HNXz|($)@>6YSyo_+rCnw^u~sOO2WF zGe$wymnL8Fb-c*cM-IkAuDqV#3R3K*jb7H{dy^yl5TEZFIlYa9n-IrLezKUl)oELz z9+olL;1><*XYiX~8

28h@DlNrhlmhNBbpNK?zJ8}-;H6qj%Cx4ud&*lCk9%HG4> z)6s6Sf5SlcBT|-!g8(jipD_&JRxV)<1yobWT@MG2x|)>)NidS<6tk5Z*unU?-&`9ziJk5s6ADr+5hmD6?8BW2xw0_FnPQTSpb;=q z%+UU?A}b-it=%la|3H#CD=drAY!}P;kPvhQT>eK>#5K$vaHm))7^b<@s2W4OX;L2R-)TW`dOgPmYX;am;L4Q@!K=@*cwgr>iLe>y8?EdZ{OW)N{$)uq^J{Cx6e%A3!3YBJ76Yx zPx+gjlH)AQc+c)^L0Bk7GK8o$xJj>G6MghK5hpjQm{YXrQ&rYjndOPR@VW-)@> zD5gRcoy{b|%ur45pptpaRYhyKj|g$OFi3Z;8UeIPNO(!lD^bP5xZn4yQPFF z65<1$26PI%md4zzne?ZtW}ObboiQopeeT7EORiV&BCU3Y4*F6))Uh+=TBTj2H3wt> zA8Cl8rJdwsKG8Ew(#hYeHn(E7vOu$Vbhl0mT7;=(KFDXf&(=bte6A5*Ez83f>{IXk zTE#+K?Kf*53@2LrG$%KSRU4e9m+pJCYqzqyd`_L=4&btL@KZcyYuCe>UATB|_uSb3 za_RxuPpzi+XqF{R;x6yR`D4E-TDQNa!~B1pi*2?^UWQ|J`worupR`6d#VKJ0 z*}Bl1mbHpfUFnqwb!Pup6;@29l<`(6KC2YHsjZyt$X+M$p}w9mOQXH`RF8lvF-$cW zq20eu`(LZ;`5e$8Xyb7X>Uj^bjl=3ak{*{5vaIH)6pQukBPyc$iH>Ng*i>DcW+@W8 zdhHrpoYr3SlhRupX|JVjAimR=J59PtR;K3~V$(mkwjgDj#2ISQjV*mQ+-b*AovveP Y{tGfdF~p@90};0lu6`v&#lt4%Khwmexc~qF delta 1543 zcmZ9MYiv_x9L9fd$9g>*&@e|~C`?HZ81Vy69TzbOAutH2fJ=(9jEc#ZCF+&h&K>$P()CE{<#|qDzoom_ zd-&>}eZWNi>G19`6PHXc3oeX=nj*m!HI+3D!BACQxG@qcS+%mMHquyG6$;J`)y`TF ztPj=JJW^6$8Ht9Px(=Gz&iQWMGB`sG(QvfcO^3l%RZ|&>gd<*d&}FfUp@#fOC^|iB zexSKAmFvQ2a?xiSwYv#~h09^o%f{ z#E*K4h8#7R$zG07XdlNdKIKIGs%KK{2njFcoU-`buAJN06mE$6Xybl2rM8p^jTw#W3KeOU(*0$Js91IkBKaESV)-X4x)S2Ma_yT8&`3}ll z0auEkVZc^o@3C)74gMFBRBy5^+ilA_Lzz3^_P>}St{hLmlVYQxn^)(J-9>(q*GiIX zOJ;*rq|BRB>PxU7;4O&xvURM0l|_D2$QzkxUv1dDK%ReR7B)YSpMfpQ?PNwEH_4oS zaQnTp#b*k90dI;%Lwn!$1cSDM} zb8xYMJnqxR7iz1E7)^zQ9n|(7Vj2%CVyUc^ETc*g)kIj%YQn5z1us!cyBOFZPbUrR zlfRdDC8zf|C)_I>5;yQlcH=xwb4*t)pB9lNxpSEmPm7X8Jj(|5sJR^sp@Zkh#mhy} zx(273J3x;zTxw~v=-i82jcriDRtcq^MxGLiSI;FXzXqRLoF>X!vDD-kwX;`4wo6LW z-j^|79s2ly4|P7Tc2?u*li%gSxL9m&1U1LM6zV#-k4ae9UGWP83uCh#eFE`aH@ehS ze{Nepf{>zpD*t~_hZ>gZh3`|!T4{ZNs+}2|;(%cztMwusluMn54O?gs_dOh`@b~WK zn0!kONn+_FpCvh&GbO>~aYZS9fcFs;q`@hnWO>J?QqHK-! zzWqw|e{Jh4#U;Zg^7Nu_z`2!~dXs?5uYqT~7?o`!Z6{^%=Gd(avRlzd)XjJC!oeeA zy&Cl>gE%Isr6sE4+@;0e!wHRloF_Ob6`bZ}&S=iF;_|$17c+vHD$cbOeh^s*AtS1{T~z1dQboW diff --git a/bin/UnitPanel.class b/bin/UnitPanel.class index d91dd07ec2d05f5464e7bb2eb3d6cad57a62e6e6..67e57fc386c6e56beb08462f4ff2d8a0bba31c58 100644 GIT binary patch literal 2500 zcmah~OH&+G6#g#r=waxDS9pwsgph~B02zW{9+1Q^fdn#;7+`RSCN?uIG!ET3(_@G~ zK$lrq?yPdZrxku((=2v2hx+8lFhy6-2TpY&b{Z+KmYs9 zw*W@qYN!*aU$iavj$xYx4MBmHb>mHAD_MGI*{jJJbuJJnPhS`4OjmtdFt^+(%Pi!_ z1R8Q{MyX_#79MSy0-+5jZx-b4>4(a6k#aUR3_EWYNtd%-f$+G+<119-eHnpZibhcc z(4<4hp?WYD9U+9JbVP^dN$ol!p46$M-jklu5%r{_IvNnxa7>`JD%gp#>pFG>J#@4% zIlmA^H+rR`lLBpVb+Kf@;FagyB5yv{m(g&VpZp{f&Q{uZ7v3;NCGvTuAU>^P2_T{2;?wC(8!KiZ0wyq&a>_O@b^*OI z2Um1l#S2W0kKv7OYD-4myi{RGO-z}WUUlf_QCkF zEab*COJJ_Nv0@e%4E3QU?c|I?#wc1+uN(&5HLJwVN$>X`(;(Jab5-7FyvpUb!20G8 zJE8ikYEXWxTi;X&76);|YGrv)9$}|3%EjsHvVtrf>$2uG9?8<8O9s)RNUIuv86l*S zJFkr+JW#0=%X^2ZHn$7NsM1<_A9M^rOmH&_?6f$0$D~fJFtu4Y#_9Q zk!_r(av|GtX$RxmxV$uw_yS#0s9@&?{a7l*UaMdSiEZ{_F9l;kKU!*prz-GRkoZzyi5C0$` zLg*KboXVX@iZd7zqa43iF(PhaRAe|{O`I1FE{QD;(YG-!-os__0Vn5&xF$a4Ec^^9 z@ioWbcbF7Ea`^qisrM^p#P7I;d%VS6uWa!$UZFN1KEZuFU{OC7X~t}@9d<&e^xM*IxUd*RTEta0ibyj0hz69Xog= z9jm1wE|5NwKgi>}|H5{j=C{Llfmo-sE-+UfvQ@0(VAHl*&4R#q<52p(?N?6PmcZCu zn>p_>E|aYa#EWjz(h-AUAc15O0+R+tF{Zwz3}_hBkQSI8O25_#0@q1kh6ySgdlen$ zFsl+=5ICO+q2ybVAol`~SPR*zhIyI>ldQSNWqIOu0v&U>q=G+S8~tGUBFGnACy=&d zd4*E8suRwFfe*1rR(vanLIo}j1VnE;(veRYq-uU7FgsXt`-~SIOSr0vUSkUx7SM2` z-(_AE-}3C{TX@%zRi386Xr>fmiD5y*%D)FvmUXL@Kwdyob6YH}>&RhNvAb&EW85L> zve^_c2S69y=WW-qoS=}6c#B$p`Qeb|tzctruTHdB? z1g>{t;4Z!*#)fCfz}g5JhgLIkAeC%+NHO&=G9TFss>Xc-U*kc<_PenE2#SVOG_Z~h z0i8pt+P+0@`S2N>1T>0+6eTrGXG zhg)6TKFFDWU_yQLeRo#|eR-kpCw<=)`lghxnd{=S19K%jm%}sm7e4Reo*D0A?Pb{5 zCeJF)^BiY08k4H{70jSc-)Fc0pB_JA9zWqCe#T||f(87> zwf>#-y~GuCag{NE8Bv69P~vS4zhWETlE5vrQN|7__NlX7ekpPvGIK~S9)$D*N!2;Q uKY9mOrwO=0pqa45Y Date: Mon, 17 Sep 2018 23:01:11 -0400 Subject: [PATCH 03/10] Made Package started more complex Unit Work --- bin/.gitignore | 1 + bin/ScenerioEditor.class | Bin 4645 -> 0 bytes bin/ScenerioEditorGUI.class | Bin 936 -> 0 bytes bin/UnitPanel.class | Bin 2500 -> 0 bytes src/ScenerioEditor.java | 240 ------------------ src/ScenerioEditor/ScenerioEditor.java | 228 +++++++++++++++++ .../ScenerioEditorGUI.java | 1 + src/ScenerioEditor/Unit.java | 75 ++++++ src/{ => ScenerioEditor}/UnitPanel.java | 27 ++ 9 files changed, 332 insertions(+), 240 deletions(-) create mode 100644 bin/.gitignore delete mode 100644 bin/ScenerioEditor.class delete mode 100644 bin/ScenerioEditorGUI.class delete mode 100644 bin/UnitPanel.class delete mode 100644 src/ScenerioEditor.java create mode 100644 src/ScenerioEditor/ScenerioEditor.java rename src/{ => ScenerioEditor}/ScenerioEditorGUI.java (90%) create mode 100644 src/ScenerioEditor/Unit.java rename src/{ => ScenerioEditor}/UnitPanel.java (74%) diff --git a/bin/.gitignore b/bin/.gitignore new file mode 100644 index 0000000..36ff3be --- /dev/null +++ b/bin/.gitignore @@ -0,0 +1 @@ +/ScenerioEditor/ diff --git a/bin/ScenerioEditor.class b/bin/ScenerioEditor.class deleted file mode 100644 index de37c155784ec6af3f2b486ebeade2db0023f619..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4645 zcma)A3w%@69sW*|<|gTBt`V)+v|22VOL{36lADs;($+cW z0QYdtZOYtqL)6W6>R!H5A`W#Ao$l>6bz|;<&dm+y-Ww`*-?=ww)6zMA{F>&R|MUF+ z-~T(OJoV;7hXI@?N;G%`N?T%vWu(mH>Q2*6rZo5j%C_sf^qRPCb=9ohvfYT;0{%op zN>3O9r$t8_tZ8km6VP@UskE821Wt)2j2+u{*0i}Bl=+vLmT9jL@XnguCg7`2b{Zjg zQ6dpUC+tmsJQEq2PZy6R@P zg)j+|HJl+ZOG*1``V#S)ZatM|hBd2_v7Urs*%$Vh@lGSvpvPE*eu*>j4uN9J=xwyp zwr<6E@;S3+JMQ0(gE|#-s>E5CCJ?5ZF>wTDyd7_K8m0?K=TK&{rooIG0nB77^|c*M z#*T~Dcf|BWw{CV>>5c|7ZBNy$&Z!N0JeIUNY$I(~$GWY)5Y9$L2(wY8p;F+i|62r! zIhZR@ifP{CRh+T;Xuxe$vrEF$X05lbw=Qh^eBtl!4&H4|59fr(?BsqH9h<9Mr+ScZ^5 z&`PEfdfdFi&_HCCjKXXHnu>gZ#D%D5`5E8>n`qk7V-p7Xaya9W2ieKE3t>4bf@r`+ z8rF;&sh0kbp)+VuZEr=hN5WJ(8S~C5l|qOSgSCvbt{Xw zRgCp$(eSP@<_=n`8H8<93U%%Yq*=Payj0JJOWA%Ubr=z^(X z+vs9CQ!cR`JGgJ`?9t=t#x8c(sMpgp9hVX|hDbH+fQ2NDx>L!RkxsWVhDwzXqS4p_ zkVjO7cS@u{jUdkzHLNb1+3-}28hY|wac8o-;UR3VMY{ z%}<_y$BK{jp{nCdl7Q&rPb0N@N%=fa0U;k6G~7yobL<}5jMucb zHm;Jm4Yvz~wx*H^mo@~Zk9T3YLojSd8VKWa5}(JNZn_Gn>vYRte@a-4;UyLKV?g4I zDyx89d9%6P_Q{u~tI{azFW?~_H758fR8n4`uMm6#ur4^u7liCd6o5Y4qO(p)e#N)$a*Zey?Uo4qO@B%baO6Mtw?<$=#x=@&^ z&kGeNe_!GU4*MD@D%%)f@LmON4o^(oNM&Q2KtZo{F4c721cc$F(U>m)7P0R)9Yk_O z`W?FksvbE*kI|=wZlsvQR6)a_L*^UwuCzkfuOxnr->}Q9Q{f1Za5gH0@6_-DFV7KI zZeMb25y0=5z_JjIs@wl4{vh!({>V)9?ry{C6qx(J!B@b*Id25lQ4FXX=@p4TtHKsJ zxvD%`0{AOKO%34hoWAALRPO(j_?N<=x;zylwCV94cKJWln-;)p{Ix=C0ca|XSauE4C0&&W;M;pqFSJNZkDfd)cW|l zR)A*9+vkQ?W^uj;gIGmR_hEH@BZG^*i;4!YCgLkE%3_@dwf=}d3qG*t-U z%xNXpSL6N6$3zPw>|yD9u?Tyq;b){N_yG4b#wx=H@gX+r!}K{H{voF2*B~^^)=;Bi zp@#JWcmoqPT=E*u@eJ{7loA^nPtTxyByh$4dX6*jDeQAoRTkF@G1A%nYe%QFw+D;eCcj2XGM*tfCkTO)4>4x{p^^Qs7wSJUvj2_3{cnxzKT){<>x6!QDu(;}&j2H}1er+`}i^BS_;}MtGI)G!47N6eL77o)8Q0 zq*%d+aTGsxFnB$?&j#l(sJIj(qtH_d?Wp*g9OTk$7rF z#tf=x?pmJM$GnbIX7Rkh&A5tR2(~E4;2)L zA=~*6pn=~wBhkF`QAsEpH`G7+3BTJHI`Z%z v5Ih9YJ}5NOxZ*EG-yuhEjIeyg$!dbDC;~#=R{;nS;^>g`1RKo%6_Wo20Wq6g diff --git a/bin/ScenerioEditorGUI.class b/bin/ScenerioEditorGUI.class deleted file mode 100644 index d051d829bd9a8dd5cb7dcbe829d53b39b8db1392..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 936 zcmZWn+fEZv6kVsZOgkJdEmAM2h}U*d#tUAHNUUH=>Ln>O(YHf;f~1@ zO|&GM_yK-}Ut(NmIw2TdX3jo)t-beJXaD~D;}?JhEL%tk(C2U+Flfd&o^oo z(gKBTwWr>@-F?sBa@STvwW9@6ykZCj@pmhr$N}(VO@O)dXbGW*{EL5|~bU8vfw!h4R&w4%yjoPDz}`83Bu&hWC*QGNoE=kUJ}J4(A1I=9*sD z+w3r%F1;-`EnHxmLyLrPr74JuXbwm|uarfRUW8~7|xIpXcB&28O^5{0hBP2*B_Pj$Su zigXsYDPw)5v2NyGkhqI1r=ZA<+B1RiI!Ali+u79Nx{4(i>Oo6&nkw{6oLr`(cV1Uu zvVLqi_~e3_!jXZJ#}<$@=Fm1iGi^Bx$+H_lFKp>m&p2H?R(am60%mFS5Z9B-W|oAf z6wh27eshdIGn?Xn&6zuZ?TGJ?&QFZJIlx38lTJSMDKGx?anecmG0n^jGqVQN$3^EG zWZ`NbB?j|xaI23yU*jJ4_;q0On`Pe&PdVZrxku((=2v2hx+8lFhy6-2TpY&b{Z+KmYs9 zw*W@qYN!*aU$iavj$xYx4MBmHb>mHAD_MGI*{jJJbuJJnPhS`4OjmtdFt^+(%Pi!_ z1R8Q{MyX_#79MSy0-+5jZx-b4>4(a6k#aUR3_EWYNtd%-f$+G+<119-eHnpZibhcc z(4<4hp?WYD9U+9JbVP^dN$ol!p46$M-jklu5%r{_IvNnxa7>`JD%gp#>pFG>J#@4% zIlmA^H+rR`lLBpVb+Kf@;FagyB5yv{m(g&VpZp{f&Q{uZ7v3;NCGvTuAU>^P2_T{2;?wC(8!KiZ0wyq&a>_O@b^*OI z2Um1l#S2W0kKv7OYD-4myi{RGO-z}WUUlf_QCkF zEab*COJJ_Nv0@e%4E3QU?c|I?#wc1+uN(&5HLJwVN$>X`(;(Jab5-7FyvpUb!20G8 zJE8ikYEXWxTi;X&76);|YGrv)9$}|3%EjsHvVtrf>$2uG9?8<8O9s)RNUIuv86l*S zJFkr+JW#0=%X^2ZHn$7NsM1<_A9M^rOmH&_?6f$0$D~fJFtu4Y#_9Q zk!_r(av|GtX$RxmxV$uw_yS#0s9@&?{a7l*UaMdSiEZ{_F9l;kKU!*prz-GRkoZzyi5C0$` zLg*KboXVX@iZd7zqa43iF(PhaRAe|{O`I1FE{QD;(YG-!-os__0Vn5&xF$a4Ec^^9 z@ioWbcbF7Ea`^qisrM^p#P7I;d%VS6uWa!$UZFN1KEZuFU{OC7X~t}@9d<0 ) { - System.out.print("<"+nodes.getNodeName()); - for( int i =0 ; i < nnm.getLength() ; i++) { - Node nk = nnm.item(i); - System.out.print (" " +nk.getNodeName() + "=\"" + nk.getNodeValue()+"\""); - } - System.out.println(">"); - } - //System.out.println(nodes.getAttributes()); - - } - if(nodes.hasChildNodes() || nodes.getNodeType()!=3){ - NodeList nl=nodes.getChildNodes(); - System.out.println("<"+nodes.getNodeName()+">"); - - for(int j=0;j units = new Vector(10,2); + + public ScenerioEditor() { + try { + + mFrame = new ScenerioEditorGUI("Scenerio Editor"); + mFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + DocumentBuilder dBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); + Document doc = dBuilder.parse(new File("C:\\MekHQ\\campaigns\\Fist and Falcon\\test.cpnx")); + Element campaignEle = doc.getDocumentElement(); + NodeList nl = campaignEle.getChildNodes(); + campaignEle.normalize(); + version = new Version(campaignEle.getAttribute("version")); + System.out.println(campaignEle.getAttribute("version")); + + + // we need to iterate through three times, the first time to collect + // any custom units that might not be written yet + for (int x = 0; x < nl.getLength(); x++) { + Node wn = nl.item(x); + + if (wn.getParentNode() != campaignEle) { + continue; + } + int xc = wn.getNodeType(); + + if (xc == Node.ELEMENT_NODE) { + // This is what we really care about. + // All the meat of our document is in this node type, at this + // level. + // Okay, so what element is it? + String xn = wn.getNodeName(); + + if (xn.equalsIgnoreCase("units")) { + processUnitNodes( wn); + } + if (xn.equalsIgnoreCase("parts")) { + processPartNodes(wn); + } + } + } + + } catch (Exception e) { + /*err handling*/ + } + + mFrame.getUnitPanel().LoadUnit(getUnitByCnt("1")); + + + + } + + public Unit getUnitByCnt(String s) { + Unit ul= null; + Iterator itr = units.iterator(); + do{ + ul = itr.next(); + }while(!s.equals(ul.getCnt())); + return ul; + } + + public Unit getUnitByUnitID(String s) { + Unit ul= null; + Iterator itr = units.iterator(); + do{ + ul = itr.next(); + }while(!s.equals(ul.getUnitID())); + return ul; + } + + public void replaceUnit(Unit u) { + Unit ul= null; + int cnt = 0; + Iterator itr = units.iterator(); + while(itr.hasNext()) { + cnt++; + ul = itr.next(); + if(u.getCnt().equals(ul.getCnt())) { + units.set(cnt, u); + } + } + + } + + private void processUnitNodes(Node wn) { + NodeList wList = wn.getChildNodes(); + int cnt = 0; + UUID id; + int oldId; + String chassis; + + // Okay, lets iterate through the children, eh? + for (int x = 0; x < wList.getLength(); x++) { + Node wn2 = wList.item(x); + + // If it's not an element node, we ignore it. + if (wn2.getNodeType() != Node.ELEMENT_NODE) { + continue; + } + + if (!wn2.getNodeName().equalsIgnoreCase("unit")) { + // Error condition of sorts! + // Errr, what should we do here? + continue; + } + cnt += 1; + Unit u = new Unit(); + + NamedNodeMap attrs = wn2.getAttributes(); + Node idNode = attrs.getNamedItem("id"); + id = UUID.fromString(idNode.getTextContent()); + u.setCnt(Integer.toString(cnt)); + u.setUnitID(id.toString()); + + // Okay, now load Part-specific fields! + NodeList nl = wn2.getChildNodes(); + + try { + for (int y=0; y Date: Tue, 18 Sep 2018 22:24:59 -0400 Subject: [PATCH 04/10] Added the Mission , Scenario, BotForce and BotEntity Classes, along with the XML parse functions. --- src/ScenerioEditor/BotEntity.java | 27 +++ src/ScenerioEditor/BotForce.java | 38 ++++ src/ScenerioEditor/Mission.java | 138 ++++++++++++ src/ScenerioEditor/Scenario.java | 235 ++++++++++++++++++++ src/ScenerioEditor/ScenerioEditor.java | 290 ++++++++++++++++++++++--- src/ScenerioEditor/UnitPanel.java | 1 + 6 files changed, 695 insertions(+), 34 deletions(-) create mode 100644 src/ScenerioEditor/BotEntity.java create mode 100644 src/ScenerioEditor/BotForce.java create mode 100644 src/ScenerioEditor/Mission.java create mode 100644 src/ScenerioEditor/Scenario.java diff --git a/src/ScenerioEditor/BotEntity.java b/src/ScenerioEditor/BotEntity.java new file mode 100644 index 0000000..43fd4a6 --- /dev/null +++ b/src/ScenerioEditor/BotEntity.java @@ -0,0 +1,27 @@ +package ScenerioEditor; + +public class BotEntity { + private String id = ""; + private String name = ""; + + + public BotEntity() { + + } + + public void setID(String s) { + id = s; + } + + public String getID() { + return id; + } + + public void setName(String s) { + name = s; + } + + public String getName() { + return name; + } +} diff --git a/src/ScenerioEditor/BotForce.java b/src/ScenerioEditor/BotForce.java new file mode 100644 index 0000000..c71fd8c --- /dev/null +++ b/src/ScenerioEditor/BotForce.java @@ -0,0 +1,38 @@ +package ScenerioEditor; + +import java.util.Vector; + +public class BotForce { + private Vector botEntities = new Vector(4,2); + private String id = ""; + private String name = ""; + + + /* + * Constructor + */ + public BotForce() { + + } + + public String getID() { + return id; + } + + public void setID(String s) { + id = s; + } + + public void setName(String s) { + name = s; + } + + public String getName() { + return name; + } + + public void addBotEntity(BotEntity be) { + botEntities.add(be); + } + +} diff --git a/src/ScenerioEditor/Mission.java b/src/ScenerioEditor/Mission.java new file mode 100644 index 0000000..dd680ca --- /dev/null +++ b/src/ScenerioEditor/Mission.java @@ -0,0 +1,138 @@ +package ScenerioEditor; + +import java.util.Iterator; +import java.util.Vector; + +public class Mission { + + private String cnt = ""; + private String missionID = ""; + + private String missionName = ""; + private String missionType = ""; + private String missionPlanetID = ""; + private String missionStatus = ""; + private String missionDesc = ""; + private String missionTypeDesc = ""; + private Vector scenarios = null; + + public Mission() { + scenarios = new Vector(4,2); + } + + public String toString() { + String s = ""; + s = "Cnt : " + cnt +"\r\n"; + s += "Mission ID : " + missionID + "\r\n"; + s += "Mission Name : " + missionName + "\r\n"; + s += "Mission Type : " + missionType + "\r\n"; + s += "Planet ID : " + missionPlanetID + "\r\n"; + s += "Status : " + missionStatus + "\r\n"; + s += "Description : " + missionDesc + "\r\n"; + s += "Mission Type Desc: " + missionTypeDesc + "\r\n"; + + return s; + } + public String getCnt() { + return cnt; + } + + public void setCnt(String c) { + cnt = c; + } + + public String getMissionID() { + return missionID; + } + + public void setMissionID(String s) { + missionID = s; + } + + public void setMissionName(String s) { + missionName = s; + } + + public String getMissionName() { + return missionName; + } + public void setMissionType(String s) { + missionType = s; + } + + public String getMissionType() { + return missionType; + } + + public void setPlanetID(String s) { + missionPlanetID = s; + } + + public String getPlanetID() { + return missionPlanetID; + } + + public void setMissionStatus(String s) { + missionStatus = s; + } + + public String getMissionStatus() { + return missionStatus; + } + + public void setMissionDesc(String s) { + missionDesc = s; + } + + public String getMissionDesc() { + return missionDesc; + } + + public void setMissionTypeDesc(String s) { + missionTypeDesc = s; + } + + public String getMissionTypeDesc() { + return missionTypeDesc; + } + + public void addScenario(Scenario s) { + scenarios.add(s); + } + + /* + * get Scenario by ID / cnt + */ + public Scenario getScenarioByCnt(String s) { + Scenario ul= null; + Iterator itr = scenarios.iterator(); + do{ + ul = itr.next(); + }while(!s.equals(ul.getCnt())); + return ul; + } + + /* + * helper method to replace a Scenario object + * once it has been updated or modified in + * some way + */ + public void replaceScenario(Scenario u) { + Scenario ul= null; + int cnt = 0; + try { + Iterator itr = scenarios.iterator(); + while(itr.hasNext()) { + ul = itr.next(); + if(u.getCnt().equals(ul.getCnt())) { + scenarios.set(cnt, u); + } + cnt++; + } + }catch(Exception e) { + System.err.println("Inside ReplaceScenario :" +e.toString()); + } + + } + +} diff --git a/src/ScenerioEditor/Scenario.java b/src/ScenerioEditor/Scenario.java new file mode 100644 index 0000000..7908b8a --- /dev/null +++ b/src/ScenerioEditor/Scenario.java @@ -0,0 +1,235 @@ +package ScenerioEditor; + +import java.util.Vector; + +public class Scenario { + private String cnt = ""; + private String type = ""; + private String name = ""; + private String desc = ""; + private String report = ""; + private String status = ""; + private String id = ""; + private String date = ""; + private String attackers = ""; + private String lanceForceId = ""; + private String lanceRole = ""; + private String terrainType = ""; + private String light = ""; + private String weather = ""; + private String wind = ""; + private String fog = ""; + private String atmosphere = ""; + private String gravity = ""; + private String start = ""; + private String deploymentDelay = ""; + private String mapSize = ""; + private String map = ""; + private String lanceCount = ""; + private String rerollsRemaining = ""; + private Vector botForce = new Vector(4,2); + + /* + * Constructor + */ + public Scenario() { + + } + + public void setCnt(String s) { + cnt = s; + } + + public String getCnt() { + return cnt; + } + + public void setType(String s) { + type = s; + } + + public String getType() { + return type; + } + + public void setName(String s) { + name = s; + } + + public String getName() { + return name; + } + + public void setDesc(String s) { + desc = s; + } + + public String getDesc() { + return desc; + } + + public void setReport(String s) { + report = s; + } + + public String getReport() { + return report; + } + + public void setStatus(String s) { + status = s; + } + + public String getStatus() { + return status; + } + + public void setID(String s) { + id = s; + } + + public String getID() { + return id; + } + + public void setDate(String s) { + date = s; + } + + public String getDate() { + return date; + } + + public void setAttackers(String s) { + attackers = s; + } + + public String getAttackers() { + return attackers; + } + + public void setLanceForceId(String s) { + lanceForceId = s; + } + + public String getLanceForceId() { + return lanceForceId; + } + + public void setLanceRole(String s) { + lanceRole = s; + } + + public String getLanceRole() { + return lanceRole; + } + + public void setTerrainType(String s) { + terrainType = s; + } + + public String getTerrainType() { + return terrainType; + } + + public void setLight(String s) { + light = s; + } + + public String getLight() { + return light; + } + + public void setWeather(String s) { + weather = s; + } + + public String getWeather() { + return weather; + } + + public void setWind(String s) { + wind = s; + } + + public String getWind() { + return wind; + } + + public void setFog(String s) { + fog = s; + } + + public String getFog() { + return fog; + } + + public void setAtmosphere(String s) { + atmosphere = s; + } + + public String getAtmosphere() { + return atmosphere; + } + + public void setGravity(String s) { + gravity = s; + } + + public String getGravity() { + return gravity; + } + + public void setStart(String s) { + start = s; + } + + public String getStart() { + return start; + } + + public void setDeploymentDelay(String s) { + deploymentDelay = s; + } + + public String getDeploymentDelay() { + return deploymentDelay; + } + + public void setMapSize(String s) { + mapSize = s; + } + + public String getMapSize() { + return mapSize; + } + + public void setMap(String s) { + map = s; + } + + public String getMap() { + return map; + } + + public void setLanceCount(String s) { + lanceCount = s; + } + + public String getLanceCount() { + return lanceCount; + } + + public void setRerollsRemaining(String s) { + rerollsRemaining = s; + } + + public String getRerollsRemaining() { + return rerollsRemaining; + } + + public void addBotForce(BotForce b) { + botForce.add(b); + } + +} diff --git a/src/ScenerioEditor/ScenerioEditor.java b/src/ScenerioEditor/ScenerioEditor.java index 7f01381..f37bdb2 100644 --- a/src/ScenerioEditor/ScenerioEditor.java +++ b/src/ScenerioEditor/ScenerioEditor.java @@ -27,14 +27,18 @@ public class ScenerioEditor { ScenerioEditorGUI mFrame = null; Version version = null; private Vector units = new Vector(10,2); + private Vector missions = new Vector(4,2); + /* + * Scenario Editor Constructor + */ public ScenerioEditor() { try { mFrame = new ScenerioEditorGUI("Scenerio Editor"); mFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); DocumentBuilder dBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); - Document doc = dBuilder.parse(new File("C:\\MekHQ\\campaigns\\Fist and Falcon\\test.cpnx")); + Document doc = dBuilder.parse(new File("C:\\MekHQ\\campaigns\\Solo\\Solo30270514.cpnx")); Element campaignEle = doc.getDocumentElement(); NodeList nl = campaignEle.getChildNodes(); campaignEle.normalize(); @@ -42,8 +46,7 @@ public ScenerioEditor() { System.out.println(campaignEle.getAttribute("version")); - // we need to iterate through three times, the first time to collect - // any custom units that might not be written yet + // Step through the file to get for (int x = 0; x < nl.getLength(); x++) { Node wn = nl.item(x); @@ -65,51 +68,219 @@ public ScenerioEditor() { if (xn.equalsIgnoreCase("parts")) { processPartNodes(wn); } + if (xn.equalsIgnoreCase("missions")) { + processMissionNodes(wn); + } } + System.out.println("."); } - } catch (Exception e) { /*err handling*/ } - mFrame.getUnitPanel().LoadUnit(getUnitByCnt("1")); - - - } - public Unit getUnitByCnt(String s) { - Unit ul= null; - Iterator itr = units.iterator(); - do{ - ul = itr.next(); - }while(!s.equals(ul.getCnt())); - return ul; + /* + * Process the Mission nodes in the campaign file + */ + private void processMissionNodes(Node wn){ + NodeList wList = wn.getChildNodes(); + int cnt = 0; + + // iterate through the children, + for (int x = 0; x < wList.getLength(); x++) { + Node wn2 = wList.item(x); + + // If it's not an element node, we ignore it. + if (wn2.getNodeType() != Node.ELEMENT_NODE) { + continue; + } + + if (!wn2.getNodeName().equalsIgnoreCase("mission")) { + continue; + } + cnt += 1; + Mission m = new Mission(); + + NamedNodeMap attrs = wn2.getAttributes(); + // Mission ID + Node idNode = attrs.getNamedItem("id"); + m.setCnt(idNode.getTextContent()); + // Mission Type + idNode = attrs.getNamedItem("type"); + m.setMissionType(idNode.getTextContent()); + + // Okay, now load scenario specific fields + NodeList nl = wn2.getChildNodes(); + + try { + for (int y=0; y itr = units.iterator(); - do{ - ul = itr.next(); - }while(!s.equals(ul.getUnitID())); - return ul; + /* + * Process the scenarios in the mission in campaign file + */ + private void processScenarioNodes(Node wn) { + NodeList wList = wn.getChildNodes(); + int cnt = 0; + + // iterate through the children, + for (int x = 0; x < wList.getLength(); x++) { + Node wn2 = wList.item(x); + + // If it's not an element node, we ignore it. + if (wn2.getNodeType() != Node.ELEMENT_NODE) { + continue; + } + + if (!wn2.getNodeName().equalsIgnoreCase("scenario")) { + continue; + } + cnt += 1; + Scenario m = new Scenario(); + + NamedNodeMap attrs = wn2.getAttributes(); + // Scenario ID + Node idNode = attrs.getNamedItem("id"); + m.setCnt(idNode.getTextContent()); + // Mission Type + idNode = attrs.getNamedItem("type"); + m.setType(idNode.getTextContent()); + + // Okay, now load scenario specific fields + NodeList nl = wn2.getChildNodes(); + + try { + for (int y=0; y itr = units.iterator(); - while(itr.hasNext()) { - cnt++; - ul = itr.next(); - if(u.getCnt().equals(ul.getCnt())) { - units.set(cnt, u); - } - } - + /* + * Process Bot Force Entities in campaign file + * add entities to the botforce passed to it + */ + public void processBotForceEntities(Node wn,BotForce b) { + NodeList wList = wn.getChildNodes(); + int cnt = 0; + + // iterate through the children, + for (int x = 0; x < wList.getLength(); x++) { + Node wn2 = wList.item(x); + + try { + if (wn2.getNodeName().equalsIgnoreCase("entityStub")) { + cnt += 1; + BotEntity be = new BotEntity(); + be.setID(Integer.toString(cnt)); + be.setName(wn2.getTextContent()); + b.addBotEntity(be); + } + //System.out.println("Mission: \r\n" + m.toString()); + } catch (Exception ex) { + // Doh! + System.err.println( ex.toString() ); + } + + } } + /* + * Process the Units in the Campaign File + */ private void processUnitNodes(Node wn) { NodeList wList = wn.getChildNodes(); int cnt = 0; @@ -165,6 +336,10 @@ private void processUnitNodes(Node wn) { } } } + + /* + * Process the parts for the Units + */ private void processPartNodes(Node wn) { NodeList wList = wn.getChildNodes(); int cnt = 0; @@ -202,6 +377,7 @@ private void processPartNodes(Node wn) { if (wn3.getNodeName().equalsIgnoreCase("name")) { wpn = wn3.getTextContent(); + System.out.println("In ProcessPartNodes : " + wpn); }else if (wn3.getNodeName().equalsIgnoreCase("unitId")) { unitId = wn3.getTextContent(); } @@ -218,8 +394,54 @@ private void processPartNodes(Node wn) { } } + /* + * get unit objectfrom units vector by Cnt number + */ + public Unit getUnitByCnt(String s) { + Unit ul= null; + Iterator itr = units.iterator(); + do{ + ul = itr.next(); + }while(!s.equals(ul.getCnt())); + return ul; + } + /* + * get unit object from vector by unique ID + */ + public Unit getUnitByUnitID(String s) { + Unit ul= null; + Iterator itr = units.iterator(); + do{ + ul = itr.next(); + }while(!s.equals(ul.getUnitID())); + return ul; + } + + /* + * helper method to replace a unit object + * once it has been updated or modified in + * some way + */ + public void replaceUnit(Unit u) { + Unit ul= null; + int cnt = 0; + try { + Iterator itr = units.iterator(); + while(itr.hasNext()) { + ul = itr.next(); + if(u.getCnt().equals(ul.getCnt())) { + units.set(cnt, u); + } + cnt++; + } + }catch(Exception e) { + System.err.println("Inside ReplaceUnit :" +e.toString()); + } + + } + public static void main(String[] args){ ScenerioEditor s = new ScenerioEditor(); } diff --git a/src/ScenerioEditor/UnitPanel.java b/src/ScenerioEditor/UnitPanel.java index 2e599f5..1c65fe1 100644 --- a/src/ScenerioEditor/UnitPanel.java +++ b/src/ScenerioEditor/UnitPanel.java @@ -123,5 +123,6 @@ public void LoadUnit(Unit u) { model.setText(u.getModel()); mType.setText(u.getMType()); unitCommander.setText(u.getUnitCommander()); + Weapons.append(u.getWeapons()); } } From 732bd71cc93f84d6b697f029b68c1b5cb77e5f9f Mon Sep 17 00:00:00 2001 From: Keys Date: Mon, 24 Sep 2018 07:32:16 -0400 Subject: [PATCH 05/10] added Scenario and other load functions --- src/ScenerioEditor/ScenarioPanel.java | 463 ++++++++++++++++++++++ src/ScenerioEditor/ScenerioEditor.java | 73 +++- src/ScenerioEditor/ScenerioEditorGUI.java | 31 +- src/ScenerioEditor/Unit.java | 5 +- src/ScenerioEditor/UnitPanel.java | 77 +++- 5 files changed, 632 insertions(+), 17 deletions(-) create mode 100644 src/ScenerioEditor/ScenarioPanel.java diff --git a/src/ScenerioEditor/ScenarioPanel.java b/src/ScenerioEditor/ScenarioPanel.java new file mode 100644 index 0000000..c5f6729 --- /dev/null +++ b/src/ScenerioEditor/ScenarioPanel.java @@ -0,0 +1,463 @@ +package ScenerioEditor; + +import java.awt.Color; +import java.awt.GridLayout; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import javax.swing.JButton; +import javax.swing.BoxLayout; +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JTextField; +import javax.swing.JTextArea; +import javax.swing.BoxLayout; +import javax.swing.JScrollPane; + +public class ScenarioPanel extends JPanel{ + private ScenerioEditorGUI SEG = null; + private JTextField id = null; + private JTextField type = null; + private JTextField name = null; + private JTextField desc = null; + private JTextField status = null; + private JTextField date = null; + private JTextField attacker = null; + private JTextField lanceForceId = null; + private JTextField lanceRole = null; + private JTextField terrainType = null; + private JTextField light = null; + private JTextField weather = null; + private JTextField wind = null; + private JTextField fog = null; + private JTextField atmosphere = null; + private JTextField gravity = null; + private JTextField start = null; + private JTextField deploymentDelay = null; + private JTextField mapSize = null; + private JTextField map = null; + private JTextField lanceCount = null; + private JTextField rerollsRemaining = null; + private JTextArea botForceStub = null; + + + + + public ScenarioPanel(ScenerioEditorGUI se) { + super(); + SEG = se; + JButton n = new JButton("Next"); + JButton p = new JButton("Prev"); + + this.setLayout(new BoxLayout(this,BoxLayout.Y_AXIS)); + + // build all the elements + id = new JTextField(10); + type = new JTextField(10); + name = new JTextField(10); + desc = new JTextField(10); + status = new JTextField(10); + date = new JTextField(10); + attacker = new JTextField(10); + lanceForceId = new JTextField(10); + lanceRole = new JTextField(10); + terrainType = new JTextField(10); + light = new JTextField(10); + weather = new JTextField(10); + wind = new JTextField(10); + fog = new JTextField(10); + atmosphere = new JTextField(10); + gravity = new JTextField(10); + start = new JTextField(10); + deploymentDelay = new JTextField(10); + mapSize = new JTextField(10); + map = new JTextField(10); + lanceCount = new JTextField(10); + rerollsRemaining = new JTextField(10); + botForceStub = new JTextArea(5,30); + + JScrollPane jsp = new JScrollPane(botForceStub); + + /* + * Build all the JPanels for the display of + * the Scenario + */ + + //ID + JPanel jp0 = new JPanel(); + jp0.setLayout(new GridLayout(0,2)); + jp0.add(new JLabel("ID")); + id.setEnabled(false); + id.setDisabledTextColor(Color.black); + jp0.add(id); + + //type + JPanel jp1 = new JPanel(); + jp1.setLayout(new GridLayout(0,2)); + jp1.add(new JLabel("Type")); + type.setEnabled(false); + type.setDisabledTextColor(Color.black); + jp1.add(type); + + //name + JPanel jp2 = new JPanel(); + jp2.setLayout(new GridLayout(0,2)); + jp2.add(new JLabel("Name")); + name.setEnabled(false); + name.setDisabledTextColor(Color.black); + jp2.add(name); + + //desc + JPanel jp3 = new JPanel(); + jp3.setLayout(new GridLayout(0,2)); + jp3.add(new JLabel("Desc")); + desc.setEnabled(false); + desc.setDisabledTextColor(Color.black); + jp3.add(desc); + + //status + JPanel jp4 = new JPanel(); + jp4.setLayout(new GridLayout(0,2)); + jp4.add(new JLabel("Status")); + status.setEnabled(false); + status.setDisabledTextColor(Color.black); + jp4.add(status); + + //date + JPanel jp5 = new JPanel(); + jp5.setLayout(new GridLayout(0,2)); + jp5.add(new JLabel("Date")); + date.setEnabled(false); + date.setDisabledTextColor(Color.black); + jp5.add(date); + + //attacker + JPanel jp6 = new JPanel(); + jp6.setLayout(new GridLayout(0,2)); + jp6.add(new JLabel("Attacker")); + attacker.setEnabled(false); + attacker.setDisabledTextColor(Color.black); + jp6.add(attacker); + + //lanceForceId + JPanel jp7 = new JPanel(); + jp7.setLayout(new GridLayout(0,2)); + jp7.add(new JLabel("lanceForceId")); + lanceForceId.setEnabled(false); + lanceForceId.setDisabledTextColor(Color.black); + jp7.add(lanceForceId); + + //lanceRole + JPanel jp8 = new JPanel(); + jp8.setLayout(new GridLayout(0,2)); + jp8.add(new JLabel("lanceRole")); + lanceRole.setEnabled(false); + lanceRole.setDisabledTextColor(Color.black); + jp8.add(lanceRole); + + //terrainType + JPanel jp9 = new JPanel(); + jp9.setLayout(new GridLayout(0,2)); + jp9.add(new JLabel("terrainType")); + terrainType.setEnabled(false); + terrainType.setDisabledTextColor(Color.black); + jp9.add(terrainType); + + //light + JPanel jp10 = new JPanel(); + jp10.setLayout(new GridLayout(0,2)); + jp10.add(new JLabel("light")); + light.setEnabled(false); + light.setDisabledTextColor(Color.black); + jp10.add(light); + + //weather + JPanel jp11 = new JPanel(); + jp11.setLayout(new GridLayout(0,2)); + jp11.add(new JLabel("Weather")); + weather.setEnabled(false); + weather.setDisabledTextColor(Color.black); + jp11.add(weather); + + //wind + JPanel jp12 = new JPanel(); + jp12.setLayout(new GridLayout(0,2)); + jp12.add(new JLabel("Wind")); + wind.setEnabled(false); + wind.setDisabledTextColor(Color.black); + jp12.add(wind); + + //fog + JPanel jp13 = new JPanel(); + jp13.setLayout(new GridLayout(0,2)); + jp13.add(new JLabel("Fog")); + fog.setEnabled(false); + fog.setDisabledTextColor(Color.black); + jp13.add(fog); + + //atmosphere + JPanel jp14 = new JPanel(); + jp14.setLayout(new GridLayout(0,2)); + jp14.add(new JLabel("Atmosphere")); + atmosphere.setEnabled(false); + atmosphere.setDisabledTextColor(Color.black); + jp14.add(atmosphere); + + //gravity + JPanel jp15 = new JPanel(); + jp15.setLayout(new GridLayout(0,2)); + jp15.add(new JLabel("Gravity")); + gravity.setEnabled(false); + gravity.setDisabledTextColor(Color.black); + jp15.add(gravity); + + //start + JPanel jp16 = new JPanel(); + jp16.setLayout(new GridLayout(0,2)); + jp16.add(new JLabel("Start")); + start.setEnabled(false); + start.setDisabledTextColor(Color.black); + jp16.add(start); + + //deploymentDelay + JPanel jp17 = new JPanel(); + jp17.setLayout(new GridLayout(0,2)); + jp17.add(new JLabel("deploymentDelay")); + deploymentDelay.setEnabled(false); + deploymentDelay.setDisabledTextColor(Color.black); + jp17.add(deploymentDelay); + + + //mapSize + JPanel jp18 = new JPanel(); + jp18.setLayout(new GridLayout(0,2)); + jp18.add(new JLabel("mapSize")); + mapSize.setEnabled(false); + mapSize.setDisabledTextColor(Color.black); + jp18.add(mapSize); + + //map + JPanel jp19 = new JPanel(); + jp19.setLayout(new GridLayout(0,2)); + jp19.add(new JLabel("map")); + map.setEnabled(false); + map.setDisabledTextColor(Color.black); + jp19.add(map); + + //lanceCount + JPanel jp20 = new JPanel(); + jp20.setLayout(new GridLayout(0,2)); + jp20.add(new JLabel("lanceCount")); + lanceCount.setEnabled(false); + lanceCount.setDisabledTextColor(Color.black); + jp20.add(lanceCount); + + //rerollsRemaining + JPanel jp21 = new JPanel(); + jp21.setLayout(new GridLayout(0,2)); + jp21.add(new JLabel("rerollsRemaining")); + rerollsRemaining.setEnabled(false); + rerollsRemaining.setDisabledTextColor(Color.black); + jp21.add(rerollsRemaining); + + //botForceStub JScrollPane + JPanel jp22 = new JPanel(); + jp22.setLayout(new GridLayout(0,2)); + jp22.add(new JLabel("BotForceStub")); + botForceStub.setEnabled(false); + botForceStub.setDisabledTextColor(Color.black); + jp22.add(jsp); + + //Button Panel + JPanel jp23 = new JPanel(); + jp23.setLayout(new GridLayout(0,2)); + jp23.add(p); + jp23.add(n); + + + /* + * Add all the Panels to the Display + */ + this.add(jp0); + this.add(jp1); + this.add(jp2); + this.add(jp3); + this.add(jp4); + this.add(jp5); + this.add(jp6); + this.add(jp7); + this.add(jp8); + this.add(jp9); + this.add(jp10); + this.add(jp11); + this.add(jp12); + this.add(jp13); + this.add(jp14); + this.add(jp15); + this.add(jp16); + this.add(jp17); + this.add(jp18); + this.add(jp19); + this.add(jp20); + this.add(jp21); + this.add(jp22); + this.add(jp23); + + this.setVisible(true); + /* + * Add the Action listeners for the buttons + */ + n.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent arg0) { + int x = new Integer(id.getText()).intValue() + 1; + if (x > SEG.getScenerioEditor().getMaximumScenarioID()) { + x = 1; + } + SEG.getScenarioPanel().loadScenario(SEG.getScenerioEditor().getScenarioByID(Integer.toString(x))); + } + }); + + p.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent arg0) { + int x = new Integer(id.getText()).intValue() - 1; + if (x < 1 ) { + x = SEG.getScenerioEditor().getMaximumScenarioID(); + } + SEG.getScenarioPanel().loadScenario(SEG.getScenerioEditor().getScenarioByID(Integer.toString(x))); + } + }); + + } + + public void setId(String s) { + id.setText(s); + } + + public void setType(String s) { + type.setText(s); + } + + public void setNName(String s) { + name.setText(s); + } + + public void setDesc(String s) { + desc.setText(s); + } + + public void setStatus(String s) { + status.setText(s); + } + + public void setDate(String s) { + date.setText(s); + } + + public void setAttacker(String s) { + attacker.setText(s); + } + + public void setLanceForceId(String s) { + lanceForceId.setText(s); + } + + public void setLanceRole(String s) { + lanceRole.setText(s); + } + + public void setTerrainType(String s) { + terrainType.setText(s); + } + + public void setLight(String s) { + light.setText(s); + } + + public void setWeather(String s) { + weather.setText(s); + } + + public void setWind(String s) { + wind.setText(s); + } + + public void setFog(String s) { + fog.setText(s); + } + + public void setAtmosphere(String s) { + atmosphere.setText(s); + } + + public void setGravity(String s) { + gravity.setText(s); + } + + public void setStart(String s) { + start.setText(s); + } + + public void setDeploymentDelay(String s) { + deploymentDelay.setText(s); + } + + public void setMapSize(String s) { + mapSize.setText(s); + } + + public void setMap(String s) { + map.setText(s); + } + + public void setLanceCount(String s) { + lanceCount.setText(s); + } + + public void setRerollsRemaining(String s) { + rerollsRemaining.setText(s); + } + + public void setBotForceStub(String s) { + botForceStub.append(s); + } + + public void clearBotForceStub() { + botForceStub.setText(""); + } + + public void loadScenario(Scenario s) { + id.setText(s.getID()); + type.setText(s.getType()); + name.setText(s.getName()); + desc.setText(s.getDesc()); + status.setText(s.getStatus()); + date.setText(s.getDate()); + attacker.setText(s.getAttackers()); + lanceForceId.setText(s.getLanceForceId()); + lanceRole.setText(s.getLanceRole()); + terrainType.setText(s.getTerrainType()); + light.setText(s.getLight()); + weather.setText(s.getWeather()); + wind.setText(s.getWind()); + fog.setText(s.getFog()); + atmosphere.setText(s.getAtmosphere()); + gravity.setText(s.getGravity()); + start.setText(s.getStart()); + deploymentDelay.setText(s.getDeploymentDelay()); + mapSize.setText(s.getMapSize()); + map.setText(s.getMap()); + lanceCount.setText(s.getLanceCount()); + rerollsRemaining.setText(s.getRerollsRemaining()); + } + + + + public ScenerioEditorGUI getScenerioEditorGUI() { + return SEG; + } + + +} diff --git a/src/ScenerioEditor/ScenerioEditor.java b/src/ScenerioEditor/ScenerioEditor.java index f37bdb2..d0073d7 100644 --- a/src/ScenerioEditor/ScenerioEditor.java +++ b/src/ScenerioEditor/ScenerioEditor.java @@ -28,6 +28,7 @@ public class ScenerioEditor { Version version = null; private Vector units = new Vector(10,2); private Vector missions = new Vector(4,2); + private Vector scenarios = new Vector(4,2); /* * Scenario Editor Constructor @@ -35,7 +36,7 @@ public class ScenerioEditor { public ScenerioEditor() { try { - mFrame = new ScenerioEditorGUI("Scenerio Editor"); + mFrame = new ScenerioEditorGUI("Scenerio Editor", this); mFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); DocumentBuilder dBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); Document doc = dBuilder.parse(new File("C:\\MekHQ\\campaigns\\Solo\\Solo30270514.cpnx")); @@ -78,6 +79,8 @@ public ScenerioEditor() { /*err handling*/ } mFrame.getUnitPanel().LoadUnit(getUnitByCnt("1")); + mFrame.getScenarioPanel().loadScenario(getScenarioByID(Integer.toString(getMinimumScenarioID()))); + } /* @@ -236,10 +239,9 @@ private void processScenarioNodes(Node wn) { bf.setName(nnms.getTextContent()); processBotForceEntities(wn3, bf); m.addBotForce(bf); - - } - } + } + scenarios.add(m); //System.out.println("Mission: \r\n" + m.toString()); } catch (Exception ex) { // Doh! @@ -440,7 +442,70 @@ public void replaceUnit(Unit u) { } } + + /* + * get size of Units + */ + public int getUnitsSize() { + return units.size(); + } + /* + * get scenario object by id + */ + public Scenario getScenarioByID(String s) { + Scenario ss = null; + Iterator itr = scenarios.iterator(); + do { + ss = itr.next(); + }while(!s.equals(ss.getCnt())); + return ss; + } + + /* + * get scenario object by id + */ + public int getScenarioSize() { + return scenarios.size(); + } + + /* + * get minimum ID of scenerio in scenerios + */ + public int getMinimumScenarioID() { + int i = 1000; + int v = 0; + Scenario ss = null; + Iterator itr = scenarios.iterator(); + do { + ss = itr.next(); + v = new Integer(ss.getCnt()).intValue(); + if(i > v) { + i = v; + } + }while(itr.hasNext()); + return i; + } + + /* + * get maximum ID of scenerio in scenerios + */ + public int getMaximumScenarioID() { + int i = 0; + int v = 0; + Scenario ss = null; + Iterator itr = scenarios.iterator(); + do { + ss = itr.next(); + v = new Integer(ss.getCnt()).intValue(); + if(i < v) { + i = v; + } + }while(itr.hasNext()); + return i; + } + + public static void main(String[] args){ ScenerioEditor s = new ScenerioEditor(); diff --git a/src/ScenerioEditor/ScenerioEditorGUI.java b/src/ScenerioEditor/ScenerioEditorGUI.java index edf93ce..3996ec5 100644 --- a/src/ScenerioEditor/ScenerioEditorGUI.java +++ b/src/ScenerioEditor/ScenerioEditorGUI.java @@ -4,14 +4,31 @@ public class ScenerioEditorGUI extends JFrame{ private UnitPanel up = null; + private ScenarioPanel sp = null; + private ScenerioEditor scenerioeditor = null; + private JTabbedPane JTP = null; - public ScenerioEditorGUI(String s) { + public ScenerioEditorGUI(String s, ScenerioEditor se) { super(s); this.setLayout(new BorderLayout()); this.setSize(640, 480); + JTP = new JTabbedPane(); + scenerioeditor = se; + + //add tabbed Pane to Frame + this.add(JTP,BorderLayout.CENTER); + + //Create Unit Tab add to Tabbed Pane + up = new UnitPanel(this); + JTP.addTab("Units", up); + + //Create the Scenario Panel add to tabbed pane + sp = new ScenarioPanel(this); + JScrollPane jsp = new JScrollPane(sp); + JTP.addTab("Scenarios", jsp); + + this.setVisible(true); - up = new UnitPanel(); - this.getContentPane().add(up,BorderLayout.CENTER); this.validate(); up.setUID("TEST"); } @@ -19,4 +36,12 @@ public ScenerioEditorGUI(String s) { public UnitPanel getUnitPanel() { return up; } + + public ScenarioPanel getScenarioPanel() { + return sp; + } + + public ScenerioEditor getScenerioEditor() { + return scenerioeditor; + } } diff --git a/src/ScenerioEditor/Unit.java b/src/ScenerioEditor/Unit.java index 5a0f141..43a7af4 100644 --- a/src/ScenerioEditor/Unit.java +++ b/src/ScenerioEditor/Unit.java @@ -10,9 +10,9 @@ public class Unit { private String unitCommander = ""; private String cnt = ""; private String Weapons = ""; - - public Unit() { + public Unit() { + } public void setUnitID(String s) { @@ -67,6 +67,7 @@ public void setWeapons(String s) { Weapons = Weapons + s+ "\r\n"; } + public String getWeapons() { return Weapons; } diff --git a/src/ScenerioEditor/UnitPanel.java b/src/ScenerioEditor/UnitPanel.java index 1c65fe1..62d4d46 100644 --- a/src/ScenerioEditor/UnitPanel.java +++ b/src/ScenerioEditor/UnitPanel.java @@ -1,7 +1,9 @@ package ScenerioEditor; import javax.swing.*; import javax.swing.border.EtchedBorder; - +import java.awt.Event; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; import java.awt.*; public class UnitPanel extends JPanel { @@ -12,10 +14,15 @@ public class UnitPanel extends JPanel { private JTextField unitCommander = null; private JTextField cnt = null; private JTextArea Weapons = null; + private ScenerioEditorGUI SEG = null; - public UnitPanel() { + public UnitPanel(ScenerioEditorGUI seg) { super(); - JButton j = new JButton("TEST"); + SEG = seg; + JButton j = new JButton("Next"); + JButton p = new JButton("Prev"); + + this.setLayout(new BoxLayout(this,BoxLayout.Y_AXIS)); //accessable textfields @@ -32,6 +39,8 @@ public UnitPanel() { JPanel jpw = new JPanel(); jpw.setLayout(new GridLayout(0,2)); jpw.add(new JLabel("Weapons")); + Weapons.setEnabled(false); + Weapons.setDisabledTextColor(Color.black); jpw.add(jsp); @@ -39,39 +48,57 @@ public UnitPanel() { JPanel jp0 = new JPanel(); jp0.setLayout(new GridLayout(0,2)); jp0.add(new JLabel("Count")); + cnt.setEnabled(false); + cnt.setDisabledTextColor(Color.black); jp0.add(cnt); // unit ID JPanel jp = new JPanel(); jp.setLayout(new GridLayout(0,2)); jp.add(new JLabel("Unit ID")); + uID.setEnabled(false); + uID.setDisabledTextColor(Color.black); jp.add(uID); // Chassis Type JPanel jp1 = new JPanel(); jp1.setLayout(new GridLayout(0,2)); jp1.add(new JLabel("Chassis Type")); + chassisType.setEnabled(false); + chassisType.setDisabledTextColor(Color.black); jp1.add(chassisType); //Model JPanel jp2 = new JPanel(); jp2.setLayout(new GridLayout(0,2)); jp2.add(new JLabel("Model")); + model.setEnabled(false); + model.setDisabledTextColor(Color.black); jp2.add(model); //Mech type JPanel jp3 = new JPanel(); jp3.setLayout(new GridLayout(0,2)); jp3.add(new JLabel("Type")); + mType.setEnabled(false); + mType.setDisabledTextColor(Color.black); jp3.add(mType); //unitCommander JPanel jp4 = new JPanel(); jp4.setLayout(new GridLayout(0,2)); jp4.add(new JLabel("Unit Commander")); + unitCommander.setEnabled(false); + unitCommander.setDisabledTextColor(Color.black); jp4.add(unitCommander); + //Buttons + JPanel jpb = new JPanel(); + jpb.setLayout(new GridLayout(0,2)); + jpb.add(p); + jpb.add(j); + // add the Jpanels this.add(jp0); this.add(jp); @@ -79,13 +106,38 @@ public UnitPanel() { this.add(jp2); this.add(jp3); this.add(jp4); - this.add(jpw); - this.add(j); - - + this.add(jpw); + this.add(jpb); + this.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.RAISED )); - this.setVisible(true); + + /* + * Add the Action listeners for the buttons + */ + j.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent arg0) { + int x = new Integer(cnt.getText()).intValue() + 1; + if (x > SEG.getScenerioEditor().getUnitsSize()) { + x = 1; + } + SEG.getUnitPanel().LoadUnit(SEG.getScenerioEditor().getUnitByCnt(Integer.toString(x))); + } + }); + + p.addActionListener(new ActionListener() + { + @Override + public void actionPerformed(ActionEvent arg0) { + int x = new Integer(cnt.getText()).intValue() - 1; + if (x < 1 ) { + x = SEG.getScenerioEditor().getUnitsSize(); + } + SEG.getUnitPanel().LoadUnit(SEG.getScenerioEditor().getUnitByCnt(Integer.toString(x))); + } + }); } public void setUID(String s) { @@ -123,6 +175,15 @@ public void LoadUnit(Unit u) { model.setText(u.getModel()); mType.setText(u.getMType()); unitCommander.setText(u.getUnitCommander()); + clearWeapons(); Weapons.append(u.getWeapons()); } + + public void clearWeapons() { + Weapons.setText(""); + } + + public ScenerioEditorGUI getScenerioEditorGUI() { + return SEG; + } } From cd3887d7bf0adbadb85f10ff541c5b81cfa4329f Mon Sep 17 00:00:00 2001 From: jhahn Date: Mon, 24 Sep 2018 15:55:23 -0400 Subject: [PATCH 06/10] Added some Error checking --- bin/.gitignore | 1 - bin/ScenarioEditor/BotEntity.class | Bin 0 -> 742 bytes bin/ScenarioEditor/BotForce.class | Bin 0 -> 1119 bytes bin/ScenarioEditor/Mission.class | Bin 0 -> 4303 bytes bin/ScenarioEditor/Scenario.class | Bin 0 -> 5551 bytes bin/ScenarioEditor/ScenarioEditor.class | Bin 0 -> 13559 bytes bin/ScenarioEditor/ScenarioEditorGUI.class | Bin 0 -> 1842 bytes bin/ScenarioEditor/ScenarioPanel$1.class | Bin 0 -> 1603 bytes bin/ScenarioEditor/ScenarioPanel$2.class | Bin 0 -> 1603 bytes bin/ScenarioEditor/ScenarioPanel.class | Bin 0 -> 9514 bytes bin/ScenarioEditor/Unit.class | Bin 0 -> 2002 bytes bin/ScenarioEditor/UnitPanel$1.class | Bin 0 -> 1540 bytes bin/ScenarioEditor/UnitPanel$2.class | Bin 0 -> 1540 bytes bin/ScenarioEditor/UnitPanel.class | Bin 0 -> 4951 bytes .../BotEntity.java | 2 +- .../BotForce.java | 2 +- .../Mission.java | 2 +- .../Scenario.java | 2 +- .../ScenarioEditor.java} | 54 +++++++++++++----- .../ScenarioEditorGUI.java} | 10 ++-- .../ScenarioPanel.java | 16 +++--- .../Unit.java | 2 +- .../UnitPanel.java | 16 +++--- 23 files changed, 65 insertions(+), 42 deletions(-) delete mode 100644 bin/.gitignore create mode 100644 bin/ScenarioEditor/BotEntity.class create mode 100644 bin/ScenarioEditor/BotForce.class create mode 100644 bin/ScenarioEditor/Mission.class create mode 100644 bin/ScenarioEditor/Scenario.class create mode 100644 bin/ScenarioEditor/ScenarioEditor.class create mode 100644 bin/ScenarioEditor/ScenarioEditorGUI.class create mode 100644 bin/ScenarioEditor/ScenarioPanel$1.class create mode 100644 bin/ScenarioEditor/ScenarioPanel$2.class create mode 100644 bin/ScenarioEditor/ScenarioPanel.class create mode 100644 bin/ScenarioEditor/Unit.class create mode 100644 bin/ScenarioEditor/UnitPanel$1.class create mode 100644 bin/ScenarioEditor/UnitPanel$2.class create mode 100644 bin/ScenarioEditor/UnitPanel.class rename src/{ScenerioEditor => ScenarioEditor}/BotEntity.java (85%) rename src/{ScenerioEditor => ScenarioEditor}/BotForce.java (88%) rename src/{ScenerioEditor => ScenarioEditor}/Mission.java (94%) rename src/{ScenerioEditor => ScenarioEditor}/Scenario.java (93%) rename src/{ScenerioEditor/ScenerioEditor.java => ScenarioEditor/ScenarioEditor.java} (91%) rename src/{ScenerioEditor/ScenerioEditorGUI.java => ScenarioEditor/ScenarioEditorGUI.java} (75%) rename src/{ScenerioEditor => ScenarioEditor}/ScenarioPanel.java (92%) rename src/{ScenerioEditor => ScenarioEditor}/Unit.java (91%) rename src/{ScenerioEditor => ScenarioEditor}/UnitPanel.java (87%) diff --git a/bin/.gitignore b/bin/.gitignore deleted file mode 100644 index 36ff3be..0000000 --- a/bin/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/ScenerioEditor/ diff --git a/bin/ScenarioEditor/BotEntity.class b/bin/ScenarioEditor/BotEntity.class new file mode 100644 index 0000000000000000000000000000000000000000..f15e657fa1a659c8bcdcc9eed51fa82c664ca033 GIT binary patch literal 742 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 XH0#WI@`P#FhqB#EEt(T`j@j`4cNya5 literal 0 HcmV?d00001 diff --git a/bin/ScenarioEditor/ScenarioEditorGUI.class b/bin/ScenarioEditor/ScenarioEditorGUI.class new file mode 100644 index 0000000000000000000000000000000000000000..0676a3d57a35025b65d89cc9aa7355edb3694db1 GIT binary patch literal 1842 zcmah}ZBrXn7(F)xHf+}xLV@y9ptaOwTZpyzQbDSv&<0bACPb>j6c9%;V*GK&u#)F2K(ji-RGY3+;h)!pZnK8fBXqx0c8U*g_(R= z*BsyVRx57c`I+|LJ6l-;afRfr^W6C+Q-9&sb~5X0zO$zlV*Ae&#&hkA%vQ|}Hl3QT zE)r2EVyY9-BD7Ga>y)4=L5C6)rcYu-8kx9fy|Ae;mTQw$a7razk*q}YEx8o3tgw&@ zQJJbk>G{Ct2^L?IKV4LauXq)0q6dQ(-at}exJ#aNu^$R&E%c&KW+N61BxH8ZLO)EI zjaxVc%fKX4h}?|xBFNnG{EGH-&P#7UFfoBC*<_mMN~Mb?Nf#_!#G4BJbsa<~g^8vB z;YYE1PR-fT{$j+LwQw14DH!DB-EUc--c&Z5E*eNHjGo|>i4>+1xJtuTbS==n>^^TH zgSV;1sZ5q-npnbufsZ?_%9nkw zS`~*&#v@vN2eW`!g5$U)YfWxx|~XP?s~XN^Z?N;T z@XHns5sLLcP5c=^T_z*W=+E|*0}R;ecMQoeEW@Y_WA-adY#-o!12gtu?7KnrcLSFg zOfhK7`c*;NzhNwSrGYuFT-&w}a9uJ<@I8)04Sc|bC0STz_E)&M&G7I6KG_ICx90>A zZ(z-CU|kr=dkx(GHPrn%#|;c|3?C_;#-R2D&hmL0<5@28H1mwyzyOwsyNeMNFbW6b z*yF?W5|j8I)A#{1_>oTi#CIvrY<6^VVz>B54^YGx^hIW0a+esH=dq0kbXMUjd>whl zcZC;@s9w?e3nwv%#J(^%8>Y4*Kr^+%Lp)-HhPRQ2JIU#;LVcxw E0c2CMc>n+a literal 0 HcmV?d00001 diff --git a/bin/ScenarioEditor/ScenarioPanel$1.class b/bin/ScenarioEditor/ScenarioPanel$1.class new file mode 100644 index 0000000000000000000000000000000000000000..92c7bfcf7775d001cef3665f47a890160ea86cd1 GIT binary patch literal 1603 zcmah}=~5Fx5dJ0v7UC!Y5fsCvph*w{C~^c)jsT0{&_JsE=dc;W;<9UPmc!@K7qChL zrByzF&tzHlY!Z%=K&m#G?et84NB8{x`{NgYXUJ*@Fmz@NX$#kMQaRIe+(hMdL)g;l z9o7(J2=9smk+6iFPpoh6O2gAo$I#(N#i5sw2h#Quvxa9ncG@g>(v~hmows8adWWb) zx^n1cHIkG$W!k1U!_X7GIyIJM2+lh>*#L%{92)9Fs6it~1Hue7QI*h`Hf_1Kzqc*j zO|flBhUT)yP(aNSg@)k{L<&q(E zWpDR!#MT)#m%SFQcC2QRQy}0$f`Ip_xATH>H31gI>j*!YV+_p6#kqM zf$AXq4Bvv69J81s6+Ne9jB-Q2)UPotaHOzE-FvRs+$Vj3Vc;?ct4TnG+p)}{V}*fR zj>uIwQ5RRWkY<1;Rk(Q?|HxId!oZH`(P^ABo-jVFijU>_3}u{s*N}^*Kf#rvz8Hh5 zmx)=*HY}$=4Z1459Ve$6bd#a4Dyp;2QSi8K(>*nBi9$gZXilhG>8S+^ht)2ET->1rr)f)_>17qO%O)Ib4fCE#Ea zXk(LzvLxbc8p~|P2h?3ES_VYr@d{~z)P@nPVvR_x(+Nc34{f8|4SEaUHQvx~klfE; Mi&jboMT|cG0Ik2I!vFvP literal 0 HcmV?d00001 diff --git a/bin/ScenarioEditor/ScenarioPanel$2.class b/bin/ScenarioEditor/ScenarioPanel$2.class new file mode 100644 index 0000000000000000000000000000000000000000..2eddd70d83f1130ec555b4bcf9199737c8743f08 GIT binary patch literal 1603 zcmah}YflqF6g>l#g*r+>q>AOGMcX12@Bvy-c@$V|0WCD~ zqKQAi-(-w;wk?lHp~-e6kF?E0G^C+^lgw{XL#n5pj+L zh6%W7dwF5)lJZm$U9leF7)A1g(>TN2rJNdQR5j7krcSWN@kql2Rq?V|PKJL%H6fm7 zLzU^`jXY3IMR_LiOv4m;{_N)CZm9-xJXid?C`ncvn5ErPJzQTfjp<{)C zTaGByIgyJSmXLaYI#swuYX8VZy~4l_=+UX2bDl6hWW~o?e+F~Tu4~9e)9>JVQeTWw zl6+ja`dpc@QB4N;vqN5SK|P50EiCCX)4ramFJ(sKnY6jB!p-H}c7 zv>`~VSN$8a$zKU3hQEU+4srdfAJakqEffPbi%uGIHKtuR&_!=55xQ$9e4z}@w5I<= z_+8=~_z`Yb(0_=b3Sxo6OeF9b9o6-R6^vEzbmn-LIv$Nhj_|UA`3ja4fMzHF-2@yg zjWAn8ge@V#bS$$KAJ9NGX$=si$7^H=QWz7+VwFg((FsK14{f8^b(%Hd4c^i_K-JG- MlSWDgMT~y`0N6UE4*&oF literal 0 HcmV?d00001 diff --git a/bin/ScenarioEditor/ScenarioPanel.class b/bin/ScenarioEditor/ScenarioPanel.class new file mode 100644 index 0000000000000000000000000000000000000000..a4fa8639d6480debeadf1c1a3d91922ab753b9b2 GIT binary patch literal 9514 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 AKL7v# literal 0 HcmV?d00001 diff --git a/bin/ScenarioEditor/Unit.class b/bin/ScenarioEditor/Unit.class new file mode 100644 index 0000000000000000000000000000000000000000..d2ab40ef6c2d861ff8caf9af17940f00931c5bfb GIT binary patch literal 2002 zcmaiz+foxj5QhH=AqndOF+fC&1OYjOLp&fJf}jQvH0lKk<>ivBuvD^1&B@#bc|{a2jt@9*jBCTHduSjVZu5;%+2o$g!4RZpa+*t^kX1~Ap!J3 zV8lc(BGS8JBI zr_9GQ@DRBu9-Y&OCj%2}c+6-0Xq8*`n-2mrosIEyl+(1pz$!N6OV3L0sflOElgz5s zY_}w^)LF$B+{G$BUM_|$fl$98OFcKSgN#6|S@q8Gn!ImYcE(<{RWI7xj#NRPe9mQg zYuuo~dN?MW5vezNA*nXCQfq3Z($q?wsg){ID>cS-kQJz0+ClD4d7cVJHuD|vOd|0W z!^$R=9aVNr*_5*5%1(S%1t)1|C~UA?n8gjE#3}hCV=3+?DeyT;dzsNGW|`ivFpZns z@ewfVW2_S+#8@P=K!UUChKdgHs>7;6(#!HIFrW1!tRXOuj9)9O_CRmu3x+?jXow&( zRo?ST2S{%lWI+#-41!!ENU96Sq820>1W9W_mh>Q_L69keOm_iU)`E-%L1wieSv|;D z5M+TMi(No&X+g$@X_ zkPR)!y*9`Jr%p~yI`a#w?kHrTB(X{J4clMQF|6J=?M@Rx6g@)=3w4x&2#7^Mi?&56MHIDwLM>1%A6jVQKbP%T7R#>LT|Pvk52G(& zqJ?PU1NcnFcxPLSg|=!T&? zYpNj%!I%OsgMVAyQ=0VZAb~9g$-g2&HQhPD=9eFe%x~ z&~c(v%5X$pSU&V2px_EaZ#@+_`f-(^Rn;_MyNXRT(!zyt5ViMp%E!{WIB@25QOL!8 z7{oONLk!&##aR!I>j*L^dEv-Y3|*mciIbb!jAPM_bWIO#NMUa>Tq<+^e?Od+9$}6M zMhLWSI9au@OKMXVQj+a$j!{HU_{11y8uB@%OZ9SLBSny6xT9d4VX%5LTD>G+PDOo} z@<1G`_ZWtVZME&xaf&mE2MX>}F*bDMcqqAZ3L;y@&gh3iVw~cb29@%^4Y!A=)XoO3 zbeJpmV~$zOkz$TnN`h2ARWmn}c*2py{7I0xw+VxC8LpM8(|l!Eir9xmjue(CV%k)5 z(n{r7Ge=a|)OxCwr#=oeY5)dyKqE!{nQ>I@^|Jb=+;F~(xoc@+UY9L-p~8Gr7AZAa z($ET~O_jGSoGmjaD{q})_zarrjL5Q((0IzA$0kuwZClvX091xFn!)^j`AX0u*F>WY zKC+&3pS&j5;){%Y1CJcx!WY-4gT5`~1MH!bzTBPra1mX!qI{sce8VS-;2~S;2YOya zzJed)auEYZ7%n2@eK{Q{*=`jvR>Zx}X!cH5Eb+>0EO3lRMI?$?kN`Z80J;e{a7gX- z4k5g!4*P&bd~^W~mV%Z6QFuH>njrOH9LrcCQmb^9DEvl5im*njCOpG)`u9@CGuWV+ JltGfD-(RO}jdK71 literal 0 HcmV?d00001 diff --git a/bin/ScenarioEditor/UnitPanel$2.class b/bin/ScenarioEditor/UnitPanel$2.class new file mode 100644 index 0000000000000000000000000000000000000000..4c9ba8b5c2df2e86eb3499b324a689e6e80ca9b3 GIT binary patch literal 1540 zcmaJ>?M@Rx6g@*L3w4Bo2#7^Mi?&56R1~#1%A6jVQ&t*H7#jkH0 z`UECgh$cRO&t!~uwzXJj+hn#gckawR=iGbe*Prh{0ZbsPpoyU`qX|Q`bTgUL9n*?# z7`n5j8ln)4DeyA*x79s0T2PIAbaiuEXpVwrhJM$o?mJPjCk!V#t2w%9q;=a7hOii# zoh{uCj?wk$diTf4Yf7hRGjv_3zFRoU;7yo0(F%rh912=|@SvTe6@CU!NIJBqbwjM| z?raKcUEM4QhR(F9sf8>tlk2k4D`7DN>P8F32v)o5vRM<>bJN-pIfj8yx+dYIBp(lx zlD!Na$4aFPN92X&LmvVPE;01hQ-Px&ml;}AO%t}O*hC{OTo?yYdtaw~EUk+JXI>YD zT-=92Tv0H@&@EA%_TadRAcK+@jy%QC6$+O)xv9-K7TrkK^x&El_Bz9bGUxyI!&&JO z=7?Z~Kwn zo@bG-;77Pv#K0kjiwJph(*f@%bd>BjiWn>6&U9rJugt~*M|e;~qKE|vzyk@On}7pv zslDDIfcMm4AFzmzE}+3u&@vzjkH<(8q#neuj1?laN@t0}Z$zXBYqV;@6FjAVFJ(M~ M4Vpi6Br|h!fe;|ggftB_&^(}HC|D$=LS8fw9+D6mN?UIx*Dzr+lg=YR z6>@c`SmKXRz4|o)` znZ=ztR$`U#u4ZJ^cG%1(@tqcwmX3Py{Q ztJRX60Sr=Rz2s{EOj)0^8K=&+%tY2ovl83ahMjZ1TVa=h-Pq$q=cL#bgq)y$uYvcCd!Z+qiqZ{! zykDWhTPh}tT}`8oy|`Zj>;nqdUREHc$B>s}G6|&w4-W5Q7)8%@(?amK)N$kHC>@URtUrC96+ z8n5`50p&Dgh8)FN17F8E8X%o;`01V6ymzm}^Ku<+9q3G${SqDaw;@kX*in8S-}2)E zi%T8`1K*ZQiw0;{sW0d8qJi(oR*+i)E#5tkmkfMQcBc#DWK$qV-#73BTX7!QPL$0b z8F+bOQ`{+=KQZuA*(}LHd#cdS4g5kr*G42}naNxeAyU6I@Ty4Zl$z)*6l>9(e0kCo zz;6}!1z(9nv>;`?uVz=FP(#Cdx5M70(|ZKWNW@B|YM2X4uT)9ANi^{lWg?9uFokZt zB7*n&yxQnpiA*wLwMV6X*k#;K*Bd3MX||3yi&jgF{hF1+JeJ%7HirRd()5thq~)<^ zHazyscE_IC?AS9~9eZY@W6x}JI8P%|31)IE1$=)a8cz%K`ccfPSI?nLhH@DyWT=#( zN``6~=F3o1-@suE3wujzM^V4trWTXhP(OxnZ@q66jae+^VtH?gK8h70>{^t$7v=6n zg?mxyUQ}_hve#e23*SjK#?ahbe+KhM(YnGnhJs#dzoIZyIEFR71%;#N$YQOm*7cUI zAH{|&Hf|O6f-JgZK83AW+!-ni`Q&6=z9>}Wk>`r?=A?WzJ|iX1{k z4k1W{3O9lt(me=V5n<;fLS+u2GKZiOq0)^|94hu8a7BcnNrb8#LRAi-m;B)qPl{4zNpq7|rSkTGVm0s!_D53%E^P zLWg=4YtznVwBQ3yg~3PhF|Jr^xIcsSr-{;^z$aPB+O!vOkW>N2w2gQOpQ6n#YVEYz zXHckoS`j`=sz|k~i+GrnUmZ~U@HtWebxEzlBcy_S+nacll+M>YkI$1TrvCTh3#1I* z_ZV$#S3Rueof=h<&@XGq;_(Tm)75ftkcIXkTlq4Faa?%@!eKl?7=0k!;GWD2SD6p)F~U856}TgL;i~e%9VXlpSAlyfFI;s#xF-pB zQi#n@C|A7#ou?Ydy@gsJLPi;I zj3wtd1Lhf)k7xP76Sx^C`DgnS+HsnHgwMEi-aMi6X8a1jw&Rn{S5D{U)R-+4q)yK- z{Y@6HO|`)&Z#-+`Nuo%%{p6%wW91PKkSlI$^LbIc`N=m?ht@CVj6 wC*u~lgsZ0t&#;AQRf_xxf6gOv*?lv|MX1H=wl06cUpbd@y_d86_B+%60Z$y4R{#J2 literal 0 HcmV?d00001 diff --git a/src/ScenerioEditor/BotEntity.java b/src/ScenarioEditor/BotEntity.java similarity index 85% rename from src/ScenerioEditor/BotEntity.java rename to src/ScenarioEditor/BotEntity.java index 43fd4a6..894cd22 100644 --- a/src/ScenerioEditor/BotEntity.java +++ b/src/ScenarioEditor/BotEntity.java @@ -1,4 +1,4 @@ -package ScenerioEditor; +package ScenarioEditor; public class BotEntity { private String id = ""; diff --git a/src/ScenerioEditor/BotForce.java b/src/ScenarioEditor/BotForce.java similarity index 88% rename from src/ScenerioEditor/BotForce.java rename to src/ScenarioEditor/BotForce.java index c71fd8c..0c48ed9 100644 --- a/src/ScenerioEditor/BotForce.java +++ b/src/ScenarioEditor/BotForce.java @@ -1,4 +1,4 @@ -package ScenerioEditor; +package ScenarioEditor; import java.util.Vector; diff --git a/src/ScenerioEditor/Mission.java b/src/ScenarioEditor/Mission.java similarity index 94% rename from src/ScenerioEditor/Mission.java rename to src/ScenarioEditor/Mission.java index dd680ca..9c55de5 100644 --- a/src/ScenerioEditor/Mission.java +++ b/src/ScenarioEditor/Mission.java @@ -1,4 +1,4 @@ -package ScenerioEditor; +package ScenarioEditor; import java.util.Iterator; import java.util.Vector; diff --git a/src/ScenerioEditor/Scenario.java b/src/ScenarioEditor/Scenario.java similarity index 93% rename from src/ScenerioEditor/Scenario.java rename to src/ScenarioEditor/Scenario.java index 7908b8a..2523737 100644 --- a/src/ScenerioEditor/Scenario.java +++ b/src/ScenarioEditor/Scenario.java @@ -1,4 +1,4 @@ -package ScenerioEditor; +package ScenarioEditor; import java.util.Vector; diff --git a/src/ScenerioEditor/ScenerioEditor.java b/src/ScenarioEditor/ScenarioEditor.java similarity index 91% rename from src/ScenerioEditor/ScenerioEditor.java rename to src/ScenarioEditor/ScenarioEditor.java index d0073d7..5f19e04 100644 --- a/src/ScenerioEditor/ScenerioEditor.java +++ b/src/ScenarioEditor/ScenarioEditor.java @@ -1,4 +1,4 @@ -package ScenerioEditor; +package ScenarioEditor; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; @@ -22,9 +22,11 @@ import java.math.*; import java.util.Vector; import java.util.List; +import javax.swing.JFileChooser; +import java.util.NoSuchElementException; -public class ScenerioEditor { - ScenerioEditorGUI mFrame = null; +public class ScenarioEditor { + ScenarioEditorGUI mFrame = null; Version version = null; private Vector units = new Vector(10,2); private Vector missions = new Vector(4,2); @@ -33,13 +35,17 @@ public class ScenerioEditor { /* * Scenario Editor Constructor */ - public ScenerioEditor() { + public ScenarioEditor() { try { - mFrame = new ScenerioEditorGUI("Scenerio Editor", this); + mFrame = new ScenarioEditorGUI("Scenario Editor", this); mFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); DocumentBuilder dBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); - Document doc = dBuilder.parse(new File("C:\\MekHQ\\campaigns\\Solo\\Solo30270514.cpnx")); + JFileChooser jfc = new JFileChooser(); + int returnVal = jfc.showOpenDialog(mFrame); + String sfn = jfc.getCurrentDirectory() + "\\" + jfc.getSelectedFile().getName(); + Document doc = dBuilder.parse(new File(sfn)); +// Document doc = dBuilder.parse(new File("C:\\MekHQ\\campaigns\\Solo\\Solo30270514.cpnx")); Element campaignEle = doc.getDocumentElement(); NodeList nl = campaignEle.getChildNodes(); campaignEle.normalize(); @@ -401,10 +407,16 @@ private void processPartNodes(Node wn) { */ public Unit getUnitByCnt(String s) { Unit ul= null; - Iterator itr = units.iterator(); - do{ - ul = itr.next(); - }while(!s.equals(ul.getCnt())); + try { + Iterator itr = units.iterator(); + do{ + ul = itr.next(); + }while(!s.equals(ul.getCnt())); + }catch(NoSuchElementException nsee) { + return new Unit(); + }catch(Exception e) { + + } return ul; } @@ -455,10 +467,16 @@ public int getUnitsSize() { */ public Scenario getScenarioByID(String s) { Scenario ss = null; - Iterator itr = scenarios.iterator(); - do { - ss = itr.next(); - }while(!s.equals(ss.getCnt())); + try { + Iterator itr = scenarios.iterator(); + do { + ss = itr.next(); + }while(!s.equals(ss.getCnt())); + }catch(NoSuchElementException nsee) { + return new Scenario(); + }catch(Exception e) { + + } return ss; } @@ -475,6 +493,7 @@ public int getScenarioSize() { public int getMinimumScenarioID() { int i = 1000; int v = 0; + try { Scenario ss = null; Iterator itr = scenarios.iterator(); do { @@ -484,6 +503,11 @@ public int getMinimumScenarioID() { i = v; } }while(itr.hasNext()); + }catch(NoSuchElementException nsee) { + return i; + }catch (Exception e) { + + } return i; } @@ -508,7 +532,7 @@ public int getMaximumScenarioID() { public static void main(String[] args){ - ScenerioEditor s = new ScenerioEditor(); + ScenarioEditor s = new ScenarioEditor(); } diff --git a/src/ScenerioEditor/ScenerioEditorGUI.java b/src/ScenarioEditor/ScenarioEditorGUI.java similarity index 75% rename from src/ScenerioEditor/ScenerioEditorGUI.java rename to src/ScenarioEditor/ScenarioEditorGUI.java index 3996ec5..0abd3be 100644 --- a/src/ScenerioEditor/ScenerioEditorGUI.java +++ b/src/ScenarioEditor/ScenarioEditorGUI.java @@ -1,14 +1,14 @@ -package ScenerioEditor; +package ScenarioEditor; import javax.swing.*; import java.awt.*; -public class ScenerioEditorGUI extends JFrame{ +public class ScenarioEditorGUI extends JFrame{ private UnitPanel up = null; private ScenarioPanel sp = null; - private ScenerioEditor scenerioeditor = null; + private ScenarioEditor scenerioeditor = null; private JTabbedPane JTP = null; - public ScenerioEditorGUI(String s, ScenerioEditor se) { + public ScenarioEditorGUI(String s, ScenarioEditor se) { super(s); this.setLayout(new BorderLayout()); this.setSize(640, 480); @@ -41,7 +41,7 @@ public ScenarioPanel getScenarioPanel() { return sp; } - public ScenerioEditor getScenerioEditor() { + public ScenarioEditor getScenarioEditor() { return scenerioeditor; } } diff --git a/src/ScenerioEditor/ScenarioPanel.java b/src/ScenarioEditor/ScenarioPanel.java similarity index 92% rename from src/ScenerioEditor/ScenarioPanel.java rename to src/ScenarioEditor/ScenarioPanel.java index c5f6729..c5c5b85 100644 --- a/src/ScenerioEditor/ScenarioPanel.java +++ b/src/ScenarioEditor/ScenarioPanel.java @@ -1,4 +1,4 @@ -package ScenerioEditor; +package ScenarioEditor; import java.awt.Color; import java.awt.GridLayout; @@ -14,7 +14,7 @@ import javax.swing.JScrollPane; public class ScenarioPanel extends JPanel{ - private ScenerioEditorGUI SEG = null; + private ScenarioEditorGUI SEG = null; private JTextField id = null; private JTextField type = null; private JTextField name = null; @@ -42,7 +42,7 @@ public class ScenarioPanel extends JPanel{ - public ScenarioPanel(ScenerioEditorGUI se) { + public ScenarioPanel(ScenarioEditorGUI se) { super(); SEG = se; JButton n = new JButton("Next"); @@ -311,10 +311,10 @@ public ScenarioPanel(ScenerioEditorGUI se) { @Override public void actionPerformed(ActionEvent arg0) { int x = new Integer(id.getText()).intValue() + 1; - if (x > SEG.getScenerioEditor().getMaximumScenarioID()) { + if (x > SEG.getScenarioEditor().getMaximumScenarioID()) { x = 1; } - SEG.getScenarioPanel().loadScenario(SEG.getScenerioEditor().getScenarioByID(Integer.toString(x))); + SEG.getScenarioPanel().loadScenario(SEG.getScenarioEditor().getScenarioByID(Integer.toString(x))); } }); @@ -324,9 +324,9 @@ public void actionPerformed(ActionEvent arg0) { public void actionPerformed(ActionEvent arg0) { int x = new Integer(id.getText()).intValue() - 1; if (x < 1 ) { - x = SEG.getScenerioEditor().getMaximumScenarioID(); + x = SEG.getScenarioEditor().getMaximumScenarioID(); } - SEG.getScenarioPanel().loadScenario(SEG.getScenerioEditor().getScenarioByID(Integer.toString(x))); + SEG.getScenarioPanel().loadScenario(SEG.getScenarioEditor().getScenarioByID(Integer.toString(x))); } }); @@ -455,7 +455,7 @@ public void loadScenario(Scenario s) { - public ScenerioEditorGUI getScenerioEditorGUI() { + public ScenarioEditorGUI getScenarioEditorGUI() { return SEG; } diff --git a/src/ScenerioEditor/Unit.java b/src/ScenarioEditor/Unit.java similarity index 91% rename from src/ScenerioEditor/Unit.java rename to src/ScenarioEditor/Unit.java index 43a7af4..17d8ab1 100644 --- a/src/ScenerioEditor/Unit.java +++ b/src/ScenarioEditor/Unit.java @@ -1,4 +1,4 @@ -package ScenerioEditor; +package ScenarioEditor; diff --git a/src/ScenerioEditor/UnitPanel.java b/src/ScenarioEditor/UnitPanel.java similarity index 87% rename from src/ScenerioEditor/UnitPanel.java rename to src/ScenarioEditor/UnitPanel.java index 62d4d46..dd78937 100644 --- a/src/ScenerioEditor/UnitPanel.java +++ b/src/ScenarioEditor/UnitPanel.java @@ -1,4 +1,4 @@ -package ScenerioEditor; +package ScenarioEditor; import javax.swing.*; import javax.swing.border.EtchedBorder; import java.awt.Event; @@ -14,9 +14,9 @@ public class UnitPanel extends JPanel { private JTextField unitCommander = null; private JTextField cnt = null; private JTextArea Weapons = null; - private ScenerioEditorGUI SEG = null; + private ScenarioEditorGUI SEG = null; - public UnitPanel(ScenerioEditorGUI seg) { + public UnitPanel(ScenarioEditorGUI seg) { super(); SEG = seg; JButton j = new JButton("Next"); @@ -120,10 +120,10 @@ public UnitPanel(ScenerioEditorGUI seg) { @Override public void actionPerformed(ActionEvent arg0) { int x = new Integer(cnt.getText()).intValue() + 1; - if (x > SEG.getScenerioEditor().getUnitsSize()) { + if (x > SEG.getScenarioEditor().getUnitsSize()) { x = 1; } - SEG.getUnitPanel().LoadUnit(SEG.getScenerioEditor().getUnitByCnt(Integer.toString(x))); + SEG.getUnitPanel().LoadUnit(SEG.getScenarioEditor().getUnitByCnt(Integer.toString(x))); } }); @@ -133,9 +133,9 @@ public void actionPerformed(ActionEvent arg0) { public void actionPerformed(ActionEvent arg0) { int x = new Integer(cnt.getText()).intValue() - 1; if (x < 1 ) { - x = SEG.getScenerioEditor().getUnitsSize(); + x = SEG.getScenarioEditor().getUnitsSize(); } - SEG.getUnitPanel().LoadUnit(SEG.getScenerioEditor().getUnitByCnt(Integer.toString(x))); + SEG.getUnitPanel().LoadUnit(SEG.getScenarioEditor().getUnitByCnt(Integer.toString(x))); } }); } @@ -183,7 +183,7 @@ public void clearWeapons() { Weapons.setText(""); } - public ScenerioEditorGUI getScenerioEditorGUI() { + public ScenarioEditorGUI getScenarioEditorGUI() { return SEG; } } From fab4d009678020c0aa3b8f98df83887115986b51 Mon Sep 17 00:00:00 2001 From: jhahn Date: Mon, 24 Sep 2018 16:07:31 -0400 Subject: [PATCH 07/10] added even more error checking --- bin/ScenarioEditor/ScenarioEditor.class | Bin 13559 -> 13652 bytes src/ScenarioEditor/ScenarioEditor.java | 15 +++++++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/bin/ScenarioEditor/ScenarioEditor.class b/bin/ScenarioEditor/ScenarioEditor.class index ae9dbf7e02392933111646a8d7e8e81fef3f1c0d..506f61ec97a905e11d165bb2a8d37caec20745e6 100644 GIT binary patch literal 13652 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 K&1Rirw){T~+U{lm literal 13559 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 XH0#WI@`P#FhqB#EEt(T`j@j`4cNya5 diff --git a/src/ScenarioEditor/ScenarioEditor.java b/src/ScenarioEditor/ScenarioEditor.java index 5f19e04..22a5b9d 100644 --- a/src/ScenarioEditor/ScenarioEditor.java +++ b/src/ScenarioEditor/ScenarioEditor.java @@ -36,13 +36,18 @@ public class ScenarioEditor { * Scenario Editor Constructor */ public ScenarioEditor() { + // value returned by FileChooser + int returnVal = 0; try { mFrame = new ScenarioEditorGUI("Scenario Editor", this); mFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); DocumentBuilder dBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); JFileChooser jfc = new JFileChooser(); - int returnVal = jfc.showOpenDialog(mFrame); + returnVal = jfc.showOpenDialog(mFrame); + if(returnVal == 1) { + System.err.println(returnVal); + } String sfn = jfc.getCurrentDirectory() + "\\" + jfc.getSelectedFile().getName(); Document doc = dBuilder.parse(new File(sfn)); // Document doc = dBuilder.parse(new File("C:\\MekHQ\\campaigns\\Solo\\Solo30270514.cpnx")); @@ -83,10 +88,12 @@ public ScenarioEditor() { } } catch (Exception e) { /*err handling*/ + System.err.println(e.toString()); + } + if(returnVal == 0) { + mFrame.getUnitPanel().LoadUnit(getUnitByCnt("1")); + mFrame.getScenarioPanel().loadScenario(getScenarioByID(Integer.toString(getMinimumScenarioID()))); } - mFrame.getUnitPanel().LoadUnit(getUnitByCnt("1")); - mFrame.getScenarioPanel().loadScenario(getScenarioByID(Integer.toString(getMinimumScenarioID()))); - } /* From 2304c59996b49acb25e319b26ff6af70dc51e02c Mon Sep 17 00:00:00 2001 From: jhahn Date: Wed, 10 Oct 2018 09:17:42 -0400 Subject: [PATCH 08/10] changing scenario type from a JtextBox to a JComboBox --- src/ScenarioEditor/ScenarioEditor.java | 103 +++++++++++++++++++++---- src/ScenarioEditor/ScenarioPanel.java | 20 +++-- src/ScenarioEditor/UnitPanel.java | 2 +- 3 files changed, 104 insertions(+), 21 deletions(-) diff --git a/src/ScenarioEditor/ScenarioEditor.java b/src/ScenarioEditor/ScenarioEditor.java index 22a5b9d..f8e03f5 100644 --- a/src/ScenarioEditor/ScenarioEditor.java +++ b/src/ScenarioEditor/ScenarioEditor.java @@ -2,7 +2,7 @@ import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.parsers.*; +//import javax.xml.parsers.*; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; @@ -12,16 +12,22 @@ import java.lang.Integer; import java.util.Iterator; +import mekhq.campaign.mission.atb.scenario.*; +import mekhq.campaign.mission.AtBScenario; +import mekhq.campaign.mission.atb.AtBScenarioFactory; +//import mekhq.campaign.mission.Scenario; //import mekhq.campaign.Campaign; //import megamek.MegaMek; //import megameklab.com.*; -import java.io.FileInputStream; +//import java.io.FileInputStream; import java.util.UUID; import java.io.*; import javax.swing.*; -import java.math.*; +//import java.math.*; import java.util.Vector; -import java.util.List; +import java.util.Collection; +import java.util.Map; +import java.util.HashMap; import javax.swing.JFileChooser; import java.util.NoSuchElementException; @@ -31,6 +37,7 @@ public class ScenarioEditor { private Vector units = new Vector(10,2); private Vector missions = new Vector(4,2); private Vector scenarios = new Vector(4,2); + private Map ScenarioNames = new HashMap(); /* * Scenario Editor Constructor @@ -39,18 +46,24 @@ public ScenarioEditor() { // value returned by FileChooser int returnVal = 0; try { - + listOfScenarios(); + mFrame = new ScenarioEditorGUI("Scenario Editor", this); mFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + DocumentBuilder dBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); + + JFileChooser jfc = new JFileChooser(); returnVal = jfc.showOpenDialog(mFrame); if(returnVal == 1) { System.err.println(returnVal); } + String sfn = jfc.getCurrentDirectory() + "\\" + jfc.getSelectedFile().getName(); Document doc = dBuilder.parse(new File(sfn)); // Document doc = dBuilder.parse(new File("C:\\MekHQ\\campaigns\\Solo\\Solo30270514.cpnx")); + Element campaignEle = doc.getDocumentElement(); NodeList nl = campaignEle.getChildNodes(); campaignEle.normalize(); @@ -96,12 +109,80 @@ public ScenarioEditor() { } } + + private void listOfScenarios() { + String[] s = new String[2]; + s[0] = "AceDuel"; + s[1] = "mekhq.campaign.mission.atb.scenario.AceDuelBuiltInScenario"; + ScenarioNames.put(1,s); + s[0]="AlliedTraitors"; + s[1] = "mekhq.campaign.mission.atb.scenario.AlliedTraitorsBuiltInScenario"; + ScenarioNames.put(2,s); + s[0] ="AllyRescue"; + s[1] = "mekhq.campaign.mission.atb.scenario.AllyRescueBuiltInScenario"; + ScenarioNames.put(3,s); + s[0] = "Ambush"; + s[1] ="mekhq.campaign.mission.atb.scenario.AmbushBuiltInScenario"; + ScenarioNames.put(4,s); + s[0] = "BaseAttack"; + s[1] = "mekhq.campaign.mission.atb.scenario.BaseAttackBuiltInScenario"; + ScenarioNames.put(5,s); + s[0] = "Breakthrough"; + s[1] = "mekhq.campaign.mission.atb.scenario.BreakthroughBuiltInScenario"; + ScenarioNames.put(6,s); + s[0] = "Chase"; + s[1] = "mekhq.campaign.mission.atb.scenario.ChaseBuiltInScenario"; + ScenarioNames.put(7,s); + s[0] = "CivilianHelp"; + s[1] ="mekhq.campaign.mission.atb.scenario.CivilianHelpBuiltInScenario"; + ScenarioNames.put(8,s); + s[0] = "CivilianRiot"; + s[1] = "mekhq.campaign.mission.atb.scenario.CivilianRiotBuiltInScenario"; + ScenarioNames.put(9,s); + s[0] = "ConvoyAttack"; + s[1] = "mekhq.campaign.mission.atb.scenario.ConvoyAttackBuiltInScenario"; + ScenarioNames.put(10,s); + s[0] = "Extraction"; + s[1] = "mekhq.campaign.mission.atb.scenario.ExtractionBuiltInScenario"; + ScenarioNames.put(11,s); + s[0] = "HideAndSeek"; + s[1] = "mekhq.campaign.mission.atb.scenario.HideAndSeekBuiltInScenario"; + ScenarioNames.put(12,s); + s[0] = "HoldTheLine"; + s[1] = "mekhq.campaign.mission.atb.scenario.HoldTheLineBuiltInScenario"; + ScenarioNames.put(13,s); + s[0] = "OfficerDual"; + s[1] = "mekhq.campaign.mission.atb.scenario.OfficerDualBuiltInScenario"; + ScenarioNames.put(14,s); + s[0] = "PirateFreeForAll"; + s[1] = "mekhq.campaign.mission.atb.scenario.PirateFreeForAllBuiltInScenario"; + ScenarioNames.put(15,s); + s[0] = "PrisonBreak"; + s[1] = "mekhq.campaign.mission.atb.scenario.PrisonBreakBuiltInScenario"; + ScenarioNames.put(16,s); + s[0] = "Probe"; + s[1] = "mekhq.campaign.mission.atb.scenario.ProbeBuiltInScenario"; + ScenarioNames.put(17,s); + s[0] = "ReconRaid"; + s[1] = "mekhq.campaign.mission.atb.scenario.ReconRaidBuiltInScenario"; + ScenarioNames.put(18,s); + s[0] = "StandUp"; + s[1] = "mekhq.campaign.mission.atb.scenario.StandUpBuiltInScenario"; + ScenarioNames.put(19,s); + s[0] = "StarLeagueCache1"; + s[1] = "mekhq.campaign.mission.atb.scenario.StarLeagueCache1BuiltInScenario"; + ScenarioNames.put(20,s); + s[0] = "StarLeagueCache2"; + s[1] = "mekhq.campaign.mission.atb.scenario.StarLeagueCache2BuiltInScenario"; + ScenarioNames.put(21,s); + } + + /* * Process the Mission nodes in the campaign file */ private void processMissionNodes(Node wn){ NodeList wList = wn.getChildNodes(); - int cnt = 0; // iterate through the children, for (int x = 0; x < wList.getLength(); x++) { @@ -115,7 +196,6 @@ private void processMissionNodes(Node wn){ if (!wn2.getNodeName().equalsIgnoreCase("mission")) { continue; } - cnt += 1; Mission m = new Mission(); NamedNodeMap attrs = wn2.getAttributes(); @@ -154,6 +234,7 @@ private void processMissionNodes(Node wn){ System.out.println("+"); } System.out.println("Mission: \r\n" + m.toString()); + missions.add(m); } catch (Exception ex) { // Doh! System.err.println( ex.toString() ); @@ -168,7 +249,6 @@ private void processMissionNodes(Node wn){ */ private void processScenarioNodes(Node wn) { NodeList wList = wn.getChildNodes(); - int cnt = 0; // iterate through the children, for (int x = 0; x < wList.getLength(); x++) { @@ -182,7 +262,6 @@ private void processScenarioNodes(Node wn) { if (!wn2.getNodeName().equalsIgnoreCase("scenario")) { continue; } - cnt += 1; Scenario m = new Scenario(); NamedNodeMap attrs = wn2.getAttributes(); @@ -300,8 +379,7 @@ private void processUnitNodes(Node wn) { NodeList wList = wn.getChildNodes(); int cnt = 0; UUID id; - int oldId; - String chassis; + // Okay, lets iterate through the children, eh? for (int x = 0; x < wList.getLength(); x++) { @@ -357,7 +435,6 @@ private void processUnitNodes(Node wn) { */ private void processPartNodes(Node wn) { NodeList wList = wn.getChildNodes(); - int cnt = 0; String wpn = ""; String unitId = ""; @@ -375,8 +452,6 @@ private void processPartNodes(Node wn) { // Errr, what should we do here? continue; } - - cnt += 1; NamedNodeMap attrs = wn2.getAttributes(); Node idNode = attrs.getNamedItem("id"); //System.out.println("PARTS ID " + idNode.getTextContent()); diff --git a/src/ScenarioEditor/ScenarioPanel.java b/src/ScenarioEditor/ScenarioPanel.java index c5c5b85..87dc9f2 100644 --- a/src/ScenarioEditor/ScenarioPanel.java +++ b/src/ScenarioEditor/ScenarioPanel.java @@ -1,6 +1,7 @@ package ScenarioEditor; import java.awt.Color; +import javax.swing.JComboBox; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; @@ -16,7 +17,7 @@ public class ScenarioPanel extends JPanel{ private ScenarioEditorGUI SEG = null; private JTextField id = null; - private JTextField type = null; +// private JTextField type = null; private JTextField name = null; private JTextField desc = null; private JTextField status = null; @@ -38,6 +39,7 @@ public class ScenarioPanel extends JPanel{ private JTextField lanceCount = null; private JTextField rerollsRemaining = null; private JTextArea botForceStub = null; + private JComboBox type = null; @@ -52,7 +54,7 @@ public ScenarioPanel(ScenarioEditorGUI se) { // build all the elements id = new JTextField(10); - type = new JTextField(10); + type = buildType(); name = new JTextField(10); desc = new JTextField(10); status = new JTextField(10); @@ -94,8 +96,8 @@ public ScenarioPanel(ScenarioEditorGUI se) { JPanel jp1 = new JPanel(); jp1.setLayout(new GridLayout(0,2)); jp1.add(new JLabel("Type")); - type.setEnabled(false); - type.setDisabledTextColor(Color.black); + //type.setEnabled(false); + //type.setDisabledTextColor(Color.black); jp1.add(type); //name @@ -337,7 +339,7 @@ public void setId(String s) { } public void setType(String s) { - type.setText(s); + type.setSelectedItem(s); } public void setNName(String s) { @@ -428,9 +430,15 @@ public void clearBotForceStub() { botForceStub.setText(""); } + private JComboBox buildType() { + JComboBox jcb = new JComboBox(); + + return jcb; + } + public void loadScenario(Scenario s) { id.setText(s.getID()); - type.setText(s.getType()); + type.setSelectedItem(s.getType()); name.setText(s.getName()); desc.setText(s.getDesc()); status.setText(s.getStatus()); diff --git a/src/ScenarioEditor/UnitPanel.java b/src/ScenarioEditor/UnitPanel.java index dd78937..0ac6a9f 100644 --- a/src/ScenarioEditor/UnitPanel.java +++ b/src/ScenarioEditor/UnitPanel.java @@ -1,7 +1,7 @@ package ScenarioEditor; import javax.swing.*; import javax.swing.border.EtchedBorder; -import java.awt.Event; +//import java.awt.Event; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.*; From 042766eb00ee9d610fcbe8d4e9a2b1cc28804db3 Mon Sep 17 00:00:00 2001 From: jhahn Date: Wed, 10 Oct 2018 11:18:24 -0400 Subject: [PATCH 09/10] Completed the Scenario Type JComboBox --- src/ScenarioEditor/ScenarioEditor.java | 111 +++++++++------------- src/ScenarioEditor/ScenarioEditorGUI.java | 6 +- src/ScenarioEditor/ScenarioPanel.java | 17 +++- 3 files changed, 62 insertions(+), 72 deletions(-) diff --git a/src/ScenarioEditor/ScenarioEditor.java b/src/ScenarioEditor/ScenarioEditor.java index f8e03f5..2cb8cda 100644 --- a/src/ScenarioEditor/ScenarioEditor.java +++ b/src/ScenarioEditor/ScenarioEditor.java @@ -37,7 +37,7 @@ public class ScenarioEditor { private Vector units = new Vector(10,2); private Vector missions = new Vector(4,2); private Vector scenarios = new Vector(4,2); - private Map ScenarioNames = new HashMap(); + private Vector ScenarioNames = new Vector(4,2); /* * Scenario Editor Constructor @@ -109,72 +109,51 @@ public ScenarioEditor() { } } - + public Vector getScenarioNames() { + return ScenarioNames; + } private void listOfScenarios() { - String[] s = new String[2]; - s[0] = "AceDuel"; - s[1] = "mekhq.campaign.mission.atb.scenario.AceDuelBuiltInScenario"; - ScenarioNames.put(1,s); - s[0]="AlliedTraitors"; - s[1] = "mekhq.campaign.mission.atb.scenario.AlliedTraitorsBuiltInScenario"; - ScenarioNames.put(2,s); - s[0] ="AllyRescue"; - s[1] = "mekhq.campaign.mission.atb.scenario.AllyRescueBuiltInScenario"; - ScenarioNames.put(3,s); - s[0] = "Ambush"; - s[1] ="mekhq.campaign.mission.atb.scenario.AmbushBuiltInScenario"; - ScenarioNames.put(4,s); - s[0] = "BaseAttack"; - s[1] = "mekhq.campaign.mission.atb.scenario.BaseAttackBuiltInScenario"; - ScenarioNames.put(5,s); - s[0] = "Breakthrough"; - s[1] = "mekhq.campaign.mission.atb.scenario.BreakthroughBuiltInScenario"; - ScenarioNames.put(6,s); - s[0] = "Chase"; - s[1] = "mekhq.campaign.mission.atb.scenario.ChaseBuiltInScenario"; - ScenarioNames.put(7,s); - s[0] = "CivilianHelp"; - s[1] ="mekhq.campaign.mission.atb.scenario.CivilianHelpBuiltInScenario"; - ScenarioNames.put(8,s); - s[0] = "CivilianRiot"; - s[1] = "mekhq.campaign.mission.atb.scenario.CivilianRiotBuiltInScenario"; - ScenarioNames.put(9,s); - s[0] = "ConvoyAttack"; - s[1] = "mekhq.campaign.mission.atb.scenario.ConvoyAttackBuiltInScenario"; - ScenarioNames.put(10,s); - s[0] = "Extraction"; - s[1] = "mekhq.campaign.mission.atb.scenario.ExtractionBuiltInScenario"; - ScenarioNames.put(11,s); - s[0] = "HideAndSeek"; - s[1] = "mekhq.campaign.mission.atb.scenario.HideAndSeekBuiltInScenario"; - ScenarioNames.put(12,s); - s[0] = "HoldTheLine"; - s[1] = "mekhq.campaign.mission.atb.scenario.HoldTheLineBuiltInScenario"; - ScenarioNames.put(13,s); - s[0] = "OfficerDual"; - s[1] = "mekhq.campaign.mission.atb.scenario.OfficerDualBuiltInScenario"; - ScenarioNames.put(14,s); - s[0] = "PirateFreeForAll"; - s[1] = "mekhq.campaign.mission.atb.scenario.PirateFreeForAllBuiltInScenario"; - ScenarioNames.put(15,s); - s[0] = "PrisonBreak"; - s[1] = "mekhq.campaign.mission.atb.scenario.PrisonBreakBuiltInScenario"; - ScenarioNames.put(16,s); - s[0] = "Probe"; - s[1] = "mekhq.campaign.mission.atb.scenario.ProbeBuiltInScenario"; - ScenarioNames.put(17,s); - s[0] = "ReconRaid"; - s[1] = "mekhq.campaign.mission.atb.scenario.ReconRaidBuiltInScenario"; - ScenarioNames.put(18,s); - s[0] = "StandUp"; - s[1] = "mekhq.campaign.mission.atb.scenario.StandUpBuiltInScenario"; - ScenarioNames.put(19,s); - s[0] = "StarLeagueCache1"; - s[1] = "mekhq.campaign.mission.atb.scenario.StarLeagueCache1BuiltInScenario"; - ScenarioNames.put(20,s); - s[0] = "StarLeagueCache2"; - s[1] = "mekhq.campaign.mission.atb.scenario.StarLeagueCache2BuiltInScenario"; - ScenarioNames.put(21,s); + ScenarioNames.add(new String[] { "AceDuel", "mekhq.campaign.mission.atb.scenario.AceDuelBuiltInScenario"}); + + ScenarioNames.add(new String[] { "AlliedTraitors", "mekhq.campaign.mission.atb.scenario.AlliedTraitorsBuiltInScenario"}); + + ScenarioNames.add(new String[] { "AllyRescue", "mekhq.campaign.mission.atb.scenario.AllyRescueBuiltInScenario"}); + + ScenarioNames.add(new String[] { "Ambush", "mekhq.campaign.mission.atb.scenario.AmbushBuiltInScenario"}); + + ScenarioNames.add(new String[] { "BaseAttack", "mekhq.campaign.mission.atb.scenario.BaseAttackBuiltInScenario"}); + + ScenarioNames.add(new String[] { "Breakthrough", "mekhq.campaign.mission.atb.scenario.BreakthroughBuiltInScenario"}); + + ScenarioNames.add(new String[] { "Chase", "mekhq.campaign.mission.atb.scenario.ChaseBuiltInScenario"}); + + ScenarioNames.add(new String[] { "CivilianHelp","mekhq.campaign.mission.atb.scenario.CivilianHelpBuiltInScenario"}); + + ScenarioNames.add(new String[] { "CivilianRiot", "mekhq.campaign.mission.atb.scenario.CivilianRiotBuiltInScenario"}); + + ScenarioNames.add(new String[] { "ConvoyAttack", "mekhq.campaign.mission.atb.scenario.ConvoyAttackBuiltInScenario"}); + + ScenarioNames.add(new String[] { "Extraction", "mekhq.campaign.mission.atb.scenario.ExtractionBuiltInScenario"}); + + ScenarioNames.add(new String[] { "HideAndSeek", "mekhq.campaign.mission.atb.scenario.HideAndSeekBuiltInScenario"}); + + ScenarioNames.add(new String[] { "HoldTheLine", "mekhq.campaign.mission.atb.scenario.HoldTheLineBuiltInScenario"}); + + ScenarioNames.add(new String[] { "OfficerDual", "mekhq.campaign.mission.atb.scenario.OfficerDualBuiltInScenario"}); + + ScenarioNames.add(new String[] { "PirateFreeForAll", "mekhq.campaign.mission.atb.scenario.PirateFreeForAllBuiltInScenario"}); + + ScenarioNames.add(new String[] { "PrisonBreak", "mekhq.campaign.mission.atb.scenario.PrisonBreakBuiltInScenario"}); + + ScenarioNames.add(new String[] { "Probe", "mekhq.campaign.mission.atb.scenario.ProbeBuiltInScenario"}); + + ScenarioNames.add(new String[] { "ReconRaid", "mekhq.campaign.mission.atb.scenario.ReconRaidBuiltInScenario"}); + + ScenarioNames.add(new String[] { "StandUp", "mekhq.campaign.mission.atb.scenario.StandUpBuiltInScenario"}); + + ScenarioNames.add(new String[] { "StarLeagueCache1", "mekhq.campaign.mission.atb.scenario.StarLeagueCache1BuiltInScenario"}); + + ScenarioNames.add(new String[] { "StarLeagueCache2", "mekhq.campaign.mission.atb.scenario.StarLeagueCache2BuiltInScenario"}); } diff --git a/src/ScenarioEditor/ScenarioEditorGUI.java b/src/ScenarioEditor/ScenarioEditorGUI.java index 0abd3be..de5f299 100644 --- a/src/ScenarioEditor/ScenarioEditorGUI.java +++ b/src/ScenarioEditor/ScenarioEditorGUI.java @@ -5,7 +5,7 @@ public class ScenarioEditorGUI extends JFrame{ private UnitPanel up = null; private ScenarioPanel sp = null; - private ScenarioEditor scenerioeditor = null; + private ScenarioEditor SE = null; private JTabbedPane JTP = null; public ScenarioEditorGUI(String s, ScenarioEditor se) { @@ -13,7 +13,7 @@ public ScenarioEditorGUI(String s, ScenarioEditor se) { this.setLayout(new BorderLayout()); this.setSize(640, 480); JTP = new JTabbedPane(); - scenerioeditor = se; + SE = se; //add tabbed Pane to Frame this.add(JTP,BorderLayout.CENTER); @@ -42,6 +42,6 @@ public ScenarioPanel getScenarioPanel() { } public ScenarioEditor getScenarioEditor() { - return scenerioeditor; + return SE; } } diff --git a/src/ScenarioEditor/ScenarioPanel.java b/src/ScenarioEditor/ScenarioPanel.java index 87dc9f2..d84b88c 100644 --- a/src/ScenarioEditor/ScenarioPanel.java +++ b/src/ScenarioEditor/ScenarioPanel.java @@ -5,6 +5,11 @@ import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; +import java.util.Vector; + import javax.swing.JButton; import javax.swing.BoxLayout; import javax.swing.JLabel; @@ -40,13 +45,15 @@ public class ScenarioPanel extends JPanel{ private JTextField rerollsRemaining = null; private JTextArea botForceStub = null; private JComboBox type = null; + private Vectorsn = new Vector(); - public ScenarioPanel(ScenarioEditorGUI se) { + public ScenarioPanel(ScenarioEditorGUI seg) { super(); - SEG = se; + SEG = seg; + sn = (SEG.getScenarioEditor()).getScenarioNames(); JButton n = new JButton("Next"); JButton p = new JButton("Prev"); @@ -432,7 +439,11 @@ public void clearBotForceStub() { private JComboBox buildType() { JComboBox jcb = new JComboBox(); - + Iterator i = sn.iterator(); + while(i.hasNext()) { + String[] s = (String[])i.next(); + jcb.addItem(s[1]); + } return jcb; } From 89e3c7501c021d3f4ebfd44b95c96a8119d8b09f Mon Sep 17 00:00:00 2001 From: jhahn Date: Wed, 10 Oct 2018 11:20:12 -0400 Subject: [PATCH 10/10] parameterized the JComboBox ( got rid of the annoying warnings) --- src/ScenarioEditor/ScenarioPanel.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/ScenarioEditor/ScenarioPanel.java b/src/ScenarioEditor/ScenarioPanel.java index d84b88c..b8dda94 100644 --- a/src/ScenarioEditor/ScenarioPanel.java +++ b/src/ScenarioEditor/ScenarioPanel.java @@ -44,7 +44,7 @@ public class ScenarioPanel extends JPanel{ private JTextField lanceCount = null; private JTextField rerollsRemaining = null; private JTextArea botForceStub = null; - private JComboBox type = null; + private JComboBox type = null; private Vectorsn = new Vector(); @@ -437,9 +437,9 @@ public void clearBotForceStub() { botForceStub.setText(""); } - private JComboBox buildType() { - JComboBox jcb = new JComboBox(); - Iterator i = sn.iterator(); + private JComboBox buildType() { + JComboBox jcb = new JComboBox(); + Iterator i = sn.iterator(); while(i.hasNext()) { String[] s = (String[])i.next(); jcb.addItem(s[1]);