From 199c828f09d2261eca2faddf3ece1a37bb054a51 Mon Sep 17 00:00:00 2001 From: Tgui Date: Tue, 22 Aug 2006 20:31:18 +0000 Subject: [PATCH] Initial 3d graph internal frame integration. git-svn-id: http://svn.3splooges.com/romraider-arch/trunk@254 d2e2e1cd-ba16-0410-be16-b7c4453c7c2d --- lib/Graph3d/linux/Graph3d.jar | Bin 33975 -> 34474 bytes lib/Graph3d/windows/Graph3d.jar | Bin 33975 -> 34474 bytes src/enginuity/ECUEditor.java | 2 +- src/enginuity/swing/RomTree.java | 2 +- src/enginuity/swing/TableFrame.java | 14 +++++++++++++ src/enginuity/swing/TableToolBar.java | 28 +++++++++++++++++++++++--- 6 files changed, 41 insertions(+), 5 deletions(-) diff --git a/lib/Graph3d/linux/Graph3d.jar b/lib/Graph3d/linux/Graph3d.jar index 4dc8504ebec62b2227cf780570b679083bdbe91c..f04d1608ef1710761c210f170706e5a2933cd192 100644 GIT binary patch delta 11340 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 U|N9D1P`LjJ{Xb+M^dI)W04n6gV*mgE delta 10827 zcmY*<1yCJ4(=P7r?(XjH?of(DaXGllK@QO3aBz3m;_jumyA`*h#r5`m?|<+2{mCTR z?CkDrGMRmn$yUZfwSI#_(NKnl!GS>dTd~{|QCgsKloN*pfeza1ayX(~L6uCGGy?nP zw%`?!Lan)5bEWl!1R-AZv<1ckaDA&B;b#jL!lc)NAhsON9IpAgj9Yn6KQCHGkpz`N zl%>tihg?zrsf+hNm!?2y{XQ=wPE>velX;xx(pB5fFaBPW{N&?i4L#QFdeTi=UmXa7 z0Hpe*U)oXKfnOfl%VCMc96?s?6$Y$^ zaYdGHijb!SeQhC{$1te(j;4bPhEFmt^abY5rfr&hz_oKZ6Q^ZI_?9nvj9-_TE|R^J z4staNC8L#aKGaJ!RCg*Ph%Zy+HMyvNQZTBi88jw3s0?^w- z0yErY zymf#N`{-wB=KAN2QH$|DZ5^Lt1aD13_Lg~6{4IaXwVs1!L*52^<@J$g=M!T_sM1F+ zAj*|fv}77OEVZ#1_AA|E*3Q>XUFSTwr?lDk;Qo*PZQXeeAUtj##x6;TAdx1w*`RIf z=Kd!r8tXXDB?r|?%M}X{Y#V6Yjnt@LX5lrWKI!uTLRcNAYv}L$iQgLme7UM5Uy_W1 z1`*2C+)0hZL$8UJ)f3jO-wEdTCl(L^KqvA&HF#gNUDAzn%nUt4vOTW7bea&T+N3`; zsV=CrQB9*rif)25q3R9g`{lpL#I%Q)+ol;x3#YHc=ZZtw35RuWaf@JDb${DyX)Q|J zBPbW43;8J2l8R8aLb|5k8VJRsq(g{5_ zL>5-92|f!0<*s>xq;yyBRCM28$u*SW5xyRdD1f0MATHn<$6@rKpchr}z-ur}U^RGj zppjLx_|Z5GcgBXJ>YP_*6KO}HbqOo0)7TuJodbocGB~x=u{)z(u{4KvLZziJSWB|$ z3PzR{ol>VE|0{6@PFPzQ1ylJ?XdLgFE2CWXz{?Qzt;>LiDNCm?V0VjquY2!7z>)CF z6Cm$>1fQI~Q1{fDpRrUnM89|oN#?W@xM%IG&X7>P&DNLsYq)cw9M=mRZ8s&^xJ^>6 zjshy&ygPX(DTSRgbw;B(s|jMxtnM8mvPYy%(p!k?939jVNA+GIR9m?G3M*|)$-H7o zH+d~-EJ{L0M#dFjEGU&eE7N6U>+LV_0 zCUURfaCLqPskZJS@iO_nwRl1X(ca+VvJKx??-5A+IQO;$tqh? zZM}oB?)IUkt$YzK7<&$eJR}&Q?R<+&>X~r3l$9B}FeNA3Xh|!cPx*9VhpRJuVTbcZ z{N1Qfc}neRE%OE$9^WLzfCdyZXklX&Qu#S>ti`fW#`ZH7#P-}jou&OzgvKM-xNX0o zdJ;4xM&}wN-{e!SZbtn-zP{e z^5JlnN2K~g4x^mn>fwIXA^MWIrH?~KK`HGTh6VEt7iKp#V`7DG11NhiX2)b^c$irl zYjRp9$&bo0DZWV(7IDmxZVMNtEi(BzPA&TfuH;zg`#D^9SS_@<1V{e|Cu?p?zyJrH z|1lhc88uvWTlSSP+@^wjKE1?HliR>43O!xr+SF7SMhji&30)YV^x+o{pZD6(x?Lw8 zSLq*{!g=?3|BTdbT%h_+6dgqC>*^uG=AGknJ+-j)8Wx3$5Jhd~+s9)8FQkqrG>~nU*>yuOUUY{F+ z3AY@6NZ(v|bo}aXo)&bU08Q^e6z-jT-YK{9_HvA&y zG&6WhXp2&R8D(g!Cjx+7mx^>9^Tp;HHCweE-*<-#%I$-A{0akrlCr5K_1~|4gd3`n005 z)=-bOkRw@AIuTjiGoiyBC|S1nUC<9a4>{w3{cKL6)rL zc3(C(JO{t%PWhNwpt#4B%KgG+RCwViuOxdQxQA9)6c#A2wYsp-+x(PCD~ayb$O< zkF28WoYM){t-vn1gVmBfw`r$FrKdMVQKeX&XO|;A6_5J-O$H1ru}u^WDy+Bh|4^x= zUc1o_3j)fCN9G8wQT6yg{Z@j?`ZLFVvJ7~}l^U)Fqdud);Q^*rVIb|`dReH68=WAv zTGC94wmVO@Gn8yHZD+`j-jS@Cb8jtnh8%9m;odUd=MO<~ zs98m$34~}Fh#X%W7F+=-FT=QpFiqzr+*RD^w7?DP51q5hCmToPcLust=%Q@Z2`~$a z+!Nfq;D@8yS;_JVaF|9f8aiM;IL+EJGU01(kCm`i;TTX%Tg=_(&JE9|lTcRYiLjI~ zn_3d%De(L3Z(d>P9St`GG?ecW9SPYS^ONn|`C|!9rK96y24@|=j@HS4_zG_Sf?@-G z+W{sEPxQ-iljvi2vEZS@&ogq&%{g&3uKW@-vdHQeqyPLvzcD6-P=sH!rFZmH_1+9W z*SS6(pJH~|z-mnhCT;f+sk9v|8kdt^dvfC@$R3K~)6iD!wB8~q8FI=JmUg8z1jwJW zK@@JV%sf+~P6{3wx4FvIwwxM&bX=`-`vDX&gW4XlGjmJnUo;Anri`}zjToL7^;BBt zAX{3-may|qtZWKod5zU0|HJT(!5A4 z*^wpvI$V5GeN92>K+f**Nn(nFicQ037bxZn^Oa2cnpqQ*X?z5Ajfdn(P+;A}iY4&M zdJBp%qq|!V$FV$686+SKxOKtSzRvu$XgJYVaM1?())Cgd8S0zWzfR~GO;6ak+}E!= zbi{MKvsJ-k{^Es88U{!D$v7Kjq&c8+`J z$PtyU&XgPmja_&cF=ByJi>nY%kxbEe0L8lsKX&Ts_J}tEL`jC*h%WjxQG)1umB;$0 zK*l({M~-e<(4XDG{rucYJ;3U%m0+6tpYJ@i4@9qGVo|u?9Cj7gsik$sjA-K*eLRpB z5PuRk4d~4!&CyFwnMhtshFw}Fn|%J6k)2ua`B~iJinDW@B)R^o4sLsr9M+q*B5|BV z#;d2s7*w`9EP{Nu_=iQ`ddU7z~(a{}MY>K?`OLLGZY4Xjhhd)q2J0Z{M=mqs1 zCNFqsPmgBFS@qiIgvzfsjeK9d{Rymb%Dv0;NU6wJVn4TF=Q+Fb_JI-tmNNHIYPa{%hR^jvB7N&SMr=l_;(aw%wu+KhfT7H&4I;*DbX;^Yl0`T0!) za@+1GxTr5&h%K@HS2vLCsIKj4{Dgxmu&3WNg+-z`m@Tk3oY$29k$BF@!|)_)+=mKZ z^8zs}Z{Haa*EQYjv+^4F5^6BXr74wAGTkThDH-^%G^r}w;@5p%UibEx_PgQL4IV_Z znAe1*2qdYrr(*$DE63Z(JuSn$ajes3T^1$Ah`ig;07U}1Ir2d_oO~Yx(0vJ_eUqK+pT+Ri{tmNg8T8Z zgVOJ64^xiHK4!?L=So19ZYO^;(8(Mf@0kxC%DeSP;D(O?Th@ktXDk| zoO0v^S&M4`cSi*=^MEIX#vx3#j}8nqKOKe?J_w5C6^H^{p4<*O%9A8SdCx7TxiC3F zl9vt7<$ioI2)`Xh_=AobWU{*%K*9%6<3!vm(Q4euu#XJ)LEI})TPA94M2`?_5|jbl zJtS9G>-HGpf5d%fykGL36YeZ6Hn!vE6xB=!I6O*Xe3Oc4xW0W#NCOV{y8fx7Ki|YT zlRmM!0y;n8%!$cVfvmi9=r|p);_oZ_>o}vN(D!#it?ehbil$Kf!f$IIZ~ec-qdYsX z3I_GaKHxvfvOcnV=regXfAwCOa&ks7@bOZ+6Hu7k^rE~wzmq2*PdZI*Tv5MM_#nLV zqr7((TVIfI&m!r3KO~3ityor|y{MM#wUB0X1(t;$Zxbamo33Y#rH^Z@Qk_x_ZKWGm zOC)J3mVf`%z!tIKL_Su@3YG&{EmL-c_ z#2vDJc@&B+OZF&o*0=qodfX6Z93*8F-OP$~qAv|T8h%Ga_9mrz-~Ch6Q#x^(N_Ji2 z_<%+AXDxlVpOSTy5iVKh;rPeKWFrh%9z{5ivRsFd?&g|by+Trn0))3IE!p@NkiL14 zITaMxN(nKec4!K1hOH?@?Eg_BVoLhcr21G$gITJ3L1z?sZe9O*MUxBKic22-5OJJa zQPqTngakOAO3^xP_b~oIQda9huJ$P}00S6JF}2wOjAYsLK|bD?`1;ec6FY~?+fKV~ zZ=}fhiSWn#O3Rp2r`dR;DZIJNjk#)XEVj8iK!zy*Aw<(jQx&lIRl#o!6{T4hM3a$V za=SAh>Q(IgW>!As~|j#U`HfTHZGt3TC`85IOXg+F7k`rjNiofI zsdCIG`LYBRDc$DYj^pmbVv4`$sZi;kgdeohsir_B)|_3M z1F<>sAt9iI|0`(9hDLgR+h4{=uO5w!q1+Xp&hI&?e?_7R^N=`2IFIFyO?p${^VBmJ zJz&(vyS`(wKrM>fIco~@AQUphbuKMih%$4EYKY`@l8*mCOOWv?IGRgk^vG}%Pb(1+ zZ5Ibn&Td(-8@H_m90{HWlmYK%p*B;s!vXknRGVyG2EFsS2TjV^UKR6fMF$ow~!0NH$YMkKTrOFqHwCKgo-p6U$lNCf;Nh+rh73lf?P8tFDHUY=K)QQ~dPOgee zebT|Td6GY_th8u$2BGQb#%tKi4;K*KgmiC{! ze<~?g7q6?iX+JW`EA-aeIoOmsA=sP?DUi1vWaxGV0iZn$8wzo{$!C1$@(R&|)VP1K ziCjVme?v<`cAS7kMh5mpX$j$18^cRFLYxux&BU6mg$MJ^$}T9VHl<|R2{-Sq%B9VS ztx0~GV?&xb=<|RzmX0jX8}MM2J%)>#Q^hGNT8Qq(x}}WSP=)r$hC6{IDx98MKcVRk z%Pl-RhW8Nd4#oXIit<{w=-Y@tJ^d&%*r=w&Y@18?Dxxe+NKRM8sUqDV}bL(FDrhF^GPLCf-=px zcCJI-fM7v1+Pvv;oxm3{5Q_>fb9d6a+z0H%LTJT@>IX3FGYk14soDl)GnTp2;EoCY zh1V|rP#tnF*(=&EK3Pd`^df{KVF|EF2OqagUl;%2tgIjp_J%}!mI@&`Ur6~x6XBUN z`%1Yfmn`=X=XN;Lbz1Y6B6lsrW-mVDVrKuTD~mAt0en?MjnG zJg3YNlR)l6c>)g^@*QU$h2tQ{Aj3^}OnTr3_)g5@+@X#TXXynH$rF+N;@!w8*vot3 z3=0H&^WO|Ejv$jh5;@}GeG!yCs0Pl=%Qb*v<+t`$Ou<|QOs>g)pHV|*uLsCs^iQPx zX*aR-Pn)<_wTR9k;DB)(u8m1d{7~TDkHhIl5%Fy#UK`X+I0d_7QwS@&AiKL&l6fW&L5x(Sf-*z*iub zub9iwq}9cDlI4(>tpH5qNIT^xsaV;}QH8M$TxZD9Hss9+oe+w3M?5qhXXiGwrM| zEVoJ@6Pw;<*(uX{J)i#5$XAb%G+O7Th^56jCa$l)Pgq)Xv!$=O;F9ge42(JzmkY<0 z^?X1w5>`0#vmsF3eRE~oz&QlK9TEziE0bG0EM+jdd~%RMT;|g{f=Tet|2SV>WA=LQ1b_40V`e?jyH>HC6QVTNpNOGQ#~@ z(GN-N#{9@#%TfDrX{4$QTgqxRtZuN9_n4PaHlsdu4>=ml`4ULYLvH3S! zCN*n`@Kn$5pCmsfUcV1OV;SZOX-!xSTfth%KHnklwLD{C1@1mbfB_+Kq~TuMNdDci zhg1Q26fSH#>lIk$jd9`-S#JouH^xoi%hJtP&9%WnOW<`N&cPl}AG!QWdmbRdIxw9) z-#jRRY*&4j`V~Vo;_8MMCe@iTK_qhK3M;-oO}h)GV$Clong5!=@m9GjzIWo&)u+TD z5yMh8ARt1?Vc4I;bsRG50E1{9}2^%t@CF9?@eAWL^7A_5FtH${IdoS#m*_CNZi@Z$=v=rSmi{)YlMb8zG0d_i(^hQy< zR%)xs?Klo&|B!6MnOtcWsu{`+bVpi_m^Cv8Rm5fftuqCHXYqf223HYTHnv8HAt0#v z8zpF%6re3)aluZGGC)IhY)PDv59kuZHO4fHYdAcNX4sP-7N%jf!riS&~LS{rCiv8I{_ka}B^@LRx7Dj@pYsIy_ zq=Yx|$$E#Jg8|*HV+q1YfuDy<|E!P{y4~4$d@tnTuKri4`K0gl}bBn5e8SE7G}b z?0>q5`mg0eU^L`W_6T$kky(UoW5!f`H%ZzV-J>*xU+Esn#cf_-l*y*-A+)nN_EL?yfte-Tk9}72Ap4Lq6i#7gFz0*=xqMQ`T=aDF)37&GM;T>k-pUyd$RW)T&c>U_=<0qQBKs0=Nf$LI2}^ zTm-vr4g>_m;NSKi_X}fi!7t7tKxKCvT>??jx{F(npWQk5pahioJ{n3Cq(ZEi9bA$O zOCL}IVyK68X0a<5Ha#hsnC5H>GQNh@j$Bo_MHL$qQi=Y-fZGB36?~h=j+(Mat4**3 zm2Bm+aO>q>=TSg>?(6gAgE)i_T$(3{r+PZgMhg%`$E)jVUDo|-H0FH-d|hCegyaRY z`S!$pg>zjJJSvV-vtvrh5ji^)B%V(&aO*mrd;*NtOq4{7!(PT5;oS@NfGZ~Lzn`$e)}9g`<}BN-cv!O>%DX@0 z@vzDb1&X)&hoHUm#QAOmnM;3^7aDO=V#cGOK_zykB|m8q-gOwp!Yyu4$lIHChVvd% zc$aC+%w$i9kR`ugAVMReKKoGZsdUIfpYaSq(|yyNX77OGbMY+fu(zO265_KvHlm^y zXsqG*ot(|sYEeKeN@JSqsob1W5XC(xVd+4F$9O89D3)jK&`Ez|x{Eb!!Jz!%gmim(0p@PP-yzzEPrT-ig(k%r&PW zqUw!`lFQ_GH24xeZGQ1Q9#IzZ64h#vXHQy;35V>OKuJ9c%&jH6AFGf~zT`%z<(_vo zYmFeKzIc)e@upz{0=C?z+rvS7^sjdOiR^xWQT24u@wbeX=r^HzJ6oe4&Eb?JX74tO zIt{n_h^%8FGHU}>0zdP8dJJ7de>Kx|;(t?JK783DkkcDMDC+cB9H1nzeoNaxURd|o z9^6e@bk!M*pfBdL6~qOQj_@>zsrgKIePU_Dg&xVMyw0Hm$|Y(~2J{VKX4hX4sU`I# zS80uws#l@b84945vL8--FI-hVAN6=h(pV7Trt~FKRe|X-_PmXW=sA#j=w-u6vqRnr zWOJP7Pyaf!axu~HCcMZ5)|SeEJUUI+&i00Gkv<*cUrfQ3bvst%j~Qs?hS-@h{pi@}$ z!G*_0>OEnkkMq6#>k#{@k&b;TzC zxImF;9dUB*F?)t87Kl*u{es85r1~YJUMW*iDvL*)wmS7N59CEiPFtOLZMbTlsN+YK zj9rpWP;!hjFph$$%>=5ILGbLPJWYl%XM&{y*1{ktU*q3J_2?I@M8nCNAPgHT$QrLi zwcF|pg=4MJWa2u_7V1aq$r@DaWDhgRer{s?VbM&*vW9EgAUBIk+C*9iZqY7JryDX@ zYqlUg7i!4$>RyrPl=PVO`WD+nJWRKyN|ix+vbka7z2J}Icvun-XLNdF!Ag`;qJ|3bn4EsdRC-H1?F?qI)Q8MGW_Jl_AL zOo1nYzd+`KIYPK8{^m{buKxcE69fd!|5N{WJca{vh7f~uLwKPeslnIs*x=(3Nhp1` zf62>GSTKb+5?D2q1FA~&zgUFe`cNjQVX^;Vi9jXG{Us&9PGL+?u!?_4F7S952h^=C zSks;b%m_lE_JNy+S1!p+ofzSR5|AlAX|3<$5EcqX;Xs3ULk(`PC z75)o`y#KvfjQ`7WG~iz!NnHrQQsGQc4Ick9MFeknVS=;%vJAZbWd-=)fv^5fPyE3o Z5j;@I0bs4aLu4TMYXk|LZ_qzR{|`#~x&HtF diff --git a/lib/Graph3d/windows/Graph3d.jar b/lib/Graph3d/windows/Graph3d.jar index 87061032aaf39a845d1dcfee5062fe01712a2b92..3fcda8b412e73efa962359bbba1ea692b644fd52 100644 GIT binary patch delta 11340 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 U|N9D1P`LjJ{Xb+M^dI)W00p|mO8@`> delta 10827 zcmY*<1yCJ4(=P7r?(XjH?of(DaXGllK@QO3aBz3m;_jumyA`*h#r5`m?|<+2{mCTR z?CkDrGMRmn$yUZfwSI#_(NKnl!GS>dTQ}SjQCgsKloN*pfeza1ayX(~L6uCGGy?nP zw%`?!Lan)5bEWl!1R-AZv<1ckaDA&B;b#jL!lc)NAhsON9IpAgj9Yn6KQCHGkpz`N zl%>tihg?zrsf+hNm!?2y{XQ=wPE>velX;xx(pB5fFaBPW{N&?i4L#QFdeTi=UmXa7 z0Hpe*U)oXKfnOfl%VCMc96?s?6$Y$^ zaYdGHijb!SeQhC{$1te(j;4bPhEFmt^abY5rfr&hz_oKZ6Q^ZI_?9nvj9-_TE|R^J z4staNC8L#aKGaJ!RCg*Ph%Zy+HMyvNQZTBi88jw3s0?^w- z0yErY zymf#N`{-wB=KAN2QH$|DZ5^Lt1aD13_Lg~6{4IaXwVs1!L*52^<@J$g=M!T_sM1F+ zAj*|fv}77OEVZ#1_AA|E*3Q>XUFSTwr?lDk;Qo*PZQXeeAUtj##x6;TAdx1w*`RIf z=Kd!r8tXXDB?r|?%M}X{Y#V6Yjnt@LX5lrWKI!uTLRcNAYv}L$iQgLme7UM5Uy_W1 z1`*2C+)0hZL$8UJ)f3jO-wEdTCl(L^KqvA&HF#gNUDAzn%nUt4vOTW7bea&T+N3`; zsV=CrQB9*rif)25q3R9g`{lpL#I%Q)+ol;x3#YHc=ZZtw35RuWaf@JDb${DyX)Q|J zBPbW43;8J2l8R8aLb|5k8VJRsq(g{5_ zL>5-92|f!0<*s>xq;yyBRCM28$u*SW5xyRdD1f0MATHn<$6@rKpchr}z-ur}U^RGj zppjLx_|Z5GcgBXJ>YP_*6KO}HbqOo0)7TuJodbocGB~x=u{)z(u{4KvLZziJSWB|$ z3PzR{ol>VE|0{6@PFPzQ1ylJ?XdLgFE2CWXz{?Qzt;>LiDNCm?V0VjquY2!7z>)CF z6Cm$>1fQI~Q1{fDpRrUnM89|oN#?W@xM%IG&X7>P&DNLsYq)cw9M=mRZ8s&^xJ^>6 zjshy&ygPX(DTSRgbw;B(s|jMxtnM8mvPYy%(p!k?939jVNA+GIR9m?G3M*|)$-H7o zH+d~-EJ{L0M#dFjEGU&eE7N6U>+LV_0 zCUURfaCLqPskZJS@iO_nwRl1X(ca+VvJKx??-5A+IQO;$tqh? zZM}oB?)IUkt$YzK7<&$eJR}&Q?R<+&>X~r3l$9B}FeNA3Xh|!cPx*9VhpRJuVTbcZ z{N1Qfc}neRE%OE$9^WLzfCdyZXklX&Qu#S>ti`fW#`ZH7#P-}jou&OzgvKM-xNX0o zdJ;4xM&}wN-{e!SZbtn-zP{e z^5JlnN2K~g4x^mn>fwIXA^MWIrH?~KK`HGTh6VEt7iKp#V`7DG11NhiX2)b^c$irl zYjRp9$&bo0DZWV(7IDmxZVMNtEi(BzPA&TfuH;zg`#D^9SS_@<1V{e|Cu?p?zyJrH z|1lhc88uvWTlSSP+@^wjKE1?HliR>43O!xr+SF7SMhji&30)YV^x+o{pZD6(x?Lw8 zSLq*{!g=?3|BTdbT%h_+6dgqC>*^uG=AGknJ+-j)8Wx3$5Jhd~+s9)8FQkqrG>~nU*>yuOUUY{F+ z3AY@6NZ(v|bo}aXo)&bU08Q^e6z-jT-YK{9_HvA&y zG&6WhXp2&R8D(g!Cjx+7mx^>9^Tp;HHCweE-*<-#%I$-A{0akrlCr5K_1~|4gd3`n005 z)=-bOkRw@AIuTjiGoiyBC|S1nUC<9a4>{w3{cKL6)rL zc3(C(JO{t%PWhNwpt#4B%KgG+RCwViuOxdQxQA9)6c#A2wYsp-+x(PCD~ayb$O< zkF28WoYM){t-vn1gVmBfw`r$FrKdMVQKeX&XO|;A6_5J-O$H1ru}u^WDy+Bh|4^x= zUc1o_3j)fCN9G8wQT6yg{Z@j?`ZLFVvJ7~}l^U)Fqdud);Q^*rVIb|`dReH68=WAv zTGC94wmVO@Gn8yHZD+`j-jS@Cb8jtnh8%9m;odUd=MO<~ zs98m$34~}Fh#X%W7F+=-FT=QpFiqzr+*RD^w7?DP51q5hCmToPcLust=%Q@Z2`~$a z+!Nfq;D@8yS;_JVaF|9f8aiM;IL+EJGU01(kCm`i;TTX%Tg=_(&JE9|lTcRYiLjI~ zn_3d%De(L3Z(d>P9St`GG?ecW9SPYS^ONn|`C|!9rK96y24@|=j@HS4_zG_Sf?@-G z+W{sEPxQ-iljvi2vEZS@&ogq&%{g&3uKW@-vdHQeqyPLvzcD6-P=sH!rFZmH_1+9W z*SS6(pJH~|z-mnhCT;f+sk9v|8kdt^dvfC@$R3K~)6iD!wB8~q8FI=JmUg8z1jwJW zK@@JV%sf+~P6{3wx4FvIwwxM&bX=`-`vDX&gW4XlGjmJnUo;Anri`}zjToL7^;BBt zAX{3-may|qtZWKod5zU0|HJT(!5A4 z*^wpvI$V5GeN92>K+f**Nn(nFicQ037bxZn^Oa2cnpqQ*X?z5Ajfdn(P+;A}iY4&M zdJBp%qq|!V$FV$686+SKxOKtSzRvu$XgJYVaM1?())Cgd8S0zWzfR~GO;6ak+}E!= zbi{MKvsJ-k{^Es88U{!D$v7Kjq&c8+`J z$PtyU&XgPmja_&cF=ByJi>nY%kxbEe0L8lsKX&Ts_J}tEL`jC*h%WjxQG)1umB;$0 zK*l({M~-e<(4XDG{rucYJ;3U%m0+6tpYJ@i4@9qGVo|u?9Cj7gsik$sjA-K*eLRpB z5PuRk4d~4!&CyFwnMhtshFw}Fn|%J6k)2ua`B~iJinDW@B)R^o4sLsr9M+q*B5|BV z#;d2s7*w`9EP{Nu_=iQ`ddU7z~(a{}MY>K?`OLLGZY4Xjhhd)q2J0Z{M=mqs1 zCNFqsPmgBFS@qiIgvzfsjeK9d{Rymb%Dv0;NU6wJVn4TF=Q+Fb_JI-tmNNHIYPa{%hR^jvB7N&SMr=l_;(aw%wu+KhfT7H&4I;*DbX;^Yl0`T0!) za@+1GxTr5&h%K@HS2vLCsIKj4{Dgxmu&3WNg+-z`m@Tk3oY$29k$BF@!|)_)+=mKZ z^8zs}Z{Haa*EQYjv+^4F5^6BXr74wAGTkThDH-^%G^r}w;@5p%UibEx_PgQL4IV_Z znAe1*2qdYrr(*$DE63Z(JuSn$ajes3T^1$Ah`ig;07U}1Ir2d_oO~Yx(0vJ_eUqK+pT+Ri{tmNg8T8Z zgVOJ64^xiHK4!?L=So19ZYO^;(8(Mf@0kxC%DeSP;D(O?Th@ktXDk| zoO0v^S&M4`cSi*=^MEIX#vx3#j}8nqKOKe?J_w5C6^H^{p4<*O%9A8SdCx7TxiC3F zl9vt7<$ioI2)`Xh_=AobWU{*%K*9%6<3!vm(Q4euu#XJ)LEI})TPA94M2`?_5|jbl zJtS9G>-HGpf5d%fykGL36YeZ6Hn!vE6xB=!I6O*Xe3Oc4xW0W#NCOV{y8fx7Ki|YT zlRmM!0y;n8%!$cVfvmi9=r|p);_oZ_>o}vN(D!#it?ehbil$Kf!f$IIZ~ec-qdYsX z3I_GaKHxvfvOcnV=regXfAwCOa&ks7@bOZ+6Hu7k^rE~wzmq2*PdZI*Tv5MM_#nLV zqr7((TVIfI&m!r3KO~3ityor|y{MM#wUB0X1(t;$Zxbamo33Y#rH^Z@Qk_x_ZKWGm zOC)J3mVf`%z!tIKL_Su@3YG&{EmL-c_ z#2vDJc@&B+OZF&o*0=qodfX6Z93*8F-OP$~qAv|T8h%Ga_9mrz-~Ch6Q#x^(N_Ji2 z_<%+AXDxlVpOSTy5iVKh;rPeKWFrh%9z{5ivRsFd?&g|by+Trn0))3IE!p@NkiL14 zITaMxN(nKec4!K1hOH?@?Eg_BVoLhcr21G$gITJ3L1z?sZe9O*MUxBKic22-5OJJa zQPqTngakOAO3^xP_b~oIQda9huJ$P}00S6JF}2wOjAYsLK|bD?`1;ec6FY~?+fKV~ zZ=}fhiSWn#O3Rp2r`dR;DZIJNjk#)XEVj8iK!zy*Aw<(jQx&lIRl#o!6{T4hM3a$V za=SAh>Q(IgW>!As~|j#U`HfTHZGt3TC`85IOXg+F7k`rjNiofI zsdCIG`LYBRDc$DYj^pmbVv4`$sZi;kgdeohsir_B)|_3M z1F<>sAt9iI|0`(9hDLgR+h4{=uO5w!q1+Xp&hI&?e?_7R^N=`2IFIFyO?p${^VBmJ zJz&(vyS`(wKrM>fIco~@AQUphbuKMih%$4EYKY`@l8*mCOOWv?IGRgk^vG}%Pb(1+ zZ5Ibn&Td(-8@H_m90{HWlmYK%p*B;s!vXknRGVyG2EFsS2TjV^UKR6fMF$ow~!0NH$YMkKTrOFqHwCKgo-p6U$lNCf;Nh+rh73lf?P8tFDHUY=K)QQ~dPOgee zebT|Td6GY_th8u$2BGQb#%tKi4;K*KgmiC{! ze<~?g7q6?iX+JW`EA-aeIoOmsA=sP?DUi1vWaxGV0iZn$8wzo{$!C1$@(R&|)VP1K ziCjVme?v<`cAS7kMh5mpX$j$18^cRFLYxux&BU6mg$MJ^$}T9VHl<|R2{-Sq%B9VS ztx0~GV?&xb=<|RzmX0jX8}MM2J%)>#Q^hGNT8Qq(x}}WSP=)r$hC6{IDx98MKcVRk z%Pl-RhW8Nd4#oXIit<{w=-Y@tJ^d&%*r=w&Y@18?Dxxe+NKRM8sUqDV}bL(FDrhF^GPLCf-=px zcCJI-fM7v1+Pvv;oxm3{5Q_>fb9d6a+z0H%LTJT@>IX3FGYk14soDl)GnTp2;EoCY zh1V|rP#tnF*(=&EK3Pd`^df{KVF|EF2OqagUl;%2tgIjp_J%}!mI@&`Ur6~x6XBUN z`%1Yfmn`=X=XN;Lbz1Y6B6lsrW-mVDVrKuTD~mAt0en?MjnG zJg3YNlR)l6c>)g^@*QU$h2tQ{Aj3^}OnTr3_)g5@+@X#TXXynH$rF+N;@!w8*vot3 z3=0H&^WO|Ejv$jh5;@}GeG!yCs0Pl=%Qb*v<+t`$Ou<|QOs>g)pHV|*uLsCs^iQPx zX*aR-Pn)<_wTR9k;DB)(u8m1d{7~TDkHhIl5%Fy#UK`X+I0d_7QwS@&AiKL&l6fW&L5x(Sf-*z*iub zub9iwq}9cDlI4(>tpH5qNIT^xsaV;}QH8M$TxZD9Hss9+oe+w3M?5qhXXiGwrM| zEVoJ@6Pw;<*(uX{J)i#5$XAb%G+O7Th^56jCa$l)Pgq)Xv!$=O;F9ge42(JzmkY<0 z^?X1w5>`0#vmsF3eRE~oz&QlK9TEziE0bG0EM+jdd~%RMT;|g{f=Tet|2SV>WA=LQ1b_40V`e?jyH>HC6QVTNpNOGQ#~@ z(GN-N#{9@#%TfDrX{4$QTgqxRtZuN9_n4PaHlsdu4>=ml`4ULYLvH3S! zCN*n`@Kn$5pCmsfUcV1OV;SZOX-!xSTfth%KHnklwLD{C1@1mbfB_+Kq~TuMNdDci zhg1Q26fSH#>lIk$jd9`-S#JouH^xoi%hJtP&9%WnOW<`N&cPl}AG!QWdmbRdIxw9) z-#jRRY*&4j`V~Vo;_8MMCe@iTK_qhK3M;-oO}h)GV$Clong5!=@m9GjzIWo&)u+TD z5yMh8ARt1?Vc4I;bsRG50E1{9}2^%t@CF9?@eAWL^7A_5FtH${IdoS#m*_CNZi@Z$=v=rSmi{)YlMb8zG0d_i(^hQy< zR%)xs?Klo&|B!6MnOtcWsu{`+bVpi_m^Cv8Rm5fftuqCHXYqf223HYTHnv8HAt0#v z8zpF%6re3)aluZGGC)IhY)PDv59kuZHO4fHYdAcNX4sP-7N%jf!riS&~LS{rCiv8I{_ka}B^@LRx7Dj@pYsIy_ zq=Yx|$$E#Jg8|*HV+q1YfuDy<|E!P{y4~4$d@tnTuKri4`K0gl}bBn5e8SE7G}b z?0>q5`mg0eU^L`W_6T$kky(UoW5!f`H%ZzV-J>*xU+Esn#cf_-l*y*-A+)nN_EL?yfte-Tk9}72Ap4Lq6i#7gFz0*=xqMQ`T=aDF)37&GM;T>k-pUyd$RW)T&c>U_=<0qQBKs0=Nf$LI2}^ zTm-vr4g>_m;NSKi_X}fi!7t7tKxKCvT>??jx{F(npWQk5pahioJ{n3Cq(ZEi9bA$O zOCL}IVyK68X0a<5Ha#hsnC5H>GQNh@j$Bo_MHL$qQi=Y-fZGB36?~h=j+(Mat4**3 zm2Bm+aO>q>=TSg>?(6gAgE)i_T$(3{r+PZgMhg%`$E)jVUDo|-H0FH-d|hCegyaRY z`S!$pg>zjJJSvV-vtvrh5ji^)B%V(&aO*mrd;*NtOq4{7!(PT5;oS@NfGZ~Lzn`$e)}9g`<}BN-cv!O>%DX@0 z@vzDb1&X)&hoHUm#QAOmnM;3^7aDO=V#cGOK_zykB|m8q-gOwp!Yyu4$lIHChVvd% zc$aC+%w$i9kR`ugAVMReKKoGZsdUIfpYaSq(|yyNX77OGbMY+fu(zO265_KvHlm^y zXsqG*ot(|sYEeKeN@JSqsob1W5XC(xVd+4F$9O89D3)jK&`Ez|x{Eb!!Jz!%gmim(0p@PP-yzzEPrT-ig(k%r&PW zqUw!`lFQ_GH24xeZGQ1Q9#IzZ64h#vXHQy;35V>OKuJ9c%&jH6AFGf~zT`%z<(_vo zYmFeKzIc)e@upz{0=C?z+rvS7^sjdOiR^xWQT24u@wbeX=r^HzJ6oe4&Eb?JX74tO zIt{n_h^%8FGHU}>0zdP8dJJ7de>Kx|;(t?JK783DkkcDMDC+cB9H1nzeoNaxURd|o z9^6e@bk!M*pfBdL6~qOQj_@>zsrgKIePU_Dg&xVMyw0Hm$|Y(~2J{VKX4hX4sU`I# zS80uws#l@b84945vL8--FI-hVAN6=h(pV7Trt~FKRe|X-_PmXW=sA#j=w-u6vqRnr zWOJP7Pyaf!axu~HCcMZ5)|SeEJUUI+&i00Gkv<*cUrfQ3bvst%j~Qs?hS-@h{pi@}$ z!G*_0>OEnkkMq6#>k#{@k&b;TzC zxImF;9dUB*F?)t87Kl*u{es85r1~YJUMW*iDvL*)wmS7N59CEiPFtOLZMbTlsN+YK zj9rpWP;!hjFph$$%>=5ILGbLPJWYl%XM&{y*1{ktU*q3J_2?I@M8nCNAPgHT$QrLi zwcF|pg=4MJWa2u_7V1aq$r@DaWDhgRer{s?VbM&*vW9EgAUBIk+C*9iZqY7JryDX@ zYqlUg7i!4$>RyrPl=PVO`WD+nJWRKyN|ix+vbka7z2J}Icvun-XLNdF!Ag`;qJ|3bn4EsdRC-H1>d?qI)Q8MGW_Jl_AL zOo1nYzd+`KIYPK8{^m{buKxcE69fd!|5N{WJca{vh7f~uLwKPeslnIs*x=(3Nhp1` zf62>GSTKb+5?D2q1FA~&zgUFe`cNjQVX^;Vi9jXG{Us&9PGL+?u!?_4F7S952h^=C zSks;b%m_lE_JNy+S1!p+ofzSR5|AlAX|3<$5EcqX;Xs3ULk(`PC z75)o`y#KvfjQ`7WG~iz!NnHrQQsGQc4Ick9MFeknVS=;%vJAZbWd-=)fv^5fPyE3o Z5j;@I0bs4aLu4TMYXk|LZ_qzR{|~%iyORI_ diff --git a/src/enginuity/ECUEditor.java b/src/enginuity/ECUEditor.java index 7b11015f..65c17ef1 100644 --- a/src/enginuity/ECUEditor.java +++ b/src/enginuity/ECUEditor.java @@ -50,7 +50,7 @@ public class ECUEditor extends JFrame implements WindowListener, PropertyChangeL private String version = "0.3.2 Beta"; private String versionDate = "8/12/2006"; private String titleText = "Enginuity v" + version; - private MDIDesktopPane rightPanel = new MDIDesktopPane(); + public MDIDesktopPane rightPanel = new MDIDesktopPane(); private Rom lastSelectedRom = null; private JSplitPane splitPane = new JSplitPane(); private ECUEditorToolBar toolBar; diff --git a/src/enginuity/swing/RomTree.java b/src/enginuity/swing/RomTree.java index 86f63a87..558bdf6a 100644 --- a/src/enginuity/swing/RomTree.java +++ b/src/enginuity/swing/RomTree.java @@ -12,7 +12,7 @@ import javax.swing.tree.TreePath; public class RomTree extends JTree implements MouseListener { - private ECUEditor container; + public static ECUEditor container; public RomTree (DefaultMutableTreeNode input) { super(input); diff --git a/src/enginuity/swing/TableFrame.java b/src/enginuity/swing/TableFrame.java index b1462d82..6ef611b5 100644 --- a/src/enginuity/swing/TableFrame.java +++ b/src/enginuity/swing/TableFrame.java @@ -6,9 +6,12 @@ import enginuity.maps.Table; import java.awt.BorderLayout; import javax.swing.BorderFactory; import javax.swing.JInternalFrame; +import javax.swing.JPanel; import javax.swing.event.InternalFrameEvent; import javax.swing.event.InternalFrameListener; +import com.ecm.graphics.Graph3dJPanel; + public class TableFrame extends JInternalFrame implements InternalFrameListener { private Table table; @@ -26,9 +29,20 @@ public class TableFrame extends JInternalFrame implements InternalFrameListener setJMenuBar(new TableMenuBar(table)); setDefaultCloseOperation(HIDE_ON_CLOSE); table.setFrame(this); + addInternalFrameListener(this); + } + + public TableFrame(Graph3dJPanel graph3dJPanel) { + super("Test Title", true, true); + this.add(graph3dJPanel); + setFrameIcon(null); + setBorder(BorderFactory.createBevelBorder(0)); + setVisible(false); + setDefaultCloseOperation(HIDE_ON_CLOSE); addInternalFrameListener(this); } + public TableToolBar getToolBar() { return toolBar; } diff --git a/src/enginuity/swing/TableToolBar.java b/src/enginuity/swing/TableToolBar.java index 1e85dd7b..39d18b93 100644 --- a/src/enginuity/swing/TableToolBar.java +++ b/src/enginuity/swing/TableToolBar.java @@ -25,13 +25,16 @@ import javax.swing.ImageIcon; import javax.swing.InputMap; import javax.swing.JButton; import javax.swing.JComboBox; +import javax.swing.JDesktopPane; import javax.swing.JFormattedTextField; +import javax.swing.JInternalFrame; import javax.swing.JLabel; import javax.swing.JTextArea; import javax.swing.JToolBar; import javax.swing.KeyStroke; import javax.swing.border.LineBorder; +import com.ecm.graphics.Graph3dJPanel; import com.ecm.graphics.Graph3dManager; import com.ecm.graphics.listeners.ModifiedDataListener; import com.ecm.graphics.listeners.TableData; @@ -253,9 +256,9 @@ public class TableToolBar extends JToolBar implements MouseListener, ItemListene String zLabel = ((Table3D)table).getYAxis().getName(); String yLabel = ((Table3D)table).getCategory(); - //TODO Implement JFrame Title once again - Graph3dManager.openGraph3dFrame(graphValues, testX, testZ,xLabel, yLabel, zLabel); - Graph3dManager.addListener(this); + Graph3dJPanel graph3dJPanel = new Graph3dJPanel(graphValues, testX, testZ,xLabel, yLabel, zLabel); + TableFrame frame = new TableFrame(graph3dJPanel); + RomTree.container.displayTable(frame); } @@ -314,6 +317,7 @@ public class TableToolBar extends JToolBar implements MouseListener, ItemListene // ****************************************** // Code for listening to graph3d data changes // ****************************************** + // TODO Tie into Enginuity 2d table values public void newGraphData(Vector data) { System.out.println("New data recieved at the client \n*********************"); @@ -323,8 +327,26 @@ public class TableToolBar extends JToolBar implements MouseListener, ItemListene while(modDataListenerIterator.hasNext()){ TableData td = (TableData)modDataListenerIterator.next(); System.out.println("X:"+td.getX()+" Z:"+td.getZ()+" VALUE:"+td.getValue()); + + Table3D table3d = (Table3D)table; + table3d.selectCellAt(td.getX(), table3d.getSizeY() - td.getZ() - 1); + + //Set the value + table.setRealValue(td.getValue()+""); } System.out.println("*********************"); } + + public void cellSelected(int x, int z){ + //Set cell to be selected + Table3D table3d = (Table3D)table; + table3d.selectCellAt(x, table3d.getSizeY() - z - 1); + } + + public void cellDeSelected(int x, int z){ + //Set cell de selected + Table3D table3d = (Table3D)table; + table3d.selectCellAt(x, table3d.getSizeY() - z - 1); + } } \ No newline at end of file