From b87e0dea5cceb052b17901fde15b2c9dd02a67f8 Mon Sep 17 00:00:00 2001 From: RichardKoll <56728005+RichardKoll@users.noreply.github.com> Date: Sat, 19 Oct 2019 20:14:19 +0200 Subject: [PATCH] UI Upgrade --- Silentcode.jar | Bin 14039 -> 19529 bytes src/META-INF/MANIFEST.MF | 3 ++ src/MainWindow.java | 76 +++++++++++++++++++++++++-------------- 3 files changed, 52 insertions(+), 27 deletions(-) create mode 100644 src/META-INF/MANIFEST.MF diff --git a/Silentcode.jar b/Silentcode.jar index 8583c3f4a93715c7455e9dc255abfef87df3b30c..81dac269adb226a729cb79e25d0ba11fcb8b38d5 100644 GIT binary patch delta 9968 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 E0c1APVE_OC delta 4491 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 diff --git a/src/META-INF/MANIFEST.MF b/src/META-INF/MANIFEST.MF new file mode 100644 index 0000000..c2184f5 --- /dev/null +++ b/src/META-INF/MANIFEST.MF @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Main-Class: MainWindow + diff --git a/src/MainWindow.java b/src/MainWindow.java index 9b4d8a3..c2f980d 100644 --- a/src/MainWindow.java +++ b/src/MainWindow.java @@ -1,3 +1,4 @@ +import javax.imageio.ImageIO; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; @@ -5,6 +6,7 @@ import java.awt.event.AdjustmentEvent; import java.awt.event.AdjustmentListener; import java.io.BufferedWriter; +import java.io.IOException; import java.io.OutputStreamWriter; public class MainWindow { @@ -13,55 +15,74 @@ public static void main(String[] args){ } public static JFrame createMainWindow(){ + MainWindow window = new MainWindow(); JFrame mainWindow = new JFrame(); - mainWindow.setTitle("Silent Mutation Calculator"); + mainWindow.setTitle("Silentcode"); mainWindow.setSize(new Dimension(800, 800)); - mainWindow.setLayout(new GridBagLayout()); + JPanel content = new JPanel(); + content.setLayout(new GridBagLayout()); - GridBagConstraints c = new GridBagConstraints(); - c.fill = GridBagConstraints.BOTH; - c.weightx = 1.0; - c.weighty = 1.0; - c.gridwidth = 2; - c.gridheight = 1; - - c.gridx = 0; - c.gridy = 1; + JLabel inLabel = new JLabel("Please enter your sequence here (in frame):"); JTextArea inField = new JTextArea("ATGTAA"); inField.setLineWrap(true); JScrollPane scrollPaneINPUT = new JScrollPane (inField, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); - mainWindow.add(scrollPaneINPUT, c); + JPanel inSect = new JPanel(); + inSect.setLayout(new BorderLayout()); + inSect.setBackground(new Color(140, 196, 242)); + inSect.setOpaque(true); + inSect.setBorder(BorderFactory.createEmptyBorder(5, 10, 5, 10)); + inSect.add(inLabel, BorderLayout.NORTH); + inSect.add(scrollPaneINPUT, BorderLayout.CENTER); + + + JLabel outLabel = new JLabel("Results (You might need to scroll down a bit when finished):"); - c.gridy = 3; JEditorPane outArea = new JEditorPane(); outArea.setEditable(false); - //outArea.setContentType("text/plain"); JScrollPane scrollPane = new JScrollPane (outArea, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); - /*scrollPane.getVerticalScrollBar().addAdjustmentListener(new AdjustmentListener() { - public void adjustmentValueChanged(AdjustmentEvent e) { - e.getAdjustable().setValue(e.getAdjustable().getMaximum()); - } - });*/ + JPanel outSect = new JPanel(); + outSect.setLayout(new BorderLayout()); + outSect.setBorder(BorderFactory.createEmptyBorder(5, 10, 5, 10)); + outSect.add(outLabel, BorderLayout.NORTH); + outSect.add(scrollPane, BorderLayout.CENTER); - mainWindow.add(scrollPane, c); + GridBagConstraints c = new GridBagConstraints(); + c.fill = GridBagConstraints.BOTH; + c.weightx = 1.0; + c.weighty = 1.0; + c.gridwidth = 2; + c.gridheight = 1; + + c.gridx = 0; + c.gridy = 2; + content.add(inSect, c); + + c.gridy = 3; + content.add(outSect, c); c.weighty = 0.1; c.gridy = 0; - JLabel inLabel = new JLabel("Please enter your sequence here:"); - mainWindow.add(inLabel, c); + //JLabel img = new JLabel(new ImageIcon("./sup/SilentcodeLogo.png")); + try { + JLabel img = new JLabel(new ImageIcon(ImageIO.read(window.getClass().getResource("SilentcodeLogo.png")))); + content.add(img, c); + } catch (IOException ioe) { + ioe.printStackTrace(); + } - c.gridy = 2; - JLabel outLabel = new JLabel("Results (You might need to scroll down a bit when finished):"); - mainWindow.add(outLabel, c); + c.gridy = 1; + JLabel subTitle = new JLabel("Calculate the silent mutation encoding potential of your sequence", SwingConstants.CENTER); + content.add(subTitle, c); + c.insets = new Insets(2,10,2,10); c.gridwidth = 1; JCheckBox vocalcheck = new JCheckBox("vocal", true); c.gridy = 4; - mainWindow.add(vocalcheck, c); + content.add(vocalcheck, c); JButton trigger = new JButton("Launch"); trigger.addActionListener(new ActionListener(){ @@ -78,8 +99,9 @@ public void run() { }); trigger.setBackground(Color.RED); c.gridx = 1; - mainWindow.add(trigger, c); + content.add(trigger, c); + mainWindow.add(content); mainWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); mainWindow.setLocationRelativeTo(null); mainWindow.setVisible(true);