WindowsProgressBarUIpublic class WindowsProgressBarUI extends BasicProgressBarUI Windows rendition of the component.
Warning:
Serialized objects of this class will not be compatible with
future Swing releases. The current serialization support is appropriate
for short term storage or RMI between applications running the same
version of Swing. A future release of Swing will provide support for
long term persistence. |
Fields Summary |
---|
private Rectangle | boxRect |
Methods Summary |
---|
public static javax.swing.plaf.ComponentUI | createUI(javax.swing.JComponent x)
return new WindowsProgressBarUI();
| protected java.awt.Dimension | getPreferredInnerHorizontal()
XPStyle xp = XPStyle.getXP();
if (xp != null) {
return xp.getDimension("progress.bar.normalsize");
} else {
return super.getPreferredInnerHorizontal();
}
| protected java.awt.Dimension | getPreferredInnerVertical()
if (XPStyle.getXP() != null) {
Dimension d = getPreferredInnerHorizontal();
return new Dimension(d.height, d.width); // Reverse values
} else {
return super.getPreferredInnerVertical();
}
| protected void | installDefaults()
super.installDefaults();
if (XPStyle.getXP() != null) {
LookAndFeel.installProperty(progressBar, "opaque", Boolean.FALSE);
progressBar.setBorder(null);
}
| protected void | paintDeterminate(java.awt.Graphics g, javax.swing.JComponent c)
XPStyle xp = XPStyle.getXP();
if (xp != null) {
boolean vertical = (progressBar.getOrientation() == JProgressBar.VERTICAL);
boolean isLeftToRight = WindowsGraphicsUtils.isLeftToRight(c);
int barRectWidth = progressBar.getWidth();
int barRectHeight = progressBar.getHeight()-1;
// amount of progress to draw
int amountFull = getAmountFull(null, barRectWidth, barRectHeight);
paintXPBackground(g, vertical, barRectWidth, barRectHeight);
// Paint progress
if (progressBar.isStringPainted()) {
// Do not paint the standard stripes from the skin, because they obscure
// the text
g.setColor(progressBar.getForeground());
barRectHeight -= 2;
barRectWidth -= 2;
Graphics2D g2 = (Graphics2D)g;
g2.setStroke(new BasicStroke((float)(vertical ? barRectWidth : barRectHeight),
BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL));
if (!vertical) {
if (isLeftToRight) {
g2.drawLine(2, barRectHeight / 2 + 1,
amountFull - 2, barRectHeight / 2 + 1);
} else {
g2.drawLine(2 + barRectWidth,
barRectHeight / 2 + 1,
2 + barRectWidth - (amountFull - 2),
barRectHeight / 2 + 1);
}
paintString(g, 0, 0, barRectWidth, barRectHeight, amountFull, null);
} else {
g2.drawLine(barRectWidth/2 + 1, barRectHeight + 1,
barRectWidth/2 + 1, barRectHeight + 1 - amountFull + 2);
paintString(g, 2, 2, barRectWidth, barRectHeight, amountFull, null);
}
} else {
XPStyle.Skin skin =
xp.getSkin(vertical ? "progress.chunkvert" : "progress.chunk");
int thickness;
if (vertical) {
thickness = barRectWidth - 5;
} else {
thickness = barRectHeight - 5;
}
int chunkSize = xp.getInt("progress.progresschunksize", 2);
int spaceSize = xp.getInt("progress.progressspacesize", 0);
int nChunks = (amountFull-4) / (chunkSize + spaceSize);
// See if we can squeeze in an extra chunk without spacing after
if (spaceSize > 0 && (nChunks * (chunkSize + spaceSize) + chunkSize) < (amountFull-4)) {
nChunks++;
}
for (int i = 0; i < nChunks; i++) {
if (vertical) {
skin.paintSkin(g,
3, barRectHeight - i * (chunkSize + spaceSize) - chunkSize - 2,
thickness, chunkSize, 0);
} else {
if (isLeftToRight) {
skin.paintSkin(g,
4 + i * (chunkSize + spaceSize), 2,
chunkSize, thickness, 0);
} else {
skin.paintSkin(g,
barRectWidth - (2 + (i+1) * (chunkSize + spaceSize)), 2,
chunkSize, thickness, 0);
}
}
}
}
} else {
super.paintDeterminate(g, c);
}
| protected void | paintIndeterminate(java.awt.Graphics g, javax.swing.JComponent c)
XPStyle xp = XPStyle.getXP();
if (xp != null) {
boolean vertical = (progressBar.getOrientation() == JProgressBar.VERTICAL);
int barRectWidth = progressBar.getWidth();
int barRectHeight = progressBar.getHeight()-1;
paintXPBackground(g, vertical, barRectWidth, barRectHeight);
// Paint the bouncing box.
boxRect = getBox(boxRect);
if (boxRect != null) {
g.setColor(progressBar.getForeground());
if (!vertical) {
g.fillRect(boxRect.x, boxRect.y + 2, boxRect.width, boxRect.height - 4);
} else {
g.fillRect(boxRect.x + 2, boxRect.y, boxRect.width - 3, boxRect.height);
}
if (progressBar.isStringPainted()) {
if (!vertical) {
paintString(g, -1, -1, barRectWidth, barRectHeight, 0, null);
} else {
paintString(g, 1, 1, barRectWidth, barRectHeight, 0, null);
}
}
}
} else {
super.paintIndeterminate(g, c);
}
| private void | paintXPBackground(java.awt.Graphics g, boolean vertical, int barRectWidth, int barRectHeight)
XPStyle xp = XPStyle.getXP();
String category = vertical ? "progress.barvert" : "progress.bar";
XPStyle.Skin skin = xp.getSkin(category);
// Paint background
Color fillColor = xp.getColor(category + ".fillcolorhint", null);
if (fillColor != null) {
g.setColor(fillColor);
g.fillRect(2, 2, barRectWidth-4, barRectHeight-4);
}
skin.paintSkin(g, 0, 0, barRectWidth, barRectHeight, 0);
|
|