diff --git a/src/main/java/envoy/client/ui/primary/PrimaryButton.java b/src/main/java/envoy/client/ui/primary/PrimaryButton.java
deleted file mode 100644
index de7852c..0000000
--- a/src/main/java/envoy/client/ui/primary/PrimaryButton.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package envoy.client.ui.primary;
-
-import java.awt.Graphics;
-
-import javax.swing.JButton;
-
-/**
- * Project: envoy-client
- * File: PrimaryButton.javaEvent.java
- * Created: 07.12.2019
- *
- * @author Kai S. K. Engelbart
- * @author Maximilian Käfer
- * @since Envoy Client v0.2-alpha
- */
-public class PrimaryButton extends JButton {
-
- private static final long serialVersionUID = 0L;
-
- private int arcSize;
-
- /**
- * Creates a primary button
- *
- * @param title the title of the button
- * @since Envoy 0.2-alpha
- */
- public PrimaryButton(String title) { this(title, 6); }
-
- /**
- * Creates a primary button
- *
- * @param title the title of the button
- * @param arcSize the size of the arc used to draw the round button edges
- * @since Envoy 0.2-alpha
- */
- public PrimaryButton(String title, int arcSize) {
- super(title);
- setBorderPainted(false);
- setFocusPainted(false);
- setContentAreaFilled(false);
- this.arcSize = arcSize;
- }
-
- @Override
- protected void paintComponent(Graphics g) {
- g.setColor(getBackground());
- g.fillRoundRect(0, 0, getWidth(), getHeight(), arcSize, arcSize);
- super.paintComponent(g);
- }
-
- /**
- * @return the arcSize
- * @since Envoy 0.2-alpha
- */
- public int getArcSize() { return arcSize; }
-
- /**
- * @param arcSize the arcSize to set
- * @since Envoy 0.2-alpha
- */
- public void setArcSize(int arcSize) { this.arcSize = arcSize; }
-}
diff --git a/src/main/java/envoy/client/ui/primary/PrimaryScrollBar.java b/src/main/java/envoy/client/ui/primary/PrimaryScrollBar.java
deleted file mode 100644
index 371bd05..0000000
--- a/src/main/java/envoy/client/ui/primary/PrimaryScrollBar.java
+++ /dev/null
@@ -1,126 +0,0 @@
-package envoy.client.ui.primary;
-
-import java.awt.*;
-
-import javax.swing.JButton;
-import javax.swing.JComponent;
-import javax.swing.JScrollBar;
-import javax.swing.plaf.basic.BasicScrollBarUI;
-
-import envoy.client.data.Settings;
-import envoy.client.ui.Theme;
-
-/**
- * Project: envoy-client
- * File: PrimaryScrollBar.java
- * Created: 14.12.2019
- *
- * @author Maximilian Käfer
- * @since Envoy Client v0.2-alpha
- */
-public class PrimaryScrollBar extends BasicScrollBarUI {
-
- private final Dimension d = new Dimension();
- private final int arcSize;
- private final Color scrollBarColor;
- private final Color hoverColor;
- private final Color draggingColor;
- private final boolean isVertical;
-
- /**
- * Initializes a {@link PrimaryScrollBar} with a color scheme.
- *
- * @param arcSize the size of the arc used to draw the round scroll bar
- * edges
- * @param scrollBarColor the default color
- * @param hoverColor the color while hovering
- * @param draggingColor the color while dragging
- * @param isVertical indicates whether this is a vertical
- * {@link PrimaryScrollBar}
- */
- public PrimaryScrollBar(int arcSize, Color scrollBarColor, Color hoverColor, Color draggingColor, boolean isVertical) {
- this.arcSize = arcSize;
- this.scrollBarColor = scrollBarColor;
- this.hoverColor = hoverColor;
- this.draggingColor = draggingColor;
- this.isVertical = isVertical;
- }
-
- /**
- * Initializes a {@link PrimaryScrollBar} using a color scheme specified in a
- * {@link Theme}
- *
- * @param theme the {@link Theme} to be applied to this
- * {@link PrimaryScrollBar}
- * @param isVertical indicates whether this is a vertical
- * {@link PrimaryScrollBar}
- */
- public PrimaryScrollBar(Theme theme, boolean isVertical) {
- this(5, theme.getInteractableBackgroundColor(), new Color(theme.getInteractableBackgroundColor().getRGB() - 50),
- new Color(theme.getInteractableBackgroundColor().getRGB() + 170), isVertical);
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- protected JButton createDecreaseButton(int orientation) {
- JButton button = new JButton();
- button.setPreferredSize(d);
- return button;
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- protected JButton createIncreaseButton(int orientation) {
- JButton button = new JButton();
- button.setPreferredSize(d);
- return button;
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- protected void paintTrack(Graphics g, JComponent c, Rectangle r) {}
-
- /**
- * {@inheritDoc}
- */
- @Override
- protected void paintThumb(Graphics g, JComponent c, Rectangle r) {
- Graphics2D g2 = (Graphics2D) g.create();
- g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
- Color color;
- JScrollBar sb = (JScrollBar) c;
-
- if (!sb.isEnabled()) return;
-
- if (isDragging) color = draggingColor;
- else if (isThumbRollover()) color = hoverColor;
- else color = scrollBarColor;
-
- g2.setPaint(color);
- if (isVertical) {
- g2.fillRoundRect(r.x - 9, r.y, r.width, r.height, arcSize, arcSize);
- g2.setPaint(Settings.getInstance().getCurrentTheme().getCellColor());
- g2.drawRoundRect(r.x - 9, r.y, r.width, r.height, arcSize, arcSize);
- } else {
- g2.fillRoundRect(r.x, r.y + 9, r.width, r.height - 10, arcSize, arcSize);
- g2.setPaint(Settings.getInstance().getCurrentTheme().getCellColor());
- g2.drawRoundRect(r.x, r.y + 9, r.width, r.height - 10, arcSize, arcSize);
- }
- g2.dispose();
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- protected void setThumbBounds(int x, int y, int width, int height) {
- super.setThumbBounds(x, y, width, height);
- scrollbar.repaint();
- }
-}
diff --git a/src/main/java/envoy/client/ui/primary/PrimaryScrollPane.java b/src/main/java/envoy/client/ui/primary/PrimaryScrollPane.java
deleted file mode 100644
index e02502b..0000000
--- a/src/main/java/envoy/client/ui/primary/PrimaryScrollPane.java
+++ /dev/null
@@ -1,85 +0,0 @@
-package envoy.client.ui.primary;
-
-import javax.swing.JScrollPane;
-
-import envoy.client.ui.Theme;
-
-/**
- * Project: envoy-client
- * File: PrimaryScrollPane.java
- * Created: 15 Dec 2019
- *
- * @author Kai S. K. Engelbart
- * @author Maximilian Käfer
- */
-public class PrimaryScrollPane extends JScrollPane {
-
- private static final long serialVersionUID = 0L;
-
- private int verticalScrollBarMaximum = getVerticalScrollBar().getMaximum();
- private boolean chatOpened = false;
-
- /**
- * Initializes a {@link JScrollPane} with the primary Envoy design scheme
- *
- * @since Envoy Client v0.2-alpha
- */
- public PrimaryScrollPane() { setBorder(null); }
-
- /**
- * Styles the vertical and horizontal scroll bars.
- *
- * @param theme the color set used to color the component
- * @since Envoy Client v0.2-alpha
- */
- public void applyTheme(Theme theme) {
- setForeground(theme.getBackgroundColor());
- setBackground(theme.getCellColor());
-
- getVerticalScrollBar().setBackground(theme.getCellColor());
- getVerticalScrollBar().setUI(new PrimaryScrollBar(theme, true));
-
- getHorizontalScrollBar().setBackground(theme.getCellColor());
- getHorizontalScrollBar().setUI(new PrimaryScrollBar(theme, false));
- }
-
- /**
- * Implements autoscroll functionality for the vertical scroll bar.
- *
- * Functionality to automatically scroll down when user views
- * the bottom of the chat while there are new messages added.
- *
- * When chat is opened, the vertical scroll bar starts at the bottom.
- *
- * When rereading messages, the chat doesn't scroll down if new messages
- * are added. (Besides see first point)
- *
- * @since Envoy Client v0.2-alpha
- */
- public void autoscroll() {
- // Automatic scrolling to the bottom
- getVerticalScrollBar().addAdjustmentListener(e -> {
- if (verticalScrollBarMaximum == e.getAdjustable().getMaximum()) return;
-
- if (chatOpened) {
- e.getAdjustable().setValue(e.getAdjustable().getMaximum());
- verticalScrollBarMaximum = getVerticalScrollBar().getMaximum();
- chatOpened = false;
- return;
- }
- if (getVerticalScrollBar().getValue() + getVerticalScrollBar().getVisibleAmount() + 100 >= getVerticalScrollBar().getMaximum()) {
- e.getAdjustable().setValue(e.getAdjustable().getMaximum());
- verticalScrollBarMaximum = getVerticalScrollBar().getMaximum();
- }
- });
- }
-
- /**
- * Indicates a chat being opened by the user to this {@link PrimaryScrollPane}
- * triggering it to automatically scroll down.
- *
- * @param chatOpened indicates the chat opening status
- * @since Envoy Client v0.2-alpha
- */
- public void setChatOpened(boolean chatOpened) { this.chatOpened = chatOpened; }
-}
diff --git a/src/main/java/envoy/client/ui/primary/PrimaryTextArea.java b/src/main/java/envoy/client/ui/primary/PrimaryTextArea.java
deleted file mode 100644
index 37d05eb..0000000
--- a/src/main/java/envoy/client/ui/primary/PrimaryTextArea.java
+++ /dev/null
@@ -1,70 +0,0 @@
-package envoy.client.ui.primary;
-
-import java.awt.Font;
-import java.awt.Graphics;
-
-import javax.swing.JTextArea;
-import javax.swing.border.EmptyBorder;
-
-/**
- * Project: envoy-client
- * File: PrimaryTextArea.javaEvent.java
- * Created: 07.12.2019
- *
- * @author Maximilian Käfer
- * @since Envoy Client v0.2-alpha
- */
-public class PrimaryTextArea extends JTextArea {
-
- private static final long serialVersionUID = 0L;
- private int arcSize;
-
- /**
- * Creates the text area
- *
- * @param borderSpace the space between components
- * @since Envoy 0.2-alpha
- */
- public PrimaryTextArea(int borderSpace) { this(6, borderSpace); }
-
- /**
- * Creates the text area
- *
- * @param arcSize is the diameter of the arc at the four corners.
- * @param borderSpace is the insets of the border on all four sides.
- * @since Envoy 0.2-alpha
- */
- public PrimaryTextArea(int arcSize, int borderSpace) {
- super();
- setWrapStyleWord(true);
- setLineWrap(true);
- setBorder(null);
- setFont(new Font("Arial", Font.PLAIN, 17));
- setBorder(new EmptyBorder(borderSpace, borderSpace, borderSpace, borderSpace));
- setOpaque(false);
-
- this.arcSize = arcSize;
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- protected void paintComponent(Graphics g) {
- g.setColor(getBackground());
- g.fillRoundRect(0, 0, getWidth(), getHeight(), arcSize, arcSize);
- super.paintComponent(g);
- }
-
- /**
- * @return the arcSize - the diameter of the arc at the four corners.
- * @since Envoy 0.2-alpha
- */
- public int getArcSize() { return arcSize; }
-
- /**
- * @param arcSize the arcSize to set
- * @since Envoy 0.2-alpha
- */
- public void setArcSize(int arcSize) { this.arcSize = arcSize; }
-}
diff --git a/src/main/java/envoy/client/ui/primary/PrimaryToggleSwitch.java b/src/main/java/envoy/client/ui/primary/PrimaryToggleSwitch.java
deleted file mode 100644
index 87afed9..0000000
--- a/src/main/java/envoy/client/ui/primary/PrimaryToggleSwitch.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package envoy.client.ui.primary;
-
-import java.awt.Dimension;
-import java.awt.Graphics;
-
-import javax.swing.JButton;
-
-import envoy.client.data.Settings;
-import envoy.client.data.SettingsItem;
-import envoy.client.ui.Color;
-
-/**
- * This component can be used to toggle between two options. This will change
- * the state of a {@code boolean} {@link SettingsItem}.
- *
- * Project: envoy-client
- * File: PrimaryToggleSwitch.java
- * Created: 21 Dec 2019
- *
- * @author Maximilian Käfer
- * @author Kai S. K. Engelbart
- * @since Envoy Client v0.3-alpha
- */
-public class PrimaryToggleSwitch extends JButton {
-
- private boolean state;
-
- private static final long serialVersionUID = 0L;
-
- /**
- * Initializes a {@link PrimaryToggleSwitch}.
- *
- * @param settingsItem the {@link SettingsItem} that is controlled by this
- * {@link PrimaryToggleSwitch}
- * @since Envoy Client v0.3-alpha
- */
- public PrimaryToggleSwitch(SettingsItem settingsItem) {
- setPreferredSize(new Dimension(50, 25));
- setMinimumSize(new Dimension(50, 25));
- setMaximumSize(new Dimension(50, 25));
-
- setBorderPainted(false);
- setFocusPainted(false);
- setContentAreaFilled(false);
-
- state = settingsItem.get();
- addActionListener((evt) -> { state = !state; settingsItem.set(state); revalidate(); repaint(); });
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public void paintComponent(Graphics g) {
- g.setColor(state ? Color.GREEN : Color.LIGHT_GRAY);
- g.fillRoundRect(0, 0, getWidth(), getHeight(), 25, 25);
-
- g.setColor(Settings.getInstance().getCurrentTheme().getInteractableBackgroundColor());
- g.fillRoundRect(state ? 25 : 0, 0, 25, 25, 25, 25);
- }
-}
diff --git a/src/main/java/envoy/client/ui/primary/package-info.java b/src/main/java/envoy/client/ui/primary/package-info.java
deleted file mode 100644
index d4c54fa..0000000
--- a/src/main/java/envoy/client/ui/primary/package-info.java
+++ /dev/null
@@ -1,17 +0,0 @@
-/**
- * This package defines all "primary" components that were defined specifically
- * for the visual improvement of Envoy. However, they can still be used in
- * general for other projects.
- * Primary elements are supposed to provide the main functionality of a UI
- * component.
- *
- * Project: envoy-client
- * File: package-info.java
- * Created: 14 Mar 2020
- *
- * @author Leon Hofmeister
- * @author Kai S. K. Engelbart
- * @author Maximilian Käfer
- * @since Envoy Client v0.1-beta
- */
-package envoy.client.ui.primary;