/** * * Copyright * 2009-2015 Jayway Products AB * 2016-2017 Föreningen Sambruk * * Licensed under AGPL, Version 3.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.gnu.org/licenses/agpl.txt * * 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 se.streamsource.streamflow.client.util; import java.awt.Color; import java.awt.Component; import java.awt.Graphics; import java.awt.Insets; import javax.swing.border.AbstractBorder; public class BottomBorder extends AbstractBorder { protected int thickness; protected Color lineColor; protected int gap; public BottomBorder(Color color) { this(color, 1, 1); } public BottomBorder(Color color, int thickness) { this(color, thickness, thickness); } public BottomBorder(Color color, int thickness, int gap) { lineColor = color; this.thickness = thickness; this.gap = gap; } public void paintBorder(Component c, Graphics g, int x, int y, int width, int height) { Color oldColor = g.getColor(); int i; g.setColor(lineColor); for (i = 0; i < thickness; i++) { g.drawLine(x, y + height - i - 1, x + width, y + height - i - 1); } g.setColor(oldColor); } public Insets getBorderInsets(Component c) { return new Insets(0, 0, gap, 0); } public Insets getBorderInsets(Component c, Insets insets) { insets.left = 0; insets.top = 0; insets.right = 0; insets.bottom = gap; return insets; } /** * Returns the color of the border. */ public Color getLineColor() { return lineColor; } /** * Returns the thickness of the border. */ public int getThickness() { return thickness; } /** * Returns whether or not the border is opaque. */ public boolean isBorderOpaque() { return false; } public int getGap() { return gap; } }