From b27343f2ac45dc3dc97e1874ab2246d14ef7d0de Mon Sep 17 00:00:00 2001 From: Konstantin Bulenkov Date: Fri, 2 Nov 2012 09:47:35 +0100 Subject: [PATCH] panel with image bg --- .../com/intellij/ui/components/JBPanel.java | 74 +++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 platform/platform-api/src/com/intellij/ui/components/JBPanel.java diff --git a/platform/platform-api/src/com/intellij/ui/components/JBPanel.java b/platform/platform-api/src/com/intellij/ui/components/JBPanel.java new file mode 100644 index 000000000000..873ba66b280b --- /dev/null +++ b/platform/platform-api/src/com/intellij/ui/components/JBPanel.java @@ -0,0 +1,74 @@ +/* + * Copyright 2000-2012 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.intellij.ui.components; + +import org.jetbrains.annotations.Nullable; + +import javax.swing.*; +import java.awt.*; + +/** + * @author Konstantin Bulenkov + */ +public class JBPanel extends JPanel { + @Nullable + private Icon myBackgroundImage; + + public JBPanel(LayoutManager layout, boolean isDoubleBuffered) { + super(layout, isDoubleBuffered); + } + + public JBPanel(LayoutManager layout) { + super(layout); + } + + public JBPanel(boolean isDoubleBuffered) { + super(isDoubleBuffered); + } + + public JBPanel() { + super(); + } + + @Nullable + public Icon getBackgroundImage() { + return myBackgroundImage; + } + + public void setBackgroundImage(@Nullable Icon backgroundImage) { + myBackgroundImage = backgroundImage; + } + + @Override + protected void paintComponent(Graphics g) { + super.paintComponent(g); + + if (myBackgroundImage != null) { + final int w = myBackgroundImage.getIconWidth(); + final int h = myBackgroundImage.getIconHeight(); + int x = 0; + int y = 0; + while (x < getWidth()) { + while (y < getHeight()) { + myBackgroundImage.paintIcon(this, g, x, y); + y+=h; + } + y=0; + x+=w; + } + } + } +}