Added Javadoc requested by @delvh
This commit is contained in:
		@@ -8,7 +8,7 @@ import javax.swing.JButton;
 | 
			
		||||
 * Project: <strong>envoy-client</strong><br>
 | 
			
		||||
 * File: <strong>PrimaryButton.javaEvent.java</strong><br>
 | 
			
		||||
 * Created: <strong>07.12.2019</strong><br>
 | 
			
		||||
 * 
 | 
			
		||||
 *
 | 
			
		||||
 * @author Kai S. K. Engelbart
 | 
			
		||||
 * @author Maximilian Käfer
 | 
			
		||||
 * @since Envoy v0.2-alpha
 | 
			
		||||
@@ -21,7 +21,7 @@ public class PrimaryButton extends JButton {
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Creates a primary button
 | 
			
		||||
	 * 
 | 
			
		||||
	 *
 | 
			
		||||
	 * @param title the title of the button
 | 
			
		||||
	 * @since Envoy 0.2-alpha
 | 
			
		||||
	 */
 | 
			
		||||
@@ -29,9 +29,9 @@ public class PrimaryButton extends JButton {
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Creates a primary button
 | 
			
		||||
	 * 
 | 
			
		||||
	 * @param title the title of the button
 | 
			
		||||
	 * @param the   size of the arc used to draw the round button edges
 | 
			
		||||
	 *
 | 
			
		||||
	 * @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) {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,95 +1,115 @@
 | 
			
		||||
package envoy.client.ui;
 | 
			
		||||
 | 
			
		||||
import java.awt.Color;
 | 
			
		||||
import java.awt.Dimension;
 | 
			
		||||
import java.awt.Graphics;
 | 
			
		||||
import java.awt.Graphics2D;
 | 
			
		||||
import java.awt.Rectangle;
 | 
			
		||||
import java.awt.RenderingHints;
 | 
			
		||||
 | 
			
		||||
import javax.swing.JButton;
 | 
			
		||||
import javax.swing.JComponent;
 | 
			
		||||
import javax.swing.JScrollBar;
 | 
			
		||||
import javax.swing.plaf.basic.BasicScrollBarUI;
 | 
			
		||||
 | 
			
		||||
import envoy.client.Settings;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Project: <strong>envoy-client</strong><br>
 | 
			
		||||
 * File: <strong>PrimaryScrollBar.java</strong><br>
 | 
			
		||||
 * Created: <strong>14.12.2019</strong><br>
 | 
			
		||||
 *
 | 
			
		||||
 * @author Maximilian Käfer
 | 
			
		||||
 * @since Envoy 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;
 | 
			
		||||
 | 
			
		||||
	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;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public PrimaryScrollBar(Theme theme, boolean isVertical) {
 | 
			
		||||
		this(5, theme.getInteractableBackgroundColor(), new Color(theme.getInteractableBackgroundColor().getRGB() - 50),
 | 
			
		||||
				new Color(theme.getInteractableBackgroundColor().getRGB() + 170), isVertical);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Override
 | 
			
		||||
	protected JButton createDecreaseButton(int orientation) {
 | 
			
		||||
		JButton button = new JButton();
 | 
			
		||||
		button.setPreferredSize(d);
 | 
			
		||||
		return button;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Override
 | 
			
		||||
	protected JButton createIncreaseButton(int orientation) {
 | 
			
		||||
		JButton button = new JButton();
 | 
			
		||||
		button.setPreferredSize(d);
 | 
			
		||||
		return button;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Override
 | 
			
		||||
	protected void paintTrack(Graphics g, JComponent c, Rectangle r) {}
 | 
			
		||||
 | 
			
		||||
	@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().getThemes().get(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().getThemes().get(Settings.getInstance().getCurrentTheme()).getCellColor());
 | 
			
		||||
			g2.drawRoundRect(r.x, r.y + 9, r.width, r.height - 10, arcSize, arcSize);
 | 
			
		||||
		}
 | 
			
		||||
		g2.dispose();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Override
 | 
			
		||||
	protected void setThumbBounds(int x, int y, int width, int height) {
 | 
			
		||||
		super.setThumbBounds(x, y, width, height);
 | 
			
		||||
		scrollbar.repaint();
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
package envoy.client.ui;
 | 
			
		||||
 | 
			
		||||
import java.awt.Color;
 | 
			
		||||
import java.awt.Dimension;
 | 
			
		||||
import java.awt.Graphics;
 | 
			
		||||
import java.awt.Graphics2D;
 | 
			
		||||
import java.awt.Rectangle;
 | 
			
		||||
import java.awt.RenderingHints;
 | 
			
		||||
 | 
			
		||||
import javax.swing.JButton;
 | 
			
		||||
import javax.swing.JComponent;
 | 
			
		||||
import javax.swing.JScrollBar;
 | 
			
		||||
import javax.swing.plaf.basic.BasicScrollBarUI;
 | 
			
		||||
 | 
			
		||||
import envoy.client.Settings;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Project: <strong>envoy-client</strong><br>
 | 
			
		||||
 * File: <strong>PrimaryScrollBar.java</strong><br>
 | 
			
		||||
 * Created: <strong>14.12.2019</strong><br>
 | 
			
		||||
 *
 | 
			
		||||
 * @author Maximilian Käfer
 | 
			
		||||
 * @since Envoy 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);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Override
 | 
			
		||||
	protected JButton createDecreaseButton(int orientation) {
 | 
			
		||||
		JButton button = new JButton();
 | 
			
		||||
		button.setPreferredSize(d);
 | 
			
		||||
		return button;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Override
 | 
			
		||||
	protected JButton createIncreaseButton(int orientation) {
 | 
			
		||||
		JButton button = new JButton();
 | 
			
		||||
		button.setPreferredSize(d);
 | 
			
		||||
		return button;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Override
 | 
			
		||||
	protected void paintTrack(Graphics g, JComponent c, Rectangle r) {}
 | 
			
		||||
 | 
			
		||||
	@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().getThemes().get(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().getThemes().get(Settings.getInstance().getCurrentTheme()).getCellColor());
 | 
			
		||||
			g2.drawRoundRect(r.x, r.y + 9, r.width, r.height - 10, arcSize, arcSize);
 | 
			
		||||
		}
 | 
			
		||||
		g2.dispose();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Override
 | 
			
		||||
	protected void setThumbBounds(int x, int y, int width, int height) {
 | 
			
		||||
		super.setThumbBounds(x, y, width, height);
 | 
			
		||||
		scrollbar.repaint();
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -17,6 +17,11 @@ public class PrimaryScrollPane extends JScrollPane {
 | 
			
		||||
	private int		verticalScrollBarMaximum	= getVerticalScrollBar().getMaximum();
 | 
			
		||||
	private boolean	chatOpened					= false;
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Initializes a {@link JScrollPane} with the primary Envoy design scheme
 | 
			
		||||
	 *
 | 
			
		||||
	 * @since Envoy v0.2-alpha
 | 
			
		||||
	 */
 | 
			
		||||
	public PrimaryScrollPane() { setBorder(null); }
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
@@ -67,5 +72,12 @@ public class PrimaryScrollPane extends JScrollPane {
 | 
			
		||||
		});
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * 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 v0.2-alpha
 | 
			
		||||
	 */
 | 
			
		||||
	public void setChatOpened(boolean chatOpened) { this.chatOpened = chatOpened; }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user