diff --git a/bin/View/GUIMCMenu.class b/bin/View/GUIMCMenu.class index 9d14cad..b26420f 100644 Binary files a/bin/View/GUIMCMenu.class and b/bin/View/GUIMCMenu.class differ diff --git a/bin/View/GUIMainFrame.class b/bin/View/GUIMainFrame.class index 05a4b82..5e66113 100644 Binary files a/bin/View/GUIMainFrame.class and b/bin/View/GUIMainFrame.class differ diff --git a/bin/View/GUIRamTable.class b/bin/View/GUIRamTable.class index 57e9cfa..3a49311 100644 Binary files a/bin/View/GUIRamTable.class and b/bin/View/GUIRamTable.class differ diff --git a/bin/View/GUIStack.class b/bin/View/GUIStack.class index ad5885d..987bcfc 100644 Binary files a/bin/View/GUIStack.class and b/bin/View/GUIStack.class differ diff --git a/bin/View/GUITime.class b/bin/View/GUITime.class index 2c03487..ec249ae 100644 Binary files a/bin/View/GUITime.class and b/bin/View/GUITime.class differ diff --git a/src/View/GUIMCMenu.java b/src/View/GUIMCMenu.java index a01e057..8490043 100644 --- a/src/View/GUIMCMenu.java +++ b/src/View/GUIMCMenu.java @@ -3,6 +3,7 @@ package View; import java.util.ArrayList; import java.awt.Color; +import java.awt.Dimension; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Insets; @@ -30,16 +31,20 @@ public class GUIMCMenu extends JPanel { 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)}; - JButton oButtonStart = new JButton(); - JButton oButtonStep = new JButton(); - JButton oButtonPause = new JButton(); - JButton oButtonReset = new JButton(); + String[] asLangGerman = {"Start", "Schritt", "Pausieren", "Zurücksetzen"}; + String[] asLangEnglish = {"Start", "Step", "Pause", "Reset"}; + + JButton oButtonStart = new JButton("Start"); + JButton oButtonStep = new JButton("Step"); + JButton oButtonPause = new JButton("Pause"); + JButton oButtonReset = new JButton("Reset"); ArrayList 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