Skip to content

Commit

Permalink
Merge pull request #78 from vincenzopalazzo/fixsomeissue
Browse files Browse the repository at this point in the history
Fixed some issue
  • Loading branch information
atarw authored Mar 30, 2019
2 parents e626e95 + 789dcd0 commit 8d8debf
Show file tree
Hide file tree
Showing 9 changed files with 103 additions and 38 deletions.
4 changes: 3 additions & 1 deletion src/main/java/mdlaf/MaterialLookAndFeel.java
Original file line number Diff line number Diff line change
Expand Up @@ -233,7 +233,9 @@ protected void initComponentDefaults (UIDefaults table) {
table.put ("ScrollBar.thumbHighlight", MaterialColors.GRAY_300);
table.put ("ScrollBar.thumbShadow", MaterialColors.GRAY_300);
table.put ("ScrollBar.arrowButtonBackground", MaterialColors.GRAY_300);
table.put ("ScrollBar.arrowButtonBorder", BorderFactory.createEmptyBorder ());
table.put("ScrollBar.arrowButtonBorder", MaterialBorders.LIGHT_LINE_BORDER);
table.put("ScrollBar[MouseHover].enable", true);
table.put("ScrollBar[MouseHover].color", MaterialColors.GRAY_400);

table.put ("ScrollPane.background", Color.WHITE);
table.put ("ScrollPane.border", BorderFactory.createEmptyBorder ());
Expand Down
63 changes: 39 additions & 24 deletions src/main/java/mdlaf/components/button/MaterialButtonUI.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,52 +2,67 @@

import mdlaf.animation.MaterialUIMovement;
import mdlaf.utils.MaterialDrawingUtils;

import javax.swing.AbstractButton;
import javax.swing.JComponent;
import javax.swing.UIManager;
import javax.swing.plaf.ComponentUI;
import javax.swing.plaf.basic.BasicButtonUI;
import java.awt.*;

/**
* @contributor https://github.com/vincenzopalazzo
*/

public class MaterialButtonUI extends BasicButtonUI {

public static ComponentUI createUI (final JComponent c) {
return new MaterialButtonUI ();
public static ComponentUI createUI(final JComponent c) {
return new MaterialButtonUI();
}

@Override
public void installUI (JComponent c) {
super.installUI (c);
public void installUI(JComponent c) {
super.installUI(c);

AbstractButton button = (AbstractButton) c;
button.setOpaque (UIManager.getBoolean ("Button.opaque"));
button.setBorder (UIManager.getBorder ("Button.border"));
button.setBackground (UIManager.getColor ("Button.background"));
button.setForeground (UIManager.getColor ("Button.foreground"));
button.setFont (UIManager.getFont ("Button.font"));
if(UIManager.getBoolean("Button.mouseHoverEnable")){
button.addMouseListener(MaterialUIMovement.getMovement(button, UIManager.getColor("Button.mouseHoverColor")));
}
button.setOpaque(UIManager.getBoolean("Button.opaque"));
button.setBorder(UIManager.getBorder("Button.border"));
button.setBackground(UIManager.getColor("Button.background"));
button.setForeground(UIManager.getColor("Button.foreground"));
button.setFont(UIManager.getFont("Button.font"));
button.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
button.addMouseListener(MaterialUIMovement.getMovement(button, UIManager.getColor("Button.mouseHoverColor")));
}

@Override
public void paint (Graphics g, JComponent c) {
public void paint(Graphics g, JComponent c) {
AbstractButton b = (AbstractButton) c;
g = MaterialDrawingUtils.getAliasedGraphics (g);

if (b.isContentAreaFilled ()) {
paintBackground (MaterialDrawingUtils.getAliasedGraphics(g), b);
g = MaterialDrawingUtils.getAliasedGraphics(g);
if (b.isContentAreaFilled()) {
paintBackground(MaterialDrawingUtils.getAliasedGraphics(g), b);
}
super.paint(MaterialDrawingUtils.getAliasedGraphics(g), c);
}
//Fix to #73 border were pixeled, fixde by https://github.com/vincenzopalazzo
private void paintBackground(Graphics g, JComponent c) {
//g.setColor(c.getBackground());
//g.fillRoundRect(0, 0, c.getWidth(), c.getHeight(), 7, 7);
Graphics2D graphics2D = (Graphics2D) g;
graphics2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g = graphics2D;
g.setColor(c.getBackground());
g.fillRoundRect(0, 0, c.getWidth(), c.getHeight(), 7, 7);
}

super.paint (MaterialDrawingUtils.getAliasedGraphics(g), c);
@Override
protected void paintButtonPressed(Graphics g, AbstractButton b) {
super.paintButtonPressed(g, b);
}

private void paintBackground (Graphics g, JComponent c) {
g = MaterialDrawingUtils.getAliasedGraphics(g);
g.setColor (c.getBackground ());
g.fillRect (0, 0, c.getWidth (), c.getHeight());
@Override
public void update(Graphics g, JComponent c) {
super.update(g, c);
c.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
}

}

}
10 changes: 7 additions & 3 deletions src/main/java/mdlaf/components/combobox/MaterialComboBoxUI.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,7 @@
import mdlaf.animation.MaterialUIMovement;
import mdlaf.utils.MaterialBorders;
import mdlaf.utils.MaterialDrawingUtils;

import javax.swing.BorderFactory;
import mdlaf.utils.MaterialManagerListener;
import javax.swing.Icon;
import javax.swing.JButton;
import javax.swing.JComboBox;
Expand All @@ -14,8 +13,12 @@
import javax.swing.plaf.ComponentUI;
import javax.swing.plaf.basic.BasicArrowButton;
import javax.swing.plaf.basic.BasicComboBoxUI;
import java.awt.*;
import java.awt.Cursor;
import java.awt.Graphics;

/**
* @contributor https://github.com/vincenzopalazzo
*/
public class MaterialComboBoxUI extends BasicComboBoxUI {

public static ComponentUI createUI (JComponent c) {
Expand Down Expand Up @@ -46,6 +49,7 @@ protected JButton createArrowButton () {
else {
button = new BasicArrowButton (SwingConstants.SOUTH);
}
MaterialManagerListener.removeAllMouseListener(button);
button.setOpaque (true);
button.setBackground (UIManager.getColor ("ComboBox.buttonBackground"));
if(UIManager.getBoolean("ComboBox.mouseHoverEnabled")){
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,9 @@
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;

/**
* @contributor https://github.com/vincenzopalazzo
*/
public class MaterialPasswordFieldUI extends BasicPasswordFieldUI implements FocusListener, PropertyChangeListener {

private Color focusedBackground;
Expand Down
12 changes: 10 additions & 2 deletions src/main/java/mdlaf/components/scrollbar/MaterialScrollBarUI.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package mdlaf.components.scrollbar;

import mdlaf.animation.MaterialUIMovement;
import mdlaf.utils.MaterialDrawingUtils;
import mdlaf.utils.MaterialManagerListener;

import javax.swing.JButton;
import javax.swing.JComponent;
Expand Down Expand Up @@ -43,21 +45,27 @@ public void paint (Graphics g, JComponent c) {
protected JButton createDecreaseButton (int orientation) {
JButton button = new BasicArrowButton (orientation);

MaterialManagerListener.removeAllMouseListener(button);
button.setOpaque (true);
button.setBackground (UIManager.getColor ("ScrollBar.arrowButtonBackground"));
button.setBorder (UIManager.getBorder ("ScrollBar.arrowButtonBorder"));

if(UIManager.getBoolean("ScrollBar[MouseHover].enable")){
button.addMouseListener(MaterialUIMovement.getMovement(button, UIManager.getColor("ScrollBar[MouseHover].color")));
}
return button;
}

@Override
protected JButton createIncreaseButton (int orientation) {
JButton button = new BasicArrowButton (orientation);

MaterialManagerListener.removeAllMouseListener(button);
button.setOpaque (true);
button.setBackground (UIManager.getColor ("ScrollBar.arrowButtonBackground"));
button.setBorder (UIManager.getBorder ("ScrollBar.arrowButtonBorder"));

if(UIManager.getBoolean("ScrollBar[MouseHover].enable")){
button.addMouseListener(MaterialUIMovement.getMovement(button, UIManager.getColor("ScrollBar[MouseHover].color")));
}
return button;
}
}
9 changes: 8 additions & 1 deletion src/main/java/mdlaf/components/slider/MaterialSliderUI.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,9 @@
import javax.swing.plaf.basic.BasicSliderUI;
import java.awt.*;

//TODO cambio grafica slider
/**
* @contributor https://github.com/vincenzopalazzo
*/
public class MaterialSliderUI extends BasicSliderUI {

private static final int NORMAL_THUMB_RADIUS = 7;
Expand All @@ -25,7 +27,12 @@ public static ComponentUI createUI (JComponent c) {
return new MaterialSliderUI ((JSlider) c);
}

// I fixig paint the circle bacuse this was painted wrong
// @contributor https://github.com/vincenzopalazzo
private static void drawCircle (Graphics g, int x, int y, int radius) {
Graphics2D graphics2D = (Graphics2D) g;
graphics2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g = graphics2D;
g.fillOval (x - radius, y - radius, radius * 2, radius * 2);
}

Expand Down
14 changes: 7 additions & 7 deletions src/main/java/mdlaf/components/spinner/MaterialSpinnerUI.java
Original file line number Diff line number Diff line change
@@ -1,21 +1,19 @@
package mdlaf.components.spinner;

import mdlaf.animation.MaterialUIMovement;
import mdlaf.components.textfield.MaterialTextFieldUI;
import mdlaf.components.textpane.MaterialTextPaneUI;
import mdlaf.utils.MaterialBorders;
import mdlaf.utils.MaterialDrawingUtils;
import org.jdesktop.swingx.JXTextField;

import mdlaf.utils.MaterialManagerListener;
import javax.swing.*;
import javax.swing.plaf.ComponentUI;
import javax.swing.plaf.basic.BasicArrowButton;
import javax.swing.plaf.basic.BasicSpinnerUI;
import javax.swing.plaf.basic.BasicTextFieldUI;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;


/**
* @contributor https://github.com/vincenzopalazzo
*/
public class MaterialSpinnerUI extends BasicSpinnerUI {


Expand Down Expand Up @@ -58,6 +56,7 @@ protected Component createNextButton() {
} else {
button = new BasicArrowButton(SwingConstants.NORTH);
}
MaterialManagerListener.removeAllMouseListener(button);
button.setOpaque(true);
button.setBackground(UIManager.getColor("Spinner.arrowButtonBackground"));
button.setBorder(UIManager.getBorder("Spinner.arrowButtonBorder"));
Expand All @@ -78,6 +77,7 @@ protected Component createPreviousButton() {
} else {
button = new BasicArrowButton(SwingConstants.SOUTH);
}
MaterialManagerListener.removeAllMouseListener(button);
button.setOpaque(true);
button.setBackground(UIManager.getColor("Spinner.arrowButtonBackground"));
button.setBorder(UIManager.getBorder("Spinner.arrowButtonBorder"));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;

/**
* @contributor https://github.com/vincenzopalazzo
*/
public class MaterialTextFieldUI extends BasicTextFieldUI implements FocusListener, PropertyChangeListener {

private boolean drawLine;
Expand Down
23 changes: 23 additions & 0 deletions src/main/java/mdlaf/utils/MaterialManagerListener.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package mdlaf.utils;

import javax.swing.*;
import java.awt.event.MouseListener;

/**
* @author https://github.com/vincenzopalazzo
*/
public class MaterialManagerListener {

/**
* Look this if you would change this function
* https://bugs.java.com/bugdatabase/view_bug.do?bug_id=4380536
*/
public static void removeAllMouseListener(JButton button){
if(button == null){
throw new IllegalArgumentException("Argument is null");
}
for(MouseListener mouseListener : button.getListeners(MouseListener.class)){
button.removeMouseListener(mouseListener);
}
}
}

0 comments on commit 8d8debf

Please sign in to comment.