Skip to content

Commit

Permalink
ByteMonitor: layout calc in float
Browse files Browse the repository at this point in the history
  • Loading branch information
kasemir committed Sep 11, 2023
1 parent 3e87a12 commit 87fae3e
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 9 deletions.
20 changes: 12 additions & 8 deletions src/main/java/dbwr/widgets/ByteMonitorWidget.java
Original file line number Diff line number Diff line change
Expand Up @@ -83,45 +83,49 @@ protected void fillHTML(final PrintWriter html, final int indent)
{
if (horizontal)
{
final double dsize = (double)width/bits;
final int size = width/bits;
for (int i=0; i<bits; ++i)
{
html.append("<rect x=\"" + (i*size) + "\" y=\"" + 0 + "\" width=\"" + size + "\" height=\"" + height + "\" fill=\"grey\"></rect>");
html.append("<rect x=\"" + (int)(i*dsize) + "\" y=\"" + 0 + "\" width=\"" + size + "\" height=\"" + height + "\" fill=\"grey\"></rect>");
if (i < labels.size())
html.append("<text text-anchor=\"middle\" dominant-baseline=\"middle\" transform=\"rotate(-90) translate(" + (-height/2) + "," + (i*size + size/2) + ")\">" + labels.get(reversed ? i : bits-i-1) + "</text>");
html.append("<text text-anchor=\"middle\" dominant-baseline=\"middle\" transform=\"rotate(-90) translate(" + (-height/2) + "," + (int)(i*dsize + dsize/2) + ")\">" + labels.get(reversed ? i : bits-i-1) + "</text>");
}
}
else
{
final double dsize = (double)height/bits;
final int size = height/bits;
for (int i=0; i<bits; ++i)
{
html.append("<rect x=\"" + 0 + "\" y=\"" + (i*size) + "\" width=\"" + width + "\" height=\"" + size + "\" fill=\"grey\"></rect>");
html.append("<rect x=\"" + 0 + "\" y=\"" + (int)(i*dsize) + "\" width=\"" + width + "\" height=\"" + size + "\" fill=\"grey\"></rect>");
if (i < labels.size())
html.append("<text text-anchor=\"middle\" dominant-baseline=\"middle\" x=\"" + (width/2) + "\" y=\"" + (i*size + size/2) + "\">" + labels.get(reversed ? i : bits-i-1) + "</text>");
html.append("<text text-anchor=\"middle\" dominant-baseline=\"middle\" x=\"" + (width/2) + "\" y=\"" + (int)(i*dsize + dsize/2) + "\">" + labels.get(reversed ? i : bits-i-1) + "</text>");
}
}
}
else
{
if (horizontal)
{
final double dsize = (double)width/bits;
final int size = width/bits, r = size/2;
for (int i=0; i<bits; ++i)
{
html.append("<ellipse cx=\"" + (i*size + r) + "\" cy=\"" + r + "\" rx=\"" + r + "\" ry=\"" + r + "\" fill=\"grey\"></ellipse>");
html.append("<ellipse cx=\"" + (int)(i*dsize + r) + "\" cy=\"" + r + "\" rx=\"" + r + "\" ry=\"" + r + "\" fill=\"grey\"></ellipse>");
if (i < labels.size())
html.append("<text text-anchor=\"end\" dominant-baseline=\"middle\" transform=\"rotate(-90) translate(" + (-size-2) + "," + (i*size + size/2) + ")\">" + labels.get(reversed ? i : bits-i-1) + "</text>");
html.append("<text text-anchor=\"end\" dominant-baseline=\"middle\" transform=\"rotate(-90) translate(" + (-size-2) + "," + (int)(i*dsize + dsize/2) + ")\">" + labels.get(reversed ? i : bits-i-1) + "</text>");
}
}
else
{
final double dsize = (double)height/bits;
final int size = height/bits, r = size/2;
for (int i=0; i<bits; ++i)
{
html.append("<ellipse cx=\"" + r + "\" cy=\"" + (i*size + r) + "\" rx=\"" + r + "\" ry=\"" + r + "\" fill=\"grey\"></ellipse>");
html.append("<ellipse cx=\"" + r + "\" cy=\"" + (int)(i*dsize + r) + "\" rx=\"" + r + "\" ry=\"" + r + "\" fill=\"grey\"></ellipse>");
if (i < labels.size())
html.append("<text dominant-baseline=\"middle\" x=\"" + (2+size) + "\" y=\"" + (i*size + size/2) + "\">" + labels.get(reversed ? i : bits-i-1) + "</text>");
html.append("<text dominant-baseline=\"middle\" x=\"" + (2+size) + "\" y=\"" + (int)(i*dsize + dsize/2) + "\">" + labels.get(reversed ? i : bits-i-1) + "</text>");
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/main/webapp/index.jsp
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ view.jsp?cache=false&amp;display=file:/Path/to/Display+Builder/01_main.bob
<hr>

<div id="versions">
2023-09-11 LED only displayed values above zero instead of non-zero, incl. negative<br>
2023-09-11 LED only displayed values above zero instead of non-zero, incl. negative. Byte monitor layout float calc<br>
2023-08-15 Preserve spaces in labels, text updates<br>
2023-07-28 Cache invalidates entry based on modification time<br>
2023-07-20 Handle macros with default value<br>
Expand Down

0 comments on commit 87fae3e

Please sign in to comment.