1 /* 2 * Copyright 2010 Sun Microsystems, Inc. All Rights Reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. Sun designates this 8 * particular file as subject to the "Classpath" exception as provided 9 * by Sun in the LICENSE file that accompanied this code. 10 * 11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, 22 * CA 95054 USA or visit www.sun.com if you need additional information or 23 * have any questions. 24 */ 25 package sun.awt.X11; 26 27 import java.awt.Canvas; 28 import java.awt.Color; 29 import java.awt.Graphics; 30 import java.awt.Rectangle; 31 32 /** 33 * Horizontal or vertical dividing line. Used in {@link XFileDialogPeer) and 34 * {@link XDirectoryDialogPeer). 35 * 36 * @author c.cerbo 37 */ 38 class Separator extends Canvas { 39 40 public final static int HORIZONTAL = 0; 41 public final static int VERTICAL = 1; 42 int orientation; 43 44 public Separator(int length, int thickness, int orient) { 45 super(); 46 orientation = orient; 47 if (orient == HORIZONTAL) { 48 resize(length, thickness); 49 } else { 50 // VERTICAL 51 resize(thickness, length); 52 } 53 } 54 55 @Override 56 public void paint(Graphics g) { 57 int x1, y1, x2, y2; 58 Rectangle bbox = bounds(); 59 Color c = getBackground(); 60 Color brighter = c.brighter(); 61 Color darker = c.darker(); 62 63 if (orientation == HORIZONTAL) { 64 x1 = 0; 65 x2 = bbox.width - 1; 66 y1 = y2 = bbox.height / 2 - 1; 67 68 } else { 69 // VERTICAL 70 x1 = x2 = bbox.width / 2 - 1; 71 y1 = 0; 72 y2 = bbox.height - 1; 73 } 74 g.setColor(darker); 75 g.drawLine(x1, y2, x2, y2); 76 g.setColor(brighter); 77 if (orientation == HORIZONTAL) { 78 g.drawLine(x1, y2 + 1, x2, y2 + 1); 79 } else { 80 g.drawLine(x1 + 1, y2, x2 + 1, y2); 81 } 82 } 83 }