From 73c3255d0954115b9f42b665f7ac1f83afd51111 Mon Sep 17 00:00:00 2001 From: Meruemon Date: Wed, 23 Mar 2022 18:34:38 +0100 Subject: [PATCH] Created time field, created setTheme for all classes, overworked layout of components --- bin/View/GUIMCMenu.class | Bin 2867 -> 3682 bytes bin/View/GUIMainFrame.class | Bin 4087 -> 4964 bytes bin/View/GUIRamTable.class | Bin 5947 -> 6028 bytes bin/View/GUIStack.class | Bin 3095 -> 3240 bytes bin/View/GUITime.class | Bin 258 -> 3137 bytes src/View/GUIMCMenu.java | 41 ++++++++++++--- src/View/GUIMainFrame.java | 79 ++++++++++++++++++++++++++--- src/View/GUIRamTable.java | 8 ++- src/View/GUIStack.java | 4 +- src/View/GUITime.java | 97 ++++++++++++++++++++++++++++++++++++ 10 files changed, 210 insertions(+), 19 deletions(-) diff --git a/bin/View/GUIMCMenu.class b/bin/View/GUIMCMenu.class index 9d14cada3b97e0c6e57cc3feafce6a2b7e6cab9d..b26420feca3b909ee9cdd3a47cf336cb4191ec75 100644 GIT binary patch literal 3682 zcmbVOYjYb{8GhE1yt1-QBz^oL$MXF<-DpyXQUU zJ@4gtpYxvm)4zZ7yVX_n;!PEG3bu}$#*M`Ah1AI4h+&mg1Qj%1)356{6QvubRY*KJ zrdvi)!4};!Cz>*|iHV5js_4aHmIwk=gPV{UEJm|iY1 zwu+5&M#-R!u&-OHm`jvhvzX|29DP1*mRy=^$eIO9cgqfUcY2Af*EzLm9DUqcf6BB> zw@*Q!t$kcUaL}GIA_$;a!w&3Jv4;?^M=FBd*eh1|ad%rPm1-YvfPx1#gitR=4{1FMl^}v+I3aR4Nl@E7#A>2U zdMTaKumzeh*QenDZ}hl^t=?!r!!~Ft&iF1ilqG^eG>g5%8ls3rI7(@F5<3a#WZ5iE zRXHn`(i%p@QuwM_EQ+d%$x#hs_yE~L1Oye!dVvKFwh?g!+tQ|GWXiLXhI3w@EOMbS zZRhpkxbB!j_9uhxv`OYf)9cSkQpH6DE!D~nJLc4YUKq5klI!TE<(48CN3)6v1-mwC zrS*Bc%m{O67GYk|@C-i4^2sp85-t0niu2{EkLVV|cOL$#uM&URRrMeObQPl*5C*a z^}3axwjB|^tD%hRJOKLCl!Eq}zz6NwIomQUH(A4w(aCE@-enr%pw{4}VBea@|AsRu z_;5?ZNAOWr*>nv@cWsB@wzYfPNMB$*2xL(eOQdpHXsh$aai^W0x(mWP1$)-u2;u_Ns;-R`ds$m!}`WkMR=~3kr4%Hdn5L z0o$1}oFP3=BFt;}Dee*NykqFDAfgSrw#HNJNeuND1W34h41P3GMeJi`nRz= z7g*sVhSeDU6~jN5(UQ#t#Z)vM%|y>hIV9yol>bt$7jhtmzi^wJP^&iX1>{87pNL+N z@*-Mmz15hOuGV{(-ePzyhQG$}kN?-<{qI2C^ zw^%zU)_S;hB))=UxyA#_cx(|#Pw19HuO}Ro!f8+FkwQO(!Q3*=E@CLYgeUlWDjrxu z<_%eeb9|oUWe0R3hzHp>_v7z)7^}S4TX>DP;SuF1@9+V%DWixh6X;T&LANr=>$!k~ z$a1IV)eYxyLE7Z?=hYPNktubYySjpL#&9XkU~(K>Uc%EIfkk{sJf=EUP{@S>A(q2j zM6n|pTf|&E{w9(gODJ^&sUoCaDTRFLw3O<7sb5GNGdj%gh$H0LQ8e?o?89;9_!xR{ z0!illIG-t;LWWy!me6CUa86Rqf@bT;XX5QTJ}kJwAaK zlC5)1qI(+{qq72uQSoI!Nd`1qIS#Q1Ofr9)s!D6IEy_P!XXSZ-zV@CbIwq{#L;Db zja;GRVw637jQ33jcbKz4piiFgyFLQU5??`{x$WV~S2?Pq#eMi1YagJEZhy|@2b4GW z5^W@*Hm`Cfq(V`69nc9LUFDWKF#&RH{aVv1TY$et2mDm>pvDX(0qY?FD1XT%eEp(7 z?yVW0t{L}>@fss`$y!~c^Gn1ehXa@(doQo?m-%@7CHD9h9eQ2r+oCriLH8nnkZ^jR zgE|SaXkZ{Ys)vA1Dn`CjCCVK_6r|p}K2iR_vG@~v1yL+vlr+gKAkkGJ$w((>_XkLl z@5)h-qaVmos3-Jm{AdY3qpl>%d*X0N)z{@nsNP?I1ZY#UtyQzFRkN*|o0Y24tW>?f zMzA5aa`5x68B^%u!8y*4x_*APjZ(e@lPlLyWaVtk;x@n9UgYRy%<+<(#p`S{Z=r;D za9v^-_wcEb?OnVf$=1b2BOcIyPa*&S literal 2867 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 RWACooLKl^OOa&^2J^@RwFy{aO literal 4087 zcmbVOdvp|68UNkgO(rbUk_2d>h(b#-**q4oNHGD0(7@8&00~JFjJm zsI{o5^#Llrt7v^vsjaQ;ZrVm_t?&A*idJoXRBhEi{L^#v9F4zwXLqup)YD^fcJ6n- z`@7$F?{~k~6aRVS(U}=+!rwH61nT-Mb0WUIH<2{b6I=I2zAQSav$T zQ}G4n8_qVvJ+gPy%$nS}FDXHBW5SDfI2p%n6VMGOX{ATKGQ^?ay=Knqv@+&iV<^LI zS0>9E=PYpZe2Gq(c7ChjQhb0bv7~s3=r+?<&NB(A4MxIq*fee@%ac*OxWRX&jKTcSllS4 zu!P`k<{=}W@j5b2&fGO-x`t;tHr=Fw?=7)MbYzfaToc=E=B#6Wiik7}`sv#*^%F|Am zG6zz%*e3aJ)A9BS{-osHuH&6jL{*w+KPoxz*72TzGpXSe(@1cbgw0Fv04MQ288z>x z5*alrY$ovm9UsJpcpgi^WbV9ZXPY$0M|6A?A7fA&Bg}`56{hHLvSW@dqqyQ#cMTmj zhh~ap81(rEM!r}2`#NMwXiuv+h z59oLh1y(}7_RgRZF7>ZfHf?!9y^O$=e3^#?VilL4ea{N>%`&B`M|4cf46WzKMhwsF zx9kyTLN1)w@u-Z+D9_Mm651MlD9>!oUbY zQ^9f)HtlhNYhFSrk%hh@?gW<4IzcJcE0$$tq*Ep7Q?k3bq!%i$c|ync<&~qZIc{Vu zd2M;&AL{s#WNWTDCgZ%6=VX&3J^x7^KgG|;wAgdVtjNq$_DYpd6D5Azd|bdUHTrzTtj0fdCRCCtFdsO=k1+}TNlrqLj?-=cI^6s!H zyEY~h*_D;uzEzqRD`~bcz$yt@u=#~7*J@-jRwG?njjX$BWJOgYi>4Y`8r8@Gs76*f zHL{GUkwr|6EMaP7iK5n*lMdk()Gipl@*GzK;nUO^;liod6t0QYR-eb}f$%gxb(pEc zzw7X?DKzv9L?o*=S=&|Ht>#r~9C^F z(Mr`^?Mho6?y195b$IUoRoD`nMtoojYYSLM@;Z{QE?@)6jU?L&XeYUug(YD)z$HqDibli)cfu=tNxX z!CJ8&8^jQ<7inx188)!v*d$J1vpCK6^iFIMcVVlz7aigOcA^iVQ=G?k@i=yfC)syC zgB!)ONQ&o?68}I~D1==h4ZA}Nu_v?y-Jwx&N{#M=OKJpu49gcJ;zTphaeUc1c>uOy{+|>s(?^nz zaG;2vbe+Y@mWT0kL3!P&W^!A?>x%fbq9UYz%hf*!+%fa?S*(B2O-;e3rn#Hs`NNP; z+p5ys5q95Mw7|v&IM_mZCvIj7pTiJ5_PBYBlfI2@-ecUO%!uPRFQdgFr2qf` diff --git a/bin/View/GUIRamTable.class b/bin/View/GUIRamTable.class index 57e9cfa70c0927b7468a8f9399b2934baf1844f6..3a49311e9f6641e59b3e6dfd72cde89991827463 100644 GIT binary patch delta 567 zcmYk3%_~Gv7{;I1n9N*PzOP|EFbK17YqpX?N-X>Z>NYNougi5ALc_|&Mng#1N%>d| zk|_4FR{jBNWho!;xz{PD-qZU#&wI{u&U@}Vwshs``|jcA2VK;XS6%{jhZIzBNF@q( zM7HB)RVr2I-UHF$S_&6Y9ieu@STvUO`Am9dT<@{$QPb`>QjTRWs}!Lqp)6&ahGPz; zXG~8fbhHhLUAmER^j>SqvO5RbbKAkNqJXGgr3Pxe+6eZk**ttG07wg;f(KQJnFn#y zaO@?n(aI6?C2uGop^!mkIFd@K1fi5M97v^Hf>0_X_!%k_iR-v`u*NB3qN2vl{7L^U zg>EQzg7w^>7R?Hyh`53@iu^Zn6=~!u(kLR0yxp#kTj2Vz`sb79r}`jTFycPjKnN+c zU=&H1=*~TB#m*Sgn8yUxFo{h}VHeZbhlOLz;u3RsgpFsec!h&EEZ_r+_(Fz?ute2Z m!5N>fdCkT-E||FO6vr($`+(n5QFYQ=*1l!0FS}QA zTv0%z2Pr{wk2QHam@Gkp55RZ)mJ#?A2oT>+Fx`r(?|JpwaF{k6ru~Nrj|dY65yrp$um<-g!RvV!VYj2| z`5X#3KoKV>;f&ci%D8}qYaF713fi#oiX*(k!56By<65;pJMQtoinl=XXz}b_<}##M P2l);RURjbKe6;WfSbSlT diff --git a/bin/View/GUIStack.class b/bin/View/GUIStack.class index ad5885df4c6de5473140094c5ba9c33b975ba7b6..987bcfce96d09f5ce2d0a3cecacbf2852ae4dd4e 100644 GIT binary patch delta 1322 zcmYk6TWnNS6o$V&=Q0-$$si)oDls4iX6(h?O|r@h0@|oTR_FB zR}?IYM?|PEMiYsN8loMVHsQg-=Y*b7}R} zHL;ujE!?Hv_v5Vb`SUx+^Ip!Z3&1Mw##=cFxQQFz#@gjQ_&R}jh zb5fypYIeUzZ-qUjnS&lF&A9$pdT2ZsLvhICB@PGuR@U`Bj*t#+T8V90k5@=5mWf=u zpFTR68=oA@=s|oPvO0`-9Mv_R)O3k%$M~pjd5rNeW5HH?t#zDNg8_TxiiVBdBmR`% z;kt$lGlyAKbE=)mwq*taab< zc$fErX6NB$)2xp%%?BPIayIatN8FD*W;p-TjI$6b%wiD&Iu>b9UFX^E#3G#nx{B;b z{7jowq&sQN@q!NflJVtp97xE*hGdbxq%EAz+H`hJ+JtyoVuF~&BoP`|K_m4v@sQlb z1|Ac(g;pNt35o3#+Sn?k_b<)BGi;MA!WLepUv5$Hqy`U~GO{zlm-${*-rJn|? zc<*pg)QgyogNa-vs;3gyg^Y`B`tGg>64Z_TuuGDz<@VUW|}%yY8H z>)$dZHCnc=R<^EI)~u9e&B{}Y= zVeu|6?wuA>&(XnoI+n7l(yh&L&e9>(|B<{95!WIC0!8VmEheVzA4J za1G-cCQ`$M4HK{37FnWXU!g3&IjX&V)RJ?1PNN39jMmsr1v+j8y5R~8M=CH9uU16k zrlfkjx3gTF*(Y&7>*V9n%7Ip~`k?$%jL;{>9pV!Xb48BvH*%1FWPk;Hew8oBAEfz< z4F8Y~zPe{s|Ho3Pq}88X;8S@G*6|yGAWPcL@tGi7dVkGDL5?U~;B!H)=oGjlC@gBD Vd?6?zol;yD6qSxwWW*4&{{sjdD**ri delta 1282 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 delta 132 zcmX>o(Zs}c>ff$?|Nk@CG6+oM(vf4c$;`_vv14Rl*3b-NWMFa5Pf6usU}oUtVPIuo zo1D&UKe>iY)r*0F5eR`IK$4w-fk7Y4XJBB}+RnhS5h%dKzy%~h(m+85ZXn46W%Drb O0(p!Kd_a oButtons = new ArrayList(); public GUIMCMenu() { buildGUIMCMenu(); fillList(); + setLanguage(0); } private void buildGUIMCMenu() { @@ -54,6 +59,28 @@ public class GUIMCMenu extends JPanel { this.add(oButtonStep, oConstraints); oConstraints.gridy = 2; this.add(oButtonPause, oConstraints); + oConstraints.gridy = 3; + this.add(oButtonReset, oConstraints); + } + + public void setLanguage(int iLangNr) { + switch (iLangNr) { + case 0: { + int i = 0; + for (JButton oButton : oButtons) { + oButton.setText(asLangGerman[i]); + oButton.setPreferredSize(new Dimension(150,20)); + i++; + } + }break; + case 1: { + int i = 0; + for (JButton oButton : oButtons) { + oButton.setText(asLangEnglish[i]); + i++; + } + }break; + } } private void fillList() { @@ -73,21 +100,19 @@ public class GUIMCMenu extends JPanel { for (JButton oButton : oButtons) { oButton.setForeground(aoLightTheme[0]); oButton.setBackground(aoLightTheme[1]); - oButton.setBorder(BorderFactory.createLineBorder(aoLightTheme[2])); + oButton.setBorder(BorderFactory.createLineBorder(aoLightTheme[2], 2)); } this.setForeground(aoLightTheme[0]); this.setBackground(aoLightTheme[1]); - this.setBorder(BorderFactory.createLineBorder(aoLightTheme[2])); }break; case 1: { for (JButton oButton : oButtons) { oButton.setForeground(aoDarkTheme[0]); oButton.setBackground(aoDarkTheme[1]); - oButton.setBorder(BorderFactory.createLineBorder(aoDarkTheme[2])); + oButton.setBorder(BorderFactory.createLineBorder(aoDarkTheme[2], 2)); } this.setForeground(aoDarkTheme[0]); this.setBackground(aoDarkTheme[1]); - this.setBorder(BorderFactory.createLineBorder(aoDarkTheme[2])); }break; } } diff --git a/src/View/GUIMainFrame.java b/src/View/GUIMainFrame.java index 8383e39..0be29fb 100755 --- a/src/View/GUIMainFrame.java +++ b/src/View/GUIMainFrame.java @@ -41,10 +41,13 @@ public class GUIMainFrame extends JFrame { GUIPorts oGUIPorts = new GUIPorts(); GUIStack oGUIStack = new GUIStack(); GUIMCMenu oGUIMCMenu = new GUIMCMenu(); + GUITime oGUITime = new GUITime(); JPanel oMainPanel = new JPanel(); JPanel oPanel0 = new JPanel(); JPanel oPanel1 = new JPanel(); + JPanel oPanel2 = new JPanel(); + JPanel oPanel3 = new JPanel(); ArrayList oPanels = new ArrayList(); /** @@ -57,43 +60,89 @@ public class GUIMainFrame extends JFrame { this.setResizable(false); // prevent frame from beeing resized this.setSize(1400, 800); //sets x and y dimension of frame - + //Set layouts of panels oMainPanel.setLayout(new GridBagLayout()); oPanel0.setLayout(new GridBagLayout()); oPanel1.setLayout(new GridBagLayout()); + oPanel2.setLayout(new GridBagLayout()); + oPanel3.setLayout(new GridBagLayout()); + //Create constraints for positioning GridBagConstraints oConstraints = new GridBagConstraints(); oConstraints.anchor = GridBagConstraints.NORTHWEST; oConstraints.weightx = 1; oConstraints.weighty = 1; + //Build first Panel from left oConstraints.gridx = 0; oConstraints.gridy = 0; - oConstraints.insets = new Insets(0,0,0,0); + oConstraints.insets = new Insets(10,10,0,0); oPanel0.add(oGUITestFileTable, oConstraints); + //Build 2nd Panel from left + oConstraints.gridx = 0; + oConstraints.gridy = 0; + oConstraints.insets = new Insets(10,10,0,0); + oPanel1.add(oGUIRegister, oConstraints); + oConstraints.gridy = 1; + oConstraints.insets = new Insets(36,10,0,0); + oPanel1.add(oGUIRegistersDetailed, oConstraints); + oConstraints.gridy = 2; + oConstraints.insets = new Insets(47,10,0,0); + oPanel1.add(oGUIRamTable, oConstraints); + + //Build 3rd Panel from left + oConstraints.gridx = 0; + oConstraints.gridy = 0; + oConstraints.insets = new Insets(10,10,0,0); + oPanel2.add(oGUIPorts, oConstraints); + oConstraints.gridy = 1; + oPanel2.add(oPanel3, oConstraints); + oConstraints.gridy = 2; + oConstraints.insets = new Insets(45,90,0,0); + oPanel2.add(oGUIMCMenu, oConstraints); + + //Build lower panel of 3rd panel oConstraints.gridx = 0; oConstraints.gridy = 0; oConstraints.insets = new Insets(0,0,0,0); - oPanel1.add(oGUIRegister, oConstraints); - oConstraints.gridy = 1; - oPanel1.add(oGUIRegistersDetailed, oConstraints); - oConstraints.gridy = 2; - oPanel1.add(oGUIRamTable, oConstraints); + oConstraints.weightx = 1; + oConstraints.weighty = 1; + oPanel3.add(oGUIStack, oConstraints); + oConstraints.insets = new Insets(0,40,0,0); + oConstraints.gridx = 1; + oPanel3.add(oGUITime, oConstraints); + //Build MainPanel + oConstraints.gridx = 0; + oConstraints.gridy = 0; + oConstraints.weightx = 1; + oConstraints.weighty = 1; + oConstraints.insets = new Insets(0,0,0,0); + oMainPanel.add(oPanel0, oConstraints); + oConstraints.gridx = 1; + oMainPanel.add(oPanel1, oConstraints); + oConstraints.gridx = 2; + oMainPanel.add(oPanel2, oConstraints); + //Add panels to list oPanels.add(oPanel0); oPanels.add(oPanel1); + oPanels.add(oPanel2); + oPanels.add(oPanel3); oPanels.add(oMainPanel); + //Set Icon ImageIcon guiLogo = new ImageIcon("./pictures/gui_logo.png"); // create an ImageIcon this.setIconImage(guiLogo.getImage()); // change icon of frame + //Set menubar oGUIMenuBar = new GUIMenuBar(env, this, oGUITestFileTable, oGUIRegister, oGUIRegistersDetailed); this.setJMenuBar(oGUIMenuBar); + //Build this frame this.add(oMainPanel); - + setTheme(0); updateWindow(); this.setVisible(true); //make frame visible } @@ -110,12 +159,26 @@ public class GUIMainFrame extends JFrame { oPanel.setForeground(aoLightTheme[0]); oPanel.setBackground(aoLightTheme[1]); } + this.setForeground(aoLightTheme[0]); + this.setBackground(aoLightTheme[1]); + oGUIMCMenu.setTheme(0); + oGUIStack.setTheme(0); + oGUIPorts.setTheme(0); + oGUIRamTable.setTheme(0); + oGUITime.setTheme(0); }break; case 1: { for (JPanel oPanel : oPanels) { oPanel.setForeground(aoDarkTheme[0]); oPanel.setBackground(aoDarkTheme[1]); } + this.setForeground(aoDarkTheme[0]); + this.setBackground(aoDarkTheme[1]); + oGUIMCMenu.setTheme(1); + oGUIStack.setTheme(1); + oGUIPorts.setTheme(1); + oGUIRamTable.setTheme(1); + oGUITime.setTheme(1); }break; } } diff --git a/src/View/GUIRamTable.java b/src/View/GUIRamTable.java index 576157e..2b17617 100644 --- a/src/View/GUIRamTable.java +++ b/src/View/GUIRamTable.java @@ -98,22 +98,26 @@ public class GUIRamTable extends JScrollPane { case 0: { oRam.setForeground(aoLightTheme[0]); oRam.setBackground(aoLightTheme[1]); + oRamPanel.setForeground(aoLightTheme[0]); + oRamPanel.setBackground(aoLightTheme[1]); oRamTable.setForeground(aoLightTheme[0]); oRamTable.setBackground(aoLightTheme[1]); oRamTable.setGridColor(aoLightTheme[2]); this.setForeground(aoLightTheme[0]); this.setBackground(aoLightTheme[1]); - this.setBorder(BorderFactory.createLineBorder(aoLightTheme[2])); + this.setBorder(BorderFactory.createLineBorder(aoLightTheme[2], 2)); }break; case 1: { oRam.setForeground(aoDarkTheme[0]); oRam.setBackground(aoDarkTheme[1]); + oRamPanel.setForeground(aoDarkTheme[0]); + oRamPanel.setBackground(aoDarkTheme[1]); oRamTable.setForeground(aoDarkTheme[0]); oRamTable.setBackground(aoDarkTheme[1]); oRamTable.setGridColor(aoDarkTheme[2]); this.setForeground(aoDarkTheme[0]); this.setBackground(aoDarkTheme[1]); - this.setBorder(BorderFactory.createLineBorder(aoDarkTheme[2])); + this.setBorder(BorderFactory.createLineBorder(aoDarkTheme[2], 2)); }break; } } diff --git a/src/View/GUIStack.java b/src/View/GUIStack.java index aff2e96..88d91ae 100644 --- a/src/View/GUIStack.java +++ b/src/View/GUIStack.java @@ -43,7 +43,7 @@ public class GUIStack extends JPanel { GridBagConstraints oConstraints = new GridBagConstraints(); this.setLayout(new GridBagLayout()); - + oStackTable.setEnabled(false); oConstraints.gridx = 0; oConstraints.gridy = 0; oConstraints.anchor = GridBagConstraints.WEST; @@ -60,6 +60,7 @@ public class GUIStack extends JPanel { oStackTable.setForeground(aoLightTheme[0]); oStackTable.setBackground(aoLightTheme[1]); oStackTable.setGridColor(aoLightTheme[2]); + oStackTable.setBorder(BorderFactory.createLineBorder(aoLightTheme[2])); this.setForeground(aoLightTheme[0]); this.setBackground(aoLightTheme[1]); this.setBorder(BorderFactory.createLineBorder(aoLightTheme[2], 2)); @@ -70,6 +71,7 @@ public class GUIStack extends JPanel { oStackTable.setForeground(aoDarkTheme[0]); oStackTable.setBackground(aoDarkTheme[1]); oStackTable.setGridColor(aoDarkTheme[2]); + oStackTable.setBorder(BorderFactory.createLineBorder(aoDarkTheme[2])); this.setForeground(aoDarkTheme[0]); this.setBackground(aoDarkTheme[1]); this.setBorder(BorderFactory.createLineBorder(aoDarkTheme[2], 2)); diff --git a/src/View/GUITime.java b/src/View/GUITime.java index 7e23b75..4a9865b 100644 --- a/src/View/GUITime.java +++ b/src/View/GUITime.java @@ -1,7 +1,104 @@ package View; +import java.awt.Color; +import java.awt.GridBagLayout; +import java.awt.Insets; +import java.awt.GridBagConstraints; + +import javax.swing.BorderFactory; +import javax.swing.JCheckBox; +import javax.swing.JComboBox; +import javax.swing.JLabel; import javax.swing.JPanel; public class GUITime extends JPanel { + /** + * Color oWhite = new Color(255, 253, 250); + * Color oDarkGray = new Color(76, 78, 82); + * Color oDarkGrayB = new Color(47, 47, 47); + * Color oLightBlue = new Color(173, 216, 230); + * Color oOrangeDM = new Color(255, 170, 0); + * Color oLightBlueDM = new Color(0, 213, 255); + * Color oOrangeDMB = new Color(255, 85, 0); + * First Color == TextColor + * Second Color == BackgroundColor + * Third Color == BorderColor + * Fourth Color == TextColor Marked + * Fifth Color == BackgroundColor Marked + * Sixth Color == BorderColor Marked + */ + Color[] aoDarkTheme = {new Color(255, 253, 250), new Color(76, 78, 82), new Color(47, 47, 47), new Color(0, 213, 255), new Color(255, 170, 0), new Color(255, 85, 0)}; + Color[] aoLightTheme = {new Color(76, 78, 82), new Color(255, 253, 250), new Color(173, 216, 230), new Color(0, 213, 255), new Color(255, 170, 0), new Color(255, 85, 0)}; + + JLabel oLabelWDT = new JLabel("Watchdog Timer"); + JCheckBox oEnableWDT = new JCheckBox("WDT"); + JLabel oLabelRuntime = new JLabel("Runtime: 0"); + + JLabel oLabelQuarz = new JLabel("Quarzfrequency"); + String[] asIntervals = {"32 kHz", "100 kHz", "500 kHz", "1 MHz", "2 MHz", "4 MHz", "8 MHz", "12 MHz", "16 MHz", "20 MHz"}; + JComboBox oIntervals = new JComboBox<>(asIntervals); + + public GUITime() { + buildGUITime(); + } + + private void buildGUITime() { + this.setLayout(new GridBagLayout()); + GridBagConstraints oConstraints = new GridBagConstraints(); + oConstraints.gridx = 0; + oConstraints.gridy = 0; + oConstraints.weightx = 1; + oConstraints.weighty = 1; + oConstraints.anchor = GridBagConstraints.NORTHWEST; + oConstraints.insets = new Insets(5,35,0,36); + this.add(oLabelWDT, oConstraints); + oConstraints.gridy = 1; + oConstraints.insets = new Insets(0,35,0,36); + this.add(oEnableWDT, oConstraints); + oConstraints.gridy = 2; + oConstraints.insets = new Insets(20,35,0,36); + this.add(oLabelRuntime, oConstraints); + oConstraints.gridy = 3; + oConstraints.insets = new Insets(20,35,0,36); + this.add(oLabelQuarz, oConstraints); + oConstraints.gridy = 4; + oConstraints.insets = new Insets(0,35,5,36); + this.add(oIntervals, oConstraints); + } + + public void setTheme(int iThemeNr) { + switch (iThemeNr) { + case 0: { + oLabelWDT.setForeground(aoLightTheme[0]); + oLabelWDT.setBackground(aoLightTheme[1]); + oEnableWDT.setForeground(aoLightTheme[0]); + oEnableWDT.setBackground(aoLightTheme[1]); + oLabelRuntime.setForeground(aoLightTheme[0]); + oLabelRuntime.setBackground(aoLightTheme[1]); + oLabelQuarz.setForeground(aoLightTheme[0]); + oLabelQuarz.setBackground(aoLightTheme[1]); + oIntervals.setForeground(aoLightTheme[0]); + oIntervals.setBackground(aoLightTheme[1]); + this.setForeground(aoLightTheme[0]); + this.setBackground(aoLightTheme[1]); + this.setBorder(BorderFactory.createLineBorder(aoLightTheme[2], 2)); + }break; + case 1: { + oLabelWDT.setForeground(aoDarkTheme[0]); + oLabelWDT.setBackground(aoDarkTheme[1]); + oEnableWDT.setForeground(aoDarkTheme[0]); + oEnableWDT.setBackground(aoDarkTheme[1]); + oLabelRuntime.setForeground(aoDarkTheme[0]); + oLabelRuntime.setBackground(aoDarkTheme[1]); + oLabelQuarz.setForeground(aoDarkTheme[0]); + oLabelQuarz.setBackground(aoDarkTheme[1]); + oIntervals.setForeground(aoDarkTheme[0]); + oIntervals.setBackground(aoDarkTheme[1]); + this.setForeground(aoDarkTheme[0]); + this.setBackground(aoDarkTheme[1]); + this.setBorder(BorderFactory.createLineBorder(aoDarkTheme[2], 2)); + }break; + } + } } \ No newline at end of file