From 3b4b8cf45b678257a2f6b4b4f52575a319dae2cb Mon Sep 17 00:00:00 2001 From: WickedJack99 Date: Fri, 11 Mar 2022 13:23:41 +0100 Subject: [PATCH] Created custom separators --- .../CommandAction.class | Bin 6587 -> 6027 bytes bin/Backend/Runtime/Environment.class | Bin 4355 -> 2510 bytes .../PIC_SIMULATOR_GUI_JAVA/GUIMainFrame.class | Bin 1410 -> 1677 bytes .../PIC_SIMULATOR_GUI_JAVA/GUIMenuBar.class | Bin 7689 -> 8970 bytes .../GUITestFileTable.class | Bin 0 -> 1082 bytes .../CommandAction.java | 4 +- src/Backend/Runtime/Environment.java | 47 +--- .../PIC_SIMULATOR_GUI_JAVA/GUIMenuBar.java | 257 +++++++++++++----- 8 files changed, 189 insertions(+), 119 deletions(-) create mode 100644 bin/Frontend/PIC_SIMULATOR_GUI_JAVA/GUITestFileTable.class diff --git a/bin/Backend/FrontendCommandProcessing/CommandAction.class b/bin/Backend/FrontendCommandProcessing/CommandAction.class index e319374162b0a16e51c182b85ce001f8f3093bbe..7963297c81334d8461c78cf946cb384991ab9f1a 100644 GIT binary patch delta 810 zcma)5Nla5w6g}^^wxzrlO6_kc#3|l?N-@`C40vy3Z*vxz5VVpKXc6ovkeE3Z&;i+^tc5{uCr)- zsWB!-t0D5g`)1UpK6uG^OT5d~yC8};s3?jGqP8kZ>zSF-^g)x(WaganpL4$NoG<^F z@$wak12ZqZGCPZnv{HpaFy!T7Fu8idDNFZm6!f6#h6B0h!0w#eo_(kr~JEFe|{D$A8Oq8B z;wuzdCdcDz+NhaYRLT)j{ut$|v5mKNcxTJ32wMK^RJ=djFb*9GfbFs`nIA1YhkIST z#>NQTiNL%Sn7xUa#7y8G2+VsfK5}uy#pgqz35HSdApf(7@c(hd@C1^05_ybc7!w%t zb3Pp&!owWJa5KKb*C6gZ2Dv-aE{`OeMvr3`AFbko`*=Q90RtW%fA_qA$*_y>0{Z`- zbgpz!<1Rsn8C)#I^Vo(LF_z{~1hjK=DmW!yO*Oaw$n@8E*pa9UFW49iGU4KEuEoWa zyfbxW>Tg83yBUr6hdqVg^NZ@9k>~!an@B#ASt*CpS%nneebjS9(oJ8io^8aeOJO;g zUYDcTylxwK08h6De?DrEYcd6ebnady@6Kct66{{3P~1N`?VT)Y^iyI%g%VUeLyakFa_OQ4_d#O?K)0ZQO#co9+Uj%KhNzXH R6_D+GVL}^}i(yV5|TD diff --git a/bin/Backend/Runtime/Environment.class b/bin/Backend/Runtime/Environment.class index c1dd12b3bfe1fbd1fe709fc059d2fcf5af06abe4..a78e009e903161a4863d0a7667f7fe2835cd2fa0 100644 GIT binary patch literal 2510 zcmb7F&u<%55dNOMiCbseG;N)hI!W8~m*b>yOG`^h2{^wT2d8P{{AdGh*w|ZV6MHvW zuR|#k2SDlti5mhWB%nyWfCN&LA}S%y+&S|va7Czu@9jFalR8LT_RX6&-^{$3Z{Gg) z&(FVXY~WR_1mF`04``WX-OR=&OQvHK^w_YuYS@-p&`l=*MPT2OwyMSQnwg7DEG+36 zM?kTzCkF-EQ=8avBV$_`%XDljpV#dekNX6gi^KYgZ54(zM;kHny1@Qa)mhrH4Kqix zy~TLODQWpZt5DF)tU!xVlSA6k93n+hpvmwIQ-(>+ZX=}?9Zzn~8%1Zp*0tpo%P^gy zK*))>w&0P%%4qo+%{Jt|tW=yugKex*tPVX{)u2_ms6cP({}hJkJtS9V zd0bm52W`yhj?3($k**zk>T!E7O}7y45FvH?$0$AZPj(_&D6_~}(HS&m#YqkRF4a*(RiR;F?g35=SG|8mQkTfel_uA^I?$s zyDIibeUSRf0Q0_M@^DGTejM;Xvz2*1`5)cioE7#}DLVQJ9jC35ozcAqZePvI)hnxy z;|$}6oC}{E5=uTf9PY}|a90k7yYd3=%7opO15flmS8gGWxw(7uL_r#MEbGey-23a8d^nqq`vbPe6n{b$z@bHC@K{xw{PKE?&# z!;Qaxq$@vO;y22<1v;Uijp>|Zz|-7y;Vimw0X?{aUi9M}MsN|AXxZwefy;QAyF)y= zf>)SiA9uXY2913IhydRuP<@quBJTzljGY=~4O8sEI8P_IyFu+F zt|N^Mrf?V2u(*F8H}N5E;bXjoPcV~ep}@Gb-~NXSHM*UpWaTs59)#ol>zQ%Fj-Y0 STU&eI2Q@%Zp}y%_S^omO%LW|) literal 4355 zcmb7G+gluG8UKCkE<=_{$O+O&I21_>gs@3tQUjERGm8*XAYjlo4!Z*k?9Q&Uvy`-2 ztBuwswbnyx8;v%m5f6!DtA(XbL`TsLh6eu3Td+M*VUY36Kb zWO`nY*aH5Oz{HN$)=t*5E7IY%Yq5lLGX;~47BlJs{$k2>5`dgcMxa~<~zBt%9(HSBk zBi3hWaoVUywSopFV?+J@0vE)iuGJ$d_M=?dKdRyY$`ynJIy0cm_~GH|91*IgQp8+n z+nez@VkjC!3y#Z&KPC`rcz_hOHBKn_RE`UtD_cGAF2d$a!isCQkub+C%}mYcR>p-B zIIiGvfs>i%Y^y6r32|n!LUk*MQ!=it0<{_W%{7|Ieh{bKXg;ChAskfjWKL7qEX0%s z(c$uUsR*FB1U&+fIp|ZNphQvwDi2Cz7zb5+29*MVl&x8I5GODw8P2K*qEzPboQkI~ zDxest-gwf!IWDUB0yKf0`jQ?=+d4ZElgBVOWXr5TBW-I8 z%VIXxW9lWS(YZRSL8WWy1FVR52S! z&5YN8wqV@_v_N+@KpE9rSnpSuv{O6nj;kEd=T}ayArAsu?RXd4DxsnM#zt*s%Szz! z>?^iao})D@NQJv1d2kbWEURk!fOxKZ5TzEuZKnf~VJ+#Uzj#)+ota(3 zGV(kR6)0}$Ct34G>48k;<@bKFHW$9hom9Caw1S#t=if4|TJrSVul>_-*8>UU`jay` zr8}9(=MC}l$Q-vFU2Y6{fe18&r(_qX!8cXBf-CG*R3W=XxL|L3m8(pCRdbmL;woNK z@ol^=P{LZC&|-3N;M`@4sKIwtd{18aQ^s?gj#u%9iZ}5CHpoTEI5Hzpk#8;&VJZE# zifi~GwP{iAQF&d=>zIw~tu?r=;>XheVoQ%F7HPiJ*mxtZ8SrhAtd2{sR5 z@X83AQGJOB9#XeVPGP|?X zGr!xRG&8pd1AofalTef(C>X9KHJxZc+1x*`d^BP(%G~ESdjt#HjgruAA;pEvhoFen5Tm9rc zO{#4L?Ib%$o>@U>)86hC^g4h0n^zG&x{9GD-wKA85t8awF>(!un_P12BTTNKe+?I; z`u=f4=4}{>J_voIH7Qj!jVx0v&Gc=C3@(j5+VL_ z>p_6w>3p9=krM#P1WY;3sV;-(oWKkC3b|Y)y(saJr=)JPl4lAk`6}O&QS#CjCC!_a zOczvg`F|>D+N@-zppviS8+@RI_4D*7z~|hoEP5Aj9(o&Hz7F3h|1v5WoVs%VDqj8w zS6A_^%6Aa(cU<<1a=*M;#dmJ3|Fh~EV)Coddi=# z=pR+IUMDZBR`DaMsgSf!(w@Zi^?%)=n=VwRP(eCD$CF%DEmmp@dkBCkc_$ z1W7O9F~GzRGWF+}!w9oDLzE=={Q_R%zsqPt_b8SN$~OvT@#h7Ff3aEkdO_h|u{bm3P~@VWp}u{4ljU0lg@40p%?NMQ kQu}7`-7YA6C(~2eWQaidU#2$qy&vQVifj>n;Bfu+zpUCx>i_@% diff --git a/bin/Frontend/PIC_SIMULATOR_GUI_JAVA/GUIMainFrame.class b/bin/Frontend/PIC_SIMULATOR_GUI_JAVA/GUIMainFrame.class index ee6e564e2a6c75d5ad44a8d819415faa7bce5078..a42e7552992e3aafe1c8362f89c1f1e3838b9ebc 100644 GIT binary patch delta 418 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 Qa7l2uqj3t}@8hNa0CeesHUIzs literal 7689 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 Wa25RU7#b~$$?-HUjZDsvEcr9~L_c%@ diff --git a/bin/Frontend/PIC_SIMULATOR_GUI_JAVA/GUITestFileTable.class b/bin/Frontend/PIC_SIMULATOR_GUI_JAVA/GUITestFileTable.class new file mode 100644 index 0000000000000000000000000000000000000000..e135bab954912d13f5efac5841fb907a53496621 GIT binary patch literal 1082 zcmb7EOH&g;5dJy|Y*-eE2`>#Q;42A_AU;roXh_X_u30+014k zn_thRi>og-m)EnKE9p`?$wpCDy=SH+i(<=?8UlpyTd^k&lGT0F-bt>k30qo(&Uw=| zy#<0l7B3M38K*3D_|avc1DzVW2@w^S6#HIs*)_{K@!qLH z7Z4_NRi)R$5u&l&Nqozf7q-}uZYo~V&`%irhgMM@Fl}j-H4GAlnxU3p!UfM|-itNU zDoa<#FfM7h$XA|47>HtopzR5(CRbk*24dNGi^8cqDIEj2q6)aG5a-Y1r69%#G^&8t z3|z+zZkDK2xa)+eb`j^29FuL{bxWm)5k}gvISou0n7||<=sB&D3H`CQ1w=5d3P^Gb z+t6u_B!b%pW^sqm%_CVVo1Rhwk2&_LHL-gJ?qiOpFUnlj#Hm?joZX6JOWRBRX`fQS zUoW9AXWH_4ZFft$O_8y}a?ZA}O2ReOHOJ0?_r|OeW^?~5+7!3n!4uo>@}hElrCxAq?zU9&=jopP7^anEFvfcILp_{cX`NS%ci-7o{!-!)!Nd{t zjga1X2&0ZZ|NJMUju6>6!oWuK3x*DHIXqg&c(jh2Cq^A{#!uxZ{dLSFCi(2{%MV1+ zkp8jp<1=UW;{mVZ2=dy60J;%I4~Ec-r|82HLdfxcoxKkkG1_8-M@aFmA8E| frontendToMainQueue; - private ConcurrentLinkedQueue mainToFrontendQueue; - private WATCHDOG watchdog; public Environment() { - GUIMainFrame frame = new GUIMainFrame(); - - frontendToMainQueue = new ConcurrentLinkedQueue(); - mainToFrontendQueue = new ConcurrentLinkedQueue(); - - FrontendCommandProcessingThread frontendCommandProcessingThread = new FrontendCommandProcessingThread(frontendToMainQueue); - BackendInformationTransferThread backendInformationTransferThread = new BackendInformationTransferThread(mainToFrontendQueue); - - InformationConnecter informationConnecter = new InformationConnecter(); + GUIMainFrame oMainFrame = new GUIMainFrame(); watchdog = new WATCHDOG(); - CommandDecoder commandDecoder; oPIC = new PIC(); sEepromDataFile = ""; sActualCommand = ""; - //Start Threads - frontendCommandProcessingThread.start(); - backendInformationTransferThread.start(); - iEnvironmentState = 0; while (iEnvironmentState > -1) { - //Check if frontend sent new command. - if (!frontendToMainQueue.isEmpty()) { - sActualCommand = frontendToMainQueue.poll(); - commandDecoder = new CommandDecoder(sActualCommand); - commandDecoder.executeAction(this); - } - + // loadfile command readEepromFile.readFileAndWriteToEEPROM(new File(sEepromDataFile), oPIC); } - - //Stop Threads - try { - frontendCommandProcessingThread.join(); - backendInformationTransferThread.join(); - } catch (InterruptedException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } } public PIC getPIC() { @@ -94,14 +59,6 @@ public class Environment { return listBreakpoints; } - public ConcurrentLinkedQueue getMainToFrontendQueue() { - return mainToFrontendQueue; - } - - public ConcurrentLinkedQueue getFrontendToMainQueue() { - return frontendToMainQueue; - } - /** * * @param iBreakpoint diff --git a/src/Frontend/PIC_SIMULATOR_GUI_JAVA/GUIMenuBar.java b/src/Frontend/PIC_SIMULATOR_GUI_JAVA/GUIMenuBar.java index 58edffe..84d3afb 100644 --- a/src/Frontend/PIC_SIMULATOR_GUI_JAVA/GUIMenuBar.java +++ b/src/Frontend/PIC_SIMULATOR_GUI_JAVA/GUIMenuBar.java @@ -1,16 +1,25 @@ package Frontend.PIC_SIMULATOR_GUI_JAVA; import java.awt.Color; -import java.awt.event.*; +import java.awt.Dimension; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.KeyEvent; import javax.swing.BorderFactory; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; -public class GUIMenuBar extends JMenuBar implements ActionListener { +public class GUIMenuBar extends JMenuBar implements ActionListener { GUIMainFrame oMainFrame; + //Custom separators because addSeparator(default) looks not nice. + JMenuItem oSeparator0; + JMenuItem oSeparator1; + JMenuItem oSeparator2; + JMenuItem oSeparator3; + //File JMenu oFileMenu; JMenuItem oLoadTestFile; @@ -43,18 +52,53 @@ public class GUIMenuBar extends JMenuBar implements ActionListener { JMenuItem oManual; JMenuItem oAbout; + //German language array String[] sGermanLang = {"Datei", "Testdatei laden", "Programmzustand laden", "Programmzustand speichern", "Simulation beenden", "Ansicht", "Thema", "Dunkler Modus", "Heller Modus", - "Microcontroller", "Programm starten", "Programm stoppen", "Programm zuruecksetzen", "Schritt fuer Schritt", "Bearbeitungsintervall", "Sofort", "1 Sekunde", "2 Sekunden", + "Microcontroller", "Programm starten", "Programm pausieren", "Programm zuruecksetzen", "Schritt fuer Schritt", "Bearbeitungsintervall", "Sofort", "1 Sekunde", "2 Sekunden", "Hilfe", "Sprache", "Deutsch", "Englisch", "Anleitung", "Ueber"}; + //English language array String[] sEnglishLang = {"File", "Load Testfile", "Load Programstate", "Save Programstate", "Exit simulation", "View", "Theme", "Dark Theme", "Light Theme", - "Microcontroller", "Start program", "Stop program", "Reset program", "Step by Step", "Workinterval", "Instant", "1 second", "2 seconds", + "Microcontroller", "Start program", "Pause program", "Reset program", "Step by Step", "Workinterval", "Instant", "1 second", "2 seconds", "Help", "Language", "German", "English", "Manual", "About"}; - public GUIMenuBar(GUIMainFrame frame) { + /** + * Color oWhite = new Color(255, 253, 250); + * Color oDarkGray = new Color(76, 78, 82); + * First Color == TextColor + * Second Color == BackgroundColor + */ + Color[] aoDarkTheme = {new Color(255, 253, 250), new Color(76, 78, 82)}; + Color[] aoLightTheme = {new Color(76, 78, 82), new Color(255, 253, 250)}; + + //Color for separators is always the same. + Color oColorSeparators = new Color(47, 47, 47); + + /** + * Constructor initializes menubar. + * @param frame + */ + public GUIMenuBar(GUIMainFrame frame) { //TODO maybe single components, with methods, of frame to set theme + + //Custom Separators since default is not able to change background. + oSeparator0 = new JMenuItem(); + oSeparator0.setEnabled(false); + oSeparator0.setPreferredSize(new Dimension(0,1)); + oSeparator1 = new JMenuItem(); + oSeparator1.setEnabled(false); + oSeparator1.setPreferredSize(new Dimension(0,1)); + oSeparator2 = new JMenuItem(); + oSeparator2.setEnabled(false); + oSeparator2.setPreferredSize(new Dimension(0,1)); + oSeparator3 = new JMenuItem(); + oSeparator3.setEnabled(false); + oSeparator3.setPreferredSize(new Dimension(0,1)); + + //Referrence to change different parts of gui for theme. oMainFrame = frame; + //File oFileMenu = new JMenu(sGermanLang[0]); oLoadTestFile = new JMenuItem(sGermanLang[1]); @@ -88,10 +132,14 @@ public class GUIMenuBar extends JMenuBar implements ActionListener { oAbout = new JMenuItem(sGermanLang[23]); setActionListeners(); - setMnemonics(); + setGerMnemonics(); buildMenubar(); + setTheme(aoLightTheme[0], aoLightTheme[1]); } + /** + * Sets ActionListeners to all items. + */ private void setActionListeners() { //File oLoadTestFile.addActionListener(this); @@ -119,7 +167,10 @@ public class GUIMenuBar extends JMenuBar implements ActionListener { oAbout.addActionListener(this); } - private void setMnemonics() { + /** + * Sets english mnemonics. + */ + private void setEngMnemonics() { //File oFileMenu.setMnemonic(KeyEvent.VK_F); //alt + f for file oLoadTestFile.setMnemonic(KeyEvent.VK_T); //t for test @@ -153,13 +204,53 @@ public class GUIMenuBar extends JMenuBar implements ActionListener { oAbout.setMnemonic(KeyEvent.VK_A); //a for about } + /** + * Sets german mnemonics. + */ + private void setGerMnemonics() { + //File + oFileMenu.setMnemonic(KeyEvent.VK_D); //alt + d for datei + oLoadTestFile.setMnemonic(KeyEvent.VK_T); //t for testdatei + oLoadProgStateItem.setMnemonic(KeyEvent.VK_L); //l for laden + oSaveProgStateItem.setMnemonic(KeyEvent.VK_S); //s for speichern + oExitItem.setMnemonic(KeyEvent.VK_B); //b for beenden + + //View + oViewMenu.setMnemonic(KeyEvent.VK_A); //alt + a for ansicht + oChangeColors.setMnemonic(KeyEvent.VK_T); //t for thema + oDarkTheme.setMnemonic(KeyEvent.VK_D); //d for dunkel + oLightTheme.setMnemonic(KeyEvent.VK_L); //l for hell + + //Microcontroller + oMicrocontroller.setMnemonic(KeyEvent.VK_M); //alt + m for microcontroller + oStartProg.setMnemonic(KeyEvent.VK_S); //s for starten + oPauseProg.setMnemonic(KeyEvent.VK_P); //p for pausieren + oResetProg.setMnemonic(KeyEvent.VK_R); //r for zuruecksetzen + oStepProg.setMnemonic(KeyEvent.VK_T); // t for schritt + oChangeWorkInterval.setMnemonic(KeyEvent.VK_I); //i for intervall + oIntervalASAP.setMnemonic(KeyEvent.VK_0); //0 for sofort + oInterval1Sec.setMnemonic(KeyEvent.VK_1); //1 for 1 sekunde + oInterval2Sec.setMnemonic(KeyEvent.VK_2); //2 for 2 sekunden + + //Help + oHelpMenu.setMnemonic(KeyEvent.VK_H); //alt + h for hilfe + oChangeLanguageMenu.setMnemonic(KeyEvent.VK_L); //s for sprache + oGerLangItem.setMnemonic(KeyEvent.VK_D); //d for deutsch + oEngLangItem.setMnemonic(KeyEvent.VK_E); //e for englisch + oManual.setMnemonic(KeyEvent.VK_A); //a for anleitung + oAbout.setMnemonic(KeyEvent.VK_U); //u for ueber + } + + /** + * Builds menubar. + */ private void buildMenubar() { //File oFileMenu.add(oLoadTestFile); - oFileMenu.addSeparator(); + oFileMenu.add(oSeparator0); oFileMenu.add(oLoadProgStateItem); oFileMenu.add(oSaveProgStateItem); - oFileMenu.addSeparator(); + oFileMenu.add(oSeparator1); oFileMenu.add(oExitItem); //View @@ -172,7 +263,7 @@ public class GUIMenuBar extends JMenuBar implements ActionListener { oMicrocontroller.add(oPauseProg); oMicrocontroller.add(oResetProg); oMicrocontroller.add(oStepProg); - oMicrocontroller.addSeparator(); + oMicrocontroller.add(oSeparator2); oChangeWorkInterval.add(oIntervalASAP); oChangeWorkInterval.add(oInterval1Sec); oChangeWorkInterval.add(oInterval2Sec); @@ -182,7 +273,7 @@ public class GUIMenuBar extends JMenuBar implements ActionListener { oChangeLanguageMenu.add(oGerLangItem); oChangeLanguageMenu.add(oEngLangItem); oHelpMenu.add(oChangeLanguageMenu); - oHelpMenu.addSeparator(); + oHelpMenu.add(oSeparator3); oHelpMenu.add(oManual); oHelpMenu.add(oAbout); @@ -193,6 +284,10 @@ public class GUIMenuBar extends JMenuBar implements ActionListener { this.add(oHelpMenu); } + /** + * Change language to overhanded language array. + * @param lang = language to change to. + */ private void changeLangMenuBar(String[] lang) { //File oFileMenu.setText(lang[0]); @@ -253,11 +348,12 @@ public class GUIMenuBar extends JMenuBar implements ActionListener { //Change to dark theme if (e.getSource() == oDarkTheme) { System.out.println("It's gettin dark brooo"); //TODO - setDarkTheme(); + setTheme(aoDarkTheme[0], aoDarkTheme[1]); } //Change to light theme if (e.getSource() == oLightTheme) { System.out.println("It burns, it burnnnnnnssssss"); //TODO + setTheme(aoLightTheme[0], aoLightTheme[1]); } //Microcontroller @@ -287,10 +383,12 @@ public class GUIMenuBar extends JMenuBar implements ActionListener { //Change language at gui. if (e.getSource() == oGerLangItem) { changeLangMenuBar(sGermanLang); + setGerMnemonics(); //TODO rest of gui } if (e.getSource() == oEngLangItem) { changeLangMenuBar(sEnglishLang); + setEngMnemonics(); //TODO rest of gui } //Show manual @@ -303,92 +401,107 @@ public class GUIMenuBar extends JMenuBar implements ActionListener { } } - private void setDarkTheme() { - Color oWhite = new Color(255, 253, 250); - Color oDarkGray = new Color(76, 78, 82); - this.setBackground(oDarkGray); + /** + * Changes Color of text and background of menubar. + * @param oText = Color of text + * @param oBackground = Color of background + */ + private void setTheme(Color oText, Color oBackground) { + this.setBackground(oBackground); + this.setBorder(BorderFactory.createLineBorder(oBackground, 2)); this.setOpaque(true); //File - oFileMenu.setForeground(oWhite); - oLoadTestFile.setForeground(oWhite); - oLoadProgStateItem.setForeground(oWhite); - oSaveProgStateItem.setForeground(oWhite); - oExitItem.setForeground(oWhite); + oFileMenu.setForeground(oText); + oLoadTestFile.setForeground(oText); + oLoadProgStateItem.setForeground(oText); + oSaveProgStateItem.setForeground(oText); + oExitItem.setForeground(oText); //View - oViewMenu.setForeground(oWhite); - oChangeColors.setForeground(oWhite); - oDarkTheme.setForeground(oWhite); - oLightTheme.setForeground(oWhite); + oViewMenu.setForeground(oText); + oChangeColors.setForeground(oText); + oDarkTheme.setForeground(oText); + oLightTheme.setForeground(oText); //Microcontroller - oMicrocontroller.setForeground(oWhite); - oStartProg.setForeground(oWhite); - oPauseProg.setForeground(oWhite); - oResetProg.setForeground(oWhite); - oStepProg.setForeground(oWhite); - oChangeWorkInterval.setForeground(oWhite); - oIntervalASAP.setForeground(oWhite); - oInterval1Sec.setForeground(oWhite); - oInterval2Sec.setForeground(oWhite); + oMicrocontroller.setForeground(oText); + oStartProg.setForeground(oText); + oPauseProg.setForeground(oText); + oResetProg.setForeground(oText); + oStepProg.setForeground(oText); + oChangeWorkInterval.setForeground(oText); + oIntervalASAP.setForeground(oText); + oInterval1Sec.setForeground(oText); + oInterval2Sec.setForeground(oText); //Help - oHelpMenu.setForeground(oWhite); - oChangeLanguageMenu.setForeground(oWhite); - oGerLangItem.setForeground(oWhite); - oEngLangItem.setForeground(oWhite); - oManual.setForeground(oWhite); - oAbout.setForeground(oWhite); + oHelpMenu.setForeground(oText); + oChangeLanguageMenu.setForeground(oText); + oGerLangItem.setForeground(oText); + oEngLangItem.setForeground(oText); + oManual.setForeground(oText); + oAbout.setForeground(oText); //File - oFileMenu.setBackground(oDarkGray); - oLoadTestFile.setBackground(oDarkGray); - oLoadProgStateItem.setBackground(oDarkGray); - oSaveProgStateItem.setBackground(oDarkGray); - oExitItem.setBackground(oDarkGray); + oFileMenu.setBackground(oBackground); + oLoadTestFile.setBackground(oBackground); + oLoadProgStateItem.setBackground(oBackground); + oSaveProgStateItem.setBackground(oBackground); + oExitItem.setBackground(oBackground); //View - oViewMenu.setBackground(oDarkGray); - oChangeColors.setBackground(oDarkGray); - oDarkTheme.setBackground(oDarkGray); - oLightTheme.setBackground(oDarkGray); + oViewMenu.setBackground(oBackground); + oChangeColors.setBackground(oBackground); + oDarkTheme.setBackground(oBackground); + oLightTheme.setBackground(oBackground); //Microcontroller - oMicrocontroller.setBackground(oDarkGray); - oStartProg.setBackground(oDarkGray); - oPauseProg.setBackground(oDarkGray); - oResetProg.setBackground(oDarkGray); - oStepProg.setBackground(oDarkGray); - oChangeWorkInterval.setBackground(oDarkGray); - oIntervalASAP.setBackground(oDarkGray); - oInterval1Sec.setBackground(oDarkGray); - oInterval2Sec.setBackground(oDarkGray); + oMicrocontroller.setBackground(oBackground); + oStartProg.setBackground(oBackground); + oPauseProg.setBackground(oBackground); + oResetProg.setBackground(oBackground); + oStepProg.setBackground(oBackground); + oChangeWorkInterval.setBackground(oBackground); + oIntervalASAP.setBackground(oBackground); + oInterval1Sec.setBackground(oBackground); + oInterval2Sec.setBackground(oBackground); //Help - oHelpMenu.setBackground(oDarkGray); - oChangeLanguageMenu.setBackground(oDarkGray); - oGerLangItem.setBackground(oDarkGray); - oEngLangItem.setBackground(oDarkGray); - oManual.setBackground(oDarkGray); - oAbout.setBackground(oDarkGray); + oHelpMenu.setBackground(oBackground); + oChangeLanguageMenu.setBackground(oBackground); + oGerLangItem.setBackground(oBackground); + oEngLangItem.setBackground(oBackground); + oManual.setBackground(oBackground); + oAbout.setBackground(oBackground); //File - oFileMenu.getPopupMenu().setBorder(BorderFactory.createLineBorder(oDarkGray)); //TODO white lines at menus + oFileMenu.getPopupMenu().setBorder(BorderFactory.createLineBorder(oBackground)); //TODO white lines at menus oFileMenu.getPopupMenu().setOpaque(true); + //View - oViewMenu.getPopupMenu().setBorder(BorderFactory.createLineBorder(oDarkGray)); - oChangeColors.getPopupMenu().setBorder(BorderFactory.createLineBorder(oDarkGray)); + oViewMenu.getPopupMenu().setBorder(BorderFactory.createLineBorder(oBackground)); + oChangeColors.getPopupMenu().setBorder(BorderFactory.createLineBorder(oBackground)); oChangeColors.setOpaque(true); + //Microcontroller - oMicrocontroller.getPopupMenu().setBorder(BorderFactory.createLineBorder(oDarkGray)); - oChangeWorkInterval.getPopupMenu().setBorder(BorderFactory.createLineBorder(oDarkGray)); + oMicrocontroller.getPopupMenu().setBorder(BorderFactory.createLineBorder(oBackground)); + oChangeWorkInterval.getPopupMenu().setBorder(BorderFactory.createLineBorder(oBackground)); oChangeWorkInterval.setOpaque(true); + //Help - oHelpMenu.getPopupMenu().setBorder(BorderFactory.createLineBorder(oDarkGray)); - oChangeLanguageMenu.getPopupMenu().setBorder(BorderFactory.createLineBorder(oDarkGray)); + oHelpMenu.getPopupMenu().setBorder(BorderFactory.createLineBorder(oBackground)); + oChangeLanguageMenu.getPopupMenu().setBorder(BorderFactory.createLineBorder(oBackground)); oChangeLanguageMenu.setOpaque(true); - this.setBorder(BorderFactory.createLineBorder(oDarkGray, 2)); + //Separators + oSeparator0.setBackground(oColorSeparators); + oSeparator0.setBorder(BorderFactory.createLineBorder(oColorSeparators, 2)); + oSeparator1.setBackground(oColorSeparators); + oSeparator1.setBorder(BorderFactory.createLineBorder(oColorSeparators, 2)); + oSeparator2.setBackground(oColorSeparators); + oSeparator2.setBorder(BorderFactory.createLineBorder(oColorSeparators, 2)); + oSeparator3.setBackground(oColorSeparators); + oSeparator3.setBorder(BorderFactory.createLineBorder(oColorSeparators, 2)); } } \ No newline at end of file