Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 45 additions & 14 deletions src/main/java/eu/hansolo/steelseries/gauges/AbstractLinear.java
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,8 @@
import java.awt.geom.Point2D;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.text.DecimalFormat;
import java.text.NumberFormat;


/**
Expand Down Expand Up @@ -96,6 +98,7 @@ public abstract class AbstractLinear extends AbstractGauge implements Lcd, Actio
private final TimelineEase STANDARD_EASING;
private final TimelineEase RETURN_TO_ZERO_EASING;
private TimelineCallback timelineCallback;
private NumberFormat nf = null;
// </editor-fold>

// <editor-fold defaultstate="collapsed" desc="Constructor">
Expand Down Expand Up @@ -582,6 +585,30 @@ public void setLcdDecimals(final int DECIMALS) {
getModel().setLcdDecimals(DECIMALS);
repaint(getInnerBounds());
}

@Override
public String getLcdFormat() {
return getModel().getLcdFormat();
}

@Override
public void setLcdFormat(String format) {
if (format == null) {
nf = null;
} else {
if (format.isEmpty() == true) {
nf = null;
} else {
if (getModel().getLcdFormat() != null && getModel().getLcdFormat().compareTo(format) == 0) {
return;
} else {
nf = new DecimalFormat(format,new java.text.DecimalFormatSymbols(java.util.Locale.US));
getModel().setLcdFormat(format);
}
}
}
repaint(getInnerBounds());
}

@Override
public LcdColor getLcdColor() {
Expand Down Expand Up @@ -633,24 +660,28 @@ public void setCustomLcdForeground(final Color CUSTOM_LCD_FOREGROUND) {

@Override
public String formatLcdValue(final double VALUE) {
final StringBuilder DEC_BUFFER = new StringBuilder(16);
DEC_BUFFER.append("0");
if (nf != null) {
return nf.format(VALUE);
} else {
final StringBuilder DEC_BUFFER = new StringBuilder(16);
DEC_BUFFER.append("0");

if (getModel().getLcdDecimals() > 0) {
DEC_BUFFER.append(".");
}
if (getModel().getLcdDecimals() > 0) {
DEC_BUFFER.append(".");
}

for (int i = 0; i < getModel().getLcdDecimals(); i++) {
DEC_BUFFER.append("0");
}
for (int i = 0; i < getModel().getLcdDecimals(); i++) {
DEC_BUFFER.append("0");
}

if (getModel().isLcdScientificFormatEnabled()) {
DEC_BUFFER.append("E0");
}
DEC_BUFFER.trimToSize();
final java.text.DecimalFormat DEC_FORMAT = new java.text.DecimalFormat(DEC_BUFFER.toString(), new java.text.DecimalFormatSymbols(java.util.Locale.US));
if (getModel().isLcdScientificFormatEnabled()) {
DEC_BUFFER.append("E0");
}
DEC_BUFFER.trimToSize();
final java.text.DecimalFormat DEC_FORMAT = new java.text.DecimalFormat(DEC_BUFFER.toString(), new java.text.DecimalFormatSymbols(java.util.Locale.US));

return DEC_FORMAT.format(VALUE);
return DEC_FORMAT.format(VALUE);
}
}

@Override
Expand Down
59 changes: 45 additions & 14 deletions src/main/java/eu/hansolo/steelseries/gauges/AbstractRadial.java
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,8 @@
import java.awt.geom.Point2D;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.Arrays;
import java.util.List;

Expand Down Expand Up @@ -122,6 +124,7 @@ public abstract class AbstractRadial extends AbstractGauge implements Lcd {
// Alignment related
private int horizontalAlignment;
private int verticalAlignment;
private NumberFormat nf = null;

// </editor-fold>

Expand Down Expand Up @@ -829,6 +832,30 @@ public void setLcdDecimals(final int DECIMALS) {
getModel().setLcdDecimals(DECIMALS);
repaint(getInnerBounds());
}

@Override
public String getLcdFormat() {
return getModel().getLcdFormat();
}

@Override
public void setLcdFormat(String format) {
if (format == null) {
nf = null;
} else {
if (format.isEmpty() == true) {
nf = null;
} else {
if (getModel().getLcdFormat() != null && getModel().getLcdFormat().compareTo(format) == 0) {
return;
} else {
nf = new DecimalFormat(format,new java.text.DecimalFormatSymbols(java.util.Locale.US));
getModel().setLcdFormat(format);
}
}
}
repaint(getInnerBounds());
}

@Override
public LcdColor getLcdColor() {
Expand Down Expand Up @@ -885,25 +912,29 @@ public void setCustomLcdForeground(final Color CUSTOM_LCD_FOREGROUND) {

@Override
public String formatLcdValue(final double VALUE) {
final StringBuilder DEC_BUFFER = new StringBuilder(16);
DEC_BUFFER.append("0");
if (nf != null) {
return nf.format(VALUE);
} else {
final StringBuilder DEC_BUFFER = new StringBuilder(16);
DEC_BUFFER.append("0");

if (getModel().getLcdDecimals() > 0) {
DEC_BUFFER.append(".");
}
if (getModel().getLcdDecimals() > 0) {
DEC_BUFFER.append(".");
}

for (int i = 0; i < getModel().getLcdDecimals(); i++) {
DEC_BUFFER.append("0");
}
for (int i = 0; i < getModel().getLcdDecimals(); i++) {
DEC_BUFFER.append("0");
}

if (getModel().isLcdScientificFormatEnabled()) {
DEC_BUFFER.append("E0");
}
if (getModel().isLcdScientificFormatEnabled()) {
DEC_BUFFER.append("E0");
}

DEC_BUFFER.trimToSize();
final java.text.DecimalFormat DEC_FORMAT = new java.text.DecimalFormat(DEC_BUFFER.toString(), new java.text.DecimalFormatSymbols(java.util.Locale.US));
DEC_BUFFER.trimToSize();
final java.text.DecimalFormat DEC_FORMAT = new java.text.DecimalFormat(DEC_BUFFER.toString(), new java.text.DecimalFormatSymbols(java.util.Locale.US));

return DEC_FORMAT.format(VALUE);
return DEC_FORMAT.format(VALUE);
}
}

@Override
Expand Down
60 changes: 46 additions & 14 deletions src/main/java/eu/hansolo/steelseries/gauges/DisplayMulti.java
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,8 @@
import java.awt.geom.Rectangle2D;
import java.awt.geom.RoundRectangle2D;
import java.awt.image.BufferedImage;
import java.text.DecimalFormat;
import java.text.NumberFormat;


/**
Expand Down Expand Up @@ -119,6 +121,8 @@ public final class DisplayMulti extends JComponent implements Lcd, ActionListene
private Color glowColor;
private boolean glowing;
private BufferedImage glowImageOn;
private NumberFormat nf = null;
private String lcdFormat = null;
private final transient ComponentListener COMPONENT_LISTENER = new ComponentAdapter() {

@Override
Expand Down Expand Up @@ -460,6 +464,30 @@ public void setLcdDecimals(final int DECIMALS) {
repaint(getInnerBounds());
}

@Override
public String getLcdFormat() {
return lcdFormat;
}

@Override
public void setLcdFormat(String format) {
if (format == null) {
nf = null;
} else {
if (format.isEmpty() == true) {
nf = null;
} else {
if (lcdFormat != null && lcdFormat.compareTo(format) == 0) {
return;
} else {
nf = new DecimalFormat(format,new java.text.DecimalFormatSymbols(java.util.Locale.US));
this.lcdFormat = format;
}
}
}
repaint(getInnerBounds());
}

@Override
public String getLcdUnitString() {
return this.lcdUnitString;
Expand Down Expand Up @@ -604,25 +632,29 @@ public void setCustomLcdForeground(final Color CUSTOM_LCD_FOREGROUND) {

@Override
public String formatLcdValue(final double VALUE) {
final StringBuilder DEC_BUFFER = new StringBuilder(16);
DEC_BUFFER.append("0");
if (nf != null) {
return nf.format(VALUE);
} else {
final StringBuilder DEC_BUFFER = new StringBuilder(16);
DEC_BUFFER.append("0");

if (this.lcdDecimals > 0) {
DEC_BUFFER.append(".");
}
if (this.lcdDecimals > 0) {
DEC_BUFFER.append(".");
}

for (int i = 0; i < this.lcdDecimals; i++) {
DEC_BUFFER.append("0");
}
for (int i = 0; i < this.lcdDecimals; i++) {
DEC_BUFFER.append("0");
}

if (lcdScientificFormat) {
DEC_BUFFER.append("E0");
}
DEC_BUFFER.trimToSize();
if (lcdScientificFormat) {
DEC_BUFFER.append("E0");
}
DEC_BUFFER.trimToSize();

final java.text.DecimalFormat DEC_FORMAT = new java.text.DecimalFormat(DEC_BUFFER.toString(), new java.text.DecimalFormatSymbols(java.util.Locale.US));
final java.text.DecimalFormat DEC_FORMAT = new java.text.DecimalFormat(DEC_BUFFER.toString(), new java.text.DecimalFormatSymbols(java.util.Locale.US));

return DEC_FORMAT.format(VALUE);
return DEC_FORMAT.format(VALUE);
}
}

@Override
Expand Down
59 changes: 46 additions & 13 deletions src/main/java/eu/hansolo/steelseries/gauges/DisplaySingle.java
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,8 @@
import java.awt.geom.Rectangle2D;
import java.awt.geom.RoundRectangle2D;
import java.awt.image.BufferedImage;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JComponent;
Expand Down Expand Up @@ -150,6 +152,8 @@ public final class DisplaySingle extends JComponent implements Lcd, ActionListen
private float lcdTextX;
private Timer TEXT_SCROLLER;
private long animationDuration;
private NumberFormat nf = null;
private String lcdFormat = null;
private final transient ComponentListener COMPONENT_LISTENER = new ComponentAdapter() {

@Override
Expand Down Expand Up @@ -770,6 +774,31 @@ public void setLcdDecimals(final int DECIMALS) {
this.lcdDecimals = DECIMALS;
repaint(getInnerBounds());
}

@Override
public String getLcdFormat() {
return lcdFormat;
}

@Override
public void setLcdFormat(String format) {
if (format == null) {
nf = null;
} else {
if (format.isEmpty() == true) {
nf = null;
} else {
if (lcdFormat != null && lcdFormat.compareTo(format) == 0) {
return;
} else {
nf = new DecimalFormat(format,new java.text.DecimalFormatSymbols(java.util.Locale.US));
this.lcdFormat = format;
}
}
}
repaint(getInnerBounds());
}


@Override
public String getLcdUnitString() {
Expand Down Expand Up @@ -915,24 +944,28 @@ public void setCustomLcdForeground(final Color CUSTOM_LCD_FOREGROUND) {

@Override
public String formatLcdValue(final double VALUE) {
final StringBuilder DEC_BUFFER = new StringBuilder(16);
DEC_BUFFER.append("0");
if (nf != null) {
return nf.format(VALUE);
} else {
final StringBuilder DEC_BUFFER = new StringBuilder(16);
DEC_BUFFER.append("0");

if (this.lcdDecimals > 0) {
DEC_BUFFER.append(".");
}
if (this.lcdDecimals > 0) {
DEC_BUFFER.append(".");
}

for (int i = 0; i < this.lcdDecimals; i++) {
DEC_BUFFER.append("0");
}
for (int i = 0; i < this.lcdDecimals; i++) {
DEC_BUFFER.append("0");
}

if (lcdScientificFormat) {
DEC_BUFFER.append("E0");
}
if (lcdScientificFormat) {
DEC_BUFFER.append("E0");
}

final java.text.DecimalFormat DEC_FORMAT = new java.text.DecimalFormat(DEC_BUFFER.toString(), new java.text.DecimalFormatSymbols(java.util.Locale.US));
final java.text.DecimalFormat DEC_FORMAT = new java.text.DecimalFormat(DEC_BUFFER.toString(), new java.text.DecimalFormatSymbols(java.util.Locale.US));

return DEC_FORMAT.format(VALUE);
return DEC_FORMAT.format(VALUE);
}
}

@Override
Expand Down
4 changes: 4 additions & 0 deletions src/main/java/eu/hansolo/steelseries/gauges/Lcd.java
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,10 @@ public interface Lcd {
public int getLcdDecimals();

public void setLcdDecimals(final int DECIMALS);

public void setLcdFormat(final String format);

public String getLcdFormat();

public String getLcdUnitString();

Expand Down
Loading