ScrollBarUI created.

cusax-fix
Yana Stamcheva 20 years ago
parent 7f7b90397d
commit cf53646a75

@ -10,8 +10,8 @@
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Rectangle;
import java.awt.image.BufferedImage;
import javax.swing.AbstractButton;
import javax.swing.ButtonModel;
@ -28,31 +28,17 @@
*/
public class SIPCommButtonUI extends MetalButtonUI {
private final static Image buttonLeft
= ImageLoader.getImage(ImageLoader.BUTTON_LEFT);
private final static Image buttonMiddle
= ImageLoader.getImage(ImageLoader.BUTTON_MIDDLE);
private final static Image buttonRight
= ImageLoader.getImage(ImageLoader.BUTTON_RIGHT);
private final static Image buttonRolloverLeft
= ImageLoader.getImage(ImageLoader.BUTTON_ROLLOVER_LEFT);
private final static Image buttonRolloverMiddle
= ImageLoader.getImage(ImageLoader.BUTTON_ROLLOVER_MIDDLE);
private final static Image buttonRolloverRight
= ImageLoader.getImage(ImageLoader.BUTTON_ROLLOVER_RIGHT);
private final static SIPCommButtonUI sipCommButtonUI = new SIPCommButtonUI();
// ********************************
private final static BufferedImage buttonBG
= ImageLoader.getImage(ImageLoader.BUTTON);
private final static BufferedImage buttonRolloverBG
= ImageLoader.getImage(ImageLoader.BUTTON_ROLLOVER);
// ********************************
// Create PLAF
// ********************************
public static ComponentUI createUI(JComponent c) {
return sipCommButtonUI;
return new SIPCommButtonUI();
}
// ********************************
@ -81,23 +67,34 @@ public void paint(Graphics g, JComponent c) {
AbstractButton button = (AbstractButton)c;
ButtonModel model = button.getModel();
Image leftImg;
Image middleImg;
Image rightImg;
BufferedImage leftImg;
BufferedImage middleImg;
BufferedImage rightImg;
int imgWidth;
int imgHeight;
int indentWidth = 10;
if(model.isRollover()){
imgWidth = buttonRolloverBG.getWidth();
imgHeight = buttonRolloverBG.getHeight();
leftImg = buttonRolloverLeft;
middleImg = buttonRolloverMiddle;
rightImg = buttonRolloverRight;
leftImg = buttonRolloverBG.getSubimage(0, 0, indentWidth, imgHeight);
middleImg = buttonRolloverBG.getSubimage(indentWidth, 0,
imgWidth-2*indentWidth,
imgHeight);
rightImg = buttonRolloverBG.getSubimage(imgWidth-indentWidth, 0,
indentWidth, imgHeight);
}
else{
leftImg = buttonLeft;
middleImg = buttonMiddle;
rightImg = buttonRight;
imgWidth = buttonBG.getWidth();
imgHeight = buttonBG.getHeight();
leftImg = buttonBG.getSubimage(0, 0, 10, imgHeight);
middleImg = buttonBG.getSubimage(10, 0, imgWidth-20, imgHeight);
rightImg = buttonBG.getSubimage(imgWidth-10, 0, 10, imgHeight);
}
int indentWidth = leftImg.getWidth(null);
g.drawImage(leftImg, 0, 0, indentWidth, c.getHeight(), null);
g.drawImage(middleImg, indentWidth, 0,
c.getWidth()-2*indentWidth, c.getHeight(), null);

@ -6,6 +6,7 @@
*/
package net.java.sip.communicator.impl.gui.lookandfeel;
import java.awt.Color;
import java.awt.Insets;
import java.util.Arrays;
import java.util.List;
@ -77,16 +78,16 @@ public void addCustomEntriesToTable(UIDefaults table) {
"InternalFrame.activeTitleGradient", buttonGradient,
"OptionPane.warningIcon",
ImageLoader.getImage(ImageLoader.WARNING_ICON),
// "OptionPane.warningIcon",
// ImageLoader.getImage(ImageLoader.WARNING_ICON),
"RadioButton.gradient", buttonGradient,
"RadioButton.rollover", Boolean.TRUE,
"RadioButtonMenuItem.gradient", buttonGradient,
"ScrollBar.gradient", buttonGradient,
"ScrollBar.width", new Integer(12),
"Slider.altTrackColor", new ColorUIResource(0xD2E2EF),
"Slider.gradient", sliderGradient,
"Slider.focusGradient", sliderGradient,
@ -95,6 +96,14 @@ public void addCustomEntriesToTable(UIDefaults table) {
"SplitPane.dividerFocusColor", LIGHT_BLUE_GRAY,
"SplitPane.dividerSize", new Integer(5),
"ScrollBar.horizontalThumbIcon",
ImageLoader.getImage(ImageLoader.SCROLLBAR_HORIZONTAL),
"ScrollBar.verticalThumbIcon",
ImageLoader.getImage(ImageLoader.SCROLLBAR_VERTICAL),
"ScrollBar.trackHighlight", GRAY,
"ScrollBar.highlight", LIGHT_GRAY,
"ScrollBar.darkShadow", GRAY,
"TabbedPane.borderHightlightColor", LIGHT_BLUE,
"TabbedPane.contentBorderInsets", new Insets(2, 2, 3, 3),
"TabbedPane.selected", LIGHT_GRAY,

@ -44,7 +44,8 @@ protected void initClassDefaults(UIDefaults table) {
Object[] uiDefaults = {
"ButtonUI", lfPackageName + "SIPCommButtonUI",
"SplitPaneUI", lfPackageName + "SIPCommSplitPaneUI"
"SplitPaneUI", lfPackageName + "SIPCommSplitPaneUI",
"ScrollBarUI", lfPackageName + "SIPCommScrollBarUI"
};
table.putDefaults(uiDefaults);
}

@ -0,0 +1,182 @@
/*
* SIP Communicator, the OpenSource Java VoIP and Instant Messaging client.
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package net.java.sip.communicator.impl.gui.lookandfeel;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Rectangle;
import java.awt.image.BufferedImage;
import javax.swing.JComponent;
import javax.swing.JScrollBar;
import javax.swing.UIManager;
import javax.swing.plaf.ComponentUI;
import javax.swing.plaf.metal.MetalScrollBarUI;
/**
* The SIPCommScrollBarUI implementation.
*
* @author Yana Stamcheva
*/
public class SIPCommScrollBarUI extends MetalScrollBarUI {
private BufferedImage horizontalThumb;
private BufferedImage verticalThumb;
public SIPCommScrollBarUI(){
horizontalThumb = (BufferedImage)UIManager.get("ScrollBar.horizontalThumbIcon");
verticalThumb = (BufferedImage)UIManager.get("ScrollBar.verticalThumbIcon");
}
// ********************************
// Create PLAF
// ********************************
public static ComponentUI createUI(JComponent c) {
return new SIPCommScrollBarUI();
}
protected void paintTrack( Graphics g, JComponent c, Rectangle trackBounds )
{
g.translate( trackBounds.x, trackBounds.y );
boolean leftToRight = c.getComponentOrientation().isLeftToRight();
if ( scrollbar.getOrientation() == JScrollBar.VERTICAL )
{
if ( !isFreeStanding ) {
trackBounds.width += 2;
if ( !leftToRight ) {
g.translate( -1, 0 );
}
}
g.setColor(this.trackColor);
g.fillRect(0, 0, trackBounds.width-2, trackBounds.height);
g.setColor(this.trackHighlightColor);
g.drawRect(0, 0, trackBounds.width-2, trackBounds.height);
if ( !isFreeStanding ) {
trackBounds.width -= 2;
if ( !leftToRight ) {
g.translate( 1, 0 );
}
}
}
else // HORIZONTAL
{
if ( !isFreeStanding ) {
trackBounds.height += 2;
}
g.setColor(this.trackColor);
g.fillRect(0, 0, trackBounds.width, trackBounds.height-2);
g.setColor(this.trackHighlightColor);
g.drawRect(0, 0, trackBounds.width, trackBounds.height-2);
if ( !isFreeStanding ) {
trackBounds.height -= 2;
}
}
g.translate( -trackBounds.x, -trackBounds.y );
}
/**
* Paints the bar of the scroll bar.
*/
protected void paintThumb(Graphics g, JComponent c, Rectangle thumbBounds)
{
if (!c.isEnabled()) {
return;
}
boolean leftToRight = c.getComponentOrientation().isLeftToRight();
g.translate( thumbBounds.x, thumbBounds.y );
int imgWidth;
int imgHeight;
int indentWidth = 10;
if ( scrollbar.getOrientation() == JScrollBar.VERTICAL )
{
if ( !isFreeStanding ) {
thumbBounds.width += 2;
if ( !leftToRight ) {
g.translate( -1, 0 );
}
}
imgWidth = verticalThumb.getWidth();
imgHeight = verticalThumb.getHeight();
Image topImage
= verticalThumb.getSubimage(0, 0,
imgWidth,
indentWidth);
Image middleImage
= verticalThumb.getSubimage(0, indentWidth,
imgWidth,
imgHeight-2*indentWidth);
Image bottomImage
= verticalThumb.getSubimage(0, imgHeight-indentWidth,
imgWidth, indentWidth);
g.drawImage(topImage, 0, 0,
thumbBounds.width-2, indentWidth , null);
g.drawImage(middleImage, thumbBounds.x, indentWidth,
thumbBounds.width-2,
thumbBounds.height-indentWidth , null);
g.drawImage(bottomImage, thumbBounds.x, thumbBounds.height-indentWidth,
thumbBounds.width-2, indentWidth, null);
if ( !isFreeStanding ) {
thumbBounds.width -= 2;
if ( !leftToRight ) {
g.translate( 1, 0 );
}
}
}
else // HORIZONTAL
{
if ( !isFreeStanding ) {
thumbBounds.height += 2;
}
imgWidth = horizontalThumb.getWidth();
imgHeight = horizontalThumb.getHeight();
Image leftImage
= horizontalThumb.getSubimage(0, 0,
indentWidth, imgHeight);
Image middleImage
= horizontalThumb.getSubimage(indentWidth, 0,
imgWidth-2*indentWidth,
imgHeight);
Image rightImage
= horizontalThumb.getSubimage(imgWidth-indentWidth, 0,
indentWidth,
imgHeight);
g.drawImage(leftImage, 0, 0,
indentWidth, thumbBounds.height, null);
g.drawImage(middleImage, thumbBounds.x+indentWidth, thumbBounds.y,
thumbBounds.width-2*indentWidth, thumbBounds.height , null);
g.drawImage(rightImage, thumbBounds.width-indentWidth, thumbBounds.y,
indentWidth, thumbBounds.height, null);
if ( !isFreeStanding ) {
thumbBounds.height -= 2;
}
}
g.translate( -thumbBounds.x, -thumbBounds.y );
}
}

@ -16,6 +16,7 @@
import java.awt.Insets;
import java.awt.LayoutManager;
import java.awt.Rectangle;
import java.awt.image.BufferedImage;
import javax.swing.JButton;
import javax.swing.JSplitPane;
@ -33,8 +34,8 @@
*/
class SIPCommSplitPaneDivider extends BasicSplitPaneDivider {
private Image horizontalDivider = ImageLoader.getImage(ImageLoader.SPLITPANE_HORIZONTAL);
private Image verticalDivider = ImageLoader.getImage(ImageLoader.SPLITPANE_VERTICAL);
private BufferedImage horizontalDivider = ImageLoader.getImage(ImageLoader.SPLITPANE_HORIZONTAL);
private BufferedImage verticalDivider = ImageLoader.getImage(ImageLoader.SPLITPANE_VERTICAL);
public SIPCommSplitPaneDivider(BasicSplitPaneUI ui) {
super(ui);
@ -144,12 +145,7 @@ public void paint(Graphics g) {
}
}
}
}
// Don't want the button to participate in focus traversable.
public boolean isFocusTraversable() {
return false;
}
}
};
b.setRequestFocusEnabled(false);
@ -242,11 +238,6 @@ public void paint(Graphics g) {
}
}
}
// Don't want the button to participate in focus traversable.
public boolean isFocusTraversable() {
return false;
}
};
b.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));

@ -11,6 +11,7 @@
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;
import javax.swing.Box;
import javax.swing.JSeparator;
@ -44,7 +45,7 @@ protected void paintBorder(Graphics g){
Graphics2D g2 = (Graphics2D)g;
Image dragImage = ImageLoader.getImage(ImageLoader.TOOLBAR_DRAG_ICON);
BufferedImage dragImage = ImageLoader.getImage(ImageLoader.TOOLBAR_DRAG_ICON);
g2.drawImage(dragImage,
0, (this.getHeight() - dragImage.getHeight(null))/2 - 2, null);

@ -20,6 +20,7 @@
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Rectangle;
import java.awt.image.BufferedImage;
import javax.swing.JComponent;
import javax.swing.SwingUtilities;
@ -44,9 +45,9 @@ public class CloseTabPaneEnhancedUI extends CloseTabPaneUI {
private static final Color highlightedColor = new Color(249, 117, 10);
private static Image TAB_BACKGROUND = ImageLoader.getImage(ImageLoader.TAB_BG);
private static BufferedImage TAB_BACKGROUND = ImageLoader.getImage(ImageLoader.TAB_BG);
private static Image CLOSABLE_TAB_BACKGROUND
private static BufferedImage CLOSABLE_TAB_BACKGROUND
= ImageLoader.getImage(ImageLoader.CLOSABLE_TAB_BG);
@ -119,7 +120,7 @@ protected void paintContentBorderRightEdge(Graphics g, int tabPlacement,
protected void paintTabBackground(Graphics g, int tabPlacement,
int tabIndex, int x, int y, int w, int h, boolean isSelected) {
Image img= null;
BufferedImage img= null;
Graphics2D g2 = (Graphics2D) g;

@ -12,6 +12,7 @@
import java.awt.Color;
import java.awt.Font;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
@ -329,8 +330,8 @@ public static Map getProtocolStatusIcons(String protocolName) {
return protocolStatusList;
}
public static Image getStatusIcon(PresenceStatus status) {
return (Image)mainStatusSet.get(status);
public static BufferedImage getStatusIcon(PresenceStatus status) {
return (BufferedImage)mainStatusSet.get(status);
}
/**

@ -32,16 +32,10 @@ public class ImageLoader {
* =========================LOOK AND FEEL IMAGES==========================
* -----------------------------------------------------------------------
*/
public static final ImageID BUTTON_LEFT = new ImageID("BUTTON_LEFT");
public static final ImageID BUTTON_MIDDLE = new ImageID("BUTTON_MIDDLE");
public static final ImageID BUTTON_RIGHT = new ImageID("BUTTON_RIGHT");
public static final ImageID BUTTON = new ImageID("BUTTON");
public static final ImageID BUTTON_ROLLOVER_LEFT
= new ImageID("BUTTON_ROLLOVER_LEFT");
public static final ImageID BUTTON_ROLLOVER_MIDDLE
= new ImageID("BUTTON_ROLLOVER_MIDDLE");
public static final ImageID BUTTON_ROLLOVER_RIGHT
= new ImageID("BUTTON_ROLLOVER_RIGHT");
public static final ImageID BUTTON_ROLLOVER
= new ImageID("BUTTON_ROLLOVER");
public static final ImageID SPLITPANE_HORIZONTAL
= new ImageID("SPLITPANE_HORIZONTAL");
@ -49,6 +43,12 @@ public class ImageLoader {
public static final ImageID SPLITPANE_VERTICAL
= new ImageID("SPLITPANE_VERTICAL");
public static final ImageID SCROLLBAR_VERTICAL
= new ImageID("SCROLLBAR_VERTICAL");
public static final ImageID SCROLLBAR_HORIZONTAL
= new ImageID("SCROLLBAR_HORIZONTAL");
/*------------------------------------------------------------------------
* ============================APPLICATION ICONS =========================
* -----------------------------------------------------------------------
@ -506,7 +506,7 @@ public static ArrayList getDefaultSmiliesPack() {
* Loads an image from a given image identifier.
*/
public static Image getImage(ImageID imageID) {
public static BufferedImage getImage(ImageID imageID) {
BufferedImage image = null;

@ -143,13 +143,11 @@ TAB_BG=net/java/sip/communicator/impl/gui/resources/common/notebook2.png
SELECTED_CLOSABLE_TAB_BG=net/java/sip/communicator/impl/gui/resources/common/closableTabSelected.png
CLOSABLE_TAB_BG=net/java/sip/communicator/impl/gui/resources/common/closableTab.png
BUTTON_LEFT=net/java/sip/communicator/impl/gui/resources/lookandfeel/buttonBGLeft.png
BUTTON_MIDDLE=net/java/sip/communicator/impl/gui/resources/lookandfeel/buttonBGMiddle.png
BUTTON_RIGHT=net/java/sip/communicator/impl/gui/resources/lookandfeel/buttonBGRight.png
BUTTON_ROLLOVER_LEFT=net/java/sip/communicator/impl/gui/resources/lookandfeel/buttonRolloverBgLeft.png
BUTTON_ROLLOVER_MIDDLE=net/java/sip/communicator/impl/gui/resources/lookandfeel/buttonRolloverBgMiddle.png
BUTTON_ROLLOVER_RIGHT=net/java/sip/communicator/impl/gui/resources/lookandfeel/buttonRolloverBgRight.png
BUTTON=net/java/sip/communicator/impl/gui/resources/lookandfeel/button1.png
BUTTON_ROLLOVER=net/java/sip/communicator/impl/gui/resources/lookandfeel/button2.png
SPLITPANE_HORIZONTAL=net/java/sip/communicator/impl/gui/resources/lookandfeel/splitpaneHorizontal.png
SPLITPANE_VERTICAL=net/java/sip/communicator/impl/gui/resources/lookandfeel/splitpaneVertical.png
SPLITPANE_VERTICAL=net/java/sip/communicator/impl/gui/resources/lookandfeel/splitpaneVertical.png
SCROLLBAR_HORIZONTAL=net/java/sip/communicator/impl/gui/resources/lookandfeel/scrollbar_horiz2.png
SCROLLBAR_VERTICAL=net/java/sip/communicator/impl/gui/resources/lookandfeel/scrollbar_vert1.png
Loading…
Cancel
Save